⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zz.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module zz.c
                        .area text(rom, con, rel)
 0000                   .dbfile ..\..\181286~1\12864_~1\zz.c
 0000                   .dbfile F:\新学习板程序\avr程序\181286~1\12864_~1\12864.h
 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 -2
 0004           L1:
 0004                   .dbline 0 ; func end
 0004 0895              ret
 0006                   .dbend
 0006                   .dbfunc e delay_us _delay_us fV
 0006           ;              i -> R16,R17
                        .even
 0006           _delay_us::
 0006                   .dbline -1
 0006                   .dbline 20
 0006           ; }
 0006           ; void delay_us(uint i)
 0006           ; {
 0006           L3:
 0006                   .dbline 22
 0006           ;       while(i--)
 0006           ;        {;}
 0006                   .dbline 22
 0006                   .dbline 22
 0006           L4:
 0006                   .dbline 21
 0006 1801              movw R2,R16
 0008 0150              subi R16,1
 000A 1040              sbci R17,0
 000C 2220              tst R2
 000E D9F7              brne L3
 0010 3320              tst R3
 0012 C9F7              brne L3
 0014           X0:
 0014                   .dbline -2
 0014           L2:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbsym r i 16 i
 0016                   .dbend
 0016                   .dbfunc e delay_ms _delay_ms fV
 0016           ;              a -> R20,R21
 0016           ;              i -> R16,R17
                        .even
 0016           _delay_ms::
 0016 4A93              st -y,R20
 0018 5A93              st -y,R21
 001A                   .dbline -1
 001A                   .dbline 25
 001A           ; }
 001A           ; void delay_ms(uint i)
 001A           ; {
 001A                   .dbline 27
 001A           ;       uint a;
 001A           ;       for(;i;i--)
 001A 0BC0              xjmp L10
 001C           L7:
 001C                   .dbline 28
 001C           ;               {
 001C                   .dbline 29
 001C           ;               for(a=0;a<672;a++);
 001C 4427              clr R20
 001E 5527              clr R21
 0020 02C0              xjmp L14
 0022           L11:
 0022                   .dbline 29
 0022           L12:
 0022                   .dbline 29
 0022 4F5F              subi R20,255  ; offset = 1
 0024 5F4F              sbci R21,255
 0026           L14:
 0026                   .dbline 29
 0026 403A              cpi R20,160
 0028 E2E0              ldi R30,2
 002A 5E07              cpc R21,R30
 002C D0F3              brlo L11
 002E           X1:
 002E                   .dbline 30
 002E           ;               }
 002E           L8:
 002E                   .dbline 27
 002E 0150              subi R16,1
 0030 1040              sbci R17,0
 0032           L10:
 0032                   .dbline 27
 0032 0030              cpi R16,0
 0034 0107              cpc R16,R17
 0036 91F7              brne L7
 0038           X2:
 0038                   .dbline -2
 0038           L6:
 0038                   .dbline 0 ; func end
 0038 5991              ld R21,y+
 003A 4991              ld R20,y+
 003C 0895              ret
 003E                   .dbsym r a 20 i
 003E                   .dbsym r i 16 i
 003E                   .dbend
 003E                   .dbfunc e wr_bit _wr_bit fV
 003E           ;           data -> R10
 003E           ;              n -> R12
                        .even
 003E           _wr_bit::
 003E AA92              st -y,R10
 0040 CA92              st -y,R12
 0042 A22E              mov R10,R18
 0044 C02E              mov R12,R16
 0046                   .dbline -1
 0046                   .dbline 33
 0046           ; }
 0046           ; void wr_bit(uchar n,uchar data)
 0046           ; {
 0046                   .dbline 34
 0046           ;       for(;n;n--)                                             //写入位数
 0046 0BC0              xjmp L19
 0048           L16:
 0048                   .dbline 35
 0048           ;               {
 0048                   .dbline 36
 0048           ;               if(data&0x80)                            
 0048 A7FE              sbrs R10,7
 004A 02C0              rjmp L20
 004C           X3:
 004C                   .dbline 37
 004C           ;                       {set_sid;}
 004C                   .dbline 37
 004C AE9A              sbi 0x15,6
 004E                   .dbline 37
 004E 01C0              xjmp L21
 0050           L20:
 0050                   .dbline 39
 0050           ;               else
 0050           ;                       {clr_sid;}
 0050                   .dbline 39
 0050 AE98              cbi 0x15,6
 0052                   .dbline 39
 0052           L21:
 0052                   .dbline 40
 0052           ;               data=data<<1;                            
 0052 AA0C              lsl R10
 0054                   .dbline 41
 0054           ;               delay();
 0054 D5DF              xcall _delay
 0056                   .dbline 42
 0056           ;               set_clk;                                 
 0056 AF9A              sbi 0x15,7
 0058                   .dbline 43
 0058           ;               delay();
 0058 D3DF              xcall _delay
 005A                   .dbline 44
 005A           ;               clr_clk;
 005A AF98              cbi 0x15,7
 005C                   .dbline 45
 005C           ;               }
 005C           L17:
 005C                   .dbline 34
 005C CA94              dec R12
 005E           L19:
 005E                   .dbline 34
 005E CC20              tst R12
 0060 99F7              brne L16
 0062           X4:
 0062                   .dbline -2
 0062           L15:
 0062                   .dbline 0 ; func end
 0062 C990              ld R12,y+
 0064 A990              ld R10,y+
 0066 0895              ret
 0068                   .dbsym r data 10 c
 0068                   .dbsym r n 12 c
 0068                   .dbend
 0068                   .dbfunc e write_shuju _write_shuju fV
 0068           ;              b -> R20
 0068           ;              a -> R10
                        .even
 0068           _write_shuju::
 0068 AA92              st -y,R10
 006A 4A93              st -y,R20
 006C 422F              mov R20,R18
 006E A02E              mov R10,R16
 0070                   .dbline -1
 0070                   .dbline 48
 0070           ; }
 0070           ; void write_shuju(uchar a,uchar b)
 0070           ; {
 0070                   .dbline 49
 0070           ;       clr_clk;
 0070 AF98              cbi 0x15,7
 0072                   .dbline 51
 0072           ; 
 0072           ;       wr_bit(5,0xFF);                                  
 0072 2FEF              ldi R18,255
 0074 05E0              ldi R16,5
 0076 E3DF              xcall _wr_bit
 0078                   .dbline 53
 0078           ; 
 0078           ;       wr_bit(1,0x00);                                  
 0078 2227              clr R18
 007A 01E0              ldi R16,1
 007C E0DF              xcall _wr_bit
 007E                   .dbline 55
 007E           ;       
 007E           ;       if(a==0)                                                 
 007E AA20              tst R10
 0080 21F4              brne L23
 0082           X5:
 0082                   .dbline 56
 0082           ;               wr_bit(1,0x00);                          
 0082 2227              clr R18
 0084 01E0              ldi R16,1
 0086 DBDF              xcall _wr_bit
 0088 03C0              xjmp L24
 008A           L23:
 008A                   .dbline 58
 008A           ;       else
 008A           ;               wr_bit(1,0x80);                          
 008A 20E8              ldi R18,128
 008C 01E0              ldi R16,1
 008E D7DF              xcall _wr_bit
 0090           L24:
 0090                   .dbline 60
 0090           ; 
 0090           ;       wr_bit(1,0x00);                                 //写入一个0
 0090 2227              clr R18
 0092 01E0              ldi R16,1
 0094 D4DF              xcall _wr_bit
 0096                   .dbline 62
 0096           ;       
 0096           ;       wr_bit(4,b);                                    //写入数据的高4位
 0096 242F              mov R18,R20
 0098 04E0              ldi R16,4
 009A D1DF              xcall _wr_bit
 009C                   .dbline 64
 009C           ;       
 009C           ;       wr_bit(4,0x00);                                 //写入4个0
 009C 2227              clr R18
 009E 04E0              ldi R16,4
 00A0 CEDF              xcall _wr_bit
 00A2                   .dbline 66
 00A2           ;       
 00A2           ;       wr_bit(4,(b<<4));                               //写入数据的低4位
 00A2 242F              mov R18,R20
 00A4 2F70              andi R18,#0x0F
 00A6 2295              swap R18
 00A8 04E0              ldi R16,4
 00AA C9DF              xcall _wr_bit
 00AC                   .dbline 68
 00AC           ;       
 00AC           ;       wr_bit(4,0x00);                                 //写入4个0
 00AC 2227              clr R18
 00AE 04E0              ldi R16,4
 00B0 C6DF              xcall _wr_bit
 00B2                   .dbline 70
 00B2           ; 
 00B2           ;       set_sid;                                          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -