📄 波形信号发生器程序.asm
字号:
;-- 文字: 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 + -