📄 main.lis
字号:
00E2 ; {
00E2 ; unsigned char h;
00E2 ; for(h=0;h<=2;h++)
00E2 ; {
00E2 ; PTC|=1<<PTC1;
00E2 ; delay();
00E2 ; PTC|=~(1<<PTC1);
00E2 ; delay();
00E2 ; }
00E2 ;
00E2 ; }*/
00E2 ;
00E2 ;
00E2 ; //闹钟程序
00E2 ; if((time[13]==alarm[13])&&(time[12]==alarm[12])&&(time[11]==alarm[11])&&(time[10]==alarm[10])&&(time[9]==alarm[9])&&(time[8]==alarm[8])&&(Alarm_Flag==1))
00E2 B61D lda *_time+13
00E4 B10F cmp *_alarm+13
00E6 263F bne L60
00E8 B61C lda *_time+12
00EA B10E cmp *_alarm+12
00EC 2639 bne L60
00EE B61B lda *_time+11
00F0 B10D cmp *_alarm+11
00F2 2633 bne L60
00F4 B61A lda *_time+10
00F6 B10C cmp *_alarm+10
00F8 262D bne L60
00FA B619 lda *_time+9
00FC B10B cmp *_alarm+9
00FE 2627 bne L60
0100 B618 lda *_time+8
0102 B10A cmp *_alarm+8
0104 2621 bne L60
0106 B602 lda *_Alarm_Flag
0108 A101 cmp #1
010A 261B bne L60
010C ; {
010C ; //unsigned char h;
010C ; for(h=0;h<=2;h++)
010C 6F03 clr 3,X
010E 2011 bra L77
0110 L74:
0110 1202 bset #1,0x2
0112 CD0000 jsr _delay
0115 B602 lda 0x2
0117 AAFD ora #-3
0119 B702 sta 0x2
011B CD0000 jsr _delay
011E 95 tsx
011F L75:
011F 6C03 inc 3,X
0121 L77:
0121 E603 lda 3,X
0123 A102 cmp #2
0125 23E9 bls L74
0127 ; {
0127 ; PTC|=1<<PTC1;
0127 ; delay();
0127 ; PTC|=~(1<<PTC1);
0127 ; delay();
0127 ;
0127 ; }
0127 ; }
0127 L60:
0127 ;
0127 ;
0127 ; if(Key=='A') //弹出菜单
0127 B601 lda *_Key
0129 A141 cmp #65
012B 2703 beq X4
012D CC032C jmp L78
0130 X4:
0130 ; {
0130 L80:
0130 ; MENU: LcdShowMenu(); //显示菜单:1. Set Time;2. Set Alarm
0130 CD0000 jsr _LcdShowMenu
0133 95 tsx
0134 ; Key=0;
0134 3F01 clr *_Key
0136 CC0329 jmp L82
0139 L81:
0139 ; while(1)
0139 ; {
0139 ; if(Key=='B') //返回
0139 B601 lda *_Key
013B A142 cmp #66
013D 2605 bne L84
013F ; {
013F ; Key=0;
013F 3F01 clr *_Key
0141 ; goto BEGING;
0141 CC032C jmp L40
0144 L84:
0144 ; }
0144 ; if(Key=='1') //选择子菜单1
0144 B601 lda *_Key
0146 A131 cmp #49
0148 2703 beq X5
014A CC0230 jmp L86
014D X5:
014D ; {
014D ; Lcdshowtime();
014D CD0000 jsr _Lcdshowtime
0150 ; LcdShowCursor(); //开光标显示,闪烁
0150 CD0000 jsr _LcdShowCursor
0153 ; MoveCursor(1,4); //光标初始位置(1,4),第一行第四列
0153 A604 lda #4
0155 87 psha
0156 A601 lda #1
0158 87 psha
0159 CD0000 jsr _MoveCursor
015C A702 ais #2
015E 95 tsx
015F ; Key=0;
015F 3F01 clr *_Key
0161 CC022D jmp L89
0164 L88:
0164 ; while(1)
0164 ; {
0164 ;
0164 ; if(Key=='#') //光标右移
0164 B601 lda *_Key
0166 A123 cmp #35
0168 2644 bne L91
016A ; {
016A ; ++k; //K为关标右移次数
016A 3C00 inc *_k
016C ; if(l%2==0) //现在光标在第一行 l为光标所在行数
016C B601 lda *_l
016E AE02 ldx #2
0170 8C clrh
0171 52 div
0172 8B pshh
0173 86 pula
0174 95 tsx
0175 4D tsta
0176 261A bne L93
0178 ; {
0178 ; if(k>9) k=0; //光标在末端时返回到起始位置
0178 B600 lda *_k
017A A109 cmp #9
017C 2302 bls L95
017E 3F00 clr *_k
0180 L95:
0180 ; MoveCursor((1+l),(4+k));
0180 B600 lda *_k
0182 AB04 add #4
0184 87 psha
0185 B601 lda *_l
0187 AB01 add #1
0189 87 psha
018A CD0000 jsr _MoveCursor
018D A702 ais #2
018F 95 tsx
0190 ; }
0190 201A bra L94
0192 L93:
0192 ; else //现在光标在第二行
0192 ; {
0192 ; if(k>8) k=1; //现在光标在末端
0192 B600 lda *_k
0194 A108 cmp #8
0196 2304 bls L97
0198 A601 lda #1
019A B700 sta *_k
019C L97:
019C ; MoveCursor((1+l),(4+k));
019C B600 lda *_k
019E AB04 add #4
01A0 87 psha
01A1 B601 lda *_l
01A3 AB01 add #1
01A5 87 psha
01A6 CD0000 jsr _MoveCursor
01A9 A702 ais #2
01AB 95 tsx
01AC ; }
01AC L94:
01AC ; Key=0;
01AC 3F01 clr *_Key
01AE ;
01AE ; }
01AE L91:
01AE ; if(Key=='*') //光标下移
01AE B601 lda *_Key
01B0 A12A cmp #42
01B2 261C bne L99
01B4 ; {
01B4 ; ++l;
01B4 3C01 inc *_l
01B6 ; // if(k==0) k++; //现在光标在第一行始端
01B6 ; // if(k==9) k--; //现在光标在第一行末端
01B6 ; if(l>1) l=0; //现在光标在第二行
01B6 B601 lda *_l
01B8 A101 cmp #1
01BA 2302 bls L101
01BC 3F01 clr *_l
01BE L101:
01BE ; MoveCursor((1+l),(4+k));
01BE B600 lda *_k
01C0 AB04 add #4
01C2 87 psha
01C3 B601 lda *_l
01C5 AB01 add #1
01C7 87 psha
01C8 CD0000 jsr _MoveCursor
01CB A702 ais #2
01CD 95 tsx
01CE ; Key=0;
01CE 3F01 clr *_Key
01D0 ; }
01D0 L99:
01D0 ; if(Key=='B')
01D0 B601 lda *_Key
01D2 A142 cmp #66
01D4 2605 bne L103
01D6 ; {
01D6 ; Key=0;
01D6 3F01 clr *_Key
01D8 ; goto MENU; //返回
01D8 CC0130 jmp L80
01DB L103:
01DB ; }
01DB ; if(Key=='D') //按下确定键
01DB B601 lda *_Key
01DD A144 cmp #68
01DF 2605 bne L105
01E1 ; {
01E1 ; Key=0;
01E1 3F01 clr *_Key
01E3 ; goto BEGING;
01E3 CC032C jmp L40
01E6 L105:
01E6 ; }
01E6 ; if(Key!=0&&Discriminant(Key)) //Discriminant为判断是否按下数字键
01E6 B601 lda *_Key
01E8 2743 beq L107
01EA B601 lda *_Key
01EC 87 psha
01ED CD0000 jsr _Discriminant
01F0 A701 ais #1
01F2 95 tsx
01F3 B700 sta *__r1
01F5 2736 beq L107
01F7 ; {
01F7 ; Keyvalue=Key-0x30;
01F7 B601 lda *_Key
01F9 A030 sub #48
01FB E704 sta 4,X
01FD ; Transmission(Keyvalue, (unsigned char *)time,(1+l),(4+k));
01FD B600 lda *_k
01FF AB04 add #4
0201 87 psha
0202 B601 lda *_l
0204 AB01 add #1
0206 87 psha
0207 A610 lda #<_time
0209 87 psha
020A A610 lda #>_time
020C 87 psha
020D E604 lda 4,X
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -