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

📄 ac15-2.lis

📁 AVR学习资料
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00FA 0E940000          xcall pop_gset2
 00FE                   .dbline 0 ; func end
 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 95
 0106           ; }
 0106           ; //*******************写数据到LCM子函数********************
 0106           ; void LcdWriteData(uchar dataW)
 0106           ; {
 0106                   .dbline 96
 0106           ; WaitForEnable();
 0106 0CD0              xcall _WaitForEnable
 0108                   .dbline 97
 0108           ; LCM_RS_1;LCM_RW_0;_NOP();
 0108 C09A              sbi 0x18,0
 010A                   .dbline 97
 010A C198              cbi 0x18,1
 010C                   .dbline 97
 010C 0000              nop
 010E                   .dbline 98
 010E           ; DataPort=dataW;_NOP();
 010E 4BBB              out 0x1b,R20
 0110                   .dbline 98
 0110 0000              nop
 0112                   .dbline 99
 0112           ; LCM_EN_1;_NOP();_NOP();LCM_EN_0;
 0112 C29A              sbi 0x18,2
 0114                   .dbline 99
 0114 0000              nop
 0116                   .dbline 99
 0116 0000              nop
 0118                   .dbline 99
 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 103
 0120           ; }
 0120           ; //*******************检测LCD忙信号子函数*********************
 0120           ; void WaitForEnable(void)
 0120           ; {
 0120                   .dbline 105
 0120           ; uchar val;
 0120           ; DataPort=0xff;
 0120 8FEF              ldi R24,255
 0122 8BBB              out 0x1b,R24
 0124                   .dbline 106
 0124           ; LCM_RS_0;LCM_RW_1;_NOP();
 0124 C098              cbi 0x18,0
 0126                   .dbline 106
 0126 C19A              sbi 0x18,1
 0128                   .dbline 106
 0128 0000              nop
 012A                   .dbline 107
 012A           ; LCM_EN_1;_NOP();_NOP();
 012A C29A              sbi 0x18,2
 012C                   .dbline 107
 012C 0000              nop
 012E                   .dbline 107
 012E 0000              nop
 0130                   .dbline 108
 0130           ; DDRA=0x00;
 0130 2224              clr R2
 0132 2ABA              out 0x1a,R2
 0134                   .dbline 109
 0134           ; val=PINA;
 0134 09B3              in R16,0x19
 0136 01C0              xjmp L22
 0138           L21:
 0138                   .dbline 110
 0138 09B3              in R16,0x19
 013A           L22:
 013A                   .dbline 110
 013A           ; while(val&Busy)val=PINA;
 013A 07FD              sbrc R16,7
 013C FDCF              rjmp L21
 013E                   .dbline 111
 013E           ; LCM_EN_0;
 013E C298              cbi 0x18,2
 0140                   .dbline 112
 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 116
 0146           ; }
 0146           ; //****************************************
 0146           ; void Delay_1ms(void)          //1mS延时子函数
 0146           ; { uint i;
 0146                   .dbline 117
 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 118
 014C           L26:
 014C                   .dbline 117
 014C 0F5F              subi R16,255  ; offset = 1
 014E 1F4F              sbci R17,255
 0150           L28:
 0150                   .dbline 117
 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 122
 0160           ;     ;
 0160           ; }
 0160           ; //====================================
 0160           ; void Delay_nms(uint n)                //n*1mS延时子函数
 0160           ; {
 0160                   .dbline 123
 0160           ;  uint i=0;
 0160 4427              clr R20
 0162 5527              clr R21
 0164 03C0              xjmp L31
 0166           L30:
 0166                   .dbline 125
 0166                   .dbline 125
 0166 EFDF              xcall _Delay_1ms
 0168                   .dbline 126
 0168 4F5F              subi R20,255  ; offset = 1
 016A 5F4F              sbci R21,255
 016C                   .dbline 127
 016C           L31:
 016C                   .dbline 124
 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 140
 0178           ;    {Delay_1ms();
 0178           ;     i++;
 0178           ;    }
 0178           ; }
 0178           ; /*******************定义结构体变量time1,time2*******************/
 0178           ; struct date
 0178           ; {
 0178           ; uchar hour;
 0178           ; uchar min;
 0178           ; uchar sec;
 0178           ; uchar dida;
 0178           ; }time1,time2;
 0178           ; 
 0178           ; /*******************端口初始化*******************/
 0178           ; void port_init(void)
 0178           ; {
 0178                   .dbline 141
 0178           ;  PORTA = 0x00;
 0178 2224              clr R2
 017A 2BBA              out 0x1b,R2
 017C                   .dbline 142
 017C           ;  DDRA  = 0xFF;
 017C 8FEF              ldi R24,255
 017E 8ABB              out 0x1a,R24
 0180                   .dbline 143
 0180           ;  PORTB = 0x00;
 0180 28BA              out 0x18,R2
 0182                   .dbline 144
 0182           ;  DDRB  = 0xFF;
 0182 87BB              out 0x17,R24
 0184                   .dbline 145
 0184           ;  PORTC = 0x00; 
 0184 25BA              out 0x15,R2
 0186                   .dbline 146
 0186           ;  DDRC  = 0x03;
 0186 83E0              ldi R24,3
 0188 84BB              out 0x14,R24
 018A                   .dbline 147
 018A           ;  PORTD = 0xFF;
 018A 8FEF              ldi R24,255
 018C 82BB              out 0x12,R24
 018E                   .dbline 148
 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 158
 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 160
 0192           ; uchar temp;                   
 0192           ; temp=PIND;                            
 0192 00B3              in R16,0x10
 0194                   .dbline 161
 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 165
 019A           ; }                                     
 019A           ; /***************延时子函数******************/
 019A           ; void delay(uint k)            
 019A           ; {                                     
 019A                   .dbline 167
 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 168
 01A0           ; {for(j=0;j<121;j++)           
 01A0                   .dbline 168
 01A0 6627              clr R22
 01A2 7727              clr R23
 01A4 02C0              xjmp L43
 01A6           L40:
 01A6                   .dbline 169
 01A6                   .dbline 169
 01A6                   .dbline 169
 01A6           L41:
 01A6                   .dbline 168
 01A6 6F5F              subi R22,255  ; offset = 1
 01A8 7F4F              sbci R23,255
 01AA           L43:
 01AA                   .dbline 168
 01AA 6937              cpi R22,121
 01AC E0E0              ldi R30,0
 01AE 7E07              cpc R23,R30
 01B0 D0F3              brlo L40
 01B2                   .dbline 169
 01B2           L37:
 01B2                   .dbline 167
 01B2 4F5F              subi R20,255  ; offset = 1
 01B4 5F4F              sbci R21,255
 01B6           L39:
 01B6                   .dbline 167
 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 174
 01C2           ; {;}}                          
 01C2           ; }                                     
 01C2           ; 
 01C2           ; /*****************启动读写时序子函数******************/
 01C2           ; void start(void)                      
 01C2           ; {DDRC=0x03;                                   
 01C2                   .dbline 174
 01C2 83E0              ldi R24,3
 01C4 84BB              out 0x14,R24
 01C6                   .dbline 175
 01C6           ; SDA_1;Some_NOP();
 01C6 A99A              sbi 0x15,1
 01C8                   .dbline 175
 01C8                   .dbline 175
 01C8 0000              nop
 01CA                   .dbline 175
 01CA 0000              nop

⌨️ 快捷键说明

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