📄 main.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 + -