📄 testclk_2.lst
字号:
C51 COMPILER V7.06 TESTCLK_2 10/24/2008 09:41:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TESTCLK_2
OBJECT MODULE PLACED IN testclk_2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE testclk_2.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <intrins.h>
2 #include "STC89LE516AD.h"
3 #define uchar unsigned char
4 #define uint unsigned int
5
6
7
8 sbit ce = P4^0;
9 sbit cl = P2^6;
10 sbit di = P2^7;
11 sbit P3_3 = P3^3;
12 sbit P4_3 = P4^3;
13
14 bit flag = 0,flag1 = 1,flag2 =0;
15 uchar buffer[20];
16 uchar sw,vol;
17 uchar aa,count = 0,blinking = 0,mm;
18 uchar second,minute,hour,second_h,second_l,minute_h,minute_l,hour_h,hour_l;
19 uchar code table5[][3] = {{0xc0,0x40,0x1c},{0xc0,0,0},{0x40,0x44,0x15},{0xc0,0x44,0x05},//0,1,2,3
20 {0xc0,0x04,0x09},{0x80,0x44,0x0d},{0x80,0x44,0x1d},//4,5,6
21 {0xc0,0,0x04},{0xc0,0x44,0x1d},{0xc0,0x44,0x0d},};//7,8,9
22
23 uchar code table6[][3] = {{0x80,0x81,0x38},{0x80,0x01,0},{0x80,0x88,0x2a},{0x80,0x89,0x0a},//0,1,2,3
24 {0x80,0x09,0x12},{0,0x89,0x1a},{0,0x89,0x3a},//4,5,6
25 {0x80,0x01,0x08},{0x80,0x89,0x3a},{0x80,0x89,0x1a},};//7,8,9
26
27 uchar code table7[][2] = {{0x03,0x71},{0x03,0},{0x11,0x55},{0x13,0x15},//0,1,2,3
28 {0x13,0x24},{0x12,0x35},{0x12,0x75},//4,5,6
29 {0x03,0x10},{0x13,0x75},{0x13,0x35},};//7,8,9
30 uchar code table8[][2] = {{0x06,0xe2},{0x06,0},{0x22,0xaa},{0x26,0x2a},//0,1,2,3
31 {0x26,0x48},{0x24,0x6a},{0x24,0xea},//4,5,6
32 {0x06,0x20},{0x26,0xea},{0x26,0x6a},};//7,8,9
33 uchar code table9[][3] = {{0x0c,0xc4,0x01},{0x0c,0,0},{0x44,0x54,0x01},{0x4c,0x54,0},//0,1,2,3
34 {0x4c,0x90,0},{0x48,0xd4,0},{0x48,0xd4,0x01},//4,5,6
35 {0x0c,0x40,0},{0x4c,0xd4,0x01},{0x4c,0xd4,0},};//7,8,9
36
37 uchar code table10[][3] = {{0x18,0x88,0x03},{0x18,0,0},{0x88,0xa8,0x02},{0x98,0xa8,0},//0,1,2,3
38 {0x98,0x20,0x01},{0x90,0xa8,0x01},{0x90,0xa8,0x03},//4,5,6
39 {0x18,0x80,0},{0x98,0xa8,0x03},{0x98,0xa8,0x01},};//7,8,9
40
41 void clk_display();
42 void up_key();
43 void down_key();
44
45 void delay(uint z)
46 {
47 1 uint x,y;
48 1 for(x = 0;x < z;x ++)
49 1 {
50 2 for(y = 0;y < 110;y ++);
51 2 }
52 1 }
53
54 void clear()
55 {
C51 COMPILER V7.06 TESTCLK_2 10/24/2008 09:41:08 PAGE 2
56 1 buffer[0] = 0;buffer[1] = 0;buffer[2] = 0;buffer[3] = 0;buffer[4] = 0;
57 1 buffer[5] = 0;buffer[6] = 0;buffer[7] = 0;buffer[8] = 0;buffer[9] = 0;
58 1 buffer[10] = 0;buffer[11] = 0;buffer[12] = 0;buffer[13] = 0;buffer[14] = 0;
59 1 buffer[15] = 0;buffer[16] = 0;buffer[17] = 0;buffer[18] = 0;buffer[19] = 0x10;
60 1 }
61
62 void lcd_show()
63 {
64 1 uchar i,j,temp = 0x41;
65 1 ce = 0;
66 1 cl = 0;
67 1 for(i = 0;i < 8;i ++)
68 1 {
69 2 if(temp & 0x01)
70 2 di = 1;
71 2 else
72 2 di = 0;
73 2
74 2 cl = 1;
75 2 _nop_();
76 2 _nop_();
77 2 _nop_();
78 2 temp = temp >> 1;
79 2 cl = 0;
80 2 }
81 1 ce = 1;
82 1 for(i = 0;i < 20;i ++)
83 1 {
84 2 temp = buffer[i];
85 2 for(j = 0;j < 8;j ++)
86 2 {
87 3
88 3 if(temp & 0x01)
89 3 di = 1;
90 3 else
91 3 di = 0;
92 3
93 3 cl = 1;
94 3 _nop_();
95 3 _nop_();
96 3 _nop_();
97 3 temp = temp >> 1;
98 3 cl = 0;
99 3 }
100 2 }
101 1 }
102
103 void keyscan_knob()
104 {
105 1 uchar temp,temp1;
106 1 if(P3_3 == 0)
107 1 {
108 2 if(P4_3 == 0)
109 2 temp = 0;
110 2 else
111 2 temp = 1;
112 2 }
113 1 else
114 1 {
115 2 if(P4_3 == 0)
116 2 temp = 2;
117 2 else
C51 COMPILER V7.06 TESTCLK_2 10/24/2008 09:41:08 PAGE 3
118 2 temp = 3;
119 2 }
120 1 if(temp != sw)
121 1 {
122 2 delay(1);
123 2 if(P3_3 == 0)
124 2 {
125 3 if(P4_3 == 0)
126 3 temp1 = 0;
127 3 else
128 3 temp1 = 1;
129 3 }
130 2 else
131 2 {
132 3 if(P4_3 == 0)
133 3 temp1 = 2;
134 3 else
135 3 temp1 = 3;
136 3 }
137 2 if(temp == temp1)
138 2 {
139 3 if(temp == 0)
140 3 {
141 4 if(sw == 2)
142 4 {
143 5 up_key();
144 5 }
145 4 else if(sw == 1)
146 4 {
147 5 down_key();
148 5 }
149 4 }
150 3 else if(temp == 3)
151 3 {
152 4 if(sw == 1)
153 4 {
154 5 up_key();
155 5 }
156 4 else if(sw == 2)
157 4 {
158 5 down_key();
159 5 }
160 4 }
161 3 sw = temp;
162 3 }
163 2
164 2 }
165 1
166 1 }
167 void up_key()
168 {
169 1 if(flag)
170 1 {
171 2 switch(count)
172 2 {
173 3 case 1:
174 3 hour ++;
175 3 if(hour == 24)
176 3 hour = 0;
177 3 clk_display();
178 3 break;
179 3 case 2:
C51 COMPILER V7.06 TESTCLK_2 10/24/2008 09:41:08 PAGE 4
180 3 minute ++;
181 3 if(minute == 60)
182 3 minute = 0;
183 3 clk_display();
184 3 break;
185 3 case 3:
186 3 second ++;
187 3 if(second == 60)
188 3 second = 0;
189 3 clk_display();
190 3 break;
191 3 }
192 2 }
193 1 }
194 void down_key()
195 {
196 1 if(flag)
197 1 {
198 2 switch(count)
199 2 {
200 3 case 1:
201 3 if(hour > 0)
202 3 hour --;
203 3 else
204 3 hour = 23;
205 3 clk_display();
206 3 break;
207 3 case 2:
208 3 if(minute > 0)
209 3 minute --;
210 3 else
211 3 minute = 59;
212 3 clk_display();
213 3 break;
214 3 case 3:
215 3 if(second > 0 )
216 3 second --;
217 3 else
218 3 second = 59;
219 3 clk_display();
220 3 break;
221 3 }
222 2 }
223 1 }
224 void Get_AD_Result(uchar channel)
225 {
226 1 ADC_DATA = 0;
227 1 ADC_CONTR = channel;
228 1 delay(1);
229 1 ADC_CONTR |= 0X08;
230 1 while((ADC_CONTR & 0x10) == 0);
231 1 ADC_CONTR &= 0XF7;
232 1 }
233 void keyscan()
234 {
235 1 uchar t1;
236 1 uchar t2;
237 1 Get_AD_Result(2);
238 1 t1 = ADC_DATA >> 4;
239 1 delay(10);
240 1 Get_AD_Result(2);
241 1 if(ADC_DATA < 0xd0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -