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

#include
#include
#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写的结果还是不行,因此由进行下一种方式的找错,调试程序虽然是个耐力活,但是还需要准确的方法啊)

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