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

📄 lcdshow.lis

📁 基于HC908GP32的时钟程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module LCDShow.c
                        .area text
                ;              i -> 0,X
 0000           _Lcdshowtime::
 0000 A7FF              ais #-1
 0002 95                tsx
 0003           ; /*文件描述:本文件包含了用HD44780显示相关的3个子程序    *
 0003           ; *         1. LCDShow:在LCD上显示32个字符               *
 0003           ; *         2. LcdInit:初始化Lcd                         *
 0003           ; *         3. Lcd_Command:执行给定的cmd命令             *
 0003           ; *-------------《嵌入式应用技术基础教程》--------------*/
 0003           ; //[以下为子程序源代码]
 0003           ; //[头文件]
 0003           ; #include "GP32C.h"         //包含头文件
 0003           ; #define LcdData PTB        //Lcd显示数据传送口
 0003           ; #define LcdData_D  DDRB    //数据口方向寄存器
 0003           ; #define LcdCtrl PTC        //Lcd控制信号传送口
 0003           ; #define LcdCtrl_D  DDRC    //控制口方向寄存器
 0003           ; #define  LcdRS 0           //Lcd寄存器选择信号PTC0
 0003           ; #define  LcdRW 1           //读写信号接PTC1
 0003           ; #define  LcdE  2           //Lcd使能信号接PTC2
 0003           ; //内部调用子程序
 0003           ; void Lcd_Command(unsigned char cmd); //命令执行子程序
 0003           ; void LcdInit(void);                  //Lcd初始化子程序
 0003           ; void LcdshowCharacter(unsigned char str,unsigned char m,unsigned char n);
 0003           ; unsigned char ChangeASCII(unsigned char x);
 0003           ; //外部变量
 0003           ; extern unsigned char time[14];
 0003           ; extern unsigned char alarm[14];
 0003           ; 
 0003           ; void Lcdshowtime(void)             //显示日期时间子程序
 0003           ; {   unsigned char i;
 0003           ;     LcdInit();
 0003 CD0309            jsr _LcdInit
 0006 95                tsx
 0007           ;     for(i=0;i<4;i++)
 0007 7F                clr ,X
 0008 202A              bra L5
 000A           L2:
 000A 3F00              clr *__r0
 000C F6                lda ,X
 000D AB00              add #<_time
 000F B700              sta *__r1
 0011 B600              lda *__r0
 0013 A900              adc #>_time
 0015 B700              sta *__r0
 0017 5500              ldhx *__r0
 0019 F6                lda ,x
 001A 87                psha
 001B CD02F7            jsr _ChangeASCII
 001E A701              ais #1
 0020 95                tsx
 0021 B700              sta *__r1
 0023 F6                lda ,X
 0024 AB04              add #4
 0026 87                psha
 0027 A601              lda #1
 0029 87                psha
 002A B600              lda *__r1
 002C 87                psha
 002D CD02CA            jsr _LcdshowCharacter
 0030 A703              ais #3
 0032 95                tsx
 0033           L3:
 0033 7C                inc ,X
 0034           L5:
 0034 F6                lda ,X
 0035 A104              cmp #4
 0037 25D1              blo L2
 0039           ;      {
 0039           ;        LcdshowCharacter(ChangeASCII(time[i]),1,(i+4));
 0039           ;      }
 0039           ;    
 0039           ;     LcdshowCharacter('-',1,8);
 0039 A608              lda #8
 003B 87                psha
 003C A601              lda #1
 003E 87                psha
 003F A62D              lda #45
 0041 87                psha
 0042 CD02CA            jsr _LcdshowCharacter
 0045 A703              ais #3
 0047           ;     LcdshowCharacter(ChangeASCII(time[4]),1,9);
 0047 B604              lda *_time+4
 0049 87                psha
 004A CD02F7            jsr _ChangeASCII
 004D A701              ais #1
 004F B700              sta *__r1
 0051 A609              lda #9
 0053 87                psha
 0054 A601              lda #1
 0056 87                psha
 0057 B600              lda *__r1
 0059 87                psha
 005A CD02CA            jsr _LcdshowCharacter
 005D A703              ais #3
 005F           ;     LcdshowCharacter(ChangeASCII(time[5]),1,10);
 005F B605              lda *_time+5
 0061 87                psha
 0062 CD02F7            jsr _ChangeASCII
 0065 A701              ais #1
 0067 B700              sta *__r1
 0069 A60A              lda #10
 006B 87                psha
 006C A601              lda #1
 006E 87                psha
 006F B600              lda *__r1
 0071 87                psha
 0072 CD02CA            jsr _LcdshowCharacter
 0075 A703              ais #3
 0077           ;     LcdshowCharacter('-',1,11);
 0077 A60B              lda #11
 0079 87                psha
 007A A601              lda #1
 007C 87                psha
 007D A62D              lda #45
 007F 87                psha
 0080 CD02CA            jsr _LcdshowCharacter
 0083 A703              ais #3
 0085           ;     LcdshowCharacter(ChangeASCII(time[6]),1,12);
 0085 B606              lda *_time+6
 0087 87                psha
 0088 CD02F7            jsr _ChangeASCII
 008B A701              ais #1
 008D B700              sta *__r1
 008F A60C              lda #12
 0091 87                psha
 0092 A601              lda #1
 0094 87                psha
 0095 B600              lda *__r1
 0097 87                psha
 0098 CD02CA            jsr _LcdshowCharacter
 009B A703              ais #3
 009D           ;     LcdshowCharacter(ChangeASCII(time[7]),1,13);
 009D B607              lda *_time+7
 009F 87                psha
 00A0 CD02F7            jsr _ChangeASCII
 00A3 A701              ais #1
 00A5 B700              sta *__r1
 00A7 A60D              lda #13
 00A9 87                psha
 00AA A601              lda #1
 00AC 87                psha
 00AD B600              lda *__r1
 00AF 87                psha
 00B0 CD02CA            jsr _LcdshowCharacter
 00B3 A703              ais #3
 00B5           ;     LcdshowCharacter(ChangeASCII(time[8]),2,5);
 00B5 B608              lda *_time+8
 00B7 87                psha
 00B8 CD02F7            jsr _ChangeASCII
 00BB A701              ais #1
 00BD B700              sta *__r1
 00BF A605              lda #5
 00C1 87                psha
 00C2 A602              lda #2
 00C4 87                psha
 00C5 B600              lda *__r1
 00C7 87                psha
 00C8 CD02CA            jsr _LcdshowCharacter
 00CB A703              ais #3
 00CD           ;     LcdshowCharacter(ChangeASCII(time[9]),2,6);
 00CD B609              lda *_time+9
 00CF 87                psha
 00D0 CD02F7            jsr _ChangeASCII
 00D3 A701              ais #1
 00D5 B700              sta *__r1
 00D7 A606              lda #6
 00D9 87                psha
 00DA A602              lda #2
 00DC 87                psha
 00DD B600              lda *__r1
 00DF 87                psha
 00E0 CD02CA            jsr _LcdshowCharacter
 00E3 A703              ais #3
 00E5           ;     LcdshowCharacter(':',2,7);
 00E5 A607              lda #7
 00E7 87                psha
 00E8 A602              lda #2
 00EA 87                psha
 00EB A63A              lda #58
 00ED 87                psha
 00EE CD02CA            jsr _LcdshowCharacter
 00F1 A703              ais #3
 00F3           ;     LcdshowCharacter(ChangeASCII(time[10]),2,8);
 00F3 B60A              lda *_time+10
 00F5 87                psha
 00F6 CD02F7            jsr _ChangeASCII
 00F9 A701              ais #1
 00FB B700              sta *__r1
 00FD A608              lda #8
 00FF 87                psha
 0100 A602              lda #2
 0102 87                psha
 0103 B600              lda *__r1
 0105 87                psha
 0106 CD02CA            jsr _LcdshowCharacter
 0109 A703              ais #3
 010B           ;     LcdshowCharacter(ChangeASCII(time[11]),2,9);
 010B B60B              lda *_time+11
 010D 87                psha
 010E CD02F7            jsr _ChangeASCII
 0111 A701              ais #1
 0113 B700              sta *__r1
 0115 A609              lda #9
 0117 87                psha
 0118 A602              lda #2
 011A 87                psha
 011B B600              lda *__r1
 011D 87                psha
 011E CD02CA            jsr _LcdshowCharacter
 0121 A703              ais #3
 0123           ;     LcdshowCharacter(':',2,10);
 0123 A60A              lda #10
 0125 87                psha
 0126 A602              lda #2
 0128 87                psha
 0129 A63A              lda #58
 012B 87                psha
 012C CD02CA            jsr _LcdshowCharacter
 012F A703              ais #3
 0131           ;     LcdshowCharacter(ChangeASCII(time[12]),2,11);
 0131 B60C              lda *_time+12
 0133 87                psha
 0134 CD02F7            jsr _ChangeASCII
 0137 A701              ais #1
 0139 B700              sta *__r1
 013B A60B              lda #11
 013D 87                psha
 013E A602              lda #2
 0140 87                psha
 0141 B600              lda *__r1
 0143 87                psha
 0144 CD02CA            jsr _LcdshowCharacter
 0147 A703              ais #3
 0149           ;     LcdshowCharacter(ChangeASCII(time[13]),2,12); 
 0149 B60D              lda *_time+13
 014B 87                psha
 014C CD02F7            jsr _ChangeASCII
 014F A701              ais #1
 0151 B700              sta *__r1
 0153 A60C              lda #12
 0155 87                psha
 0156 A602              lda #2
 0158 87                psha
 0159 B600              lda *__r1
 015B 87                psha
 015C CD02CA            jsr _LcdshowCharacter
 015F A703              ais #3
 0161 95                tsx
 0162           L1:
 0162 A701              ais #1
 0164                   .dbline 0 ; func end
 0164 81                rts
 0165           ;              i -> 0,X
 0165           _Lcdshowalarm::
 0165 A7FF              ais #-1
 0167 95                tsx
 0168           ;      
 0168           ; }
 0168           ; 
 0168           ; void Lcdshowalarm(void)             //显示日期时间子程序
 0168           ; {   unsigned char i;
 0168           ;     LcdInit();
 0168 CD0309            jsr _LcdInit
 016B 95                tsx
 016C           ;     for(i=0;i<4;i++)
 016C 7F                clr ,X
 016D 202A              bra L20
 016F           L17:
 016F 3F00              clr *__r0
 0171 F6                lda ,X
 0172 AB00              add #<_alarm
 0174 B700              sta *__r1
 0176 B600              lda *__r0
 0178 A900              adc #>_alarm
 017A B700              sta *__r0
 017C 5500              ldhx *__r0
 017E F6                lda ,x
 017F 87                psha
 0180 CD02F7            jsr _ChangeASCII
 0183 A701              ais #1
 0185 95                tsx
 0186 B700              sta *__r1
 0188 F6                lda ,X
 0189 AB04              add #4
 018B 87                psha
 018C A601              lda #1
 018E 87                psha
 018F B600              lda *__r1
 0191 87                psha
 0192 CD02CA            jsr _LcdshowCharacter
 0195 A703              ais #3
 0197 95                tsx
 0198           L18:
 0198 7C                inc ,X
 0199           L20:
 0199 F6                lda ,X
 019A A104              cmp #4
 019C 25D1              blo L17
 019E           ;      {
 019E           ;        LcdshowCharacter(ChangeASCII(alarm[i]),1,(i+4));
 019E           ;      }
 019E           ;    
 019E           ;     LcdshowCharacter('-',1,8);
 019E A608              lda #8
 01A0 87                psha
 01A1 A601              lda #1
 01A3 87                psha
 01A4 A62D              lda #45
 01A6 87                psha
 01A7 CD02CA            jsr _LcdshowCharacter
 01AA A703              ais #3
 01AC           ;     LcdshowCharacter(ChangeASCII(alarm[4]),1,9);
 01AC B604              lda *_alarm+4
 01AE 87                psha
 01AF CD02F7            jsr _ChangeASCII
 01B2 A701              ais #1
 01B4 B700              sta *__r1
 01B6 A609              lda #9
 01B8 87                psha
 01B9 A601              lda #1
 01BB 87                psha
 01BC B600              lda *__r1
 01BE 87                psha
 01BF CD02CA            jsr _LcdshowCharacter
 01C2 A703              ais #3
 01C4           ;     LcdshowCharacter(ChangeASCII(alarm[5]),1,10);
 01C4 B605              lda *_alarm+5
 01C6 87                psha
 01C7 CD02F7            jsr _ChangeASCII
 01CA A701              ais #1
 01CC B700              sta *__r1
 01CE A60A              lda #10
 01D0 87                psha
 01D1 A601              lda #1
 01D3 87                psha
 01D4 B600              lda *__r1
 01D6 87                psha
 01D7 CD02CA            jsr _LcdshowCharacter
 01DA A703              ais #3
 01DC           ;     LcdshowCharacter('-',1,11);
 01DC A60B              lda #11
 01DE 87                psha
 01DF A601              lda #1
 01E1 87                psha
 01E2 A62D              lda #45
 01E4 87                psha
 01E5 CD02CA            jsr _LcdshowCharacter
 01E8 A703              ais #3
 01EA           ;     LcdshowCharacter(ChangeASCII(alarm[6]),1,12);
 01EA B606              lda *_alarm+6
 01EC 87                psha
 01ED CD02F7            jsr _ChangeASCII
 01F0 A701              ais #1
 01F2 B700              sta *__r1
 01F4 A60C              lda #12
 01F6 87                psha
 01F7 A601              lda #1
 01F9 87                psha
 01FA B600              lda *__r1
 01FC 87                psha
 01FD CD02CA            jsr _LcdshowCharacter
 0200 A703              ais #3
 0202           ;     LcdshowCharacter(ChangeASCII(alarm[7]),1,13);
 0202 B607              lda *_alarm+7
 0204 87                psha
 0205 CD02F7            jsr _ChangeASCII
 0208 A701              ais #1
 020A B700              sta *__r1
 020C A60D              lda #13
 020E 87                psha
 020F A601              lda #1
 0211 87                psha
 0212 B600              lda *__r1
 0214 87                psha
 0215 CD02CA            jsr _LcdshowCharacter
 0218 A703              ais #3
 021A           ;     LcdshowCharacter(ChangeASCII(alarm[8]),2,5);
 021A B608              lda *_alarm+8
 021C 87                psha
 021D CD02F7            jsr _ChangeASCII
 0220 A701              ais #1
 0222 B700              sta *__r1
 0224 A605              lda #5
 0226 87                psha
 0227 A602              lda #2
 0229 87                psha
 022A B600              lda *__r1
 022C 87                psha
 022D CD02CA            jsr _LcdshowCharacter
 0230 A703              ais #3
 0232           ;     LcdshowCharacter(ChangeASCII(alarm[9]),2,6);
 0232 B609              lda *_alarm+9
 0234 87                psha

⌨️ 快捷键说明

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