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

📄 莫尔斯码电路源程序.txt

📁 用单片机制作多功能莫尔斯码电路
💻 TXT
字号:

 ;程序开始
   START: ORG 0000H
          AJMP SET
          ORG 000BH    
          AJMP AUDIO1 
          ORG 001BH   
          AJMP POFF        
          ORG 0030H  
     SET: MOV TMOD,#00010010B
          MOV IE,#10001010B
          MOV IP,#00000010B
          MOV SP,#030H
          MOV R5,#00H
          MOV R4,#00H
          MOV A,28H
          CLR 60H
          CLR 61H
          CLR 50H
          CLR 51H
          CJNE A,#33H,SET0
          SJMP SET2
    SET0: CJNE A,#34H,SET1 
          SJMP SET2 
    SET1: MOV 20H,#06H
          MOV 21H,#6DH
          MOV 22H,#06H
          MOV 23H,#5DH
          CLR 7FH
    SET2: JB P3.7,SET3
          MOV 28H,#34H
          MOV DPTR,#TAB14
          ACALL READ
          SETB TR1 
          SJMP MAIN 
    SET3: MOV 28H,#33H
    SET4: SETB TR1
          MOV DPTR,#TAB7
          ACALL READ
 ;主程序
    MAIN: JNB P3.0,LOOP1 
          JNB P3.1,LOOP2 
          JNB P3.2,LOOP3 
          JNB P3.3,LOOP4 
          JNB P3.4,LOOP5 
          MOV R1,#00H
   MAIN1: JNB P3.5,LOOP6 
          JNB P3.7,LOOP7  
          JNB P1.3,LOOP8  
          JNB P1.4,LOOP9  
          JNB P1.5,LOOP10 
          CJNE R5,#01H,MAIN2 
          AJMP LOOP10
   MAIN2: CJNE R5,#02H,MAIN3 
          AJMP LOOP6 
   MAIN3: CJNE R5,#03H,MAIN4 
          AJMP DRILL 
   MAIN4: CJNE R5,#04H,MAIN5
          AJMP LOOP11
   MAIN5: SJMP MAIN
 ; 
   LOOP1: AJMP SLOW     
   LOOP2: AJMP QUICK     
   LOOP3: AJMP DOWN     
   LOOP4: AJMP UP      
   LOOP5: AJMP PTT      
   LOOP6: AJMP AUTOCALL 
   LOOP7: MOV A,28H
          CJNE A,#33H,LOOP71
          MOV R4,#05H
          AJMP DRILL
  LOOP71: CJNE A,#34H,MAIN
          MOV R4,#04H
          AJMP SHORT    
   LOOP8: AJMP DIAN     
   LOOP9: AJMP HUA      
  LOOP10: AJMP HAND     
  LOOP11: AJMP SHORT
 ;速度增加程序 
   QUICK: MOV DPTR,#TAB1
          MOV A,20H
          CJNE A,#0FH,QUICK2
          MOV DPTR,#TAB11
          ACALL READ
          AJMP MAIN
  QUICK2: INC 20H
          ANL 20H,#0FH
          MOV A,20H
          MOVC A,@A+DPTR
          MOV 21H,A
  QUICK1: MOV DPTR,#TAB5
          ACALL READ
          AJMP MAIN
 ;速度减少程序
    SLOW: MOV DPTR,#TAB1 
          MOV A,20H
          CJNE A,#00H,SLOW1
          MOV DPTR,#TAB11
          ACALL READ
          AJMP MAIN
   SLOW1: DEC 20H 
          ANL 20H,#0FH
          MOV A,20H 
          MOVC A,@A+DPTR 
          MOV 21H,A 
          SJMP QUICK1
 ;音调升高程序
      UP: MOV DPTR,#TAB2
          MOV A,22H
          CJNE A,#0FH,UP2
          MOV DPTR,#TAB11
          ACALL READ
          AJMP MAIN
     UP2: INC 22H
          ANL 22H,#0FH
          MOV A,22H 
          MOVC A,@A+DPTR
          MOV 23H,A
     UP1: MOV DPTR,#TAB6
          ACALL READ
          AJMP MAIN
 ; 音调降低程序
    DOWN: MOV DPTR,#TAB2
          MOV A,22H
          CJNE A,#00H,DOWN1
          MOV DPTR,#TAB11
          ACALL READ
          AJMP MAIN
   DOWN1: DEC 22H
          ANL 22H,#0FH
          MOV A,22H
          MOVC A,@A+DPTR
          MOV 23H,A
          SJMP UP1
 ;数据处理程序
    WORD: MOV 25H,A
          CJNE A,#06H,WORD1
          MOV R5,#00H
          RET                             
   WORD1: ANL A,#07H       
          CJNE A,#06H,WORD3
          MOV A,25H       
          ANL A,#0F8H     
          RR A            
          RR A
          RR A             
          MOV R0,A         
   WORD2: ACALL DELAY      
          DJNZ R0,WORD2     
          SJMP WORD12       
   WORD3: CJNE A,#00H,WORD4 
          SJMP WORD5         
   WORD4: CJNE A,#07H,WORD6 
   WORD5: MOV R0,#06H        
          SJMP WORD10
   WORD6: MOV R0,A
  WORD10: MOV A,25H
   WORD7: RL A           
          JNB 0E0H,WORD11
          ACALL AUDIO      
          ACALL DELAY4   
          ACALL AUDIOFF
          ACALL DELAY
          SJMP WORD8
  WORD11: ACALL AUDIO
          ACALL DELAY
          ACALL AUDIOFF  
          ACALL DELAY    
   WORD8: DJNZ R0,WORD7   
  WORD12: ACALL DELAY4
          RET            
 ;音频振荡及PTT输出程序
   AUDIO: JNB 7FH,AUDIO3
          CLR P1.6
  AUDIO3: MOV TL0,23H
          MOV TH0,23H
          MOV R3,#03H
          SETB TR0
          CPL P1.7
          RET
  AUDIO1: DJNZ R3,AUDIO2
          MOV R3,#03H 
          CPL P1.7          
  AUDIO2: RETI
 AUDIOFF: MOV R2,#00H
          CLR TR0
          SETB P1.6
          SETB P1.7
          RET
 ;自动键"点"控制程序
    DIAN: MOV R5,#00H
          SETB 60H
          CLR  51H
          ACALL AUDIO
          ACALL DELAY
          ACALL AUDIOFF
          ACALL DELAY
          CLR 60H
          JBC 51H,HUA
          AJMP MAIN
 ;自动键"划"控制程序
     HUA: MOV R5,#00H
          SETB 61H
          CLR 50H
          ACALL AUDIO
          ACALL DELAY4
          ACALL AUDIOFF
          ACALL DELAY
          CLR 61H 
          JBC 50H,DIAN
          AJMP MAIN
 ;手动键控制程序
    HAND: JB P1.5,HAND2
          CJNE R5,#01H,HAND1
          AJMP MAIN  
   HAND1: MOV R5,#01H
          ACALL AUDIO
          AJMP MAIN
   HAND2: ACALL DELAY0
          ACALL AUDIOFF
          MOV R5,#00H
          AJMP MAIN
 ;自动呼叫程序
AUTOCALL: JNB P1.2,AUTCALL3
          MOV DPTR,#TAB4
          SJMP AUTCALL1
AUTCALL3: MOV DPTR,#TAB12
AUTCALL1: MOV R5,#02H
          MOV A,R1
          MOVC A,@A+DPTR
          ACALL WORD
          INC R1
AUTCALL2: AJMP MAIN1
 ;混合码听抄练习程序
   DRILL: MOV R5,#03H
          MOV R1,#00H
          MOV A,24H
          ADD A,R6
  DRILL1: CJNE A,#26H,DRILL4
          SJMP DRILL2 
  DRILL4: JC DRILL5
  DRILL2: CLR C
          SUBB A,#26H
          SJMP DRILL1
  DRILL5: MOV 24H,A
          MOV DPTR,#TAB3
          MOVC A, @A+DPTR
          ACALL WORD
          MOV A,20H
          SUBB A, #03H
          JC DRILL6
          DJNZ R4,DRILL3
          MOV R4,#05H
  DRILL6: ACALL DELAY4
          ACALL DELAY
  DRILL3: AJMP MAIN1
 ;短码听抄练习程序
   SHORT: MOV R5,#04H
          MOV R1,#00H
          MOV A,24H
          ADD A,R6
  SHORT1: CJNE A,#0AH,SHORT4
          SJMP SHORT2 
  SHORT4: JC SHORT5
  SHORT2: CLR C
          SUBB A,#0AH
          SJMP SHORT1
  SHORT5: MOV 24H,A
          MOV DPTR,#TAB13
          MOVC A, @A+DPTR
          ACALL WORD
          MOV A,20H
          SUBB A, #03H
          JC SHORT6
          DJNZ R4,SHORT3
          MOV R4,#04H
  SHORT6: ACALL DELAY4
          ACALL DELAY
  SHORT3: AJMP MAIN1
 ;提示音程序
    READ: CLR A
          MOVC A, @A+DPTR
          MOV R5,#03H
          ACALL WORD
          CJNE R5,#03H,READ1
          INC DPTR
          SJMP READ
   READ1: ACALL DELAY4
          ACALL DELAY4
          RET
 ;延时程序1
  DELAY0: MOV R1,#0FFH
 DELAY01: MOV R7,#1FH
 DELAY02: DJNZ R7,DELAY02
          DJNZ R1,DELAY01
          RET
 ;延时程序2
   DELAY: MOV R7,21H
  DELAY1: MOV 26H,#0DH
  DELAY2: MOV 27H,#0DH
  DELAY3: DJNZ 27H,DELAY3
          DJNZ 26H,DELAY2
          JNB P1.3,DELAY6
          JNB P1.4,DELAY7 
  DELAY5: DJNZ R7,DELAY1
          RET
  DELAY4: ACALL DELAY
          ACALL DELAY
          ACALL DELAY
          RET
  DELAY6: JB 60H,DELAY5
          SETB 50H
          SJMP DELAY5
  DELAY7: JB 61H,DELAY5
          SETB 51H
          SJMP DELAY5 
 ;置PTT程序
     PTT: CPL 7FH
          JNB 7FH,PTT2
          MOV DPTR,#TAB8
    PTT1: ACALL READ
          AJMP MAIN
    PTT2: MOV DPTR,#TAB9
          SJMP PTT1          
 ;自动关机程序
    POFF: DJNZ R6,POFF1
          MOV R6,#26H
          INC R2
          CJNE R2,#2FH,POFF1
          SJMP POFF2
   POFF1: MOV TL1,#0FH
          MOV TH1,#00H          
          RETI
   POFF2: MOV DPTR,#TAB10
          ACALL READ
          MOV 87H,#02H 
 ;速度(延时)数据表
    TAB1: DB 0FFH,0C0H,0A7H,91H,7EH,6DH,5EH,53H
          DB 49H,45H,3CH,34H,2DH,28H,23H,20H,
 ;音调数据表
    TAB2: DB 36H,3DH,40H,46H,4CH,53H,5DH,63H
          DB 6CH,76H,81H,8DH,9AH,0A8H,0B8H,0C9H
 ;混合码听抄字符数据表
    TAB3: DB 42H,84H,0A4H,83H,01H,24H,0C3H,04H
          DB 02H,74H,0A3H,44H,0C2H,82H,0E3H,64H
          DB 0D4H,43H,03H,81H,23H,14H,63H,94H
          DB 0B4H,0C4H,0FDH,7DH,3DH,1DH,0DH,05H
          DB 85H,0C5H,0E5H,0F5H,95H,30H
 ;自动呼叫数据表
    TAB4: DB 0A4H,0D4H,26H,0A4H,0D4H,26H ; CQ CQ
          DB 0A4H,0D4H,26H,83H,01H,26H   ; CQ DE
          DB 84H,83H,0DH,02H,84H,04H,26H ;BD4IBH
          DB 84H,83H,0DH,02H,84H,04H,26H ;BD4IBH
          DB 84H,83H,0DH,02H,84H,04H,26H ;BD4IBH
          DB 64H,03H,01H,26H,0A3H,06H    ; PSE K
 ;提示音"V"数据表
    TAB5: DB 14H,06H
 ;提示音"B"数据表
    TAB6: DB 84H,06H
 ;提示音"OK"数据表
    TAB7: DB 0E3H,0A3H,06H
 ;提示音"ON"数据表
    TAB8: DB 0E3H,82H,06H
 ;提示音"OFF"数据表
    TAB9: DB 0E3H,24H,24H,06H
 ;提示音"END"数据表
   TAB10: DB 01H,82H,83H,06H
 ;提示音:"E"数据表 
   TAB11: DB 01H,06H 
 ;P1.2为零时自动呼叫数据表
   TAB12: DB 0A4H,0D4H,26H,0A4H,0D4H,26H 
          DB 0A4H,0D4H,26H,83H,01H,26H   
          DB 84H,42H,0DH,02H,84H,04H,26H        ;BA4IBH
          DB 84H,42H,0DH,02H,84H,04H,26H  
          DB 84H,42H,0DH,02H,84H,04H,26H 
          DB 64H,03H,01H,26H,0A3H,06H 
 ;短码听抄字符数据表
   TAB13: DB 81H,42H,23H,14H,0DH,05H,85H
          DB 84H,83H,82H
 ;提示音:"S"数据表  
   TAB14: DB 03H,06H
    END
 

⌨️ 快捷键说明

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