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

📄 波形信号发生器程序.asm

📁 基于单片机的移相式函数发生器设计,用汇编语言编写!
💻 ASM
📖 第 1 页 / 共 4 页
字号:

;--  文字:  F  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,088H,088H,0E8H,008H,010H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,020H,000H,003H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H

TAB0:
;--  文字:  欢  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  014H,024H,044H,084H,064H,01CH,020H,018H,00FH,0E8H,008H,008H,028H,018H,008H,000H
DB  020H,010H,04CH,043H,043H,02CH,020H,010H,00CH,003H,006H,018H,030H,060H,020H,000H
TAB1:
;--  文字:  迎  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,041H,0CEH,004H,000H,0FCH,004H,002H,002H,0FCH,004H,004H,004H,0FCH,000H,000H
DB  040H,020H,01FH,020H,040H,047H,042H,041H,040H,05FH,040H,042H,044H,043H,040H,000H
TAB2:
;--  文字:  使  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,020H,0F0H,01CH,007H,0F2H,094H,094H,094H,0FFH,094H,094H,094H,0F4H,004H,000H
DB  000H,000H,07FH,000H,040H,041H,022H,014H,00CH,013H,010H,030H,020H,061H,020H,000H
TAB3:
;--  文字:  用  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,000H,0FEH,022H,022H,022H,022H,0FEH,022H,022H,022H,022H,0FEH,000H,000H
DB  080H,040H,030H,00FH,002H,002H,002H,002H,0FFH,002H,002H,042H,082H,07FH,000H,000H

TAB4:
;--  文字:  正  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,002H,002H,0C2H,002H,002H,002H,002H,0FEH,082H,082H,082H,082H,082H,002H,000H
DB  020H,020H,020H,03FH,020H,020H,020H,020H,03FH,020H,020H,020H,020H,020H,020H,000H

TAB5:
;--  文字:  弦  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  002H,0F2H,012H,012H,03EH,000H,004H,084H,044H,0B5H,086H,084H,0E4H,044H,004H,000H
DB  001H,023H,041H,081H,07FH,000H,021H,071H,029H,025H,022H,021H,028H,070H,020H,000H

TAB6:
;--  文字:  波  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  010H,060H,001H,0E6H,000H,0F8H,088H,088H,088H,0FFH,088H,088H,088H,018H,008H,000H
DB  004H,004H,0FFH,040H,030H,08FH,080H,041H,026H,018H,018H,026H,061H,0C0H,040H,000H

TAB7:
;--  文字:  信  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  080H,040H,030H,0FCH,007H,00AH,0A8H,0A8H,0A9H,0AEH,0AAH,0A8H,0A8H,008H,008H,000H
DB  000H,000H,000H,07FH,000H,000H,07EH,022H,022H,022H,022H,022H,07EH,000H,000H,000H

TAB8:
;--  文字:  号  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,040H,040H,05FH,0D1H,051H,051H,051H,051H,051H,051H,05FH,040H,040H,040H,000H
DB  000H,000H,000H,002H,007H,002H,002H,022H,042H,082H,042H,03EH,000H,000H,000H,000H

TAB9:
;--  文字:  发  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,010H,03EH,010H,010H,0F0H,09FH,090H,090H,092H,094H,01CH,010H,010H,010H,000H
DB  040H,020H,010H,088H,087H,041H,046H,028H,010H,028H,027H,040H,0C0H,040H,000H,000H

TABA:
;--  文字:  生  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,080H,060H,01EH,010H,010H,010H,010H,0FFH,012H,010H,010H,098H,010H,000H,000H
DB  001H,040H,040H,041H,041H,041H,041H,041H,07FH,041H,041H,041H,041H,061H,040H,000H

TABB:
;--  文字:  器  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  040H,040H,04FH,049H,049H,0C9H,0CFH,070H,0C0H,0CFH,049H,059H,069H,04FH,000H,000H
DB  002H,002H,07EH,045H,045H,044H,07CH,000H,07CH,044H,045H,045H,07EH,006H,002H,000H

TABF0:
;--  文字:  频  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  020H,03CH,020H,020H,0BFH,024H,024H,000H,0F2H,01AH,0D6H,012H,012H,0F2H,002H,000H
DB  044H,043H,020H,010H,00BH,004H,043H,040H,027H,018H,007H,008H,010H,027H,060H,000H
TABF1:
;--  文字:  率  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,00CH,014H,0A4H,004H,064H,035H,0AEH,064H,024H,014H,0A4H,014H,004H,004H,000H
DB  008H,00AH,009H,008H,008H,00AH,00BH,0FEH,00AH,00BH,00CH,008H,009H,00AH,008H,000H
TABF2:
;--  文字:  :  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,000H,0C0H,0C0H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,030H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
TABF3:
;--  文字:  H  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  008H,0F8H,008H,000H,000H,008H,0F8H,008H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,021H,001H,001H,021H,03FH,020H,000H,000H,000H,000H,000H,000H,000H,000H
TABF4:
;--  文字:  z  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,080H,080H,080H,080H,080H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,021H,030H,02CH,022H,021H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H

TABF5:
;--  文字:  幅  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  0F8H,008H,0FFH,008H,0F8H,000H,002H,07AH,04AH,04AH,04AH,04AH,04AH,07AH,002H,000H
DB  00FH,000H,0FFH,008H,00FH,000H,07FH,025H,025H,025H,03FH,025H,025H,025H,07FH,000H

TABF6:
;--  文字:  度  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,000H,0FCH,004H,024H,024H,0FCH,0A5H,0A6H,0A4H,0FCH,024H,024H,024H,004H,000H
DB  080H,060H,01FH,080H,080H,042H,046H,02AH,012H,012H,02AH,026H,042H,0C0H,040H,000H

TABF7:
;--  文字:  M  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  008H,0F8H,0F8H,000H,0F8H,0F8H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  020H,03FH,000H,03FH,000H,03FH,020H,000H,000H,000H,000H,000H,000H,000H,000H,000H

TABF8:
;--  文字:  V  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  008H,078H,088H,000H,000H,0C8H,038H,008H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,007H,038H,00EH,001H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H

TABF9:
;--  文字:  步  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  000H,020H,020H,020H,0BCH,020H,020H,020H,0FFH,024H,024H,024H,024H,020H,020H,000H
DB  000H,044H,044H,042H,041H,020H,020H,020H,017H,010H,008H,004H,003H,002H,000H,000H

TABFA:
;--  文字:  进  --
;--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --
DB  080H,082H,09CH,088H,000H,088H,088H,0FFH,088H,088H,088H,0FFH,088H,088H,080H,000H
DB  000H,040H,020H,01FH,020H,050H,04CH,043H,040H,040H,040H,05FH,040H,040H,040H,000H
;2mS延时子程序YANSHI
YANSHI:    MOV    R4,    #0FFH
WW:        NOP
           NOP
           NOP
           NOP
           NOP
           NOP
           DJNZ   R4,    WW
           RET

;键扫描子程序KEY(无键按下,键值00H;0至9键键值01H至0AH,A至F键键值0BH至10H)
KEY:       MOV    4EH,#01H
           PUSH   DPH
           PUSH   DPL
           PUSH   PSW
           CLR    RS0
           SETB   RS1
           LCALL  CSH8155
           LCALL  KEY1
           JZ     EXIT
           LCALL  YANSHI
           LCALL  YANSHI
           LCALL  KEY1
           JZ     EXIT
           MOV    4EH,#00H
K2:        MOV    R2,    #0FEH
           MOV    R4,    #00H
K3:        MOV    P2,    #BG8155
           MOV    R1,    #BD8155
           MOV    P0,    R1
           MOV    A,     R2
           MOVX   @R1,   A
           MOV    P2,    #CG8155
           MOV    R1,    #CD8155
           MOV    P0,    R1
           MOVX   A,     @R1
           JB     ACC.0, LONE
           MOV    A,     #01H
           LJMP   LKP
LONE:      JB     ACC.1, NEXT
           MOV    A,     #09H
LKP:       ADD    A,     R4
           PUSH   ACC
K4:        LCALL  YANSHI
           LCALL  KEY1
           JNZ    K4
           POP    ACC
           LJMP   EXIT
NEXT:      INC    R4
           MOV    A,    R2
           JNB    ACC.7,EXIT
           RL     A
           MOV    R2,   A
           LJMP   K3
EXIT:      POP    PSW
           POP    DPL
           POP    DPH
           RET

;键处理子程序KEY1
KEY1:      MOV    P2,    #BG8155
           MOV    R1,    #BD8155
           MOV    P0,    R1
           MOV    A,     #00H
           MOVX   @R1,   A
           INC    R1
           MOVX   A,     @R1
           CPL    A
           ANL    A,     #03H
           RET

;计算tab的值
;/*入口参数keyzhi 2FH  出口参数:DPTR*/
FINDTAB:   MOV    A,KEYZHI
           DEC    A
           MOV    B,#32
           MUL    AB
           CLR    C
           MOV    DPTR,#TAB
           ADD    A,DPL
           MOV    DPL,A
           MOV    A,B
           ADDC   A,DPH
           MOV    DPH,A
           RET

;置基带序列
    JIDAI: NOP
           CLR  P1.7
           NOP
           SETB P1.7
           NOP
           CLR  P1.7
           NOP
   ZTTT:   MOV  P0,#0E0H
           LJMP ZTTT
           RET
;置频子程序
;/入口参数:KYEZHI   出口参数:50H-5FH*/
ZHISU:     PUSH   PSW
           PUSH   DPH
           PUSH   DPL
           SETB   RS0
           SETB   RS1
           MOV    COMXSTART,#0B8H
           MOV    COMXEND,  #0BFH
           MOV    COMYSTART,#40H
           MOV    COMYEND,  #7FH
           LCALL  CLEAR1
           MOV    DPTR,#TABF0
           MOV    COMXSTART,#0B8H
           MOV    COMYSTART,#40H          ;频
           MOV    COMXEND,#0B9H
           MOV    COMYEND,#4FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV    DPTR,#TABF1
           MOV    COMXSTART,#0B8H
           MOV    COMYSTART,#50H          ;率
           MOV    COMXEND,#0B9H
           MOV    COMYEND,#5FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV    DPTR,#TABF2
           MOV    COMXSTART,#0B8H
           MOV    COMYSTART,#60H          ;:
           MOV    COMXEND,#0B9H
           MOV    COMYEND,#6FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV    R6,#00H
           MOV    R5,#40H
           MOV    R4,#00H                 ;计算输入数的个数
           MOV    R0,#50H
LOOOPE:    LCALL  KEY
           MOV    KEYZHI,A
           MOV    A,4EH                   ;判是否有键按下
           CJNE   A,#00H,LOOOPE
           MOV    A,KEYZHI
           CJNE   A,#0BH,KUE
           LJMP   YYE
KUE:       MOV    @R0,KEYZHI
           LCALL  FINDTAB
           MOV    COMXSTART,#0BAH
           MOV    COMXEND,#0BBH
           MOV    COMYSTART,R5
           MOV    A,#0FH
           ADD    A,R5
           MOV    COMYEND,A
           MOV    JCS1CS2,R6
           LCALL  DISP
           MOV    A,R5
           ADD    A,#10H
           MOV    R5,A
           INC    R0
           INC    R4
           MOV    A,R4
           CJNE   A,#04H,RRRE
           MOV    R6,#01H
           MOV    R5,#40H
RRRE:      LJMP   LOOOPE
YYE:       MOV    A,R4
           CJNE   A,#00H,KS
           LJMP   TSF0

KS:        MOV    DPTR,#TABF3
           MOV    COMXSTART,#0BCH
           MOV    COMYSTART,#40H
           MOV    COMXEND,#0BDH
           MOV    COMYEND,#4FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV    DPTR,#TABF4
           MOV    COMXSTART,#0BCH
           MOV    COMXEND,#0BDH
           MOV    COMYSTART,#50H
           MOV    COMYEND,#5FH
           MOV    JCS1CS2,#00H
           LCALL  DISP
           MOV     A,R4
ZZ:        CJNE    A,#01H,ZL
           DEC     50H
           LJMP    ZS
ZL:        CJNE    A,#02H,ZM
           DEC     50H
           DEC     51H
           MOV     R1,50H
           MOV     50H,51H
           MOV     51H,R1
           LJMP    ZS
ZM:        CJNE    A,#03H,ZN
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     50H,52H
           MOV     52H,R1
           LJMP    ZS
ZN:        CJNE    A,#04H,ZO
           DEC     53H
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     R2,51H
           MOV     50H,53H
           MOV     51H,52H
           MOV     52H,R2
           MOV     53H,R1
           LJMP    ZS
ZO:        CJNE    A,#05H,ZP
           DEC     54H
           DEC     53H
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     R2,51H
           MOV     50H,54H
           MOV     51H,53H
           MOV     53H,R2
           MOV     54H,R1
           LJMP    ZS
ZP:        CJNE    A,#06H,ZA
           DEC     55H
           DEC     54H
           DEC     53H
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     R2,51H
           MOV     R3,52H
           MOV     50H,55H
           MOV     51H,54H
           MOV     52H,53H
           MOV     53H,R3
           MOV     54H,R2
           MOV     55H,R1
           LJMP    ZS
ZA:        CJNE    A,#07H,ZB
           DEC     56H
           DEC     55H
           DEC     54H
           DEC     53H
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     R2,51H
           MOV     R3,52H
           MOV     50H,56H
           MOV     51H,55H
           MOV     52H,54H
           MOV     54H,R3
           MOV     55H,R2
           MOV     56H,R1
           LJMP    ZS
ZB:        CJNE    A,#08H,$
           DEC     57H
           DEC     56H
           DEC     55H
           DEC     54H
           DEC     53H
           DEC     52H
           DEC     51H
           DEC     50H
           MOV     R1,50H
           MOV     R2,51H
           MOV     R3,52H
           MOV     R4,53H
           MOV     50H,57H
           MOV     51H,56H
           MOV     52H,55H
           MOV     53H,54H
           MOV     54H,R4
           MOV     55H,R3
           MOV     56H,R2
           MOV     57H,R1
ZS:        PUSH	   PSW
	   MOV     R0,#50H
           MOV     R1,#4FH
           LCALL   BCDHEX
           MOV     4CH,     5CH           ;高位不用置零
           MOV     4DH,     5DH
           MOV     4EH,     5EH
           MOV     4FH,     5FH
           MOV     5AH,     #00H
           MOV     5BH,     #01H
           MOV     5CH,     #00H
           MOV     5DH,     #00H          ;置数值先送入4D~4F单元
           MOV     5EH,     #00H
           MOV     5FH,     #00H
           LCALL   MULNM
           MOV     44H,54H
           MOV     45H,55H
           MOV     46H,56H
           MOV     47H,57H
           MOV     48H,58H
           MOV     49H,59H
           MOV     4AH,5AH
           MOV     4BH,5BH
           MOV     4CH,5CH
           MOV     4DH,5DH
           MOV     4EH,5EH
           MOV     4FH,5FH

           MOV     58H,#00H
           MOV     59H,#00H
           MOV     5AH,#00H
           MOV     5BH,#00H
           MOV     5CH,#0AH
           MOV     5DH,#0BAH
           MOV     5EH,#95H
           MOV     5FH,#00H
           LCALL   DIVD2
           NOP
           CLR      P1.2
           NOP
           NOP
           SETB     P1.2
           NOP
           NOP
           CLR      P1.2

           CLR      P1.0
           CLR      P1.1
           NOP
           MOV      P2,#01H              ;W0
           NOP
           SETB     P1.0

⌨️ 快捷键说明

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