📄 jt 21-3.lst
字号:
C51 COMPILER V7.06 JT_21_3 01/07/2007 10:05:40 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE JT_21_3
OBJECT MODULE PLACED IN JT 21-3.OBJ
COMPILER INVOKED BY: C:\Keil7.06\C51\BIN\C51.EXE JT 21-3.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 /* 文件名:JT 21-3.c */
3 /* 程序功能:交通信号灯控制 */
4 #include <AT89X51.H> /* 头文件 */
5 char count; /* 声明count为字符变量 */
6 bit flag; /* 声明flag为位变量 */
7 char sum =0; /* 声明sum为字符变量并赋初始值0 */
8 xhd( ); /* 信号灯函数xhd( ) */
9 /* ―――――――― 主函数(主程序) ―――――――――――*/
10 main( ) /* 主函数 */
11 {
12 1 TMOD=0x01; /* 设定T0为模式1 */
13 1 TH0=-(50000/256); /* 设定时器初始值50000 */
14 1 TL0=-(50000%256);
15 1 EA=1; /* 总允许中断 */
16 1 ET0=1; /* 允许定时器T0中断 */
17 1 TR0=1; /* 启动定时器工作 */
18 1
19 1 P1=0xff; /* P1初始值,关闭所有信号灯 */
20 1 xhd( ); /* 调用信号灯函数 */
21 1 }
22 /* ――――――― 中断函数(中断服务程序) ―――――――― */
23 T0_srv( ) interrupt 1 using 1 /* 中断服务程序 */
24 {
25 1 TH0=-(50000/256); /* 重装定时器初始值 */
26 1 TL0=-(50000%256);
27 1 count++; /* count加1 */
28 1 if(count==20) /* 判断count是否等于20 */
29 1 {
30 2 count=0; /* count清0,以便从新计数 */
31 2 flag=1; /* 标志位为1 */
32 2 }
33 1 }
34 /* ―――――――― 信号灯函数(子程序) ―――――――― */
35 xhd( ) /* 信号灯函数 */
36 {
37 1 while(1) /* 无限循环 */
38 1 {
39 2 /* ―――――――――――――*/
40 2 P1_3=0; P1_2=0; /*东西红灯亮,南北绿灯亮 */
41 2 while( sum<15) /* 循环15次,延时15秒 */
42 2 {
43 3 while( ! flag ); /* 等待1秒 */
44 3 flag=0; /* 标志位清0 */
45 3 sum++; /* sum加1 */
46 3 }
47 2 sum=0; /* sum清0,以便从新计数 */
48 2 /* ―――――――――――――*/
49 2 P1_2=1; P1_1=0; /* 南北绿灯灭,黄灯亮 */
50 2 while( sum<3) /* 循环3次,延时3秒 */
51 2 {
52 3 while(! flag);
53 3 flag=0;
54 3 sum++;
55 3 }
C51 COMPILER V7.06 JT_21_3 01/07/2007 10:05:40 PAGE 2
56 2 sum=0;
57 2 /*―――――――――――――*/
58 2 P1_1=1; P1_0=0; /* 南北黄灯灭,红灯亮 */
59 2 P1_3=1; P1_5=0; /* 东西红灯灭,绿灯亮 */
60 2 while( sum<10) /* 延时10秒 */
61 2 {
62 3 while(! flag);
63 3 flag=0;
64 3 sum++;
65 3 }
66 2 sum=0;
67 2 /* ―――――――――――――*/
68 2 P1_5=1; P1_4=0; /*东西绿灯灭,黄灯亮 */
69 2 while( sum<3) /* 延时3秒 */
70 2 {
71 3 while(! flag);
72 3 flag=0;
73 3 sum++;
74 3 }
75 2 sum=0;
76 2 /* ――――――――――――― */
77 2 P1_4=1; P1_0=1; /* 东西黄灯灭,南北红灯灭 */
78 2 }
79 1 }
80
81
82
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 140 ----
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 + -