📄 final.lst
字号:
C51 COMPILER V7.06 FINAL 05/02/2006 20:20:22 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE FINAL
OBJECT MODULE PLACED IN final.OBJ
COMPILER INVOKED BY: D:\Keil7.0\C51\BIN\C51.EXE final.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<stdio.h>
2 #include<c8051f020.h>
3 sbit tel_switch=P0^3;/*tel_switch是电话的总开关*/
4 sbit tel_dail=P0^2;/*tel_dail是电话的重播按键控制端*/
5 void initial(void);/*tel_swtich,tel_dail,以及中断控制寄存器和中断标志寄存器的初始化*/
6 void delay(void);/*延时程序,大约延时0.6s左右,因为暂时不知道系统时钟*/
7 void dail(void);/*拨号程序,实质是控制重播的完成*/
8 void main()
9 {
10 1 initial();
11 1 while(1)/*等待外部中断0,来自p3_2口*/
12 1 {;}
13 1 }
14 void initial()
15 {
16 1 tel_switch=0;/*电话机的总开关关闭*/
17 1 printf("initial:tel_switch is closed\n");/*无用*/
18 1 tel_dail=0;/*重播功能未接通*/
19 1 printf("initial:tel_dail is colsed\n");/*无用*/
20 1 IE=0x81;/*开启所有中断,开启外部中断0*/
21 1 TCON=0x01;/*外部中断0为脉冲中断,由高变低*/
22 1 }
23 void extern0_isr() interrupt 0
24 {
25 1 tel_switch=1;/*打开电话总的开关*/
26 1 delay();/*延时一段时间*/
27 1 dail();/*拨打电话*/
28 1 }
29 void delay()/*延时程序,大约为0.6s左右*/
30 {
31 1 unsigned char i,j;
32 1 i=1000;
33 1 while(i--)
34 1 {
35 2 for(j=0;j<600;j++){;}
36 2 }
37 1 }
38 void dail()
39 {
40 1 tel_dail=1;/*开启重播*/
41 1 printf("tel_dail is opened!\n");/*无用*/
42 1 delay();/*延时一段时间*/
43 1 tel_dail=0;/*停止重播*/
44 1 printf("tel_switch is closed!\n");
45 1 TMOD=0x01;/*计数器1的工作方式为1,16位计数*/
46 1 TH0=0;/*高8位为0*/
47 1 TL0=0;/*低8位为0*/
48 1 TR0=1;/*开启计数*/
49 1 for(;;)
50 1 {
51 2 if(TF0)/*计数溢出*/
52 2 {
53 3 tel_switch=0;printf("tel_switch is closed!\n");/*关闭整个电话的总开关*/
54 3 }
55 2 }
C51 COMPILER V7.06 FINAL 05/02/2006 20:20:22 PAGE 2
56 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 173 ----
CONSTANT SIZE = 102 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -