欢迎光临
我们一直在努力

IAP15F2K61S2 LED流水灯 大一新生初试CT107D

在Keil5编写程序,STC-ISP烧录,使用CT107D平台,实现LED流水灯

问题:在仿真平台可以正常实现流水灯,但是在板子上使用没有流水灯效果,蜂鸣器也一直响

源代码:

#include <STC15F2K60S2.H>
#include <INTRINS.h>

void Delay200ms()        //@12.000MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 10;
    j = 31;
    k = 147;
    do
    {
        do
        {
            while (–k);
        } while (–j);
    } while (–i);
}

void LED_Init()
{
    P0=0xFF;
}

void main()
{
    while(1)
    {
        LED_Init();
        P00=0;
        Delay200ms();
        P00=1;P01=0;
        Delay200ms();
        P01=1;P02=0;
        Delay200ms();
        P02=1;P03=0;
        Delay200ms();
        P03=1;P04=0;
        Delay200ms();
        P04=1;P05=0;
        Delay200ms();
        P05=1;P06=0;
        Delay200ms();
        P06=1;P07=0;
        Delay200ms();
        P07=1;
    }
}

自己弄了一会,发现CT107D的板子和之前用的普中A2板不一样,要先通过P2赋值操控74HC138选中LED模块,再通过P0赋值操控LED。

效果:

来回流水灯效果

新代码如下:

#include <STC15F2K60S2.H>
#include <INTRINS.H>

unsigned char i;

void Delay200ms()        //@12.000MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 10;
    j = 31;
    k = 147;
    do
    {
        do
        {
            while (–k);
        } while (–j);
    } while (–i);
}

void main()
{
    P2=(P2&0x1F)|0xA0;
    P0=0x00;
    P2=(P2&0x1F)|0x80;
    while(1)
    {
        for(i=0;i<8;i++)
        {
            P0=_crol_(0xFE,i);
            Delay200ms();
        }
        for(i=0;i<8;i++)
        {
            P0=_cror_(0xEF,i);
            Delay200ms();
        }
    }
}

赞(0)
未经允许不得转载:171主机测评 » IAP15F2K61S2 LED流水灯 大一新生初试CT107D
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址