📄 jianpan.lis
字号:
.module jianpan.c
.area text
; alart -> 6,X
; data -> 4,X
; time -> 2,X
0000 _sys_init::
0000 95 tsx
0001 ; /******这里设置程序初始化时显示的时间****************/
0001 ; extern unsigned char time[3],alart[2],time_clock[3];//存放时、分、秒
0001 ; extern unsigned int data[3]; //年、月、日
0001 ; unsigned char clockn[2];
0001 ; extern unsigned char clockstr[8]; /*时间显示的LCD显示*/
0001 ; extern unsigned char alartstr[5]; /*闹钟显示的LCD显示*/
0001 ; extern unsigned char datestr[10]; /*日期显示LCD显示*/
0001 ; unsigned char naozhong,KB_valve;
0001 ;
0001 ;
0001 ; /****************以下是所有子函数的声明*********************/
0001 ; extern void LcdInit(void); //显示的初始化
0001 ; extern void lcdshow1(unsigned char x,unsigned char y,unsigned char data);
0001 ; extern void lcdshow2(unsigned char str[]);
0001 ; extern void sys_init(unsigned char time[],unsigned int data[],unsigned char alart[] ); /*系统的初始化程序*/
0001 ; unsigned char getmonthdays(unsigned int,unsigned char);/*计算某月的天数子程序*/
0001 ; extern void guangbiao(unsigned char x,unsigned char y);
0001 ; /**************************函数部分*************************/
0001 ;
0001 ; void sys_init(unsigned char time[],unsigned int data[],unsigned char alart[] )
0001 ; {
0001 ; datestr[7]=data[0]%10+0x30; //日期
0001 E604 lda 4,X
0003 EE05 ldx 5,X
0005 87 psha
0006 8A pulh
0007 E601 lda 1,x
0009 B700 sta *__r1
000B F6 lda ,x
000C 95 tsx
000D B700 sta *__r0
000F 4E0000 mov *__r1,*__rlo
0012 4E0000 mov *__r0,*__rhi
0015 A60A lda #10
0017 87 psha
0018 4F clra
0019 87 psha
001A CD0000 jsr __divmod16u
001D 86 pula
001E B700 sta *__r0
0020 86 pula
0021 AB30 add #48
0023 B700 sta *__r1
0025 B600 lda *__r0
0027 A900 adc #0
0029 4E0007 mov *__r1,*_datestr+7
002C ; datestr[6]=(data[0]/10)+0x30;
002C E604 lda 4,X
002E EE05 ldx 5,X
0030 87 psha
0031 8A pulh
0032 E601 lda 1,x
0034 B700 sta *__r1
0036 F6 lda ,x
0037 95 tsx
0038 B700 sta *__r0
003A 4E0000 mov *__r1,*__rlo
003D 4E0000 mov *__r0,*__rhi
0040 A60A lda #10
0042 87 psha
0043 4F clra
0044 87 psha
0045 CD0000 jsr __divmod16u
0048 A702 ais #2
004A 4E0000 mov *__rhi,*__r0
004D 4E0000 mov *__rlo,*__r1
0050 B600 lda *__r1
0052 AB30 add #48
0054 B700 sta *__r1
0056 B600 lda *__r0
0058 A900 adc #0
005A 4E0006 mov *__r1,*_datestr+6
005D ; datestr[5]=data[1]%10+0x30;
005D E605 lda 5,X
005F AB02 add #2
0061 B700 sta *__r1
0063 E604 lda 4,X
0065 A900 adc #0
0067 B700 sta *__r0
0069 5500 ldhx *__r0
006B E601 lda 1,x
006D B700 sta *__r1
006F F6 lda ,x
0070 95 tsx
0071 B700 sta *__r0
0073 4E0000 mov *__r1,*__rlo
0076 4E0000 mov *__r0,*__rhi
0079 A60A lda #10
007B 87 psha
007C 4F clra
007D 87 psha
007E CD0000 jsr __divmod16u
0081 86 pula
0082 B700 sta *__r0
0084 86 pula
0085 AB30 add #48
0087 B700 sta *__r1
0089 B600 lda *__r0
008B A900 adc #0
008D 4E0005 mov *__r1,*_datestr+5
0090 ; datestr[4]=(data[1]/10)+0x30;
0090 E605 lda 5,X
0092 AB02 add #2
0094 B700 sta *__r1
0096 E604 lda 4,X
0098 A900 adc #0
009A B700 sta *__r0
009C 5500 ldhx *__r0
009E E601 lda 1,x
00A0 B700 sta *__r1
00A2 F6 lda ,x
00A3 95 tsx
00A4 B700 sta *__r0
00A6 4E0000 mov *__r1,*__rlo
00A9 4E0000 mov *__r0,*__rhi
00AC A60A lda #10
00AE 87 psha
00AF 4F clra
00B0 87 psha
00B1 CD0000 jsr __divmod16u
00B4 A702 ais #2
00B6 4E0000 mov *__rhi,*__r0
00B9 4E0000 mov *__rlo,*__r1
00BC B600 lda *__r1
00BE AB30 add #48
00C0 B700 sta *__r1
00C2 B600 lda *__r0
00C4 A900 adc #0
00C6 4E0004 mov *__r1,*_datestr+4
00C9 ; datestr[3]=data[2]%10+0x30;
00C9 E605 lda 5,X
00CB AB04 add #4
00CD B700 sta *__r1
00CF E604 lda 4,X
00D1 A900 adc #0
00D3 B700 sta *__r0
00D5 5500 ldhx *__r0
00D7 E601 lda 1,x
00D9 B700 sta *__r1
00DB F6 lda ,x
00DC 95 tsx
00DD B700 sta *__r0
00DF 4E0000 mov *__r1,*__rlo
00E2 4E0000 mov *__r0,*__rhi
00E5 A60A lda #10
00E7 87 psha
00E8 4F clra
00E9 87 psha
00EA CD0000 jsr __divmod16u
00ED 86 pula
00EE B700 sta *__r0
00F0 86 pula
00F1 AB30 add #48
00F3 B700 sta *__r1
00F5 B600 lda *__r0
00F7 A900 adc #0
00F9 4E0003 mov *__r1,*_datestr+3
00FC ; datestr[2]=((data[2]/10))%10+0x30;
00FC E605 lda 5,X
00FE AB04 add #4
0100 B700 sta *__r1
0102 E604 lda 4,X
0104 A900 adc #0
0106 B700 sta *__r0
0108 5500 ldhx *__r0
010A E601 lda 1,x
010C B700 sta *__r1
010E F6 lda ,x
010F 95 tsx
0110 B700 sta *__r0
0112 4E0000 mov *__r1,*__rlo
0115 4E0000 mov *__r0,*__rhi
0118 A60A lda #10
011A 87 psha
011B 4F clra
011C 87 psha
011D CD0000 jsr __divmod16u
0120 A702 ais #2
0122 4E0000 mov *__rhi,*__r0
0125 4E0000 mov *__rlo,*__r1
0128 4E0000 mov *__r1,*__rlo
012B 4E0000 mov *__r0,*__rhi
012E A60A lda #10
0130 87 psha
0131 4F clra
0132 87 psha
0133 CD0000 jsr __divmod16u
0136 86 pula
0137 B700 sta *__r0
0139 86 pula
013A AB30 add #48
013C B700 sta *__r1
013E B600 lda *__r0
0140 A900 adc #0
0142 4E0002 mov *__r1,*_datestr+2
0145 ; datestr[1]=((data[2]/100))%10+0x30;
0145 E605 lda 5,X
0147 AB04 add #4
0149 B700 sta *__r1
014B E604 lda 4,X
014D A900 adc #0
014F B700 sta *__r0
0151 5500 ldhx *__r0
0153 E601 lda 1,x
0155 B700 sta *__r1
0157 F6 lda ,x
0158 95 tsx
0159 B700 sta *__r0
015B 4E0000 mov *__r1,*__rlo
015E 4E0000 mov *__r0,*__rhi
0161 A664 lda #100
0163 87 psha
0164 4F clra
0165 87 psha
0166 CD0000 jsr __divmod16u
0169 A702 ais #2
016B 4E0000 mov *__rhi,*__r0
016E 4E0000 mov *__rlo,*__r1
0171 4E0000 mov *__r1,*__rlo
0174 4E0000 mov *__r0,*__rhi
0177 A60A lda #10
0179 87 psha
017A 4F clra
017B 87 psha
017C CD0000 jsr __divmod16u
017F 86 pula
0180 B700 sta *__r0
0182 86 pula
0183 AB30 add #48
0185 B700 sta *__r1
0187 B600 lda *__r0
0189 A900 adc #0
018B 4E0001 mov *__r1,*_datestr+1
018E ; datestr[0]=(data[2]/1000)+0x30;
018E E605 lda 5,X
0190 AB04 add #4
0192 B700 sta *__r1
0194 E604 lda 4,X
0196 A900 adc #0
0198 B700 sta *__r0
019A 5500 ldhx *__r0
019C E601 lda 1,x
019E B700 sta *__r1
01A0 F6 lda ,x
01A1 95 tsx
01A2 B700 sta *__r0
01A4 4E0000 mov *__r1,*__rlo
01A7 4E0000 mov *__r0,*__rhi
01AA A6E8 lda #-24
01AC 87 psha
01AD A603 lda #3
01AF 87 psha
01B0 CD0000 jsr __divmod16u
01B3 A702 ais #2
01B5 4E0000 mov *__rhi,*__r0
01B8 4E0000 mov *__rlo,*__r1
01BB B600 lda *__r1
01BD AB30 add #48
01BF B700 sta *__r1
01C1 B600 lda *__r0
01C3 A900 adc #0
01C5 4E0000 mov *__r1,*_datestr
01C8 ; /*给元素0赋相应数码管显示编码,编码序号是秒数的个位*/
01C8 ; clockstr[5]=time[0]%10+0x30;
01C8 E602 lda 2,X
01CA EE03 ldx 3,X
01CC 87 psha
01CD 8A pulh
01CE F6 lda ,x
01CF AE0A ldx #10
01D1 8C clrh
01D2 52 div
01D3 8B pshh
01D4 86 pula
01D5 95 tsx
01D6 AB30 add #48
01D8 B705 sta *_clockstr+5
01DA ; clockstr[4]=(time[0]/10)+0x30; /*给元素1赋相应数码管显示编码,编码序号是秒数的十位*/
01DA E602 lda 2,X
01DC EE03 ldx 3,X
01DE 87 psha
01DF 8A pulh
01E0 F6 lda ,x
01E1 AE0A ldx #10
01E3 8C clrh
01E4 52 div
01E5 95 tsx
01E6 AB30 add #48
01E8 B704 sta *_clockstr+4
01EA ; clockstr[3]=time[1]%10+0x30; /*以下类推*/
01EA E603 lda 3,X
01EC AB01 add #1
01EE B700 sta *__r1
01F0 E602 lda 2,X
01F2 A900 adc #0
01F4 B700 sta *__r0
01F6 5500 ldhx *__r0
01F8 F6 lda ,x
01F9 AE0A ldx #10
01FB 8C clrh
01FC 52 div
01FD 8B pshh
01FE 86 pula
01FF 95 tsx
0200 AB30 add #48
0202 B703 sta *_clockstr+3
0204 ; clockstr[2]=(time[1]/10)+0x30;
0204 E603 lda 3,X
0206 AB01 add #1
0208 B700 sta *__r1
020A E602 lda 2,X
020C A900 adc #0
020E B700 sta *__r0
0210 5500 ldhx *__r0
0212 F6 lda ,x
0213 AE0A ldx #10
0215 8C clrh
0216 52 div
0217 95 tsx
0218 AB30 add #48
021A B702 sta *_clockstr+2
021C ; clockstr[1]=time[2]%10+0x30;
021C E603 lda 3,X
021E AB02 add #2
0220 B700 sta *__r1
0222 E602 lda 2,X
0224 A900 adc #0
0226 B700 sta *__r0
0228 5500 ldhx *__r0
022A F6 lda ,x
022B AE0A ldx #10
022D 8C clrh
022E 52 div
022F 8B pshh
0230 86 pula
0231 95 tsx
0232 AB30 add #48
0234 B701 sta *_clockstr+1
0236 ; clockstr[0]=(time[2]/10)+0x30;
0236 E603 lda 3,X
0238 AB02 add #2
023A B700 sta *__r1
023C E602 lda 2,X
023E A900 adc #0
0240 B700 sta *__r0
0242 5500 ldhx *__r0
0244 F6 lda ,x
0245 AE0A ldx #10
0247 8C clrh
0248 52 div
0249 95 tsx
024A AB30 add #48
024C B700 sta *_clockstr
024E ;
024E ; alartstr[3]=alart[0]%10+0x30; //设置闹钟
024E E606 lda 6,X
0250 EE07 ldx 7,X
0252 87 psha
0253 8A pulh
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -