?? 4.1.lst
字號(hào):
C51 COMPILER V7.09 4_1 08/23/2005 15:32:35 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE 4_1
OBJECT MODULE PLACED IN 4.1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 4.1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2
3 //extern register char cputick;
4 unsigned char sec100,sec,sec5,min,hour,flag1,command,ACC1,temp,opto,cputick;
5 unsigned char i,digit,buffer[4],onHour1,onMin1,offHour1,offMin1;
6 char key,delay,count1;
7 char convert[10] = {0x3F,0x0c,0x76,0x5e,0x4d,0x5b,0x7b,0x0e,0x7f,0x5f};
8
9 main()
10 {
11 1 opto = 0xff;
12 1 cputick = 0;
13 1 hour = 18;
14 1 min = 0;
15 1 sec = 0;
16 1 key = -1;
17 1 flag1 = 0;
18 1 onHour1 = 18; // 18:30打開(kāi)LED
19 1
20 1 onMin1 = 01;
21 1 offHour1 = 18; // 21:30 關(guān)閉LED
22 1 offMin1 = 02;
23 1 count1 = 0;
24 1 buffer[0] = 0x40;
25 1 buffer[1] = 0x40;
26 1 buffer[2] = 0x40;
27 1 buffer[3] = 0x40;
28 1
29 1 //void serinit(9600); //調(diào)用tiny模式
30 1 // while(1)
31 1 // {
32 1 // while ( cputick < 1)
33 1 // scanLED();
34 1 // cputick = 0;
35 1 //任務(wù)執(zhí)行周期10ms
36 1
37 1 // time();
38 1 // timeToBuffer();
39 1 // blink();
40 1 // offmsd();
41 1 // keyexe();
42 1 // keydelay();
43 1 // comparetime();
44 1
45 1 // }
46 1 }
47
48 time()
49 //更新實(shí)時(shí)時(shí)鐘
50 {
51 1 sec100++;
52 1 if (sec100 >= 100) // 100 * 10 ms = 1 s
53 1 {sec100 = 0;
54 2 flag1 |= 0x05; //置 0位,2位
55 2
C51 COMPILER V7.09 4_1 08/23/2005 15:32:35 PAGE 2
56 2 temp = 50;
57 2 sec++;
58 2 if (sec >= 60)
59 2 {sec = 0;
60 3 flag1 |= 0x02; //置1位
61 3
62 3 min++;
63 3 if (min >= 60)
64 3 {min = 0;
65 4 hour++;
66 4 if (hour >= 24)
67 4 {hour = 0;
68 5
69 5 }
70 4 }
71 3 }
72 2 }
73 1 }
74
75 scanLED() //掃描LED和4個(gè)鍵
76
77 {
78 1 int i;
79 1 digit = 0x08;
80 1 key = -1;
81 1 for( i = 0; i < 4; i++) // 掃描
82 1 {
83 2 P3 = ~digit & opto; // 完成第2個(gè)
84 2
85 2 P1 = ~buffer[i];
86 2 // pause(1); //延遲
87 2
88 2 P1 = 0xff; // 關(guān)閉LED
89 2 if ((P3 & 0x10) == 0) // 如果鍵按下 P3.4 變低
90 2 key = i; // 存鍵值
91 2 digit>>=1; //下一個(gè)
92 2 }
93 1 }
94
95 timeToBuffer()
96 {
97 1 buffer[0] = convert[min%10];
98 1 buffer[1] = convert[min/10];
99 1 buffer[2] = convert[hour%10];
100 1 buffer[3] = convert[hour/10];
101 1
102 1 }
103
104 blink()
105 {
106 1 if((flag1 & 0x04) != 0) // 檢查bit 2
107 1 {temp--;
108 2 if (temp != 0)
109 2 {
110 3 buffer[1] |= 0x80;
111 3 buffer[2] |= 0x80;
112 3 }
113 2 else( flag1 &= ~0x04);
114 2 }
115 1 }
116
117 keyexe()
C51 COMPILER V7.09 4_1 08/23/2005 15:32:35 PAGE 3
118 {
119 1 if (key != -1)
120 1 {
121 2 if ((flag1 & 0x80) == 0) //延時(shí) 0.5 秒
122 2 {
123 3 flag1 |= 0x80;
124 3 delay = 50;
125 3
126 3 switch(key){
127 4 case (0): // 0 鍵
128 4 manualOnOff(); // 處理0 鍵
*** WARNING C206 IN LINE 128 OF 4.1.C: 'manualOnOff': missing function-prototype
129 4 break;
130 4 case (1): //1鍵
131 4 savetimeOnOff1(); // 處理1鍵
*** WARNING C206 IN LINE 131 OF 4.1.C: 'savetimeOnOff1': missing function-prototype
132 4 break;
133 4 case (2): //2鍵
134 4 setmin(); //處理2鍵,設(shè)置分
*** WARNING C206 IN LINE 134 OF 4.1.C: 'setmin': missing function-prototype
135 4 break;
136 4 case (3): //3鍵
137 4 sethour(); //處理3鍵,設(shè)置小時(shí)
*** WARNING C206 IN LINE 137 OF 4.1.C: 'sethour': missing function-prototype
138 4 }
139 3 }
140 2
141 2 }
142 1 }
143
144 sethour()
145 {
146 1 hour++;
147 1 if ( hour== 24)
148 1 hour = 0;
149 1
150 1 }
151
152 setmin()
153 {
154 1 min++;
155 1 sec = 0;
156 1 if( min == 60 )
157 1 min = 0;
158 1 }
159
160 savetimeOnOff1()
161
162 {
163 1 count1++;
164 1 if (count1 == 1)
165 1 {
166 2 onHour1 = hour;
167 2 onMin1 = min;
168 2 buffer[0] = 0x00;
169 2 buffer[1] = 0x68;
170 2 buffer[2] = 0x78;
171 2 buffer[3] = 0x71;
172 2 showOnce();
*** WARNING C206 IN LINE 172 OF 4.1.C: 'showOnce': missing function-prototype
173 2 }
174 1 else
C51 COMPILER V7.09 4_1 08/23/2005 15:32:35 PAGE 4
175 1 {
176 2 count1 = 0;
177 2 savetimeOff1();
*** WARNING C206 IN LINE 177 OF 4.1.C: 'savetimeOff1': missing function-prototype
178 2 }
179 1 }
180
181 savetimeOff1()
182
183 {
184 1 offHour1 = hour;
185 1 offMin1 = min;
186 1 buffer[0] = 0x63;
187 1 buffer[1] = 0x63;
188 1 buffer[2] = 0x78;
189 1 buffer[3] = 0x71;
190 1 showOnce();
191 1 }
192
193 manualOnOff()
194
195 {
196 1 opto= ~opto | 0x7f; // 激活P3.7
197 1 if ((opto & 0x80) == 0)
198 1 {
199 2 buffer[0] = 0;
200 2 buffer[1] = 0;
201 2 buffer[2] = 0x68;
202 2 buffer[3] = 0x78;
203 2 showOnce();
204 2 }
205 1 else
206 1 {
207 2 buffer[0] = 0;
208 2 buffer[1] = 0x63;
209 2 buffer[2] = 0x63;
210 2 buffer[3] = 0x78;
211 2 showOnce();
212 2 }
213 1 }
214
215 showOnce()
216 {
217 1 int i;
218 1 for(i=0;i<500;i++)
219 1 scanLED();
220 1 }
221 keydelay()
222 {
223 1 if ((flag1 & 0x80) !=0)
224 1 {
225 2 delay--;
226 2 if(delay == 0)
227 2 flag1 &= ~0x80;
228 2 }
229 1 }
230
231 comparetime()
232 {
233 1 if((flag1 & 0x01) != 0 )
234 1 {
235 2 flag1 &= ~0x01;
C51 COMPILER V7.09 4_1 08/23/2005 15:32:35 PAGE 5
236 2 if(hour == onHour1 && min == onMin1)
237 2 opto = 0x7f; // 清P3.7
238 2 if(hour == offHour1 && min == offMin1)
239 2 opto = 0xff; // 關(guān)閉P3.7
240 2 }
241 1 }
242
243 offmsd()
244
245 {
246 1 if (buffer[3] == 0x3f)
247 1 buffer[3] = 0x00;
248 1 }
249
250 pause(j)
251 int j;
252 {
253 1 int i;
254 1 for (i = 0; i < j; i++)
255 1 ;
256 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 486 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 6 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -