📄 lcdtest.lst
字号:
170 ilogue start */
172 004c 61E0 .LM11:
173 004e 85E0 pop r17
174 0050 0E94 0000 pop r16
175 0054 80E0 ret
177 0058 0E94 0000 .Lscope2:
178 .data
179 .LC2:
36:lcdtest.c **** }
37:lcdtest.c **** else
38:lcdtest.c **** {
39:lcdtest.c **** }
40:lcdtest.c **** }
180 ....wait you..."
181 .text
183 005e 0F91 .global key_process
185 key_process:
187 .LM12:
188 .LFBB3:
189 0019 2E2E 2E2E /* prologue: function */
189 7761 6974
189 2079 6F75
189 2E2E 2E00
190 /* frame size = 0 */
192 .LM13:
193 sbis 57-32,7
194 rjmp .L11
41:lcdtest.c **** /*
42:lcdtest.c **** SIGNAL(SIG_INTERRUPT0)
43:lcdtest.c **** {
44:lcdtest.c **** uchar num;
45:lcdtest.c **** DelayMs(100);
46:lcdtest.c **** DDRC|=0xf0; //定义为输入引脚
47:lcdtest.c **** PORTC=_BV(PC0)|_BV(PC1)|_BV(PC2)|_BV(PC3);//键盘引脚上拉电阻开
48:lcdtest.c **** num=PINC&0x0f;
49:lcdtest.c **** display_number(num,0);
50:lcdtest.c **** GIFR|=_BV(INTF0);//写 1 清除中断标志,
51:lcdtest.c **** }
52:lcdtest.c **** */
53:lcdtest.c **** void key_process()
54:lcdtest.c **** {
195 ,.LM14-.LFBB3
196 .LM14:
197 in r24,54-32
198 .LBB38:
199 .LBB39:
55:lcdtest.c **** // unsigned char time,i;
56:lcdtest.c **** uchar key_num,temp_num;
57:lcdtest.c ****
58:lcdtest.c **** //if(bit_is_set(PINA,7))
59:lcdtest.c **** if(PINA&0x80)
200 0:
201 .LBB41:
203 0064 00C0 .Ltext3:
60:lcdtest.c **** {
61:lcdtest.c ****
62:lcdtest.c **** key_num=(PINB&0x0f);
204 abn 68,0,83,.LM15-.LFBB3
205 .LM15:
206 0066 86B3 ldi r25,lo8(1)
207 /* #APP */
208 ; 83 "c:/winavr-20080610/lib/gcc/../../avr/include/util/delay_basic.h" 1
209 1: dec r25
210 brne 1b
211 ; 0 "" 2
212 /* #NOAPP */
213 .LBE41:
214 .LBE40:
215 0068 91E0 .LBE39:
216 .LBE38:
218 006a 9A95 .Ltext4:
220 .LM16:
221 in r25,54-32
222 andi r25,lo8(15)
223 andi r24,lo8(15)
224 cp r25,r24
225 brne .L10
227 .LM17:
63:lcdtest.c **** temp_num=key_num;
64:lcdtest.c **** _delay_us(0.3);
65:lcdtest.c **** //time=0;
66:lcdtest.c **** if((key_num=(PINB&0x0f))==temp_num)
228 ,r25
229 call display_number
230 006e 96B3 ret
231 0070 9F70 .L10:
233 0074 9817 .LM18:
234 0076 01F4 ldi r22,lo8(0)
67:lcdtest.c **** {
68:lcdtest.c **** // PORTC=key_num;
69:lcdtest.c **** display_number(key_num,0);
235 4,lo8(1)
236 call LCDByte
238 007a 892F .LM19:
239 007c 0E94 0000 ldi r24,lo8(.LC2)
240 0080 0895 ldi r25,hi8(.LC2)
241 call LCDWriteString
70:lcdtest.c **** }
71:lcdtest.c **** else
72:lcdtest.c **** {
73:lcdtest.c **** LCDClear();
242 ret
244 0082 60E0 .Lscope3:
245 0084 81E0 .data
246 0086 0E94 0000 .LC3:
74:lcdtest.c **** LCDWriteString("....wait you...");
247 ing "ready config "
248 .LC4:
249 008a 80E0 .string "Loading "
250 008c 90E0 .LC5:
251 008e 0E94 0000 .string "%"
252 .LC6:
253 0092 0895 .string "Hello everyone"
254 .LC7:
255 .string "sign you name "
256 .LC8:
257 .string "@welcome to@"
258 0029 7265 6164 .LC9:
258 7920 636F
258 6E66 6967
258 2000
259 .string "fenggang space"
260 0037 4C6F 6164 .text
260 696E 6720
260 00
262 0040 2500 .global main
264 0042 4865 6C6C main:
264 6F20 6576
264 6572 796F
264 6E65 00
266 0051 7369 676E .LM20:
266 2079 6F75
266 206E 616D
266 6520 00
267 .LFBB4:
268 0060 4077 656C push r14
268 636F 6D65
268 2074 6F40
268 00
269 push r15
270 006d 6665 6E67 push r16
270 6761 6E67
270 2073 7061
270 6365 00
271 push r17
272 push r28
273 push r29
274 /* prologue: function */
275 /* frame size = 0 */
75:lcdtest.c **** }
76:lcdtest.c **** }
77:lcdtest.c **** /*
78:lcdtest.c **** else
79:lcdtest.c **** {
80:lcdtest.c **** //LCDClear();
81:lcdtest.c **** LCDWriteString("@wait you...@");
82:lcdtest.c **** LCDWriteStringXY(0,1,"thanks");
83:lcdtest.c **** }
84:lcdtest.c **** */
85:lcdtest.c ****
86:lcdtest.c **** }
87:lcdtest.c ****
88:lcdtest.c ****
89:lcdtest.c **** void main()
90:lcdtest.c **** {
276 .LM21:
277 ldi r24,lo8(3)
278 call InitLCD
280 0096 FF92 .LM22:
281 0098 0F93 ldi r22,lo8(0)
282 009a 1F93 ldi r24,lo8(1)
283 009c CF93 call LCDByte
285 .LM23:
286 ldi r24,lo8(.LC3)
91:lcdtest.c **** unsigned char i;
92:lcdtest.c ****
93:lcdtest.c **** //Initialize LCD module
94:lcdtest.c **** InitLCD(LS_BLINK|LS_ULINE);
287 8(.LC3)
288 call LCDWriteString
290 00a2 0E94 0000 .LM24:
95:lcdtest.c ****
96:lcdtest.c **** //Clear the screen
97:lcdtest.c **** LCDClear();
291 8,0,97,.LM22-.LFBB4
292 .LM22:
293 00a6 60E0 ldi r22,lo8(0)
294 00a8 81E0 ldi r24,lo8(1)
295 00aa 0E94 0000 call LCDByte
98:lcdtest.c ****
99:lcdtest.c **** //Simple string printing
100:lcdtest.c **** LCDWriteString("ready config ");
296 bn 68,0,100,.LM23-.LFBB4
297 .LM23:
298 00ae 80E0 ldi r24,lo8(.LC3)
299 00b0 90E0 ldi r25,hi8(.LC3)
300 00b2 0E94 0000 call LCDWriteString
101:lcdtest.c ****
102:lcdtest.c **** //A string on line 2
103:lcdtest.c **** LCDWriteStringXY(0,1,"Loading ");
301 bn 68,0,103,.LM24-.LFBB4
302 .LM24:
303 00b6 61E0 ldi r22,lo8(1)
304 00b8 80E0 ldi r24,lo8(0)
305 00ba 0E94 0000 call LCDGotoXY
306 00be 80E0 ldi r24,lo8(.LC4)
307 00c0 90E0 ldi r25,hi8(.LC4)
308 00c2 0E94 0000 call LCDWriteString
309 00c6 C0E0 ldi r28,lo8(0)
310 00c8 D0E0 ldi r29,hi8(0)
311 .LBB42:
312 .LBB43:
314 .Ltext5:
316 .LM25:
317 00ca 00E0 ldi r16,lo8(0)
318 00cc 10E0 ldi r17,hi8(0)
319 .L13:
320 .LBE43:
321 .LBE42:
323 .Ltext6:
104:lcdtest.c ****
105:lcdtest.c **** //Print some numbers
106:lcdtest.c **** for (i=0;i<10;i+=1)
107:lcdtest.c **** {
108:lcdtest.c **** LCDWriteIntXY(9,1,i,3);
324 ude/util/delay_basic.h",132,0,0,.Ltext5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -