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循环,就会造成重新一次定义,因此必须放外面把定时器中断声明放外面
总结
耳机关去翻,之前没有用过,这个可以把频率均分,因此之前没有想到
代码
转载于:https://www.cnblogs.com/yelcoved/p/3182441.html
相关资源:单片机期末考试习题库