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

📄 por.lst

📁 本文件是用51单片机设计电子琴的资料文件
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     245     ; WAIT KEY IN.............
                     246     ; RETURN A: DIGIT NO
012E                 247     GET_KEY:
012E C200            248             CLR FKEY
0130 11F2            249             CALL SCAN  ;
                     250     ; IF(KEY_ON) WAIT  KEY_OFF
0132 200002          251             JB FKEY, GE1
                     252     ; NO KEY ON WAIT KEY IN..............
0135 80F7            253             JMP GET_KEY
0137                 254     GE1:
0137 11F2            255             CALL SCAN
0139 2000FB          256             JB FKEY, GE1
                     257     ; KEY INDEX TO DIGIT NO.
013C E575            258             MOV A,KEY_NO
013E 9000E2          259             MOV DPTR, #TABLE_DIG
0141 93              260             MOVC A,@A+DPTR
0142 F575            261             MOV KEY_NO,A
0144 22              262             RET
                     263     ;-----------------------------------------------
0145                 264     SO:
0145 7B01            265             MOV R3,#1 ; BIT NO
0147 1135            266             CALL PLAY
0149 22              267             RET
                     268     ;--------------------------
                     269     ; JUDGE WHICH KEY.............
                     270     ; '1'--'7' TONE 1--7
                     271     ; FBA0--HIGH 1234    EDC  567
                     272     ; 9--CLEAR 8--PLAY
014A                 273     SOP:
014A B40105          274             CJNE A,#1, A1
014D 7C01            275             MOV R4,#1
014F 3145            276             CALL SO
0151 22              277             RET
0152                 278     A1:
0152 B40205          279             CJNE A,#2, A2
0155 7C02            280             MOV R4,#2
0157 3145            281             CALL SO
0159 22              282             RET
015A                 283     A2:
015A B40305          284             CJNE A,#3, A3
015D 7C03            285             MOV R4,#3
015F 3145            286             CALL SO
0161 22              287             RET
0162                 288     A3:
0162 B40405          289             CJNE A,#4, A4
0165 7C04            290             MOV R4,#4
0167 3145            291             CALL SO
0169 22              292             RET
                     293     
016A                 294     A4:
016A B40505          295             CJNE A,#5, A5
016D 7C05            296             MOV R4,#5
016F 3145            297             CALL SO
0171 22              298             RET
0172                 299     A5:
0172 B40605          300             CJNE A,#6, A6
0175 7C06            301             MOV R4,#6
0177 3145            302             CALL SO
0179 22              303             RET
                     304     
017A                 305     A6:
017A B40705          306             CJNE A,#7, A7
017D 7C07            307             MOV R4,#7
A51 MACRO ASSEMBLER  POR                                                                  01/22/2006 22:35:54 PAGE     6

017F 3145            308             CALL SO
0181 22              309             RET
                     310     
                     311     ; NEXT HIGH TONE 1--7........................
0182                 312     A7:
0182 B40F05          313             CJNE A,#0FH, A8
0185 7C08            314             MOV R4,#8
0187 3145            315             CALL SO
0189 22              316             RET
                     317     
018A                 318     A8:
018A B40B05          319             CJNE A,#0BH, A9
018D 7C09            320             MOV R4,#9
018F 3145            321             CALL SO
0191 22              322             RET
                     323     
0192                 324     A9:
0192 B40A05          325             CJNE A,#0AH, A10
0195 7C0A            326             MOV R4,#10
0197 3145            327             CALL SO
0199 22              328             RET
                     329     
019A                 330     A10:
019A B40005          331             CJNE A,#0, A11
019D 7C0B            332             MOV R4,#11
019F 3145            333             CALL SO
01A1 22              334             RET
                     335     
01A2                 336     A11:
01A2 B40E05          337             CJNE A,#0EH, A12
01A5 7C0C            338             MOV R4,#12
01A7 3145            339             CALL SO
01A9 22              340             RET
                     341     
01AA                 342     A12:
01AA B40D05          343             CJNE A,#0DH, A13
01AD 7C0D            344             MOV R4,#13
01AF 3145            345             CALL SO
01B1 22              346             RET
                     347     
01B2                 348     A13:
01B2 B40C05          349             CJNE A,#0CH, A14
01B5 7C0E            350             MOV R4,#14
01B7 3145            351             CALL SO
01B9 22              352             RET
                     353     
01BA                 354     A14:
01BA 22              355             RET
                     356     ;---------------------------------------
01BB                 357     RUN:
01BB 757600          358             MOV NO,#0
01BE 7830            359             MOV R0, #MEM
01C0                 360     LOOP:
01C0 E576            361             MOV A,NO
01C2 757800          362             MOV X,#0
01C5 7130            363             CALL SHOW_DIG
                     364     
01C7 312E            365             CALL GET_KEY
                     366     ; CHECK A=9 CLEAR,
01C9 B4090B          367             CJNE A,#9, B1
01CC 5143            368             CALL BZ
01CE 11D7            369             CALL LED_BL
01D0 757600          370             MOV NO,#0    ; CLEAR NO
01D3 7830            371             MOV R0, #MEM ; RESET ADDRESS POINT
01D5 80E9            372             JMP LOOP
                     373     
A51 MACRO ASSEMBLER  POR                                                                  01/22/2006 22:35:54 PAGE     7

                     374     ; A=8  REPLAY........
01D7 B40808          375     B1:     CJNE A,#8, B2
01DA 11D7            376             CALL LED_BL
01DC 510D            377             CALL RPLAY
01DE 11D7            378             CALL LED_BL
01E0 80DE            379             JMP LOOP
01E2                 380     B2:
01E2 E575            381             MOV A,KEY_NO
01E4 757800          382             MOV X,#0
01E7 714B            383             CALL SHOW_DIG2
                     384     ; PLAY TONE.....................
01E9 E575            385             MOV A,KEY_NO
01EB 314A            386             CALL SOP
                     387     
                     388     ; SAVE TO MEM...........................
01ED E575            389             MOV A,KEY_NO
01EF F6              390             MOV @R0,A
                     391     
01F0 0576            392             INC NO
                     393     
                     394     ; CHECK NO = MNO ?.............
01F2 E576            395             MOV A,NO
01F4 75F040          396             MOV B,#MNO
01F7 B5F00D          397             CJNE A,B,B3
                     398     
                     399     ; MEMORY LIMITED!!!!!!!!
01FA 5143            400             CALL BZ
01FC 11D7            401             CALL LED_BL
01FE 5143            402             CALL BZ
0200 11D7            403             CALL LED_BL
0202 75763F          404             MOV NO,#(MNO-1)
0205 80B9            405             JMP LOOP
0207                 406     B3:
                     407     ; SAVE TO MEM...........................
0207 E575            408             MOV A,KEY_NO
0209 F6              409             MOV @R0,A
020A 08              410             INC R0
                     411     ;................................
020B 80B3            412             JMP LOOP
                     413     ;--------------------------------------
                     414     ; REPLAY FROM MEM.............
020D                 415     RPLAY:
020D E576            416             MOV A,NO
020F 757800          417             MOV X,#0
0212 7130            418             CALL SHOW_DIG
                     419     
0214 E576            420             MOV A,NO
0216 B40001          421             CJNE A,#0,RP0
0219 22              422             RET
                     423     
021A                 424     RP0:
021A 857677          425             MOV CO,NO
021D 7830            426             MOV R0, #MEM
021F 7901            427             MOV R1,#1
0221                 428     RP1:
                     429     ; KEY 4 EXIT PLAY.....................
0221 20A707          430             JB K4,RP2
0224 5143            431             CALL BZ
0226 11D7            432             CALL LED_BL
0228 11D7            433             CALL LED_BL
022A 22              434             RET
022B                 435     RP2:
                     436     ; SHOW NOW PLAY NO...............
022B E9              437             MOV A,R1
022C 757803          438             MOV X,#3
022F 7130            439             CALL SHOW_DIG
A51 MACRO ASSEMBLER  POR                                                                  01/22/2006 22:35:54 PAGE     8

                     440     
0231 E6              441             MOV A,@R0  ; LOAD KEY FROM MEM
0232 C0E0            442             PUSH ACC
                     443     ; SHOW TONE KEY....................
0234 757800          444             MOV X,#0
0237 714B            445             CALL SHOW_DIG2
                     446     
0239 D0E0            447             POP ACC
023B 314A            448             CALL SOP
                     449     
023D 08              450             INC R0
023E 09              451             INC R1
023F D577DF          452             DJNZ CO,RP1
0242 22              453             RET
                     454     ;---------------------------------------
0243                 455     BZ:
0243 7C01            456             MOV R4,#1
0245 7B01            457             MOV R3,#1
0247 1135            458             CALL PLAY
0249 22              459             RET
                     460     ;---------------------------
                     461     ;$include (POR1.ASM)
                +1   462     ; OR1.ASM
024A            +1   463     SET_LCD:
024A C281       +1   464             CLR  EN ;  en=0
024C 51BB       +1   465             CALL INIT_LCD
                +1   466     
024E 7D01       +1   467             MOV R5,#1
0250 11CC       +1   468             CALL DELAY
                +1   469     
0252 9002F4     +1   470             MOV DPTR,#LMESS1
0255 7401       +1   471             MOV A,#1        ; LINE1
0257 517F       +1   472             CALL LCD_PRINT
                +1   473     
0259 900305     +1   474             MOV DPTR,#LMESS2
025C 7402       +1   475             MOV A,#2        ; LINE2
025E 517F       +1   476             CALL LCD_PRINT
0260 22         +1   477             RET
                +1   478     ;---------------------------------
0261            +1   479     INIT_LCD1:
0261 7428       +1   480             MOV A,#28H
0263 51D2       +1   481             CALL WCOM
0265 740C       +1   482             MOV A,#0CH
0267 51D2       +1   483             CALL WCOM
0269 740E       +1   484             MOV A,#0EH
026B 51D2       +1   485             CALL WCOM
026D 7401       +1   486             MOV A,#01H
026F 51D2       +1   487             CALL WCOM
0271 22         +1   488             RET
                +1   489     ;---------------------------------
0272            +1   490     CLR_LINE1:
0272 7480       +1   491             MOV A,#80H
0274 51D2       +1   492             CALL WCOM
0276 7818       +1   493             MOV R0,#24
0278 7420       +1   494     CL:     MOV A,#' '
027A 51E3       +1   495             CALL WDATA
027C D8FA       +1   496             DJNZ R0,CL
027E 22         +1   497             RET
                +1   498     ;-------------------------------
                +1   499     ; A=LINE 1 OR 2
                +1   500     ; DPTR = MESSAGE POINTER
027F            +1   501     LCD_PRINT:
027F B4010C     +1   502             CJNE A,#1,LINE2
0282 7480       +1   503     LINE1:  MOV A,#80H
0284 51D2       +1   504             CALL WCOM
0286 51A4       +1   505             CALL CLR_LINE
A51 MACRO ASSEMBLER  POR                                                                  01/22/2006 22:35:54 PAGE     9

0288 7480       +1   506             MOV A,#80H
028A 51D2       +1   507             CALL WCOM
028C 800A       +1   508             JMP FILL
                +1   509     
028E 74C0       +1   510     LINE2:  MOV A,#0C0H
0290 51D2       +1   511             CALL WCOM
0292 51A4       +1   512             CALL CLR_LINE

⌨️ 快捷键说明

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