单片机郭天祥的中断练习题1

 1 # include <reg52.h>
 2 # define uint unsigned int
 3 # define uchar unsigned char
 4 uchar t;
 5 sbit d1 = P1^0;
 6 void main()
 7 {
 8     t = 0;
 9     TMOD = 0x01;
10     TH0 = (65536-50000)/256;
11     TL0 = (65536-50000)%256;
12     EA = 1;
13     ET0 = 1;
14     TR0 = 1;
15     while(1)
16     {
17         if(t  == 10)
18          {
19              d1 = ~d1;
20             t = 0;
21          }
22 
23     }
24 }
25 void extend1 ()interrupt 1
26 {
27        TH0 = (65536-50000)/256;
28     TL0 = (65536-50000)%256;
29     t++;
30 }题目 

利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。

分析

主要是定时器t0的断点实验,最主要说明的是,断点程序不要写过多的处理语句,语句过多会造成中断程序的代码还未打印出来,下一个中断就出来了,就会损失这次中断,

失误

这次失误主要是把那些定时器中断放到while中,是不对的,因为每次中断都要进行while循环,就会造成重新一次定义,因此必须放外面把定时器中断声明放外面

总结

耳机关去翻,之前没有用过,这个可以把频率均分,因此之前没有想到 

代码

 

 

 

posted on 2013-07-10 16:59  yelcoved  阅读(914)  评论(0编辑  收藏  举报