📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 03/13/2006 13:29:49 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE MAIN.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89X51.H>
2 unsigned char keycnt=0;
3 unsigned char tcnt=0; //键值判断
4 bit sjz=0; //产生三角波时用到的标志
5 /*void Delay(unsigned int tc) //延时程序
6 {
7 while( tc != 0 )
8 {
9 unsigned int i;
10 for(i=0; i<100; i++);
11 tc--;
12 }
13 }*/
14 void delayl() //延时子程序
15 {
16 1 unsigned char i,j;
17 1 for(i=20;i>0;i--)
18 1 for(j=248;j>0;j--);
19 1 }
20 void KEY() //按键扫描程序
21 {
22 1
23 1 if(P3_2==0)
24 1 {
25 2 delayl(); //延时跳过按下时的抖动
26 2 if(P3_2==0)
27 2 { //P0=0XFF;
28 3 keycnt=0; //定时器产生锯齿波标志
29 3 TR0=0; //暂时停止波形输出
30 3 TH0=0x256-40; //对TH0 TL0赋值
31 3 TL0=0x256-40;
32 3 TR0=1; //开始定时,产生锯齿波
33 3 while(P3_2==0); //如果一直按着键,则等待松键开
34 3 delayl(); //延时跳过松开后的抖动
35 3 } }
36 1 if(P3_3==0)
37 1 {
38 2 delayl(); //延时跳过按下时的抖动
39 2 if(P3_3==0)
40 2 { //P0=0X00;
41 3 keycnt=1; //定时器产生三角波标志
42 3 TR0=0; //暂时停止波形输出
43 3 TH0=0x256-40; //对TH0 TL0赋值
44 3 TL0=0x256-40;
45 3 TR0=1; //开始定时 产生三角波
46 3 }
47 2 while(P3_2==0); //如果一直按着键,则等待松键开
48 2 delayl(); //延时跳过松开后的抖动
49 2 }
50 1 } //请注意写程序时的格式规范,此处是为了节省纸张
51 void t0(void) interrupt 1 using 0 //定时中断服务函数
52 {
53 1
54 1 if(keycnt==0) //产生锯齿波
55 1 {
C51 COMPILER V7.06 MAIN 03/13/2006 13:29:49 PAGE 2
56 2 P0=tcnt;
57 2 tcnt=+0x0a; //步进0.2V/一次中断
58 2 if(tcnt==0xfb)
59 2 {tcnt=0;}
60 2 }
61 1 if(keycnt==1) //产生三角波
62 1 {
63 2 if(sjz==0)
64 2 {
65 3 P0=tcnt;
66 3 tcnt=+0x0a;//步进0.2V/一次中断
67 3 if(tcnt==0xfa)
68 3 {sjz=1;}
69 3 }
70 2 if(sjz==1)
71 2 {
72 3 P0=tcnt;
73 3 tcnt=-0x0a;
74 3 if(tcnt==0)
75 3 {sjz=0;}
76 3 }
77 2 }
78 1 }
79 void main(void)
80 {
81 1 TMOD=0x02; //定时器工作在方式2
82 1 ET0=1;
83 1 EA=1;
84 1 while(1)
85 1 {
86 2 KEY();
87 2 }
88 1 }
89
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 142 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -