📄 main.lst
字号:
C51 COMPILER V7.07 MAIN 02/01/2008 15:00:37 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"at89x52.h"
2
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 uchar one_second,ch,rec[2];
8 uchar red_light,green_light,yellow_light,red_time,green_time,yellow_time;
9 uchar give_red=10,give_green=15,give_yellow=3;
10
11 void initial(void)
12 {
13 1 P0=P1=P2=P3=0xff;
14 1 SCON=0x50; // UART_mode=1,REN=1
15 1 RCAP2H=0xff;
16 1 RCAP2L=0xdc; //9600
17 1 T2MOD=0;
18 1 T2CON=0x34; // Set T2 to baud rate register
19 1 TMOD=0x01; //T0 工作方式1 50ms
20 1 TH0=0x4b;
21 1 TL0=0xff;
22 1 ET0=1;
23 1 ES=1;
24 1 EA=1;
25 1 }
26
27 void int_T0(void) interrupt 1
28 {
29 1 uchar i;
30 1 TH0=0x4b;
31 1 TL0=0xff;
32 1 i++;
33 1 if(i==20)
34 1 {
35 2 i=0;
36 2 one_second=1;
37 2 }
38 1 }
39
40 void int_232(void) interrupt 4
41 {
42 1 if(RI)
43 1 {
44 2 RI=0;
45 2 rec[ch]=SBUF;
46 2 ch++;
47 2 }
48 1 else return;
49 1 }
50
51 void main(void)
52 {
53 1 initial();
54 1 while(1)
55 1 {
C51 COMPILER V7.07 MAIN 02/01/2008 15:00:37 PAGE 2
56 2 if(one_second)
57 2 {
58 3 one_second=0;
59 3 if(red_light)
60 3 {
61 4 red_time--;
62 4 if(!red_time)
63 4 {
64 5 red_light=0; //0表示不亮;1表示亮
65 5 //加上控制红灯的引脚跳变
66 5 red_time=give_red;
67 5 green_light=1;
68 5 //加上控制绿灯的引脚跳变
69 5 }
70 4 }
71 3 else if(green_light)
72 3 {
73 4 green_time--;
74 4 if(!green_time)
75 4 {
76 5 green_light=0;
77 5
78 5 green_time=give_green;
79 5 yellow_light=1;
80 5
81 5 }
82 4 }
83 3 else if(yellow_light)
84 3 {
85 4 yellow_time--;
86 4 //加上黄灯闪烁控制;
87 4 if(!yellow_time)
88 4 {
89 5 yellow_light=0;
90 5
91 5 yellow_time=give_yellow;
92 5 red_light=1;
93 5 }
94 4 }
95 3 }
96 2 if(rec[0])
97 2 {
98 3 ET0=0;
99 3 red_light=green_light=yellow_light=0;
100 3 if(rec[0]==0x01)
101 3 {
102 4 give_red=rec[1];
103 4 rec[0]=rec[1]=0;
104 4 ch=0;
105 4 }
106 3 else if(rec[0]==0x02)
107 3 {
108 4 give_green=rec[1];
109 4 rec[0]=rec[1]=0;
110 4 ch=0;
111 4 }
112 3 else if(rec[0]==0x03)
113 3 {
114 4 give_yellow=rec[1];
115 4 rec[0]=rec[1]=0;
116 4 ch=0;
117 4 }
C51 COMPILER V7.07 MAIN 02/01/2008 15:00:37 PAGE 3
118 3 red_light=1;
119 3 ET0=1;
120 3 }
121 2 }
122 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 220 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 1
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 + -