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

📄 ac15-1.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00FE 0895              ret
 0100                   .dbsym r Attribc 22 c
 0100                   .dbsym r CMD 20 c
 0100                   .dbend
 0100                   .dbfunc e LcdWriteData _LcdWriteData fV
 0100           ;          dataW -> R20
                        .even
 0100           _LcdWriteData::
 0100 0E940000          xcall push_gset1
 0104 402F              mov R20,R16
 0106                   .dbline -1
 0106                   .dbline 91
 0106           ; }
 0106           ; //*******************写数据到LCM子函数********************
 0106           ; void LcdWriteData(uchar dataW)
 0106           ; {
 0106                   .dbline 92
 0106           ; WaitForEnable();
 0106 0CD0              xcall _WaitForEnable
 0108                   .dbline 93
 0108           ; LCM_RS_1;LCM_RW_0;_NOP();
 0108 C09A              sbi 0x18,0
 010A                   .dbline 93
 010A C198              cbi 0x18,1
 010C                   .dbline 93
 010C 0000              nop
 010E                   .dbline 94
 010E           ; DataPort=dataW;_NOP();
 010E 4BBB              out 0x1b,R20
 0110                   .dbline 94
 0110 0000              nop
 0112                   .dbline 95
 0112           ; LCM_EN_1;_NOP();_NOP();LCM_EN_0;
 0112 C29A              sbi 0x18,2
 0114                   .dbline 95
 0114 0000              nop
 0116                   .dbline 95
 0116 0000              nop
 0118                   .dbline 95
 0118 C298              cbi 0x18,2
 011A                   .dbline -2
 011A           L19:
 011A 0E940000          xcall pop_gset1
 011E                   .dbline 0 ; func end
 011E 0895              ret
 0120                   .dbsym r dataW 20 c
 0120                   .dbend
 0120                   .dbfunc e WaitForEnable _WaitForEnable fV
 0120           ;            val -> R16
                        .even
 0120           _WaitForEnable::
 0120                   .dbline -1
 0120                   .dbline 99
 0120           ; }
 0120           ; //*******************检测LCD忙信号子函数*********************
 0120           ; void WaitForEnable(void)
 0120           ; {
 0120                   .dbline 101
 0120           ; uchar val;
 0120           ; DataPort=0xff;
 0120 8FEF              ldi R24,255
 0122 8BBB              out 0x1b,R24
 0124                   .dbline 102
 0124           ; LCM_RS_0;LCM_RW_1;_NOP();
 0124 C098              cbi 0x18,0
 0126                   .dbline 102
 0126 C19A              sbi 0x18,1
 0128                   .dbline 102
 0128 0000              nop
 012A                   .dbline 103
 012A           ; LCM_EN_1;_NOP();_NOP();
 012A C29A              sbi 0x18,2
 012C                   .dbline 103
 012C 0000              nop
 012E                   .dbline 103
 012E 0000              nop
 0130                   .dbline 104
 0130           ; DDRA=0x00;
 0130 2224              clr R2
 0132 2ABA              out 0x1a,R2
 0134                   .dbline 105
 0134           ; val=PINA;
 0134 09B3              in R16,0x19
 0136 01C0              xjmp L22
 0138           L21:
 0138                   .dbline 106
 0138 09B3              in R16,0x19
 013A           L22:
 013A                   .dbline 106
 013A           ; while(val&Busy)val=PINA;
 013A 07FD              sbrc R16,7
 013C FDCF              rjmp L21
 013E                   .dbline 107
 013E           ; LCM_EN_0;
 013E C298              cbi 0x18,2
 0140                   .dbline 108
 0140           ; DDRA=0xff;
 0140 8FEF              ldi R24,255
 0142 8ABB              out 0x1a,R24
 0144                   .dbline -2
 0144           L20:
 0144                   .dbline 0 ; func end
 0144 0895              ret
 0146                   .dbsym r val 16 c
 0146                   .dbend
 0146                   .dbfunc e Delay_1ms _Delay_1ms fV
 0146           ;              i -> R16,R17
                        .even
 0146           _Delay_1ms::
 0146                   .dbline -1
 0146                   .dbline 112
 0146           ; }
 0146           ; //****************************************
 0146           ; void Delay_1ms(void)          //1mS延时子函数
 0146           ; { uint i;
 0146                   .dbline 113
 0146           ;  for(i=1;i<(uint)(xtal*143-2);i++)
 0146 01E0              ldi R16,1
 0148 10E0              ldi R17,0
 014A 02C0              xjmp L28
 014C           L25:
 014C                   .dbline 114
 014C           L26:
 014C                   .dbline 113
 014C 0F5F              subi R16,255  ; offset = 1
 014E 1F4F              sbci R17,255
 0150           L28:
 0150                   .dbline 113
 0150 0637              cpi R16,118
 0152 E4E0              ldi R30,4
 0154 1E07              cpc R17,R30
 0156 D0F3              brlo L25
 0158                   .dbline -2
 0158           L24:
 0158                   .dbline 0 ; func end
 0158 0895              ret
 015A                   .dbsym r i 16 i
 015A                   .dbend
 015A                   .dbfunc e Delay_nms _Delay_nms fV
 015A           ;              i -> R20,R21
 015A           ;              n -> R22,R23
                        .even
 015A           _Delay_nms::
 015A 0E940000          xcall push_gset2
 015E B801              movw R22,R16
 0160                   .dbline -1
 0160                   .dbline 118
 0160           ;     ;
 0160           ; }
 0160           ; //====================================
 0160           ; void Delay_nms(uint n)                //n*1mS延时子函数
 0160           ; {
 0160                   .dbline 119
 0160           ;  uint i=0;
 0160 4427              clr R20
 0162 5527              clr R21
 0164 03C0              xjmp L31
 0166           L30:
 0166                   .dbline 121
 0166                   .dbline 121
 0166 EFDF              xcall _Delay_1ms
 0168                   .dbline 122
 0168 4F5F              subi R20,255  ; offset = 1
 016A 5F4F              sbci R21,255
 016C                   .dbline 123
 016C           L31:
 016C                   .dbline 120
 016C           ;    while(i<n)
 016C 4617              cp R20,R22
 016E 5707              cpc R21,R23
 0170 D0F3              brlo L30
 0172                   .dbline -2
 0172           L29:
 0172 0E940000          xcall pop_gset2
 0176                   .dbline 0 ; func end
 0176 0895              ret
 0178                   .dbsym r i 20 i
 0178                   .dbsym r n 22 i
 0178                   .dbend
 0178                   .dbfunc e port_init _port_init fV
                        .even
 0178           _port_init::
 0178                   .dbline -1
 0178                   .dbline 127
 0178           ;    {Delay_1ms();
 0178           ;     i++;
 0178           ;    }
 0178           ; }
 0178           ; /*****************端口初始化********************/
 0178           ; void port_init(void)
 0178           ; {
 0178                   .dbline 128
 0178           ;  PORTA = 0x00;
 0178 2224              clr R2
 017A 2BBA              out 0x1b,R2
 017C                   .dbline 129
 017C           ;  DDRA  = 0xFF;
 017C 8FEF              ldi R24,255
 017E 8ABB              out 0x1a,R24
 0180                   .dbline 130
 0180           ;  PORTB = 0x00;
 0180 28BA              out 0x18,R2
 0182                   .dbline 131
 0182           ;  DDRB  = 0xFF;
 0182 87BB              out 0x17,R24
 0184                   .dbline 132
 0184           ;  PORTC = 0x00; 
 0184 25BA              out 0x15,R2
 0186                   .dbline 133
 0186           ;  DDRC  = 0x03;
 0186 83E0              ldi R24,3
 0188 84BB              out 0x14,R24
 018A                   .dbline 134
 018A           ;  PORTD = 0xFF;
 018A 8FEF              ldi R24,255
 018C 82BB              out 0x12,R24
 018E                   .dbline 135
 018E           ;  DDRD  = 0x00;
 018E 21BA              out 0x11,R2
 0190                   .dbline -2
 0190           L33:
 0190                   .dbline 0 ; func end
 0190 0895              ret
 0192                   .dbend
 0192                   .dbfunc e scan_key _scan_key fc
 0192           ;           temp -> R16
                        .even
 0192           _scan_key::
 0192                   .dbline -1
 0192                   .dbline 145
 0192           ; }
 0192           ; /*************************************/
 0192           ; char com_data;        
 0192           ; uchar cnt;            
 0192           ; void delay_iic(int n);        
 0192           ; uchar rd_24c01(char a);       
 0192           ; void wr_24c01(char a,char b);
 0192           ; /******************扫描按键***************/
 0192           ; uchar scan_key(void)          
 0192           ; {                                     
 0192                   .dbline 147
 0192           ; uchar temp;                   
 0192           ; temp=PIND;                            
 0192 00B3              in R16,0x10
 0194                   .dbline 148
 0194           ; return temp;                  
 0194                   .dbline -2
 0194           L34:
 0194                   .dbline 0 ; func end
 0194 0895              ret
 0196                   .dbsym r temp 16 c
 0196                   .dbend
 0196                   .dbfunc e delay _delay fV
 0196           ;              i -> R20,R21
 0196           ;              j -> R22,R23
 0196           ;              k -> R16,R17
                        .even
 0196           _delay::
 0196 0E940000          xcall push_gset2
 019A                   .dbline -1
 019A                   .dbline 152
 019A           ; }                                     
 019A           ; /***************延时子函数******************/
 019A           ; void delay(uint k)            
 019A           ; {                                     
 019A                   .dbline 154
 019A           ; uint i,j;                     
 019A           ; for(i=0;i<k;i++)                      
 019A 4427              clr R20
 019C 5527              clr R21
 019E 0BC0              xjmp L39
 01A0           L36:
 01A0                   .dbline 155
 01A0           ; {for(j=0;j<121;j++)           
 01A0                   .dbline 155
 01A0 6627              clr R22
 01A2 7727              clr R23
 01A4 02C0              xjmp L43
 01A6           L40:
 01A6                   .dbline 156
 01A6                   .dbline 156
 01A6                   .dbline 156
 01A6           L41:
 01A6                   .dbline 155
 01A6 6F5F              subi R22,255  ; offset = 1
 01A8 7F4F              sbci R23,255
 01AA           L43:
 01AA                   .dbline 155
 01AA 6937              cpi R22,121
 01AC E0E0              ldi R30,0
 01AE 7E07              cpc R23,R30
 01B0 D0F3              brlo L40
 01B2                   .dbline 156
 01B2           L37:
 01B2                   .dbline 154
 01B2 4F5F              subi R20,255  ; offset = 1
 01B4 5F4F              sbci R21,255
 01B6           L39:
 01B6                   .dbline 154
 01B6 4017              cp R20,R16
 01B8 5107              cpc R21,R17
 01BA 90F3              brlo L36
 01BC                   .dbline -2
 01BC           L35:
 01BC 0E940000          xcall pop_gset2
 01C0                   .dbline 0 ; func end
 01C0 0895              ret
 01C2                   .dbsym r i 20 i
 01C2                   .dbsym r j 22 i
 01C2                   .dbsym r k 16 i
 01C2                   .dbend
 01C2                   .dbfunc e start _start fV
                        .even
 01C2           _start::
 01C2                   .dbline -1
 01C2                   .dbline 160
 01C2           ; {;}}                          
 01C2           ; }                                     
 01C2           ; /*****************启动读写时序子函数******************/
 01C2           ; void start(void)                      
 01C2           ; {DDRC=0x03;                                   
 01C2                   .dbline 160
 01C2 83E0              ldi R24,3
 01C4 84BB              out 0x14,R24
 01C6                   .dbline 161
 01C6           ; SDA_1;Some_NOP();
 01C6 A99A              sbi 0x15,1
 01C8                   .dbline 161
 01C8                   .dbline 161
 01C8 0000              nop
 01CA                   .dbline 161
 01CA 0000              nop
 01CC                   .dbline 161
 01CC 0000              nop
 01CE                   .dbline 161
 01CE 0000              nop
 01D0                   .dbline 161
 01D0 0000              nop
 01D2                   .dbline 161
 01D2 0000              nop

⌨️ 快捷键说明

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