?? 12864串口.lis
字號(hào):
.module _12864串口.c
.area text(rom, con, rel)
0000 .dbfile 12864串口.c
0000 .dbfile E:\AVR自編程序\11avr實(shí)驗(yàn)板\1812864串口\12864串口.c
0000 .dbfunc e delay _delay fV
.even
0000 _delay::
0000 .dbline -1
0000 .dbline 15
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; #define uchar unsigned char
0000 ; #define uint unsigned int
0000 ;
0000 ; #define clk 7
0000 ; #define set_clk PORTC |= BIT(clk)
0000 ; #define clr_clk PORTC &= ~BIT(clk)
0000 ;
0000 ; #define sid 6
0000 ; #define clr_sid PORTC &= ~BIT(sid)
0000 ; #define set_sid PORTC |= BIT(sid)
0000 ;
0000 ; void delay()
0000 ; {
0000 .dbline 16
0000 ; NOP();
0000 0000 nop
0002 .dbline 17
0002 ; NOP();
0002 0000 nop
0004 .dbline 18
0004 ; NOP();
0004 0000 nop
0006 .dbline 19
0006 ; NOP();
0006 0000 nop
0008 .dbline 20
0008 ; NOP();
0008 0000 nop
000A .dbline -2
000A L1:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbend
000C .dbfunc e delay_us _delay_us fV
000C ; i -> R16,R17
.even
000C _delay_us::
000C .dbline -1
000C .dbline 24
000C ;
000C ; }
000C ; void delay_us(uint i)
000C ; {
000C L3:
000C .dbline 26
000C ; while(i--)
000C ; {;;;;;;;;}
000C .dbline 26
000C .dbline 26
000C .dbline 26
000C .dbline 26
000C .dbline 26
000C .dbline 26
000C .dbline 26
000C .dbline 26
000C .dbline 26
000C L4:
000C .dbline 25
000C 1801 movw R2,R16
000E 0150 subi R16,1
0010 1040 sbci R17,0
0012 2220 tst R2
0014 D9F7 brne L3
0016 3320 tst R3
0018 C9F7 brne L3
001A X0:
001A .dbline -2
001A L2:
001A .dbline 0 ; func end
001A 0895 ret
001C .dbsym r i 16 i
001C .dbend
001C .dbfunc e delay_ms _delay_ms fV
001C ; a -> R20,R21
001C ; i -> R16,R17
.even
001C _delay_ms::
001C 4A93 st -y,R20
001E 5A93 st -y,R21
0020 .dbline -1
0020 .dbline 29
0020 ; }
0020 ; void delay_ms(uint i)
0020 ; {
0020 .dbline 31
0020 ; uint a;
0020 ; for(;i;i--)
0020 0BC0 xjmp L10
0022 L7:
0022 .dbline 32
0022 ; {
0022 .dbline 33
0022 ; for(a=0;a<1141;a++);
0022 4427 clr R20
0024 5527 clr R21
0026 02C0 xjmp L14
0028 L11:
0028 .dbline 33
0028 L12:
0028 .dbline 33
0028 4F5F subi R20,255 ; offset = 1
002A 5F4F sbci R21,255
002C L14:
002C .dbline 33
002C 4537 cpi R20,117
002E E4E0 ldi R30,4
0030 5E07 cpc R21,R30
0032 D0F3 brlo L11
0034 X1:
0034 .dbline 34
0034 ; }
0034 L8:
0034 .dbline 31
0034 0150 subi R16,1
0036 1040 sbci R17,0
0038 L10:
0038 .dbline 31
0038 0030 cpi R16,0
003A 0107 cpc R16,R17
003C 91F7 brne L7
003E X2:
003E .dbline -2
003E L6:
003E .dbline 0 ; func end
003E 5991 ld R21,y+
0040 4991 ld R20,y+
0042 0895 ret
0044 .dbsym r a 20 i
0044 .dbsym r i 16 i
0044 .dbend
0044 .dbfunc e wr_bit _wr_bit fV
0044 ; data -> R10
0044 ; n -> R12
.even
0044 _wr_bit::
0044 AA92 st -y,R10
0046 CA92 st -y,R12
0048 A22E mov R10,R18
004A C02E mov R12,R16
004C .dbline -1
004C .dbline 37
004C ; }
004C ; void wr_bit(uchar n,uchar data)
004C ; {
004C .dbline 38
004C ; for(;n;n--) //寫入位數(shù)
004C 0BC0 xjmp L19
004E L16:
004E .dbline 39
004E ; {
004E .dbline 40
004E ; if(data&0x80)
004E A7FE sbrs R10,7
0050 02C0 rjmp L20
0052 X3:
0052 .dbline 41
0052 ; {set_sid;}
0052 .dbline 41
0052 AE9A sbi 0x15,6
0054 .dbline 41
0054 01C0 xjmp L21
0056 L20:
0056 .dbline 43
0056 ; else
0056 ; {clr_sid;}
0056 .dbline 43
0056 AE98 cbi 0x15,6
0058 .dbline 43
0058 L21:
0058 .dbline 44
0058 ; data=data<<1;
0058 AA0C lsl R10
005A .dbline 45
005A ; delay();
005A D2DF xcall _delay
005C .dbline 46
005C ; set_clk;
005C AF9A sbi 0x15,7
005E .dbline 47
005E ; delay();
005E D0DF xcall _delay
0060 .dbline 48
0060 ; clr_clk;
0060 AF98 cbi 0x15,7
0062 .dbline 49
0062 ; }
0062 L17:
0062 .dbline 38
0062 CA94 dec R12
0064 L19:
0064 .dbline 38
0064 CC20 tst R12
0066 99F7 brne L16
0068 X4:
0068 .dbline -2
0068 L15:
0068 .dbline 0 ; func end
0068 C990 ld R12,y+
006A A990 ld R10,y+
006C 0895 ret
006E .dbsym r data 10 c
006E .dbsym r n 12 c
006E .dbend
006E .dbfunc e write_shuju _write_shuju fV
006E ; b -> R20
006E ; a -> R10
.even
006E _write_shuju::
006E AA92 st -y,R10
0070 4A93 st -y,R20
0072 422F mov R20,R18
0074 A02E mov R10,R16
0076 .dbline -1
0076 .dbline 52
0076 ; }
0076 ; void write_shuju(uchar a,uchar b)
0076 ; {
0076 .dbline 53
0076 ; clr_clk;
0076 AF98 cbi 0x15,7
0078 .dbline 55
0078 ;
0078 ; wr_bit(5,0xFF);
0078 2FEF ldi R18,255
007A 05E0 ldi R16,5
007C E3DF xcall _wr_bit
007E .dbline 57
007E ;
007E ; wr_bit(1,0x00);
007E 2227 clr R18
0080 01E0 ldi R16,1
0082 E0DF xcall _wr_bit
0084 .dbline 59
0084 ;
0084 ; if(a==0)
0084 AA20 tst R10
0086 21F4 brne L23
0088 X5:
0088 .dbline 60
0088 ; wr_bit(1,0x00);
0088 2227 clr R18
008A 01E0 ldi R16,1
008C DBDF xcall _wr_bit
008E 03C0 xjmp L24
0090 L23:
0090 .dbline 62
0090 ; else
0090 ; wr_bit(1,0x80);
0090 20E8 ldi R18,128
0092 01E0 ldi R16,1
0094 D7DF xcall _wr_bit
0096 L24:
0096 .dbline 64
0096 ;
0096 ; wr_bit(1,0x00); //寫入一個(gè)0
0096 2227 clr R18
0098 01E0 ldi R16,1
009A D4DF xcall _wr_bit
009C .dbline 66
009C ;
009C ; wr_bit(4,b); //寫入數(shù)據(jù)的高4位
009C 242F mov R18,R20
009E 04E0 ldi R16,4
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -