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

📄 main.lis

📁 飞思卡尔的电子钟和电子琴的课程设计,包括源代码
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -