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

📄 main.lis

📁 LCD1602四线接口应用范例(AVR_GCC)
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\刻录的\电子技术\项目\驱动程序\LCD1602四线接口应用范例\main.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000 2997              sbiw R28,9
 0002                   .dbline -1
 0002                   .dbline 22
 0002           ; //项目名称:LCD1602四线接口应用范例
 0002           ; //功能描述:测试4位数据线接口的LCD1602的驱动程序
 0002           ; //外部模块:LCD1602
 0002           ; //连接方法:   本例子的接线请参照LCD_1602.H中的定义
 0002           ; //如果要更改端口,只要修改LCD_1602.H上的定义即可  
 0002           ; //外部时钟:   8MHz  
 0002           ; //开发人员:书生
 0002           ; //开发日期:2006年2月13日凌晨
 0002           ; //*********************************************************
 0002           ; #include <iom8v.h>
 0002           ; #include <macros.h>
 0002           ; #include "LCD_1602.h"
 0002           ; 
 0002           ; unsigned char hour,min,sec,time;
 0002           ; unsigned int BT1_time,BT1_T,D882_P;
 0002           ; void delay_nms(unsigned int n);
 0002           ; void delay_nus(unsigned int n);
 0002           ; /*----------------------------------
 0002           ;             主程序
 0002           ; -----------------------------------*/
 0002           ; void main(void)
 0002           ;   { 
 0002                   .dbline 23
 0002           ;      delay_nms(20);
 0002 04E1              ldi R16,20
 0004 10E0              ldi R17,0
 0006 00D0              rcall _delay_nms
 0008                   .dbline 24
 0008           ;        LCD_init();
 0008 00D0              rcall _LCD_init
 000A                   .dbline 26
 000A           ; //例如要写入以下数据 
 000A           ;        BT1_time=545;
 000A 81E2              ldi R24,545
 000C 92E0              ldi R25,2
 000E 90930500          sts _BT1_time+1,R25
 0012 80930400          sts _BT1_time,R24
 0016                   .dbline 27
 0016           ;        BT1_T=551;
 0016 87E2              ldi R24,39
 0018 90930300          sts _BT1_T+1,R25
 001C 80930200          sts _BT1_T,R24
 0020                   .dbline 28
 0020           ;        D882_P=1050;
 0020 8AE1              ldi R24,1050
 0022 94E0              ldi R25,4
 0024 90930100          sts _D882_P+1,R25
 0028 80930000          sts _D882_P,R24
 002C                   .dbline 29
 002C           ;        hour=0;min=6;sec=12;//00:06:12
 002C 2224              clr R2
 002E 20920900          sts _hour,R2
 0032                   .dbline 29
 0032 86E0              ldi R24,6
 0034 80930800          sts _min,R24
 0038                   .dbline 29
 0038 8CE0              ldi R24,12
 003A 80930700          sts _sec,R24
 003E                   .dbline 31
 003E           ; //调用功能函数对数据进行处理并写入缓存         
 003E           ;        LCD_write_time(7,1,hour,min,sec);      
 003E 282E              mov R2,R24
 0040 2C82              std y+4,R2
 0042 20900800          lds R2,_min
 0046 2A82              std y+2,R2
 0048 20900900          lds R2,_hour
 004C 2882              std y+0,R2
 004E 21E0              ldi R18,1
 0050 07E0              ldi R16,7
 0052 00D0              rcall _LCD_write_time
 0054                   .dbline 32
 0054           ;        LCD_write_number(7,0,0,BT1_time,"sec",10);     
 0054 8AE0              ldi R24,10
 0056 8887              std y+8,R24
 0058 80E0              ldi R24,<L2
 005A 90E0              ldi R25,>L2
 005C 9F83              std y+7,R25
 005E 8E83              std y+6,R24
 0060 20900400          lds R2,_BT1_time
 0064 30900500          lds R3,_BT1_time+1
 0068 4424              clr R4
 006A 5524              clr R5
 006C 2A82              std y+2,R2
 006E 3B82              std y+3,R3
 0070 4C82              std y+4,R4
 0072 5D82              std y+5,R5
 0074 2224              clr R2
 0076 2882              std y+0,R2
 0078 2227              clr R18
 007A 07E0              ldi R16,7
 007C 00D0              rcall _LCD_write_number
 007E                   .dbline 33
 007E           ;        LCD_write_number(0,1,1,BT1_T,"C",0); 
 007E 2224              clr R2
 0080 2886              std y+8,R2
 0082 80E0              ldi R24,<L3
 0084 90E0              ldi R25,>L3
 0086 9F83              std y+7,R25
 0088 8E83              std y+6,R24
 008A 20900200          lds R2,_BT1_T
 008E 30900300          lds R3,_BT1_T+1
 0092 4424              clr R4
 0094 5524              clr R5
 0096 2A82              std y+2,R2
 0098 3B82              std y+3,R3
 009A 4C82              std y+4,R4
 009C 5D82              std y+5,R5
 009E 81E0              ldi R24,1
 00A0 8883              std y+0,R24
 00A2 21E0              ldi R18,1
 00A4 0027              clr R16
 00A6 00D0              rcall _LCD_write_number
 00A8                   .dbline 34
 00A8           ;      LCD_write_number(0,0,0,D882_P,"mW",0);
 00A8 2224              clr R2
 00AA 2886              std y+8,R2
 00AC 80E0              ldi R24,<L4
 00AE 90E0              ldi R25,>L4
 00B0 9F83              std y+7,R25
 00B2 8E83              std y+6,R24
 00B4 20900000          lds R2,_D882_P
 00B8 30900100          lds R3,_D882_P+1
 00BC 4424              clr R4
 00BE 5524              clr R5
 00C0 2A82              std y+2,R2
 00C2 3B82              std y+3,R3
 00C4 4C82              std y+4,R4
 00C6 5D82              std y+5,R5
 00C8 2224              clr R2
 00CA 2882              std y+0,R2
 00CC 2227              clr R18
 00CE 0027              clr R16
 00D0 00D0              rcall _LCD_write_number
 00D2                   .dbline 36
 00D2           ;        
 00D2           ;      LCD_write_new();//把缓存里的数据写入LCD
 00D2 00D0              rcall _LCD_write_new
 00D4 03C0              rjmp L6
 00D6           L5:
 00D6                   .dbline 38
 00D6                   .dbline 39
 00D6 04E6              ldi R16,100
 00D8 10E0              ldi R17,0
 00DA 00D0              rcall _delay_nms
 00DC                   .dbline 40
 00DC           L6:
 00DC                   .dbline 37
 00DC FCCF              rjmp L5
 00DE           X0:
 00DE                   .dbline -2
 00DE           L1:
 00DE 2996              adiw R28,9
 00E0                   .dbline 0 ; func end
 00E0 0895              ret
 00E2                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\刻录的\电子技术\项目\驱动程序\LCD1602四线接口应用范例\main.c
 0000           _D882_P::
 0000                   .blkb 2
 0002                   .dbsym e D882_P _D882_P i
 0002           _BT1_T::
 0002                   .blkb 2
 0004                   .dbsym e BT1_T _BT1_T i
 0004           _BT1_time::
 0004                   .blkb 2
 0006                   .dbsym e BT1_time _BT1_time i
 0006           _time::
 0006                   .blkb 1
 0007                   .dbsym e time _time c
 0007           _sec::
 0007                   .blkb 1
 0008                   .dbsym e sec _sec c
 0008           _min::
 0008                   .blkb 1
 0009                   .dbsym e min _min c
 0009           _hour::
 0009                   .blkb 1
 000A                   .dbsym e hour _hour c
                        .area lit(rom, con, rel)
 0000           L4:
 0000 6D5700            .byte 'm,'W,0
 0003           L3:
 0003 4300              .byte 'C,0
 0005           L2:
 0005 73656300          .byte 's,'e,'c,0

⌨️ 快捷键说明

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