📄 门铃声发生器.lst
字号:
C51 COMPILER V8.02 门铃蒧发蒧芲 05/14/2008 19:13:58 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 门铃蒧发蒧芲
OBJECT MODULE PLACED IN 门铃声发生器.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 门铃声发生器.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //MCU:AT89S51
2 //晶振:12M
3 #include "AT89X51.H"
4 unsigned char time_500hz;
5 unsigned char time_700hz;
6 unsigned int tcount;
7
8 bit stop;
9 bit flag;
10
11 void main(void)
12 {
13 1 unsigned char i,j;
14 1
15 1 TMOD=0x02; //使用定时器0,选择方式2(常数自动重装的8位定时器)
16 1 TH0=0x06; //保存数值,用于自动重装
17 1 TL0=0x06; //定时250uS初值
18 1 TR0=1; //开定时器0
19 1 ET0=1; //开定时器0溢出中断
20 1 EA=1; //开总中断
21 1 P2_6=0;
22 1
23 1 while(1)
24 1 {
25 2 if(P2_0==0)
26 2 {
27 3 for(i=10;i>0;i--)
28 3 for(j=248;j>0;j--);
29 3 if(P2_0==0)
30 3 {
31 4 time_500hz=0;
32 4 time_700hz=0;
33 4 tcount=0;
34 4 flag=0;
35 4 stop=0;
36 4 TR0=1;
37 4 while(stop==0);
38 4 }
39 3 }
40 2 }
41 1 }
42
43 /********250uS中断服务程序*************/
44 void t0(void) interrupt 1 using 0
45 {
46 1 tcount++;
47 1 if(tcount==2500)
48 1 {
49 2 tcount=0;
50 2 if(flag==0)
51 2 {
52 3 flag=~flag;
53 3 }
54 2 else
55 2 {
C51 COMPILER V8.02 门铃蒧发蒧芲 05/14/2008 19:13:58 PAGE 2
56 3 stop=1;
57 3 TR0=0;
58 3 }
59 2 }
60 1 if(flag==0)
61 1 {
62 2 time_700hz++;
63 2 if(time_700hz==3)
64 2 {
65 3 time_700hz=0;
66 3 P2_6=~P2_6;
67 3 }
68 2 }
69 1 else
70 1 {
71 2 time_500hz++;
72 2 if(time_500hz==4)
73 2 {
74 3 time_500hz=0;
75 3 P2_6=~P2_6;
76 3 }
77 2 }
78 1 }
79
80
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 122 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -