📄 按键.lst
字号:
C51 COMPILER V8.05a 按键 11/27/2008 15:40:24 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 按键
OBJECT MODULE PLACED IN 按键.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 按键.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"reg51.h"
2 #include"absacc.h"
3 #include"stdio.h"
4 #define uchar unsigned char
5 #define unit unsigned int
6 unsigned char code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9代码
7 unsigned char code shibie[8]={0x98,0x8c,0xb6,0x86,0xc6,0xc7,0x88,0x89};//符号q,p,三,E,【,L
8 uchar key_moshi=2; //模式按键
9 uchar key_up=2; //上调按键
10 uchar key_down=2; //下调按键
11 uchar key_queren=2; //确认按键
12 int queren_flag=0; //确认标志
13 int moshi_flag=0; // 模式标志
14 int key_first_flag=-1; //开机显示标志位
15 int moshi1[3],moshi2[3];
16 sbit ge=P2^4;
17 sbit shi=P2^5;
18 sbit bai=P2^6;
19 sbit fuhao=P2^7;
20
21 /***************************
22 *******延时程序 ************
23 ***************************/
24 void delay1(int time)
25 { int j=0,i=0;
26 1 for(j=0;j<time;j++)
27 1 {for(i=0;i<10;i++);}
28 1 }
29
30
31 /*********************************************
32 *****读按键 *******************************
33 ***********************************************/
34 void read_key(void)
35 { if((P2&0X01)!=0X01)
36 1 {delay1(253);
37 2 if((P2&0X01)!=0X01)
38 2 {
39 3 key_moshi=0;
40 3 }
41 2 }
42 1 if((P2&0X02)!=0X02)
43 1 { delay1(253);
44 2 if((P2&0X02)!=0X02)
45 2 {key_up=0;}
46 2 }
47 1 if((P2&0X04)!=0X04)
48 1 {delay1(253);
49 2 if((P2&0X04)!=0X04)
50 2 { key_down=0;}
51 2 }
52 1 if((P2&0X08)!=0X08)
53 1 {delay1(253);
54 2 if((P2&0X08)!=0X08)
55 2 {
C51 COMPILER V8.05a 按键 11/27/2008 15:40:24 PAGE 2
56 3
57 3 key_queren=0;}
58 2 }
59 1
60 1 }
61 /*******************************************
62 **************模式选择 ********************
63 ******************************************/
64 void moshi_set(void)
65 {
66 1 if(key_moshi==0)
67 1 { key_first_flag=1;
68 2 key_moshi=1;
69 2 delay1(1);
70 2 moshi_flag++;
71 2 if(moshi_flag>=3)
72 2 {moshi_flag=0;}
73 2 }
74 1 }
75 /********************************************
76 ***********模式1设置, 增加,减少 ****************
77 **********************************************/
78 void key_up_moshi1(void)
79 {
80 1 if(key_up==0&&moshi_flag==1&&queren_flag==0) //上升
81 1 { key_up=1;
82 2 delay1(2);
83 2 moshi1[1]++;
84 2 if(moshi1[1]>=10)
85 2 { moshi1[1]=0;}
86 2 }
87 1 }
88
89 void key_down_moshi1(void)
90 {
91 1 if(key_down==0&&moshi_flag==1&&queren_flag==0) //下调
92 1 { key_down=1;
93 2 delay1(2);
94 2 moshi1[1]--;
95 2 if(moshi1[1]<0)
96 2 { moshi1[1]=9;}
97 2 }
98 1 }
99
100 /************************************U*
101 ************模式2设置,增加,减少 ******
102 ***********************************/
103 void key_up_moshi2(void)
104 {
105 1 if(key_up==0&&moshi_flag==2&&queren_flag==0) //上升
106 1 { key_up=1;
107 2 delay1(2);
108 2 moshi2[1]++;
109 2 if(moshi2[1]>=10)
110 2 { moshi2[1]=0;}
111 2 }
112 1 }
113
114 void key_down_moshi2(void)
115 {
116 1 if(key_down==0&&moshi_flag==2&&queren_flag==0) //下调
117 1 { key_down=1;
C51 COMPILER V8.05a 按键 11/27/2008 15:40:24 PAGE 3
118 2 delay1(2);
119 2 moshi2[1]--;
120 2 if(moshi2[1]<0)
121 2 { moshi2[1]=9;}
122 2 }
123 1 }
124
125 /*************************************************
126 ***************确认按键 *****************************
127 *************************************************/
128 void key_queren_flag(void)
129 {
130 1 if(key_queren==0)
131 1 { delay1(5);
132 2 key_first_flag=1;
133 2 key_queren=1;
134 2 queren_flag=1;
135 2 /* if(queren_flag>1)
136 2 {queren_flag=0;} */
137 2 moshi_flag=0;
138 2 queren_flag=0;
139 2 }
140 1 }
141
142 /*******************************************************
143 *********************显示 *******************************
144 ************************************************************/
145 void display()
146 {
147 1 /**********************
148 1 开机显示
149 1 ***************************/
150 1 if(key_first_flag==-1)
151 1 { P0=dis[8];
152 2 P2=0X7F;
153 2 delay1(5);
154 2 P2=0XFF;
155 2 P0=dis[8];
156 2 P2=0XBF;
157 2 delay1(5);
158 2 P2=0XFF;
159 2 P0=dis[8];
160 2 P2=0XDF;
161 2 delay1(5);
162 2 P2=0XFF;
163 2 P0=dis[8];
164 2 P2=0XEF;
165 2 delay1(5);
166 2 P2=0XFF;
167 2 }
168 1 /**************************************
169 1 模式1显示 符号显示 q
170 1 ****************************************/
171 1 if(moshi_flag==1)
172 1 {
173 2 P0=shibie[0];
174 2 P2=0X7F;
175 2 delay1(5);
176 2 P2=0XFF;
177 2 P0=dis[moshi1[1]];
178 2 P2=0XEF;
179 2 delay1(5);
C51 COMPILER V8.05a 按键 11/27/2008 15:40:24 PAGE 4
180 2 P2=0XFF;
181 2 }
182 1
183 1 /*********************************
184 1 模式2显示 符号显示 E
185 1 ************************************/
186 1 if(moshi_flag==2)
187 1 {
188 2 P0=shibie[3];
189 2 P2=0X7F;
190 2 delay1(5);
191 2 P2=0XFF;
192 2 P0=dis[moshi2[1]];
193 2 P2=0XEF;
194 2 delay1(5);
195 2 P2=0XFF;
196 2 }
197 1 /**************************
198 1 正常状态显示 0123
199 1 ********************************/
200 1 if(moshi_flag==0&&(key_first_flag)!=-1)
201 1 {
202 2 P0=dis[0];
203 2 P2=0X7F;
204 2 delay1(5);
205 2 P2=0XFF;
206 2 P0=dis[1];
207 2 P2=0XEF;
208 2 delay1(5);
209 2 P2=0XFF;
210 2 P0=dis[2];
211 2 P2=0XDF;
212 2 delay1(5);
213 2 P2=0XFF;
214 2 P0=dis[3];
215 2 P2=0XBF;
216 2 delay1(5);
217 2 P2=0XFF;
218 2
219 2 }
220 1 }
221
222 /*********************************
223 主程序
224 ****************************************/
225 void main()
226 {
227 1 P2 = 0XFF;
228 1 while(1)
229 1 {
230 2 read_key();
231 2 moshi_set();
232 2 key_queren_flag();
233 2 key_up_moshi1();
234 2 key_down_moshi1();
235 2 key_up_moshi2();
236 2 key_down_moshi2();
237 2 display();
238 2 }
239 1 }
240
241
C51 COMPILER V8.05a 按键 11/27/2008 15:40:24 PAGE 5
242
243
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 814 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 28 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -