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

📄 main.lis

📁 摩托罗拉的时钟的原代码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0154           ;              Ttime[0]==Ttime2[0]&&Ttime[1]==Ttime2[1]&&Ttime[2]==Ttime2[2])
 0154           ;            {  for(t=0;t<15;t++)             //闹钟
 0154 6F3A              clr 58,X
 0156 200D              bra L47
 0158           L44:
 0158 1200              bset #1,0
 015A CD0000            jsr _Delay
 015D 1300              bclr #1,0
 015F CD0000            jsr _Delay
 0162 95                tsx
 0163           L45:
 0163 6C3A              inc 58,X
 0165           L47:
 0165 E63A              lda 58,X
 0167 A10F              cmp #15
 0169 25ED              blo L44
 016B           ;                { Light_P|=1<<Light_Pin;    //蜂鸣器“鸣”
 016B           ;                Delay();   //延时      
 016B           ;                  Light_P&=~(1<<Light_Pin); //蜂鸣器“停”
 016B           ;                Delay();   //延时
 016B           ;                }
 016B           ;            }
 016B           L34:
 016B           ; 	  if(Key=='A')   //弹出菜单
 016B B603              lda *_Key
 016D A141              cmp #65
 016F 2703              beq X4
 0171 CC043B            jmp L48
 0174           X4:
 0174           ; 	     { 
 0174           L50:
 0174           ; MENU:	   LcdShowString((unsigned char *)str1,11,1);   //显示菜单:1. Set Time;
 0174 A601              lda #1
 0176 87                psha
 0177 A60B              lda #11
 0179 87                psha
 017A AF0D              aix #13
 017C 89                pshx
 017D 8B                pshh
 017E CD0000            jsr _LcdShowString
 0181 A704              ais #4
 0183 95                tsx
 0184           ;            LcdShowString((unsigned char *)str2,12,2);   //         2. Set Alarm
 0184 A602              lda #2
 0186 87                psha
 0187 A60C              lda #12
 0189 87                psha
 018A 89                pshx
 018B 8B                pshh
 018C CD0000            jsr _LcdShowString
 018F A704              ais #4
 0191 95                tsx
 0192           ;              Key=0;
 0192 3F03              clr *_Key
 0194 CC0438            jmp L52
 0197           L51:
 0197           ; 	       while(1)
 0197           ; 	       { if(Key=='B')     //返回
 0197 B603              lda *_Key
 0199 A142              cmp #66
 019B 2605              bne L54
 019D           ;                { Key=0;
 019D 3F03              clr *_Key
 019F           ;                  goto BEGING;
 019F CC043B            jmp L18
 01A2           L54:
 01A2           ;                }
 01A2           ; 	         if(Key=='1')    //选择子菜单1
 01A2 B603              lda *_Key
 01A4 A131              cmp #49
 01A6 2703              beq X5
 01A8 CC02D0            jmp L56
 01AB           X5:
 01AB           ; 	           { Lcdshow((unsigned char *)time);
 01AB A624              lda #<_time
 01AD 87                psha
 01AE A624              lda #>_time
 01B0 87                psha
 01B1 CD0000            jsr _Lcdshow
 01B4 A702              ais #2
 01B6           ;                    LcdShowCursor(1,4);     //光标初始位置(1,4),第一行第四列
 01B6 A604              lda #4
 01B8 87                psha
 01B9 A601              lda #1
 01BB 87                psha
 01BC CD0000            jsr _LcdShowCursor
 01BF A702              ais #2
 01C1 95                tsx
 01C2           ;                    k=1;l=1;
 01C2 A601              lda #1
 01C4 B702              sta *_k
 01C6 A601              lda #1
 01C8 B701              sta *_l
 01CA           ;                    Key=0;
 01CA 3F03              clr *_Key
 01CC CC02CD            jmp L59
 01CF           L58:
 01CF           ; 	             while(1)
 01CF           ; 	              { if(Key=='#')         //光标右移
 01CF B603              lda *_Key
 01D1 A123              cmp #35
 01D3 2660              bne L61
 01D5           ;                        { ++k;
 01D5 3C02              inc *_k
 01D7           ;                          if(l%2==0)        //现在光标在第一行
 01D7 B601              lda *_l
 01D9 AE02              ldx #2
 01DB 8C                clrh
 01DC 52                div
 01DD 8B                pshh
 01DE 86                pula
 01DF 95                tsx
 01E0 4D                tsta
 01E1 2628              bne L63
 01E3 B602              lda *_k
 01E5 A104              cmp #4
 01E7 2706              beq L67
 01E9 B602              lda *_k
 01EB A107              cmp #7
 01ED 2602              bne L65
 01EF           L67:
 01EF           ; 	                    { if(k==4||k==7) ++k;
 01EF 3C02              inc *_k
 01F1           L65:
 01F1           ; 	                      if(k>9) k=0;   //现在光标在末端
 01F1 B602              lda *_k
 01F3 A109              cmp #9
 01F5 2302              bls L68
 01F7 3F02              clr *_k
 01F9           L68:
 01F9           ; 	                      LcdShowCursor((1+l),(4+k));
 01F9 B602              lda *_k
 01FB AB04              add #4
 01FD 87                psha
 01FE B601              lda *_l
 0200 AB01              add #1
 0202 87                psha
 0203 CD0000            jsr _LcdShowCursor
 0206 A702              ais #2
 0208 95                tsx
 0209           ;                            }
 0209 2028              bra L64
 020B           L63:
 020B B602              lda *_k
 020D A103              cmp #3
 020F 2706              beq L72
 0211 B602              lda *_k
 0213 A106              cmp #6
 0215 2602              bne L70
 0217           L72:
 0217           ; 	                   else              //现在光标在第二行
 0217           ; 	                    { if(k==3||k==6) ++k;
 0217 3C02              inc *_k
 0219           L70:
 0219           ; 	                      if(k>8) k=1;   //现在光标在末端
 0219 B602              lda *_k
 021B A108              cmp #8
 021D 2304              bls L73
 021F A601              lda #1
 0221 B702              sta *_k
 0223           L73:
 0223           ; 	                      LcdShowCursor((1+l),(4+k));
 0223 B602              lda *_k
 0225 AB04              add #4
 0227 87                psha
 0228 B601              lda *_l
 022A AB01              add #1
 022C 87                psha
 022D CD0000            jsr _LcdShowCursor
 0230 A702              ais #2
 0232 95                tsx
 0233           ;                            }
 0233           L64:
 0233           ; 	                   Key=0;
 0233 3F03              clr *_Key
 0235           ;                          
 0235           ;                         }
 0235           L61:
 0235           ; 	                if(Key=='*')        //光标下移
 0235 B603              lda *_Key
 0237 A12A              cmp #42
 0239 262A              bne L75
 023B           ;                         { ++l;
 023B 3C01              inc *_l
 023D           ;                           if(k==0) ++k;   //现在光标在第一行始端
 023D B602              lda *_k
 023F 2602              bne L77
 0241 3C02              inc *_k
 0243           L77:
 0243           ; 	                    if(k==9) --k;   //现在光标在第一行末端
 0243 B602              lda *_k
 0245 A109              cmp #9
 0247 2602              bne L79
 0249 3A02              dec *_k
 024B           L79:
 024B           ; 	                    if(l>1) l=0;    //现在光标在第二行
 024B B601              lda *_l
 024D A101              cmp #1
 024F 2302              bls L81
 0251 3F01              clr *_l
 0253           L81:
 0253           ; 	                    LcdShowCursor((1+l),(4+k));                 
 0253 B602              lda *_k
 0255 AB04              add #4
 0257 87                psha
 0258 B601              lda *_l
 025A AB01              add #1
 025C 87                psha
 025D CD0000            jsr _LcdShowCursor
 0260 A702              ais #2
 0262 95                tsx
 0263           ;                           Key=0;
 0263 3F03              clr *_Key
 0265           ;                         }
 0265           L75:
 0265           ; 	                if(Key=='B')
 0265 B603              lda *_Key
 0267 A142              cmp #66
 0269 2605              bne L83
 026B           ;                         { Key=0;
 026B 3F03              clr *_Key
 026D           ;                           goto MENU;      //返回
 026D CC0174            jmp L50
 0270           L83:
 0270           ; 	                  } 
 0270           ; 	                if(Key=='D')        //按下确定键
 0270 B603              lda *_Key
 0272 A144              cmp #68
 0274 2605              bne L85
 0276           ;                         { Key=0;
 0276 3F03              clr *_Key
 0278           ;                           goto BEGING;
 0278 CC043B            jmp L18
 027B           L85:
 027B           ; 	                  }
 027B           ; 	                if(Key!=0&&Discriminant(Key))
 027B B603              lda *_Key
 027D 274E              beq L87
 027F B603              lda *_Key
 0281 87                psha
 0282 CD0000            jsr _Discriminant
 0285 A701              ais #1
 0287 95                tsx
 0288 B700              sta *__r1
 028A 2741              beq L87
 028C           ;                         { Keyvalue=Key-0x30;
 028C B603              lda *_Key
 028E A030              sub #48
 0290 E73B              sta 59,X
 0292           ;                           Transmission(Keyvalue,(unsigned char *) time,(1+l),(4+k));
 0292 B602              lda *_k
 0294 AB04              add #4
 0296 87                psha
 0297 B601              lda *_l
 0299 AB01              add #1
 029B 87                psha
 029C A624              lda #<_time
 029E 87                psha
 029F A624              lda #>_time
 02A1 87                psha
 02A2 E63B              lda 59,X
 02A4 87                psha
 02A5 CD0000            jsr _Transmission
 02A8 A705              ais #5
 02AA           ;                           Change();       //将数组time组合存储到数组Tdate
 02AA CD0000            jsr _Change
 02AD           ;                           Controle();     //控制时钟的日期时间合法
 02AD CD0000            jsr _Controle
 02B0           ;                           Lcdshow((unsigned char *)time);
 02B0 A624              lda #<_time
 02B2 87                psha
 02B3 A624              lda #>_time
 02B5 87                psha
 02B6 CD0000            jsr _Lcdshow
 02B9 A702              ais #2
 02BB           ;                           LcdShowCursor((1+l),(4+k)); 
 02BB B602              lda *_k
 02BD AB04              add #4
 02BF 87                psha
 02C0 B601              lda *_l
 02C2 AB01              add #1
 02C4 87                psha
 02C5 CD0000            jsr _LcdShowCursor
 02C8 A702              ais #2
 02CA 95                tsx
 02CB           ;                           Key=0;
 02CB 3F03              clr *_Key
 02CD           ;                         }
 02CD           L87:
 02CD           L59:
 02CD CC01CF            jmp L58
 02D0           X0:
 02D0           ; 	                 
 02D0           ; 	               }
 02D0           ; 	          
 02D0           ; 	             }
 02D0           L56:
 02D0           ; 	          
 02D0           ;               if(Key=='2')      //选择子菜单2
 02D0 B603              lda *_Key
 02D2 A132              cmp #50
 02D4 2703              beq X6
 02D6 CC0438            jmp L89
 02D9           X6:
 02D9           ; 	           { LcdShowString((unsigned char *)str3,13,1);  //显示闹钟功能选择:1. Open Alarm
 02D9 A601              lda #1
 02DB 87                psha

⌨️ 快捷键说明

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