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

📄 rtc.lis

📁 已经上传的YF-320240-3.5寸彩屏(可由单片机控制)的测试程序。主CPU为MEGA128
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module rtc.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\Relations\sf6_system\measure\LCDtest\rtc.c
 0000                   .dbfunc e ReadTime _ReadTime fV
                        .even
 0000           _ReadTime::
 0000                   .dbline -1
 0000                   .dbline 21
 0000           ; #include <iom128v.h>
 0000           ; #include "rtc.h"
 0000           ; #include "lcd.h"
 0000           ; #include <eeprom.h>
 0000           ; 
 0000           ; /***************************************************************
 0000           ;  address     data
 0000           ;  0           second
 0000           ;  2           minutes
 0000           ;  4           hour
 0000           ;  8           month
 0000           ;  9           year
 0000           ;  A           register A
 0000           ;  B           register B
 0000           ;  C           register C
 0000           ;  D           register D
 0000           ;  E           2000year high byte
 0000           ; ***************************************************************/
 0000           ; struct Time time;
 0000           ; void ReadTime(void)//时间是BCD码
 0000           ; {   
 0000           L2:
 0000                   .dbline 22
 0000           L3:
 0000                   .dbline 22
 0000           ;           while(REG_A & 0x80);
 0000 20900AB0          lds R2,45066
 0004 27FC              sbrc R2,7
 0006 FCCF              rjmp L2
 0008                   .dbline 23
 0008           ;           time.second = SECOND;
 0008 209000B0          lds R2,45056
 000C 20920000          sts _time,R2
 0010                   .dbline 24
 0010           ;               time.minute = MINUTE;
 0010 209002B0          lds R2,45058
 0014 20920100          sts _time+1,R2
 0018                   .dbline 25
 0018           ;               time.hour   = HOUR;
 0018 209004B0          lds R2,45060
 001C 20920200          sts _time+2,R2
 0020                   .dbline 26
 0020           ;               time.day    = DAY;
 0020 209007B0          lds R2,45063
 0024 20920300          sts _time+3,R2
 0028                   .dbline 27
 0028           ;               time.month  = MONTH;
 0028 209008B0          lds R2,45064
 002C 20920400          sts _time+4,R2
 0030                   .dbline 28
 0030           ;               time.year_L   = YEAR;
 0030 209009B0          lds R2,45065
 0034 20920500          sts _time+5,R2
 0038                   .dbline 29
 0038           ;               time.year_H   = REG_E;
 0038 20900EB0          lds R2,45070
 003C 20920600          sts _time+6,R2
 0040                   .dbline -2
 0040           L1:
 0040                   .dbline 0 ; func end
 0040 0895              ret
 0042                   .dbend
 0042                   .dbfunc e DisTime _DisTime fV
 0042           ;           temp -> R10
 0042           ;           back -> R14
 0042           ;          front -> R12
 0042           ;              y -> R22
 0042           ;              x -> R20,R21
                        .even
 0042           _DisTime::
 0042 0E940000          xcall push_gset5
 0046 622F              mov R22,R18
 0048 A801              movw R20,R16
 004A 2697              sbiw R28,6
 004C C888              ldd R12,y+16
 004E EA88              ldd R14,y+18
 0050                   .dbline -1
 0050                   .dbline 32
 0050           ; }
 0050           ; void DisTime(unsigned int x,unsigned char y,unsigned char front,unsigned char back)
 0050           ; {
 0050                   .dbline 34
 0050           ;     unsigned char temp;
 0050           ;       ReadTime();
 0050 D7DF              xcall _ReadTime
 0052                   .dbline 35
 0052           ;       temp = time.hour>>4;//hour的十位数
 0052 80910200          lds R24,_time+2
 0056 8295              swap R24
 0058 8F70              andi R24,#0x0F
 005A                   .dbline 36
 005A           ;       Dis_Ascii(x,y,temp+0x30,front,back);
 005A 2E2C              mov R2,R14
 005C 3324              clr R3
 005E 3D82              std y+5,R3
 0060 2C82              std y+4,R2
 0062 CA82              std y+2,R12
 0064 805D              subi R24,208    ; addi 48
 0066 8883              std y+0,R24
 0068 262F              mov R18,R22
 006A 8A01              movw R16,R20
 006C 0E940000          xcall _Dis_Ascii
 0070                   .dbline 37
 0070           ;       x+=8;
 0070 485F              subi R20,248  ; offset = 8
 0072 5F4F              sbci R21,255
 0074                   .dbline 38
 0074           ;       temp = time.hour & 0x0f;
 0074 80910200          lds R24,_time+2
 0078 8F70              andi R24,15
 007A                   .dbline 39
 007A           ;       Dis_Ascii(x,y,temp+0x30,front,back);
 007A 2E2C              mov R2,R14
 007C 3324              clr R3
 007E 3D82              std y+5,R3
 0080 2C82              std y+4,R2
 0082 CA82              std y+2,R12
 0084 805D              subi R24,208    ; addi 48
 0086 8883              std y+0,R24
 0088 262F              mov R18,R22
 008A 8A01              movw R16,R20
 008C 0E940000          xcall _Dis_Ascii
 0090                   .dbline 40
 0090           ;       x+=8;
 0090 485F              subi R20,248  ; offset = 8
 0092 5F4F              sbci R21,255
 0094                   .dbline 41
 0094           ;       Dis_Ascii(x,y,':',front,back);
 0094 2E2C              mov R2,R14
 0096 3324              clr R3
 0098 3D82              std y+5,R3
 009A 2C82              std y+4,R2
 009C CA82              std y+2,R12
 009E 8AE3              ldi R24,58
 00A0 8883              std y+0,R24
 00A2 262F              mov R18,R22
 00A4 8A01              movw R16,R20
 00A6 0E940000          xcall _Dis_Ascii
 00AA                   .dbline 42
 00AA           ;       x+=8;
 00AA 485F              subi R20,248  ; offset = 8
 00AC 5F4F              sbci R21,255
 00AE                   .dbline 43
 00AE           ;       temp = time.minute>>4;
 00AE 80910100          lds R24,_time+1
 00B2 8295              swap R24
 00B4 8F70              andi R24,#0x0F
 00B6                   .dbline 44
 00B6           ;       Dis_Ascii(x,y,temp+0x30,front,back);
 00B6 2E2C              mov R2,R14
 00B8 3324              clr R3
 00BA 3D82              std y+5,R3
 00BC 2C82              std y+4,R2
 00BE CA82              std y+2,R12
 00C0 805D              subi R24,208    ; addi 48
 00C2 8883              std y+0,R24
 00C4 262F              mov R18,R22
 00C6 8A01              movw R16,R20
 00C8 0E940000          xcall _Dis_Ascii
 00CC                   .dbline 45
 00CC           ;       x+=8;
 00CC 485F              subi R20,248  ; offset = 8
 00CE 5F4F              sbci R21,255
 00D0                   .dbline 46
 00D0           ;       temp = time.minute & 0x0f;
 00D0 80910100          lds R24,_time+1
 00D4 8F70              andi R24,15
 00D6                   .dbline 47
 00D6           ;       Dis_Ascii(x,y,temp+0x30,front,back);
 00D6 2E2C              mov R2,R14
 00D8 3324              clr R3
 00DA 3D82              std y+5,R3
 00DC 2C82              std y+4,R2
 00DE CA82              std y+2,R12
 00E0 805D              subi R24,208    ; addi 48
 00E2 8883              std y+0,R24
 00E4 262F              mov R18,R22
 00E6 8A01              movw R16,R20
 00E8 0E940000          xcall _Dis_Ascii
 00EC                   .dbline 48
 00EC           ;       x+=8;
 00EC 485F              subi R20,248  ; offset = 8
 00EE 5F4F              sbci R21,255
 00F0                   .dbline 49
 00F0           ;       Dis_Ascii(x,y,':',front,back);
 00F0 2E2C              mov R2,R14
 00F2 3324              clr R3
 00F4 3D82              std y+5,R3
 00F6 2C82              std y+4,R2
 00F8 CA82              std y+2,R12
 00FA 8AE3              ldi R24,58
 00FC 8883              std y+0,R24
 00FE 262F              mov R18,R22
 0100 8A01              movw R16,R20
 0102 0E940000          xcall _Dis_Ascii
 0106                   .dbline 50
 0106           ;       x+=8;
 0106 485F              subi R20,248  ; offset = 8
 0108 5F4F              sbci R21,255
 010A                   .dbline 51
 010A           ;       temp = time.second>>4;
 010A 80910000          lds R24,_time
 010E 8295              swap R24
 0110 8F70              andi R24,#0x0F
 0112                   .dbline 52
 0112           ;       Dis_Ascii(x,y,temp+0x30,front,back);
 0112 2E2C              mov R2,R14
 0114 3324              clr R3
 0116 3D82              std y+5,R3
 0118 2C82              std y+4,R2
 011A CA82              std y+2,R12
 011C 805D              subi R24,208    ; addi 48
 011E 8883              std y+0,R24
 0120 262F              mov R18,R22
 0122 8A01              movw R16,R20
 0124 0E940000          xcall _Dis_Ascii
 0128                   .dbline 53
 0128           ;       x+=8;
 0128 485F              subi R20,248  ; offset = 8
 012A 5F4F              sbci R21,255
 012C                   .dbline 54
 012C           ;       temp = time.second & 0x0f;
 012C 80910000          lds R24,_time
 0130 8F70              andi R24,15
 0132 A82E              mov R10,R24
 0134                   .dbline 55
 0134           ;       Dis_Ascii(x,y,temp+0x30,front,back);
 0134 2E2C              mov R2,R14
 0136 3324              clr R3
 0138 3D82              std y+5,R3
 013A 2C82              std y+4,R2
 013C CA82              std y+2,R12
 013E 805D              subi R24,208    ; addi 48
 0140 8883              std y+0,R24
 0142 262F              mov R18,R22
 0144 8A01              movw R16,R20
 0146 0E940000          xcall _Dis_Ascii
 014A                   .dbline -2
 014A           L11:
 014A 2696              adiw R28,6
 014C 0E940000          xcall pop_gset5
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbsym r temp 10 c

⌨️ 快捷键说明

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