📄 08819.lst
字号:
C51 COMPILER V8.02 08819 08/20/2008 10:36:23 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 08819
OBJECT MODULE PLACED IN 08819.OBJ
COMPILER INVOKED BY: E:\design tools\keilc\C51\BIN\C51.EXE 08819.c BROWSE DEBUG OBJECTEXTEND
line level source
1 ///////////////////////////////////////////////////////////////////
2 //新规则交通灯设计/////////////////////////////////////////////////
3 //设置P3.0,P3.1,P3.2三个按键调节时间,key1(功能键)/////////////
4 //调节主次通道的时间,key2(减一键),key3(加一键)/////////////////////
5 //增加串口通信,人机互动//////
6 ////黄山////
7 #include <reg51.h> //定义头文件
8 #include <stdio.h>
9 #define uchar unsigned char //定义无符号变量
10 #define uint unsigned int //定义有符号变量
11 uchar num,num1,count,key1num,flag,a,zg,zr,y,cg,cr;
12 sbit key1=P3^3;
13 sbit key2=P3^1;
14 sbit key3=P3^2;
15 sbit zshi=P3^7;
16 sbit zge=P3^6;
17 sbit cshi=P3^5;
18 sbit cge=P3^4;
19 uchar code dis[]={
20
21 0X3f,/*0*/
22 0X06,/*1*/
23 0X5b,/*2*/
24 0X4f,/*3*/
25 0X66,/*4*/
26 0X6d,/*5*/
27 0X7d,/*6*/
28 0X07,/*7*/
29 0X7f,/*8*/
30 0X6f,/*9*/
31 0X00,/*NULL*/
32 }; //0-9位七段共阴数码管显示
33
34
35 void delay(uint c) //延时子程序
36 {
37 1 uint i,j;
38 1 for(i=0;i<c;i++)
39 1 for(j=0;j<100;j++);
40 1
41 1 }
42
43 void init() //初始化子程序
44 {
45 1 TMOD=0x21;//设置定时器0为工作方式1
46 1 TH0=(65536-10000)/256;
47 1 TL0=(65536-10000)%256;
48 1 TH1=0xfd;
49 1 TL1=0xfd;
50 1 EA=1;//开总中断
51 1 ET0=1;//开定时器0中断
52 1 TR0=1;//启动定时器0
53 1 TR1=1;
54 1 REN=1; //允许串口中断,采用串口中断法
55 1 SM0=0;
C51 COMPILER V8.02 08819 08/20/2008 10:36:23 PAGE 2
56 1 SM1=1;
57 1 ES=1;//中断
58 1 y=3;
59 1 zg=30;
60 1 zr=23;
61 1 cg=zr-y;
62 1 cr=zg+y;
63 1
64 1
65 1 num=56;
66 1 num1=56;
67 1 P3=0xff;
68 1 P2=0x00;
69 1 P1=0x00;
70 1
71 1 }
72 void guan() //消影子程序
73 {
74 1 zshi=1;
75 1 cshi=1;
76 1 zge=1;
77 1 cge=1;
78 1
79 1 }
80 void display(uchar dat_z,dat_c) //显示子程序
81 {
82 1
83 1 zshi=1;
84 1 P1=dis[(dat_z)%10];
85 1 zshi=0;
86 1 delay(5);
87 1 guan();
88 1
89 1 zge=1;
90 1 P1=dis[(dat_z)/10];
91 1 zge=0;
92 1 delay(5);
93 1 guan();
94 1
95 1 cshi=1;
96 1 P2=dis[(dat_c)%10];
97 1 cshi=0;;
98 1 delay(5);
99 1 guan();
100 1 cge=1;
101 1 P2=dis[(dat_c)/10];
102 1 cge=0;
103 1 delay(5);
104 1
105 1 }
106 void displayy(uchar dat)
107 {
108 1 zshi=1;
109 1 P1=dis[dat];
110 1 zshi=0;
111 1 delay(5);
112 1 guan();
113 1
114 1 cshi=1;
115 1 P2=dis[dat];
116 1 cshi=0;
117 1 delay(5);
C51 COMPILER V8.02 08819 08/20/2008 10:36:23 PAGE 3
118 1 guan();
119 1 }
120 void keyscan()
121 {
122 1 if(key1==0)
123 1 {
124 2 delay(5);
125 2 if(key1==0)
126 2 {
127 3 while(!key1)
128 3 display();
*** WARNING C209 IN LINE 128 OF 08819.C: '_display': too few actual parameters
129 3
130 3 key1num++;
131 3
132 3 }
133 2 if(key1num==1)
134 2 {
135 3 TR0=0;
136 3 }
137 2 if(key1num==3)
138 2 {
139 3 TR0=1;
140 3 }
141 2 }
142 1 if(key1num!=0)
143 1 {
144 2 if(key2==0)
145 2 {
146 3 delay(5);
147 3 if(key2==0)
148 3 {
149 4 while(!key2);
150 4 if(flag==0)
151 4 zg++;
152 4 if(flag==2)
153 4 zr++;
154 4 }
155 3 }
156 2 }
157 1 }
158
159 /*
160 void keyscan() //键盘扫描子程序,KEY1功能键,KEy2减一键,KEY3加一键
161 {
162
163 if(key1==0)
164 {
165 delay(5);
166 if(key1==0)
167 {
168 key1num++;
169 while(!key1)
170 {
171 display(num,num1);
172 }
173 if(key1num==1)
174 {
175 TR0=0;
176 }
177 if(key1num==3)
178 {
C51 COMPILER V8.02 08819 08/20/2008 10:36:23 PAGE 4
179 key1num=0;
180 TR0=1;
181 }
182 }
183 }
184 if(key1num!=0) //先判断功能设置键
185 {
186 if(key2==0)
187 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -