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

📄 main.lis

📁 用Freescale半导体公司HC08系列单片机制作了电子时钟,具有整点报时、闹钟、时间日期设置等功能(c语言编写)
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 020F 87                psha
 0210 CD0000            jsr _Transmission
 0213 A705              ais #5
 0215           ;                           Lcdshowtime();
 0215 CD0000            jsr _Lcdshowtime
 0218           ;                           LcdShowCursor();          //开光标显示,闪烁
 0218 CD0000            jsr _LcdShowCursor
 021B           ;                           MoveCursor((1+l),(4+k)); 
 021B B600              lda *_k
 021D AB04              add #4
 021F 87                psha
 0220 B601              lda *_l
 0222 AB01              add #1
 0224 87                psha
 0225 CD0000            jsr _MoveCursor
 0228 A702              ais #2
 022A 95                tsx
 022B           ;                           Key=0;
 022B 3F01              clr *_Key
 022D           ;                         }
 022D           L107:
 022D           L89:
 022D CC0164            jmp L88
 0230           X0:
 0230           ; 	                 
 0230           ; 	               }
 0230           ; 	          
 0230           ; 	             }
 0230           L86:
 0230           ; 	          
 0230           ;               if(Key=='2')      //选择子菜单2
 0230 B601              lda *_Key
 0232 A132              cmp #50
 0234 2703              beq X6
 0236 CC0329            jmp L109
 0239           X6:
 0239           ; 	           {
 0239           ; 	             Lcdshowalarm();
 0239 CD0000            jsr _Lcdshowalarm
 023C           ;                    LcdShowCursor();    //开光标显示,闪烁
 023C CD0000            jsr _LcdShowCursor
 023F           ;                    MoveCursor(2,12);    //光标初始位置(2,5),第二行第五列
 023F A60C              lda #12
 0241 87                psha
 0242 A602              lda #2
 0244 87                psha
 0245 CD0000            jsr _MoveCursor
 0248 A702              ais #2
 024A 95                tsx
 024B           ;                    Key=0;
 024B 3F01              clr *_Key
 024D CC0326            jmp L112
 0250           L111:
 0250           ; 	             while(1)
 0250           ; 	              { 
 0250           ; 	                
 0250           ;                     if(Key=='#')      //光标右移
 0250 B601              lda *_Key
 0252 A123              cmp #35
 0254 2644              bne L114
 0256           ;                        { 
 0256           ;                          ++k;
 0256 3C00              inc *_k
 0258           ;                          if(l%2==0)     //现在光标在第一行
 0258 B601              lda *_l
 025A AE02              ldx #2
 025C 8C                clrh
 025D 52                div
 025E 8B                pshh
 025F 86                pula
 0260 95                tsx
 0261 4D                tsta
 0262 261A              bne L116
 0264           ;                           {
 0264           ;                             if(k>9) k=0;  //现在光标在末端
 0264 B600              lda *_k
 0266 A109              cmp #9
 0268 2302              bls L118
 026A 3F00              clr *_k
 026C           L118:
 026C           ; 	                      MoveCursor((1+l),(4+k));
 026C B600              lda *_k
 026E AB04              add #4
 0270 87                psha
 0271 B601              lda *_l
 0273 AB01              add #1
 0275 87                psha
 0276 CD0000            jsr _MoveCursor
 0279 A702              ais #2
 027B 95                tsx
 027C           ;                            }
 027C 201A              bra L117
 027E           L116:
 027E           ; 	                   else     //现在光标在第二行
 027E           ; 	                    {
 027E           ; 	                      if(k>8) k=1;  //现在光标在末端
 027E B600              lda *_k
 0280 A108              cmp #8
 0282 2304              bls L120
 0284 A601              lda #1
 0286 B700              sta *_k
 0288           L120:
 0288           ; 	                      MoveCursor((1+l),(4+k));
 0288 B600              lda *_k
 028A AB04              add #4
 028C 87                psha
 028D B601              lda *_l
 028F AB01              add #1
 0291 87                psha
 0292 CD0000            jsr _MoveCursor
 0295 A702              ais #2
 0297 95                tsx
 0298           ;                            }
 0298           L117:
 0298           ; 	                   Key=0;
 0298 3F01              clr *_Key
 029A           ;                          
 029A           ;                         }
 029A           L114:
 029A           ; 	                if(Key=='*')     //光标下移
 029A B601              lda *_Key
 029C A12A              cmp #42
 029E 262A              bne L122
 02A0           ;                         {
 02A0           ;                           ++l;
 02A0 3C01              inc *_l
 02A2           ;                           if(k==0) k++;   //现在光标在第一行始端
 02A2 B600              lda *_k
 02A4 2602              bne L124
 02A6 3C00              inc *_k
 02A8           L124:
 02A8           ; 	                    if(k==9) k--;   //现在光标在第一行末端
 02A8 B600              lda *_k
 02AA A109              cmp #9
 02AC 2602              bne L126
 02AE 3A00              dec *_k
 02B0           L126:
 02B0           ; 	                    if(l>1) l=0;    //现在光标在第二行
 02B0 B601              lda *_l
 02B2 A101              cmp #1
 02B4 2302              bls L128
 02B6 3F01              clr *_l
 02B8           L128:
 02B8           ; 	                    MoveCursor((1+l),(4+k));                 
 02B8 B600              lda *_k
 02BA AB04              add #4
 02BC 87                psha
 02BD B601              lda *_l
 02BF AB01              add #1
 02C1 87                psha
 02C2 CD0000            jsr _MoveCursor
 02C5 A702              ais #2
 02C7 95                tsx
 02C8           ;                           Key=0;
 02C8 3F01              clr *_Key
 02CA           ;                         }
 02CA           L122:
 02CA           ; 	                if(Key=='B')
 02CA B601              lda *_Key
 02CC A142              cmp #66
 02CE 2605              bne L130
 02D0           ;                         {
 02D0           ;                           Key=0;
 02D0 3F01              clr *_Key
 02D2           ;                           goto MENU;     //返回
 02D2 CC0130            jmp L80
 02D5           L130:
 02D5           ; 	                  } 
 02D5           ; 	                if(Key=='D')       //按下确定键
 02D5 B601              lda *_Key
 02D7 A144              cmp #68
 02D9 2604              bne L132
 02DB           ;                         {
 02DB           ;                           Key=0;
 02DB 3F01              clr *_Key
 02DD           ;                           goto BEGING;
 02DD 204D              bra L40
 02DF           L132:
 02DF           ; 	                  }
 02DF           ; 	                if(Key!=0&&Discriminant(Key))
 02DF B601              lda *_Key
 02E1 2743              beq L134
 02E3 B601              lda *_Key
 02E5 87                psha
 02E6 CD0000            jsr _Discriminant
 02E9 A701              ais #1
 02EB 95                tsx
 02EC B700              sta *__r1
 02EE 2736              beq L134
 02F0           ;                         { 
 02F0           ;                           Keyvalue=Key-0x30;
 02F0 B601              lda *_Key
 02F2 A030              sub #48
 02F4 E704              sta 4,X
 02F6           ;                           Transmission(Keyvalue,(unsigned char *) alarm,(1+l),(4+k));
 02F6 B600              lda *_k
 02F8 AB04              add #4
 02FA 87                psha
 02FB B601              lda *_l
 02FD AB01              add #1
 02FF 87                psha
 0300 A602              lda #<_alarm
 0302 87                psha
 0303 A602              lda #>_alarm
 0305 87                psha
 0306 E604              lda 4,X
 0308 87                psha
 0309 CD0000            jsr _Transmission
 030C A705              ais #5
 030E           ;                           Lcdshowalarm();
 030E CD0000            jsr _Lcdshowalarm
 0311           ;                           LcdShowCursor();    //开光标显示,闪烁
 0311 CD0000            jsr _LcdShowCursor
 0314           ;                           MoveCursor((1+l),(4+k)); 
 0314 B600              lda *_k
 0316 AB04              add #4
 0318 87                psha
 0319 B601              lda *_l
 031B AB01              add #1
 031D 87                psha
 031E CD0000            jsr _MoveCursor
 0321 A702              ais #2
 0323 95                tsx
 0324           ;                           Key=0;
 0324 3F01              clr *_Key
 0326           ;                         }
 0326           L134:
 0326           L112:
 0326 CC0250            jmp L111
 0329           X1:
 0329           ; 	                 
 0329           ; 	               }
 0329           ; 	           }   
 0329           L109:
 0329           L82:
 0329 CC0139            jmp L81
 032C           X2:
 032C           ;               
 032C           ;               
 032C           ;                
 032C           ; 	        }
 032C           ; 	         
 032C           ; 	      }
 032C           L78:
 032C           L40:
 032C CC008B            jmp L39
 032F           X3:
 032F           L10:
 032F A705              ais #5
 0331                   .dbline 0 ; func end
 0331 81                rts
                        .area bss
 0000           _t::
 0000                   .blkb 1
 0001           _Key::
 0001                   .blkb 1
 0002           _alarm::
 0002                   .blkb 14
 0010           _time::
 0010                   .blkb 14

⌨️ 快捷键说明

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