在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();
}
}
}





