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

📄 main.lis

📁 字符型lcd驱动代码 针对于AVR单片机 稍加修改可用于51等型号 主要完成初始化 指令数据的传送
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00C8                   .dbsym s buzzer_status L25 c
 00C8                   .dbsym s buzzer_count L24 c
 00C8                   .dbsym s key_count L23 i
                        .even
 00C8           _Timer0_Interrupt::
 00C8 0E940000          xcall push_lset
 00CC                   .dbline -1
 00CC                   .dbline 66
 00CC           ; 
 00CC           ; //***************************************************************
 00CC           ; // Function    : Timer0_Interrupt                                
 00CC           ; // Input       : none                                            
 00CC           ; // Output      : none                                            
 00CC           ; // Description : ATmega16 T/C0 ISR                               
 00CC           ; //***************************************************************
 00CC           ; #pragma interrupt_handler Timer0_Interrupt:20                    
 00CC           ; void Timer0_Interrupt(void)                                      
 00CC           ; {                                                                
 00CC                   .dbline 72
 00CC           ;       static INT16U key_count = 0;
 00CC           ;       static INT8U buzzer_count = 0;
 00CC           ;       static INT8U buzzer_status = 0;
 00CC           ;                                             
 00CC           ;       //Clear Timer0 OCIF Flag                                     
 00CC           ;       TIFR  |= 0x02;                                               
 00CC 88B7              in R24,0x38
 00CE 8260              ori R24,2
 00D0 88BF              out 0x38,R24
 00D2                   .dbline 73
 00D2           ;       TCNT0  = 0x00;                                              
 00D2 2224              clr R2
 00D4 22BE              out 0x32,R2
 00D6                   .dbline 75
 00D6           ;       //Key Detection
 00D6           ;       if(Get_Key0() == true)
 00D6 0E940000          xcall _Get_Key0
 00DA 0130              cpi R16,1
 00DC 59F4              brne L26
 00DE                   .dbline 76
 00DE           ;       {
 00DE                   .dbline 77
 00DE           ;               Key0_Flag = 1;
 00DE 81E0              ldi R24,1
 00E0 80930000          sts _Key0_Flag,R24
 00E4                   .dbline 78
 00E4           ;               key_count = 0;
 00E4 2224              clr R2
 00E6 3324              clr R3
 00E8 30920600          sts L23+1,R3
 00EC 20920500          sts L23,R2
 00F0                   .dbline 79
 00F0           ;               buzzer_status = 1;
 00F0 80930800          sts L25,R24
 00F4                   .dbline 80
 00F4           ;       }                                            
 00F4           L26:
 00F4                   .dbline 81
 00F4           ;       if(Get_Key1() == true)
 00F4 0E940000          xcall _Get_Key1
 00F8 0130              cpi R16,1
 00FA 59F4              brne L28
 00FC                   .dbline 82
 00FC           ;       {
 00FC                   .dbline 83
 00FC           ;               Key1_Flag = 1;
 00FC 81E0              ldi R24,1
 00FE 80930100          sts _Key1_Flag,R24
 0102                   .dbline 84
 0102           ;               key_count = 0;
 0102 2224              clr R2
 0104 3324              clr R3
 0106 30920600          sts L23+1,R3
 010A 20920500          sts L23,R2
 010E                   .dbline 85
 010E           ;               buzzer_status = 1;
 010E 80930800          sts L25,R24
 0112                   .dbline 86
 0112           ;       }
 0112           L28:
 0112                   .dbline 87
 0112           ;       if(Get_Key2() == true)
 0112 0E940000          xcall _Get_Key2
 0116 0130              cpi R16,1
 0118 59F4              brne L30
 011A                   .dbline 88
 011A           ;       {
 011A                   .dbline 89
 011A           ;               Key2_Flag = 1;
 011A 81E0              ldi R24,1
 011C 80930200          sts _Key2_Flag,R24
 0120                   .dbline 90
 0120           ;               key_count = 0;
 0120 2224              clr R2
 0122 3324              clr R3
 0124 30920600          sts L23+1,R3
 0128 20920500          sts L23,R2
 012C                   .dbline 91
 012C           ;               buzzer_status = 1;
 012C 80930800          sts L25,R24
 0130                   .dbline 92
 0130           ;       }
 0130           L30:
 0130                   .dbline 93
 0130           ;       if(Get_Key3() == true)
 0130 0E940000          xcall _Get_Key3
 0134 0130              cpi R16,1
 0136 59F4              brne L32
 0138                   .dbline 94
 0138           ;       {
 0138                   .dbline 95
 0138           ;               Key3_Flag = 1;
 0138 81E0              ldi R24,1
 013A 80930300          sts _Key3_Flag,R24
 013E                   .dbline 96
 013E           ;               key_count = 0;
 013E 2224              clr R2
 0140 3324              clr R3
 0142 30920600          sts L23+1,R3
 0146 20920500          sts L23,R2
 014A                   .dbline 97
 014A           ;               buzzer_status = 1;
 014A 80930800          sts L25,R24
 014E                   .dbline 98
 014E           ;       }
 014E           L32:
 014E                   .dbline 100
 014E           ;       //No Key Count
 014E           ;       if(key_count++ >= 500)
 014E 20900500          lds R2,L23
 0152 30900600          lds R3,L23+1
 0156 C101              movw R24,R2
 0158 0196              adiw R24,1
 015A 90930600          sts L23+1,R25
 015E 80930500          sts L23,R24
 0162 C101              movw R24,R2
 0164 843F              cpi R24,244
 0166 E1E0              ldi R30,1
 0168 9E07              cpc R25,R30
 016A 48F0              brlo L34
 016C                   .dbline 101
 016C           ;       {
 016C                   .dbline 102
 016C           ;               key_count = 0;
 016C 2224              clr R2
 016E 3324              clr R3
 0170 30920600          sts L23+1,R3
 0174 20920500          sts L23,R2
 0178                   .dbline 103
 0178           ;               NoKey_Flag = 1;
 0178 81E0              ldi R24,1
 017A 80930400          sts _NoKey_Flag,R24
 017E                   .dbline 104
 017E           ;       }
 017E           L34:
 017E                   .dbline 106
 017E           ;       //Buzzer Control
 017E           ;       if(buzzer_status == 1)
 017E 80910800          lds R24,L25
 0182 8130              cpi R24,1
 0184 99F4              brne L36
 0186                   .dbline 107
 0186           ;       {
 0186                   .dbline 108
 0186           ;               Buzzer_ON();
 0186 0E940000          xcall _Buzzer_ON
 018A                   .dbline 109
 018A           ;               if(buzzer_count++ >= 50)
 018A 20900700          lds R2,L24
 018E 3324              clr R3
 0190 822D              mov R24,R2
 0192 8F5F              subi R24,255    ; addi 1
 0194 80930700          sts L24,R24
 0198 822D              mov R24,R2
 019A 8233              cpi R24,50
 019C 38F0              brlo L38
 019E                   .dbline 110
 019E           ;               {
 019E                   .dbline 111
 019E           ;                       Buzzer_OFF();
 019E 0E940000          xcall _Buzzer_OFF
 01A2                   .dbline 112
 01A2           ;                       buzzer_status = 0;
 01A2 2224              clr R2
 01A4 20920800          sts L25,R2
 01A8                   .dbline 113
 01A8           ;                       buzzer_count = 0;
 01A8 20920700          sts L24,R2
 01AC                   .dbline 114
 01AC           ;               }
 01AC           L38:
 01AC                   .dbline 115
 01AC           L36:
 01AC                   .dbline -2
 01AC                   .dbline 116
 01AC           ;       }                                                     
 01AC           ; } 
 01AC           L22:
 01AC 0E940000          xcall pop_lset
 01B0                   .dbline 0 ; func end
 01B0 1895              reti
 01B2                   .dbend
                        .area data(ram, con, rel)
 0009                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c
 0009           L21:
 0009                   .blkb 18
                        .area idata
 0009 4E6F204B657920507265737365642120  .byte 'N,'o,32,'K,'e,'y,32,'P,'r,'e,'s,'s,'e,'d,33,32
 0019 2000              .byte 32,0
                        .area data(ram, con, rel)
 001B                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c
 001B           L18:
 001B                   .blkb 18
                        .area idata
 001B 4B657933206973205072657373656421  .byte 'K,'e,'y,51,32,'i,'s,32,'P,'r,'e,'s,'s,'e,'d,33
 002B 2000              .byte 32,0
                        .area data(ram, con, rel)
 002D                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c
 002D           L15:
 002D                   .blkb 18
                        .area idata
 002D 4B657932206973205072657373656421  .byte 'K,'e,'y,50,32,'i,'s,32,'P,'r,'e,'s,'s,'e,'d,33
 003D 2000              .byte 32,0
                        .area data(ram, con, rel)
 003F                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c
 003F           L12:
 003F                   .blkb 18
                        .area idata
 003F 4B657931206973205072657373656421  .byte 'K,'e,'y,49,32,'i,'s,32,'P,'r,'e,'s,'s,'e,'d,33
 004F 2000              .byte 32,0
                        .area data(ram, con, rel)
 0051                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c
 0051           L9:
 0051                   .blkb 18
                        .area idata
 0051 4B657930206973205072657373656421  .byte 'K,'e,'y,48,32,'i,'s,32,'P,'r,'e,'s,'s,'e,'d,33
 0061 2000              .byte 32,0
                        .area data(ram, con, rel)
 0063                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c
 0063           L3:
 0063                   .blkb 17
                        .area idata
 0063 4E6F204B657920507265737365642120  .byte 'N,'o,32,'K,'e,'y,32,'P,'r,'e,'s,'s,'e,'d,33,32
 0073 00                .byte 0
                        .area data(ram, con, rel)
 0074                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c
 0074           L2:
 0074                   .blkb 17
                        .area idata
 0074 3D2A3D204B45592044454D4F203D2A3D  .byte 61,42,61,32,'K,'E,'Y,32,'D,'E,'M,'O,32,61,42,61
 0084 00                .byte 0
                        .area data(ram, con, rel)
 0085                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\字符型LCD显示应用设计\main.c

⌨️ 快捷键说明

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