您的位置:首页 > 其它

利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个提示灯依次一个一个闪动,闪动频率为10次每秒(8个灯亮一遍为一个周期),循环

2015-09-01 19:28 1666 查看
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar tt,aa;
//sbit d1=P1^0;

void main()
{
TMOD=0x10; 			//选择定时器  t0的工作方式为1
EA=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET1=1;
TR1=1;
aa=0xfe;
while(1)
{

if(tt==2)
{
tt=0;
P1=aa;
aa=_crol_(aa,1);
}
}
}

void exter() interrupt 3
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
这个程序快恶心死我了,一次写完之后竟然不能执行又找不出原因气的发狂啊。为了不让自己头疼我决定去上晚自习(班长催的紧啊)两个星期只去了三次,其余晚上时间都在学习郭天祥!走到楼下突然想起自己居然没有bug,只是在那干想,不甘心啊,回去继续修改!!!经过bug之后才发现程序不能进入到for语句中。我以为是外边错了。一直在外边找啊,结果可想而知。最后才发现原来是给aa赋值时弄成P1了,最终解决了问题!(中间曾将定时器1换成了0因为自己以前写的全是用定时器0写的结果还是不行,因此由进行下一种方式的找错,调试程序虽然是个耐力活,但是还需要准确的方法啊)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: