单片机求助,俺分不多了,各位大侠帮帮忙。用keilC语言编写一段程序,实现LED的一些功能,具体如下~?。

2025-01-07 06:33:58
推荐回答(4个)
回答1:

到我的百度空间看看,程序和电路都有。
--------------------------
while(1);//等待中断产生--毛病出在这里!去掉分号“;”,就好了。
{
switch(m)
……

你写上了分号,while(1);就是一条死循环指令,下面的就永远不执行了。

回答2:

#include

int m=0;
unsigned char cnt=10;

void timer0() interrupt 1
{
TH0=0x3C;
TL0=0xB0;
cnt--;
if(cnt==0)
{
cnt=0;

m++;

m%=8;

}
}

void main() //主函数
{
TMOD=0x01;//设置定时器0为工作方式1
TH0=0x3C;
TL0=0xB0;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
while(1);//等待中断产生
{
switch(m)
{
case 0 : P1=0x01; break;
case 1 : P1=0x02; break;
case 2 : P1=0x04; break;
case 3 : P1=0x08; break;
case 4 : P1=0x10; break;
case 5 : P1=0x20; break;
case 6 : P1=0x40; break;
case 7 : P1=0x80; break;
}
}
}

回答3:

LED共阳极,电路图就不用了吧,连接LED的时候记得加限流电阻保护单片机。
头文件用你自己的单片机对应的。
main()
{
int a=0XFEH;
while(1)
{ p1=a;
a=a<<1;//循环左移命令
}
}

至于加中断的只是把移位复制操作放在中断程序中,中断中记得放标志位,不要中断中执行死循环,我写的只是个意思自己完善下。

回答4:

http://hi.baidu.com/qqjjqq123/blog/item/b95b5cc3ec10d0d2d10060b0.html

你慢慢看看吧。电路图已画好 你把邮箱发过来,我可以给你发过去。