📄 3.lst
字号:
C51 COMPILER V7.06 3 11/08/2011 15:38:05 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 3
OBJECT MODULE PLACED IN 3.OBJ
COMPILER INVOKED BY: E:\KEIL\C51\BIN\C51.EXE 3.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*
2 同时用两个定时器控制蜂鸣器发声,
3 定时器0控制频率,定时器1控制同个
4 频率持续的时间,间隔2s依次输出
5 1,10,50,100,200,400,800,
6 1k(hz)的方波?
7 设晶振频率为12MHz。
8 */
9 /*********************************************************/
10 #include<reg52.h> //52单片机头文件
11 #define uint unsigned int //宏定义
12 #define uchar unsigned char //宏定义
13 sbit beep=P1^5;
14 uchar tt;
15 uint fre,flag;
16
17 void main() //主函数
18 {
19 1 fre=50000;
20 1 beep=0;
21 1 TMOD=0x11;//设置定时器0,定时器1为工作方式1
22 1 TH0=(65536-fre)/256;
23 1 TL0=(65536-fre)%256;
24 1 TH1=(65536-50000)/256;
25 1 TL1=(65536-50000)%256;
26 1 EA=1;//开总中断
27 1 ET0=1;//开定时器0中断
28 1 ET1=1;
29 1 TR1=1;
30 1 TR0=1;//启动定时器0
31 1 while(1);//等待中断产生
32 1
33 1 }
34
35 void timer0() interrupt 1 //定时器0中断
36 {
37 1 TR0=0; //进中断后先把定时器0中断关闭,防止内部程序过多而造成中断丢失
38 1 TH0=(65536-fre)/256;
39 1 TL0=(65536-fre)%256;
40 1 tt++;
41 1 if(flag<40) //以下几个if分别用来选取不同的频率
42 1 if(tt==10)
43 1 {
44 2 tt=0;
45 2 fre=50000;
46 2 beep=~beep;
47 2 }
48 1 if(flag>=40&&flag<80)
49 1 {
50 2 tt=0;
51 2 fre=50000;
52 2 beep=~beep;
53 2 }
54 1 if(flag>=80&&flag<120)
55 1 {
C51 COMPILER V7.06 3 11/08/2011 15:38:05 PAGE 2
56 2 tt=0;
57 2 fre=10000;
58 2 beep=~beep;
59 2 }
60 1 if(flag>=120&&flag<160)
61 1 {
62 2 tt=0;
63 2 fre=5000;
64 2 beep=~beep;
65 2 }
66 1 if(flag>=160&&flag<200)
67 1 {
68 2 tt=0;
69 2 fre=2500;
70 2 beep=~beep;
71 2 }
72 1 if(flag>=200&&flag<240)
73 1 {
74 2 tt=0;
75 2 fre=1250;
76 2 beep=~beep;
77 2 }
78 1 if(flag>=240&&flag<280)
79 1 {
80 2 tt=0;
81 2 fre=625;
82 2 beep=~beep;
83 2 }
84 1 if(flag>=280&&flag<320)
85 1 {
86 2 tt=0;
87 2 fre=312;
88 2 beep=~beep;
89 2 }
90 1 if(flag>=320&&flag<360)
91 1 {
92 2 tt=0;
93 2 fre=156;
94 2 beep=~beep;
95 2 }
96 1 TR0=1;
97 1 }
98 void timer1() interrupt 3 //定时器1中断用来产生2秒时间定时
99 {
100 1 TH1=(65536-50000)/256;
101 1 TL1=(65536-50000)%256;
102 1 flag++;
103 1 if(flag==360)
104 1 {
105 2 flag=0;
106 2 fre=50000;
107 2 }
108 1 }
109
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 561 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
C51 COMPILER V7.06 3 11/08/2011 15:38:05 PAGE 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -