?? lesson6.s
字號:
.module lesson6.c
.area code(ram, con, rel)
.area lit(rom, con, rel)
_table::
.byte 'I,32,'L,'I,'K,'E,32,'A,'V,'R,32,33,0
.dbfile I:\AVR視頻教程\視頻教程\lesson6\chengxu\lesson6\lesson6.c
.dbsym e table _table A[13:13]c
_table1::
.byte 'W,'W,'W,46,'T,'X,'M,'C,'U,46,'C,'O,'M,0
.dbsym e table1 _table1 A[14:14]c
.area text(rom, con, rel)
.dbfile I:\AVR視頻教程\視頻教程\lesson6\chengxu\lesson6\lesson6.c
.dbfunc e delay _delay fV
; i -> R20,R21
; j -> R22,R23
; ms -> R16,R17
.even
_delay::
xcall push_gset2
.dbline -1
.dbline 10
; #include <iom16v.h>
; #include <macros.h>
; #define uchar unsigned char
; #define uint unsigned int
; #pragma data:code
; const uchar table[]="I LIKE AVR !";
; const uchar table1[]="WWW.TXMCU.COM";
;
; void delay(uint ms)
; {
.dbline 12
; uint i,j;
; for(i=0;i<ms;i++)
clr R20
clr R21
xjmp L5
L2:
.dbline 13
; {
.dbline 14
clr R22
clr R23
xjmp L9
L6:
.dbline 14
L7:
.dbline 14
subi R22,255 ; offset = 1
sbci R23,255
L9:
.dbline 14
cpi R22,117
ldi R30,4
cpc R23,R30
brlo L6
.dbline 15
L3:
.dbline 12
subi R20,255 ; offset = 1
sbci R21,255
L5:
.dbline 12
cp R20,R16
cpc R21,R17
brlo L2
.dbline -2
.dbline 16
; for(j=0;j<1141;j++);
; }
; }
L1:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbsym r j 22 i
.dbsym r ms 16 i
.dbend
.dbfunc e write_com _write_com fV
; com -> R20
.even
_write_com::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 18
; void write_com(uchar com)
; {
.dbline 19
; PORTD&=~BIT(4);
cbi 0x12,4
.dbline 20
; PORTD&=~BIT(5);
cbi 0x12,5
.dbline 21
; PORTB=com;
out 0x18,R20
.dbline 22
; PORTD|=BIT(6);
sbi 0x12,6
.dbline 23
; delay(1);
ldi R16,1
ldi R17,0
xcall _delay
.dbline 24
; PORTD&=~BIT(6);
cbi 0x12,6
.dbline -2
.dbline 25
; }
L10:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r com 20 c
.dbend
.dbfunc e write_dat _write_dat fV
; dat -> R20
.even
_write_dat::
xcall push_gset1
mov R20,R16
.dbline -1
.dbline 28
;
; void write_dat(uchar dat)
; {
.dbline 29
; PORTD|=BIT(4);
sbi 0x12,4
.dbline 30
; PORTD&=~BIT(5);
cbi 0x12,5
.dbline 31
; PORTB=dat;
out 0x18,R20
.dbline 32
; PORTD|=BIT(6);
sbi 0x12,6
.dbline 33
; delay(1);
ldi R16,1
ldi R17,0
xcall _delay
.dbline 34
; PORTD&=~BIT(6);
cbi 0x12,6
.dbline -2
.dbline 36
;
; }
L11:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r dat 20 c
.dbend
.dbfunc e main _main fV
; i -> R20
.even
_main::
.dbline -1
.dbline 38
; void main()
; {
.dbline 40
; uchar i;
; DDRB=0XFF;
ldi R24,255
out 0x17,R24
.dbline 41
; DDRD|=BIT(4)|BIT(5)|BIT(6);
in R24,0x11
ori R24,112
out 0x11,R24
.dbline 42
; PORTD&=~BIT(6);
cbi 0x12,6
.dbline 44
;
; write_com(0X38);
ldi R16,56
xcall _write_com
.dbline 45
; delay(5);
ldi R16,5
ldi R17,0
xcall _delay
.dbline 46
; write_com(0X01);
ldi R16,1
xcall _write_com
.dbline 47
; delay(5);
ldi R16,5
ldi R17,0
xcall _delay
.dbline 48
; write_com(0X0C);
ldi R16,12
xcall _write_com
.dbline 49
; delay(5);
ldi R16,5
ldi R17,0
xcall _delay
.dbline 50
; write_com(0X06);
ldi R16,6
xcall _write_com
.dbline 51
; delay(5);
ldi R16,5
ldi R17,0
xcall _delay
.dbline 52
; write_com(0X80+0X10);
ldi R16,144
xcall _write_com
.dbline 53
; delay(5);
ldi R16,5
ldi R17,0
xcall _delay
.dbline 54
; for(i=0;i<12;i++)
clr R20
xjmp L16
L13:
.dbline 55
.dbline 56
ldi R24,<_table
ldi R25,>_table
mov R30,R20
clr R31
add R30,R24
adc R31,R25
lpm R16,Z
xcall _write_dat
.dbline 57
ldi R16,5
ldi R17,0
xcall _delay
.dbline 58
L14:
.dbline 54
inc R20
L16:
.dbline 54
cpi R20,12
brlo L13
.dbline 59
; {
; write_dat(table[i]);
; delay(5);
; }
; write_com(0X80+0X50);
ldi R16,208
xcall _write_com
.dbline 60
; delay(5);
ldi R16,5
ldi R17,0
xcall _delay
.dbline 61
; for(i=0;i<13;i++)
clr R20
xjmp L20
L17:
.dbline 62
.dbline 63
ldi R24,<_table1
ldi R25,>_table1
mov R30,R20
clr R31
add R30,R24
adc R31,R25
lpm R16,Z
xcall _write_dat
.dbline 64
ldi R16,5
ldi R17,0
xcall _delay
.dbline 65
L18:
.dbline 61
inc R20
L20:
.dbline 61
cpi R20,13
brlo L17
.dbline 66
; {
; write_dat(table1[i]);
; delay(5);
; }
; for(i=0;i<16;i++)
clr R20
xjmp L24
L21:
.dbline 67
.dbline 68
ldi R16,24
xcall _write_com
.dbline 69
ldi R16,500
ldi R17,1
xcall _delay
.dbline 70
L22:
.dbline 66
inc R20
L24:
.dbline 66
cpi R20,16
brlo L21
.dbline -2
.dbline 72
; {
; write_com(0X18);
; delay(500);
; }
;
; }
L12:
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -