📄 采用外部中断模拟交通信号灯控制.lst
字号:
C51 COMPILER V7.50 采用外部中断模拟交通信号灯縚制 09/19/2005 23:29:25 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 采用外部中断模拟交通信号灯縚制
OBJECT MODULE PLACED IN 采用外部中断模拟交通信号灯控制.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 采用外部中断模拟交通信号灯控制.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #define ON 1
3 #define OFF 0
4
5 sbit SR = 0x90; // 南北红灯
6 sbit SY = 0x91; // 南北黄灯
7 sbit SG = 0x92; // 南北绿灯
8 sbit ER = 0x93; // 东西红灯
9 sbit EY = 0x94; // 东西黄灯
10 sbit EG = 0x95; // 东西绿灯
11 bit Flash; // LED状态
12 bit STOP;
13
14 void StopInt() interrupt 0 {
15 1 STOP = 1;
16 1 }
17
18 void Delay(unsigned char CNT) {
19 1 unsigned int I;
20 1 while ((CNT > 0) && !STOP) {
21 2 for (I=0; (I < 50000) && !STOP; I++) ;
22 2 CNT--;
23 2 }
24 1 }
25
26 void main() {
27 1 unsigned char I;
28 1 TCON = 0x01; // INT0 下沿中断
29 1 IE = 0x81; // EA =1, EX0=1
30 1 STOP = 0;
31 1 SR = ON; // 南北, 东西均红灯
32 1 SY = OFF;
33 1 SG = OFF;
34 1 ER = ON;
35 1 EY = OFF;
36 1 EG = OFF;
37 1
38 1 while (1) {
39 2 if (STOP) goto AllRed;
40 2 SR = ON; // 南北红灯, 东西绿灯
41 2 SY = OFF;
42 2 SG = OFF;
43 2 ER = OFF;
44 2 EY = OFF;
45 2 EG = ON;
46 2 Delay(20);
47 2 if (STOP) goto AllRed;
48 2 SR = ON; // 南北红灯, 东西黄灯闪
49 2 SY = OFF;
50 2 SG = OFF;
51 2 ER = OFF;
52 2 EY = OFF;
53 2 EG = OFF;
54 2 Flash = OFF;
55 2 for (I=0; I < 9; I++) {
C51 COMPILER V7.50 采用外部中断模拟交通信号灯縚制 09/19/2005 23:29:25 PAGE 2
56 3 EY = Flash;
57 3 Delay(1);
58 3 Flash = !Flash;
59 3 }
60 2 if (STOP) goto AllRed;
61 2 SR = OFF; // 南北绿灯, 东西红灯
62 2 SY = OFF;
63 2 SG = ON;
64 2 ER = ON;
65 2 EY = OFF;
66 2 EG = OFF;
67 2 Delay(20);
68 2 if (STOP) goto AllRed;
69 2 SR = OFF; // 东西红灯, 南北黄灯闪
70 2 SY = OFF;
71 2 SG = OFF;
72 2 ER = ON;
73 2 EY = OFF;
74 2 EG = OFF;
75 2 Flash = OFF;
76 2 for (I=0; I < 9; I++) {
77 3 SY = Flash;
78 3 Delay(1);
79 3 Flash = !Flash;
80 3 }
81 2 AllRed:
82 2 if (STOP) {
83 3 SR = ON; // 南北, 东西均红灯
84 3 SY = OFF;
85 3 SG = OFF;
86 3 ER = ON;
87 3 EY = OFF;
88 3 EG = OFF;
89 3 STOP = 0;
90 3 Delay(10);
91 3 }
92 2 }
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 213 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -