📄 main.lis
字号:
076E L182:
076E 3F00 clr *__r0
0770 F6 lda ,X
0771 AB0F add #<_timertem
0773 B700 sta *__r1
0775 B600 lda *__r0
0777 A90F adc #>_timertem
0779 B700 sta *__r0
077B 5500 ldhx *__r0
077D F6 lda ,x
077E B700 sta *__r1
0780 B61E lda *_timer+1
0782 AE0A ldx #10
0784 42 mul
0785 95 tsx
0786 BB00 add *__r1
0788 B71E sta *_timer+1
078A L183:
078A 7C inc ,X
078B L185:
078B ; timer[0]=timer[0]*10+timertem[i];
078B ; }
078B ; for(;i<4;i++){
078B F6 lda ,X
078C A104 cmp #4
078E 25DE blo L182
0790 ; timer[1]=timer[1]*10+timertem[i];
0790 ; }
0790 ; }
0790 L174:
0790 ; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,写指令
0790 1102 bclr #0,0x2
0792 ; LcdCtrl&=~(1<<LcdRW);
0792 1302 bclr #1,0x2
0794 ; Lcd_Command(0b00001100); //开显示,关光标显示,不闪烁
0794 A60C lda #12
0796 87 psha
0797 CD0000 jsr _Lcd_Command
079A A701 ais #1
079C 95 tsx
079D ; showtime=0x01; //开时间显示
079D A601 lda #1
079F B702 sta *_showtime
07A1 L147:
07A1 A701 ais #1
07A3 .dbline 0 ; func end
07A3 81 rts
07A4 ; j -> 0,X
07A4 ; u -> 1,X
07A4 ; i -> 4,X
07A4 _Delay_ms::
07A4 A7FE ais #-2
07A6 95 tsx
07A7 ; }
07A7 ;
07A7 ; void Delay_ms(unsigned char i)
07A7 ; { unsigned char j;
07A7 ; unsigned char u;
07A7 ; for(j=0;j<i;j++)
07A7 7F clr ,X
07A8 200D bra L192
07AA L189:
07AA 6F01 clr 1,X
07AC 2002 bra L196
07AE L193:
07AE L194:
07AE 6C01 inc 1,X
07B0 L196:
07B0 E601 lda 1,X
07B2 A1FA cmp #-6
07B4 23F8 bls L193
07B6 L190:
07B6 7C inc ,X
07B7 L192:
07B7 F6 lda ,X
07B8 E104 cmp 4,X
07BA 25EE blo L189
07BC L188:
07BC A702 ais #2
07BE .dbline 0 ; func end
07BE 81 rts
07BF ; j -> 0,X
07BF ; p -> 3,X
07BF _beep::
07BF A7FF ais #-1
07C1 95 tsx
07C2 ; for(u=0;u<=250;u++) ;
07C2 ; }
07C2 ;
07C2 ;
07C2 ; void beep(unsigned char p){ //锋鸣器启动,时间持续p秒
07C2 7F clr ,X
07C3 2026 bra L201
07C5 L198:
07C5 ; unsigned char j;
07C5 ; for(j=0;j<p;j++){//延时p秒
07C5 ; PTD=1;
07C5 A601 lda #1
07C7 B703 sta 0x3
07C9 ; Delay_ms(50);
07C9 A632 lda #50
07CB 87 psha
07CC CD07A4 jsr _Delay_ms
07CF A701 ais #1
07D1 ; PTD=0;
07D1 3F03 clr 0x3
07D3 ; Delay_ms(200);
07D3 A6C8 lda #-56
07D5 87 psha
07D6 CD07A4 jsr _Delay_ms
07D9 A701 ais #1
07DB ; Delay_ms(200);
07DB A6C8 lda #-56
07DD 87 psha
07DE CD07A4 jsr _Delay_ms
07E1 A701 ais #1
07E3 95 tsx
07E4 ; if(istimer==0)break; //如果关闹钟则退出延时
07E4 B601 lda *_istimer
07E6 2602 bne L202
07E8 2006 bra L200
07EA L202:
07EA L199:
07EA 7C inc ,X
07EB L201:
07EB F6 lda ,X
07EC E103 cmp 3,X
07EE 25D5 blo L198
07F0 L200:
07F0 L197:
07F0 A701 ais #1
07F2 .dbline 0 ; func end
07F2 81 rts
07F3 ; data -> 2,X
07F3 ; KB_valve -> 5,X
07F3 _input::
07F3 A7FD ais #-3
07F5 95 tsx
07F6 ; }
07F6 ; }
07F6 ;
07F6 ; void input(KB_valve){ //数字输入
07F6 ; if(showtime==0x00){
07F6 B602 lda *_showtime
07F8 2703 beq X26
07FA CC0BAF jmp L205
07FD X26:
07FD ; unsigned char data;
07FD ; if(issettime==0x01){ //若是时间设置
07FD B600 lda *_issettime
07FF A101 cmp #1
0801 2703 beq X27
0803 CC0ABD jmp L207
0806 X27:
0806 ; LcdCtrl&=~(1<<LcdRS); //RS、R/W=01,读指令
0806 1102 bclr #0,0x2
0808 ; LcdCtrl|=(1<<LcdRW);
0808 1202 bset #1,0x2
080A ; LcdCtrl|=(1<<LcdE); //E=1
080A 1402 bset #2,0x2
080C ; data=LcdData; //获取AC的值
080C B601 lda 0x1
080E E702 sta 2,X
0810 ; data&=0b01111111;
0810 A47F and #127
0812 E702 sta 2,X
0814 ; switch(data){ //按AC值不同分别赋给不同的时间临时单元
0814 7F clr ,X
0815 E701 sta 1,X
0817 F6 lda ,X
0818 2607 bne X8
081A E601 lda 1,X
081C 2603 bne X28
081E CC08BA jmp L212
0821 X28:
0821 X8:
0821 F6 lda ,X
0822 2609 bne X9
0824 E601 lda 1,X
0826 A101 cmp #1
0828 2603 bne X29
082A CC08D6 jmp L213
082D X29:
082D X9:
082D F6 lda ,X
082E 2609 bne X10
0830 E601 lda 1,X
0832 A102 cmp #2
0834 2603 bne X30
0836 CC08F2 jmp L215
0839 X30:
0839 X10:
0839 F6 lda ,X
083A 2609 bne X11
083C E601 lda 1,X
083E A103 cmp #3
0840 2603 bne X31
0842 CC090E jmp L217
0845 X31:
0845 X11:
0845 F6 lda ,X
0846 2609 bne X12
0848 E601 lda 1,X
084A A105 cmp #5
084C 2603 bne X32
084E CC092A jmp L219
0851 X32:
0851 X12:
0851 F6 lda ,X
0852 2609 bne X13
0854 E601 lda 1,X
0856 A106 cmp #6
0858 2603 bne X33
085A CC095D jmp L223
085D X33:
085D X13:
085D F6 lda ,X
085E 2609 bne X14
0860 E601 lda 1,X
0862 A108 cmp #8
0864 2603 bne X34
0866 CC0996 jmp L228
0869 X34:
0869 X14:
0869 F6 lda ,X
086A 2609 bne X15
086C E601 lda 1,X
086E A109 cmp #9
0870 2603 bne X35
0872 CC09C9 jmp L232
0875 X35:
0875 X15:
0875 E601 lda 1,X
0877 B700 sta *__r1
0879 F6 lda ,X
087A B700 sta *__r0
087C 5500 ldhx *__r0
087E 650000 cphx #0
0881 95 tsx
0882 9003 bge X36
0884 CC0BAF jmp L208
0887 X36:
0887 L250:
0887 F6 lda ,X
0888 2609 bne X16
088A E601 lda 1,X
088C A140 cmp #64
088E 2603 bne X37
0890 CC0A02 jmp L237
0893 X37:
0893 X16:
0893 F6 lda ,X
0894 2609 bne X17
0896 E601 lda 1,X
0898 A141 cmp #65
089A 2603 bne X38
089C CC0A35 jmp L240
089F X38:
089F X17:
089F F6 lda ,X
08A0 2609 bne X18
08A2 E601 lda 1,X
08A4 A143 cmp #67
08A6 2603 bne X39
08A8 CC0A6E jmp L244
08AB X39:
08AB X18:
08AB F6 lda ,X
08AC 2609 bne X19
08AE E601 lda 1,X
08B0 A144 cmp #68
08B2 2603 bne X40
08B4 CC0AA1 jmp L248
08B7 X40:
08B7 X19:
08B7 CC0BAF jmp L208
08BA X20:
08BA L212:
08BA ; case 0x00:
08BA ; datetem[0]=KB_valve-0x30;
08BA E606 lda 6,X
08BC A030 sub #48
08BE B700 sta *__r1
08C0 E605 lda 5,X
08C2 A200 sbc #0
08C4 4E0003 mov *__r1,*_datetem
08C7 ; lcdshow1(KB_valve,data);
08C7 E602 lda 2,X
08C9 87 psha
08CA E606 lda 6,X
08CC 87 psha
08CD CD0000 jsr _lcdshow1
08D0 A702 ais #2
08D2 95 tsx
08D3 ; break;
08D3 CC0BAF jmp L208
08D6 L213:
08D6 ; case 0x01:
08D6 ; datetem[1]=KB_valve-0x30;
08D6 E606 lda 6,X
08D8 A030 sub #48
08DA B700 sta *__r1
08DC E605 lda 5,X
08DE A200 sbc #0
08E0 4E0004 mov *__r1,*_datetem+1
08E3 ; lcdshow1(KB_valve,data);
08E3 E602 lda 2,X
08E5 87 psha
08E6 E606 lda 6,X
08E8 87 psha
08E9 CD0000 jsr _lcdshow1
08EC A702 ais #2
08EE 95 tsx
08EF ; break;
08EF CC0BAF jmp L208
08F2 L215:
08F2 ; case 0x02:
08F2 ; datetem[2]=KB_valve-0x30;
08F2 E606 lda 6,X
08F4 A030 sub #48
08F6 B700 sta *__r1
08F8 E605 lda 5,X
08FA A200 sbc #0
08FC 4E0005 mov *__r1,*_datetem+2
08FF ; lcdshow1(KB_valve,data);
08FF E602 lda 2,X
0901 87 psha
0902 E606 lda 6,X
0904 87 psha
0905 CD0000 jsr _lcdshow1
0908 A702 ais #2
090A 95 tsx
090B ; break;
090B CC0BAF jmp L208
090E L217:
090E ; case 0x03:
090E ; datetem[3]=KB_valve-0x30;
090E E606 lda 6,X
0910 A030 sub #48
0912 B700 sta *__r1
0914 E605 lda 5,X
0916 A200 sbc #0
0918 4E0006 mov *__r1,*_datetem+3
091B ; lcdshow1(KB_valve,data);
091B E602 lda 2,X
091D 87 psha
091E E606 lda 6,X
0920 87 psha
0921 CD0000 jsr _lcdshow1
0924 A702 ais #2
0926 95 tsx
0927 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -