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

📄 main.lis

📁 LCD1602液晶屏的四线驱动模块
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\MYJOB~1\AVR资料\示例程序\DS1302-LCD1602-4bitBUS\main.c
 0000                   .dbfunc e main _main fV
 0000           ;           temp -> R20
                        .even
 0000           _main::
 0000 2197              sbiw R28,1
 0002                   .dbline -1
 0002                   .dbline 23
 0002           ; /*
 0002           ; 实验LCD四线驱动程序:
 0002           ; 
 0002           ;       DS1302时钟实险,LCD1602四线驱动显示。
 0002           ;       1、设置和读取DS1302内部时钟,并通过LCD1602四线驱动显示。
 0002           ;       2、内部1 M晶振,程序采用单任务方式,软件延时。
 0002           ;       3、进行此实验请插上PB4-PB7、PD3、PD4、PD6,PC4、PC7短路块。
 0002           ;       4、DS1302芯片接口占用JTAG仿真接口,在做实验时需要关闭mega16的JTAG功能。
 0002           ;       5、此实验需要有LCD1602显示屏才可以显示。
 0002           ;       6、此实验对硬件及芯片的综合知识要求比较高,所以建议大家把此实验放到后面。
 0002           ; 
 0002           ;       此实验参照了版主tonghe的DS1302时钟程序。
 0002           ; 
 0002           ;       AVR  mega16学习板
 0002           ;       www.iccavr.com
 0002           ;       10:44 2007-8-7
 0002           ; */
 0002           ; 
 0002           ; #include "iom16v.h"
 0002           ; #include "ds1302.h"
 0002           ; #include "lcd1602.h"
 0002           ; 
 0002           ; void main(void) {
 0002                   .dbline 27
 0002           ; 
 0002           ;       unsigned char temp;
 0002           ; 
 0002           ;       PORTA = 0xFF;                           /*打开上拉*/
 0002 8FEF              ldi R24,255
 0004 8BBB              out 0x1b,R24
 0006                   .dbline 28
 0006           ;       DDRA = 0x00;                            /*方向输入*/
 0006 2224              clr R2
 0008 2ABA              out 0x1a,R2
 000A                   .dbline 29
 000A           ;       PORTB = 0xF0;                           /*电平设置*/
 000A 80EF              ldi R24,240
 000C 88BB              out 0x18,R24
 000E                   .dbline 30
 000E           ;       DDRB = 0xFF;                            /*方向输出*/
 000E 8FEF              ldi R24,255
 0010 87BB              out 0x17,R24
 0012                   .dbline 31
 0012           ;       PORTC = 0x7F;
 0012 8FE7              ldi R24,127
 0014 85BB              out 0x15,R24
 0016                   .dbline 32
 0016           ;       DDRC = 0x80;
 0016 80E8              ldi R24,128
 0018 84BB              out 0x14,R24
 001A                   .dbline 33
 001A           ;       PORTD = 0xFF;
 001A 8FEF              ldi R24,255
 001C 82BB              out 0x12,R24
 001E                   .dbline 34
 001E           ;       DDRD = 0x00;
 001E 21BA              out 0x11,R2
 0020                   .dbline 36
 0020           ; 
 0020           ;       delay_ms(200);
 0020 08EC              ldi R16,200
 0022 0E940000          xcall _delay_ms
 0026                   .dbline 37
 0026           ;       LCD_init();
 0026 0E940000          xcall _LCD_init
 002A                   .dbline 38
 002A           ;       ds1302_init();
 002A 0E940000          xcall _ds1302_init
 002E                   .dbline 39
 002E           ;       delay_ms(10);
 002E 0AE0              ldi R16,10
 0030 0E940000          xcall _delay_ms
 0034                   .dbline 40
 0034           ;       ds1302_write_time();
 0034 0E940000          xcall _ds1302_write_time
 0038 A4C0              xjmp L3
 003A           L2:
 003A                   .dbline 42
 003A                   .dbline 43
 003A 08EC              ldi R16,200
 003C 0E940000          xcall _delay_ms
 0040                   .dbline 44
 0040 0E940000          xcall _ds1302_read_time
 0044                   .dbline 45
 0044 0E940000          xcall _LCD_clear
 0048                   .dbline 47
 0048 40910000          lds R20,_time_buf
 004C 4295              swap R20
 004E 4F70              andi R20,#0x0F
 0050 405D              subi R20,208    ; addi 48
 0052                   .dbline 48
 0052 4883              std y+0,R20
 0054 2227              clr R18
 0056 0027              clr R16
 0058 0E940000          xcall _LCD_write_char
 005C                   .dbline 49
 005C 40910000          lds R20,_time_buf
 0060 4F70              andi R20,15
 0062 405D              subi R20,208    ; addi 48
 0064                   .dbline 50
 0064 4883              std y+0,R20
 0066 2227              clr R18
 0068 01E0              ldi R16,1
 006A 0E940000          xcall _LCD_write_char
 006E                   .dbline 51
 006E 40910100          lds R20,_time_buf+1
 0072 4295              swap R20
 0074 4F70              andi R20,#0x0F
 0076 405D              subi R20,208    ; addi 48
 0078                   .dbline 52
 0078 4883              std y+0,R20
 007A 2227              clr R18
 007C 02E0              ldi R16,2
 007E 0E940000          xcall _LCD_write_char
 0082                   .dbline 53
 0082 40910100          lds R20,_time_buf+1
 0086 4F70              andi R20,15
 0088 405D              subi R20,208    ; addi 48
 008A                   .dbline 54
 008A 4883              std y+0,R20
 008C 2227              clr R18
 008E 03E0              ldi R16,3
 0090 0E940000          xcall _LCD_write_char
 0094                   .dbline 55
 0094 8DE2              ldi R24,45
 0096 8883              std y+0,R24
 0098 2227              clr R18
 009A 04E0              ldi R16,4
 009C 0E940000          xcall _LCD_write_char
 00A0                   .dbline 57
 00A0 40910200          lds R20,_time_buf+2
 00A4 4295              swap R20
 00A6 4F70              andi R20,#0x0F
 00A8 405D              subi R20,208    ; addi 48
 00AA                   .dbline 58
 00AA 4883              std y+0,R20
 00AC 2227              clr R18
 00AE 05E0              ldi R16,5
 00B0 0E940000          xcall _LCD_write_char
 00B4                   .dbline 59
 00B4 40910200          lds R20,_time_buf+2
 00B8 4F70              andi R20,15
 00BA 405D              subi R20,208    ; addi 48
 00BC                   .dbline 60
 00BC 4883              std y+0,R20
 00BE 2227              clr R18
 00C0 06E0              ldi R16,6
 00C2 0E940000          xcall _LCD_write_char
 00C6                   .dbline 61
 00C6 8DE2              ldi R24,45
 00C8 8883              std y+0,R24
 00CA 2227              clr R18
 00CC 07E0              ldi R16,7
 00CE 0E940000          xcall _LCD_write_char
 00D2                   .dbline 63
 00D2 40910300          lds R20,_time_buf+3
 00D6 4295              swap R20
 00D8 4F70              andi R20,#0x0F
 00DA 405D              subi R20,208    ; addi 48
 00DC                   .dbline 64
 00DC 4883              std y+0,R20
 00DE 2227              clr R18
 00E0 08E0              ldi R16,8
 00E2 0E940000          xcall _LCD_write_char
 00E6                   .dbline 65
 00E6 40910300          lds R20,_time_buf+3
 00EA 4F70              andi R20,15
 00EC 405D              subi R20,208    ; addi 48
 00EE                   .dbline 66
 00EE 4883              std y+0,R20
 00F0 2227              clr R18
 00F2 09E0              ldi R16,9
 00F4 0E940000          xcall _LCD_write_char
 00F8                   .dbline 68
 00F8 40910400          lds R20,_time_buf+4
 00FC 4295              swap R20
 00FE 4F70              andi R20,#0x0F
 0100 405D              subi R20,208    ; addi 48
 0102                   .dbline 69
 0102 4883              std y+0,R20
 0104 21E0              ldi R18,1
 0106 08E0              ldi R16,8
 0108 0E940000          xcall _LCD_write_char
 010C                   .dbline 70
 010C 40910400          lds R20,_time_buf+4
 0110 4F70              andi R20,15
 0112 405D              subi R20,208    ; addi 48
 0114                   .dbline 71
 0114 4883              std y+0,R20
 0116 21E0              ldi R18,1
 0118 09E0              ldi R16,9
 011A 0E940000          xcall _LCD_write_char
 011E                   .dbline 72
 011E 8AE3              ldi R24,58
 0120 8883              std y+0,R24
 0122 21E0              ldi R18,1
 0124 0AE0              ldi R16,10
 0126 0E940000          xcall _LCD_write_char
 012A                   .dbline 74
 012A 40910500          lds R20,_time_buf+5
 012E 4295              swap R20
 0130 4F70              andi R20,#0x0F
 0132 405D              subi R20,208    ; addi 48
 0134                   .dbline 75
 0134 4883              std y+0,R20
 0136 21E0              ldi R18,1
 0138 0BE0              ldi R16,11
 013A 0E940000          xcall _LCD_write_char
 013E                   .dbline 76
 013E 40910500          lds R20,_time_buf+5
 0142 4F70              andi R20,15
 0144 405D              subi R20,208    ; addi 48
 0146                   .dbline 77
 0146 4883              std y+0,R20
 0148 21E0              ldi R18,1
 014A 0CE0              ldi R16,12
 014C 0E940000          xcall _LCD_write_char
 0150                   .dbline 78
 0150 8AE3              ldi R24,58
 0152 8883              std y+0,R24
 0154 21E0              ldi R18,1
 0156 0DE0              ldi R16,13
 0158 0E940000          xcall _LCD_write_char
 015C                   .dbline 80
 015C 40910600          lds R20,_time_buf+6
 0160 4295              swap R20
 0162 4F70              andi R20,#0x0F
 0164 405D              subi R20,208    ; addi 48
 0166                   .dbline 81
 0166 4883              std y+0,R20
 0168 21E0              ldi R18,1
 016A 0EE0              ldi R16,14
 016C 0E940000          xcall _LCD_write_char
 0170                   .dbline 82
 0170 40910600          lds R20,_time_buf+6
 0174 4F70              andi R20,15
 0176 405D              subi R20,208    ; addi 48
 0178                   .dbline 83
 0178 4883              std y+0,R20
 017A 21E0              ldi R18,1
 017C 0FE0              ldi R16,15
 017E 0E940000          xcall _LCD_write_char
 0182                   .dbline 84
 0182           L3:
 0182                   .dbline 42
 0182 5BCF              xjmp L2
 0184           X0:
 0184                   .dbline -2
 0184           L1:
 0184 2196              adiw R28,1
 0186                   .dbline 0 ; func end
 0186 0895              ret
 0188                   .dbsym r temp 20 c
 0188                   .dbend

⌨️ 快捷键说明

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