📄 essai.lss
字号:
230: 90 e0 ldi r25, 0x00 ; 0
PORTD&=~_BV(7);
232: 97 98 cbi 0x12, 7 ; 18
return(RES);
}
234: 08 95 ret
00000236 <ecrit_instr_lcd>:
void ecrit_instr_lcd(unsigned char instr)
{
unsigned char instr_tmp = 0x00;
LCD&=~_BV(0);
236: a8 98 cbi 0x15, 0 ; 21
LCD|=_BV(1);
238: a9 9a sbi 0x15, 1 ; 21
instr_tmp = instr;
instr_tmp &= 0xF0;
23a: 98 2f mov r25, r24
23c: 90 7f andi r25, 0xF0 ; 240
instr_tmp = instr_tmp>>2;
23e: 96 95 lsr r25
240: 96 95 lsr r25
instr_tmp |= 0x02;
instr_tmp &= 0xFE;
242: 92 60 ori r25, 0x02 ; 2
LCD = instr_tmp;
244: 95 bb out 0x15, r25 ; 21
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
246: 20 e9 ldi r18, 0x90 ; 144
248: 31 e0 ldi r19, 0x01 ; 1
24a: f9 01 movw r30, r18
24c: 31 97 sbiw r30, 0x01 ; 1
24e: f1 f7 brne .-4 ; 0x24c <ecrit_instr_lcd+0x16>
_delay_us(400);
LCD&=~_BV(1);
250: a9 98 cbi 0x15, 1 ; 21
instr_tmp=0x00;
LCD&=~_BV(0);
252: a8 98 cbi 0x15, 0 ; 21
LCD|=_BV(1);
254: a9 9a sbi 0x15, 1 ; 21
instr_tmp = instr;
instr_tmp &= 0x0F;
256: 8f 70 andi r24, 0x0F ; 15
instr_tmp = instr_tmp<<2;
258: 88 0f add r24, r24
25a: 88 0f add r24, r24
instr_tmp |= 0x02;
instr_tmp &= 0xFE;
25c: 82 60 ori r24, 0x02 ; 2
LCD = instr_tmp;
25e: 85 bb out 0x15, r24 ; 21
260: c9 01 movw r24, r18
262: 01 97 sbiw r24, 0x01 ; 1
264: f1 f7 brne .-4 ; 0x262 <ecrit_instr_lcd+0x2c>
_delay_us(400);
LCD&=~_BV(1);
266: a9 98 cbi 0x15, 1 ; 21
}
268: 08 95 ret
0000026a <lcd_goto>:
void lcd_goto(unsigned char cell)
{
26a: 0f 93 push r16
26c: 1f 93 push r17
26e: cf 93 push r28
270: df 93 push r29
272: 18 2f mov r17, r24
unsigned int i;
ecrit_instr_lcd (0x02);
274: 82 e0 ldi r24, 0x02 ; 2
276: 0e 94 1b 01 call 0x236 ; 0x236 <ecrit_instr_lcd>
27a: c1 e0 ldi r28, 0x01 ; 1
27c: d0 e0 ldi r29, 0x00 ; 0
for (i = 1; i < cell; i++)
27e: 01 2f mov r16, r17
280: 10 e0 ldi r17, 0x00 ; 0
282: 04 c0 rjmp .+8 ; 0x28c <lcd_goto+0x22>
{
ecrit_instr_lcd (0x14);
284: 84 e1 ldi r24, 0x14 ; 20
286: 0e 94 1b 01 call 0x236 ; 0x236 <ecrit_instr_lcd>
void lcd_goto(unsigned char cell)
{
unsigned int i;
ecrit_instr_lcd (0x02);
for (i = 1; i < cell; i++)
28a: 21 96 adiw r28, 0x01 ; 1
28c: c0 17 cp r28, r16
28e: d1 07 cpc r29, r17
290: c8 f3 brcs .-14 ; 0x284 <lcd_goto+0x1a>
{
ecrit_instr_lcd (0x14);
}
}
292: df 91 pop r29
294: cf 91 pop r28
296: 1f 91 pop r17
298: 0f 91 pop r16
29a: 08 95 ret
0000029c <ecrit_data_lcd>:
void ecrit_data_lcd(unsigned char data)
{
unsigned char data_tmp = 0x00;
LCD|=_BV(0);
29c: a8 9a sbi 0x15, 0 ; 21
LCD|=_BV(1);
29e: a9 9a sbi 0x15, 1 ; 21
data_tmp = data;
data_tmp &= 0xF0;
2a0: 98 2f mov r25, r24
2a2: 90 7f andi r25, 0xF0 ; 240
data_tmp = data_tmp>>2;
2a4: 96 95 lsr r25
2a6: 96 95 lsr r25
data_tmp |= 0x03;
2a8: 93 60 ori r25, 0x03 ; 3
LCD = data_tmp;
2aa: 95 bb out 0x15, r25 ; 21
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
2ac: 95 e8 ldi r25, 0x85 ; 133
2ae: 29 2f mov r18, r25
2b0: 2a 95 dec r18
2b2: f1 f7 brne .-4 ; 0x2b0 <ecrit_data_lcd+0x14>
_delay_us(100); //modif 10ms
LCD&=~_BV(1);
2b4: a9 98 cbi 0x15, 1 ; 21
data_tmp = 0x00;
LCD|=_BV(0);
2b6: a8 9a sbi 0x15, 0 ; 21
LCD|=_BV(1);
2b8: a9 9a sbi 0x15, 1 ; 21
data_tmp = data;
data_tmp &= 0x0F;
2ba: 8f 70 andi r24, 0x0F ; 15
data_tmp = data_tmp<<2;
2bc: 88 0f add r24, r24
2be: 88 0f add r24, r24
data_tmp |= 0x03;
2c0: 83 60 ori r24, 0x03 ; 3
LCD = data_tmp;
2c2: 85 bb out 0x15, r24 ; 21
2c4: 9a 95 dec r25
2c6: f1 f7 brne .-4 ; 0x2c4 <ecrit_data_lcd+0x28>
_delay_us(100);//modif 10ms
LCD&=~_BV(1);
2c8: a9 98 cbi 0x15, 1 ; 21
}
2ca: 08 95 ret
000002cc <lcd_init>:
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
2cc: 80 e2 ldi r24, 0x20 ; 32
2ce: 9e e4 ldi r25, 0x4E ; 78
2d0: 01 97 sbiw r24, 0x01 ; 1
2d2: f1 f7 brne .-4 ; 0x2d0 <lcd_init+0x4>
void lcd_init(void)
{
_delay_ms(20);
LCD&=~_BV(0);
2d4: a8 98 cbi 0x15, 0 ; 21
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
2d6: 91 e0 ldi r25, 0x01 ; 1
2d8: 89 2f mov r24, r25
2da: 8a 95 dec r24
2dc: f1 f7 brne .-4 ; 0x2da <lcd_init+0xe>
_delay_us(1);
LCD|=_BV(1);
2de: a9 9a sbi 0x15, 1 ; 21
LCD=0x0E;
2e0: 8e e0 ldi r24, 0x0E ; 14
2e2: 85 bb out 0x15, r24 ; 21
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
2e4: 20 e1 ldi r18, 0x10 ; 16
2e6: 37 e2 ldi r19, 0x27 ; 39
2e8: f9 01 movw r30, r18
2ea: 31 97 sbiw r30, 0x01 ; 1
2ec: f1 f7 brne .-4 ; 0x2ea <lcd_init+0x1e>
_delay_ms(10);
LCD&=~_BV(1);
2ee: a9 98 cbi 0x15, 1 ; 21
2f0: e8 e8 ldi r30, 0x88 ; 136
2f2: f3 e1 ldi r31, 0x13 ; 19
2f4: 31 97 sbiw r30, 0x01 ; 1
2f6: f1 f7 brne .-4 ; 0x2f4 <lcd_init+0x28>
_delay_ms(5);
LCD&=~_BV(0);
2f8: a8 98 cbi 0x15, 0 ; 21
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
2fa: 49 2f mov r20, r25
2fc: 4a 95 dec r20
2fe: f1 f7 brne .-4 ; 0x2fc <lcd_init+0x30>
_delay_us(1);
LCD|=_BV(1);
300: a9 9a sbi 0x15, 1 ; 21
LCD=0x0E;
302: 85 bb out 0x15, r24 ; 21
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
304: f9 01 movw r30, r18
306: 31 97 sbiw r30, 0x01 ; 1
308: f1 f7 brne .-4 ; 0x306 <lcd_init+0x3a>
_delay_ms(10);
LCD&=~_BV(1);
30a: a9 98 cbi 0x15, 1 ; 21
30c: e8 ee ldi r30, 0xE8 ; 232
30e: f3 e0 ldi r31, 0x03 ; 3
310: 31 97 sbiw r30, 0x01 ; 1
312: f1 f7 brne .-4 ; 0x310 <lcd_init+0x44>
_delay_ms(1);
LCD&=~_BV(0);
314: a8 98 cbi 0x15, 0 ; 21
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
316: 49 2f mov r20, r25
318: 4a 95 dec r20
31a: f1 f7 brne .-4 ; 0x318 <lcd_init+0x4c>
_delay_us(1);
LCD|=_BV(1);
31c: a9 9a sbi 0x15, 1 ; 21
LCD=0x0E;
31e: 85 bb out 0x15, r24 ; 21
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
320: f9 01 movw r30, r18
322: 31 97 sbiw r30, 0x01 ; 1
324: f1 f7 brne .-4 ; 0x322 <lcd_init+0x56>
_delay_ms(10);
LCD&=~_BV(1);
326: a9 98 cbi 0x15, 1 ; 21
LCD&=~_BV(0);
328: a8 98 cbi 0x15, 0 ; 21
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
32a: 9a 95 dec r25
32c: f1 f7 brne .-4 ; 0x32a <lcd_init+0x5e>
_delay_us(1);
LCD|=_BV(1);
32e: a9 9a sbi 0x15, 1 ; 21
LCD=0x0A;
330: 8a e0 ldi r24, 0x0A ; 10
332: 85 bb out 0x15, r24 ; 21
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
334: c9 01 movw r24, r18
336: 01 97 sbiw r24, 0x01 ; 1
338: f1 f7 brne .-4 ; 0x336 <lcd_init+0x6a>
_delay_ms(10);
LCD&=~_BV(1);
33a: a9 98 cbi 0x15, 1 ; 21
ecrit_instr_lcd(0x28);
33c: 88 e2 ldi r24, 0x28 ; 40
33e: 0e 94 1b 01 call 0x236 ; 0x236 <ecrit_instr_lcd>
ecrit_instr_lcd(0x06);
342: 86 e0 ldi r24, 0x06 ; 6
344: 0e 94 1b 01 call 0x236 ; 0x236 <ecrit_instr_lcd>
ecrit_instr_lcd(0x0C);
348: 8c e0 ldi r24, 0x0C ; 12
34a: 0e 94 1b 01 call 0x236 ; 0x236 <ecrit_instr_lcd>
ecrit_instr_lcd(0x01);
34e: 81 e0 ldi r24, 0x01 ; 1
350: 0e 94 1b 01 call 0x236 ; 0x236 <ecrit_instr_lcd>
}
354: 08 95 ret
00000356 <lcd_clear>:
void lcd_clear(void)
{
ecrit_instr_lcd(0x01);
356: 81 e0 ldi r24, 0x01 ; 1
358: 0e 94 1b 01 call 0x236 ; 0x236 <ecrit_instr_lcd>
}
35c: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -