📄 波形信号发生器程序.txt
字号:
;-- 宋体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 010h,021h,086h,060h,090h,090h,0FFh,090h,090h,000h,0FEh,092h,092h,0FEh,000h,000h
DB 004h,0FCh,003h,000h,01Fh,010h,010h,090h,05Fh,030h,00Fh,040h,080h,07Fh,000h,000h
TAB1:
;-- 文字: 南 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 004h,004h,0E4h,024h,024h,064h,0B4h,02Fh,024h,0A4h,064h,024h,024h,0E6h,004h,000h
DB 000h,000h,07Fh,004h,005h,005h,005h,07Fh,005h,005h,005h,025h,044h,03Fh,000h,000h
TAB2:
;-- 文字: 工 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000h,000h,002h,002h,002h,002h,002h,0FEh,002h,002h,002h,002h,002h,002h,000h,000h
DB 020h,020h,020h,020h,020h,020h,020h,03Fh,020h,020h,020h,020h,020h,020h,020h,000h
TAB3:
;-- 文字: 学 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 040h,030h,010h,012h,05Ch,054h,050h,051h,05Eh,0D4h,050h,018h,057h,032h,010h,000h
DB 000h,002h,002h,002h,002h,002h,042h,082h,07Fh,002h,002h,002h,002h,002h,002h,000h
TAB4:
;-- 文字: 院 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 0FEh,002h,032h,04Ah,086h,00Ch,024h,024h,025h,026h,024h,024h,024h,00Ch,004h,000h
DB 0FFh,000h,002h,004h,083h,041h,031h,00Fh,001h,001h,07Fh,081h,081h,081h,0F1h,000h
TAB5:
;-- 文字: 电 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,0F8H,048H,048H,048H,048H,0FFH,048H,048H,048H,048H,0F8H,000H,000H,000H
DB 000H,000H,00FH,004H,004H,004H,004H,03FH,044H,044H,044H,044H,04FH,040H,070H,000H
TAB6:
;-- 文字: 气 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,020H,010H,08CH,0A7H,0A4H,0A4H,0A4H,0A4H,0A4H,0A4H,0A4H,024H,004H,004H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,00FH,030H,040H,0F0H,000H
TAB7:
;-- 文字: 与 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,000H,000H,07EH,048H,048H,048H,048H,048H,048H,048H,048H,0CCH,008H,000H
DB 000H,004H,004H,004H,004H,004H,004H,004H,004H,024H,046H,044H,020H,01FH,000H,000H
TAB8:
;-- 文字: 信 --
;-- 宋体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
TAB9:
;-- 文字: 息 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,000H,0FCH,054H,054H,056H,055H,054H,054H,054H,0FCH,000H,000H,000H,000H
DB 000H,020H,038H,001H,03DH,041H,041H,045H,059H,041H,041H,071H,000H,008H,030H,000H
TAB10:
;-- 文字: 工 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,002H,002H,002H,002H,002H,0FEH,002H,002H,002H,002H,002H,002H,000H,000H
DB 020H,020H,020H,020H,020H,020H,020H,03FH,020H,020H,020H,020H,020H,020H,020H,000H
TAB11:
;-- 文字: 程 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 010H,012H,0D2H,0FEH,091H,011H,080H,0BFH,0A1H,0A1H,0A1H,0A1H,0BFH,080H,000H,000H
DB 004H,003H,000H,0FFH,000H,041H,044H,044H,044H,07FH,044H,044H,044H,044H,040H,000H
TAB12:
;-- 文字: 系 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,002H,022H,0B2H,0AAH,066H,062H,022H,011H,04DH,081H,001H,001H,000H,000H
DB 000H,040H,021H,013H,009H,005H,041H,081H,07FH,001H,005H,009H,013H,062H,000H,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
UNITT1:
;-- 文字: 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
UNITT2:
;-- 文字: 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
ADDISP1:
;-- 文字: 电 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000,000,0F8H,048H,048H,048H,048H,0FFH,048H,048H,048H,048H,0F8H,000H,000H,000H
DB 000,000,00FH,004H,004H,004H,004H,03FH,044H,044H,044H,044H,04FH,040H,070H,000H
ADDISP2:
;-- 文字: 压 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,0FEH,002H,042H,042H,042H,042H,0FAH,042H,042H,042H,062H,042H,002H,000H
DB 020H,018H,027H,020H,020H,020H,020H,020H,03FH,020H,021H,02EH,024H,020H,020H,000H
ADDISP3:
;-- 文字: : --
;-- 宋体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
DT1:
;-- 文字: 移 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 010H,092H,072H,0FEH,091H,019H,090H,088H,044H,053H,0A2H,052H,00AH,006H,000H,000H
DB 002H,001H,000H,0FFH,000H,081H,088H,044H,046H,029H,011H,009H,005H,003H,001H,000H
DT2:
;-- 文字: 相 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 010H,010H,0D0H,0FFH,030H,050H,090H,000H,0FEH,022H,022H,022H,022H,0FEH,000H,000H
DB 004H,003H,000H,0FFH,000H,000H,001H,000H,0FFH,042H,042H,042H,042H,0FFH,000H,000H
DT3:
;-- 文字: 度 --
;-- 宋体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
;8155初始化子程序CSH8155
CSH8155: PUSH DPH
PUSH DPL
PUSH ACC
MOV P2,#FG8155
MOV R1,#FD8155
MOV P0,R1
MOV A,#03H
MOVX @R1,A
POP ACC
POP DPL
POP DPH
RET
;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
;置数子程序
;/入口参数:KYEZHI 出口参数:50H-5FH*/
ZHISU: PUSH PSW
PUSH DPH
PUSH DPL
SETB RS0
SETB RS1
MOV DPTR,#TABF0
MOV COMX,#0B8H
MOV COMY,#40H ;频
MOV JCS1CS2,#00H
LCALL DISP
MOV DPTR,#TABF1
MOV COMX,#0B8H
MOV COMY,#50H ;率
MOV JCS1CS2,#00H
LCALL DISP
MOV DPTR,#TABF2
MOV COMX,#0B8H
MOV COMY,#60H ;:
MOV JCS1CS2,#00H
LCALL DISP
MOV R6,#00H
MOV R5,#40H
MOV R4,#00H;计算输入数的个数
MOV R0,#50H
LOOOP: LCALL KEY
MOV KEYZHI,A
MOV A,4EH ; 判是否有键按下
CJNE A,#00H,LOOOP
MOV A,KEYZHI
CJNE A,#0BH,KU
LJMP YY
KU: MOV @R0,KEYZHI
LCALL FINDTAB
MOV COMX,#0BAH
MOV COMY,R5
MOV JCS1CS2,R6
LCALL DISP
MOV A,R5
ADD A,#10H
MOV R5,A
INC R0
INC R4
MOV A,R4
CJNE A,#04H,RRR
MOV R6,#01H
MOV R5,#40H
RRR: LJMP LOOOP
YY: MOV A,R4
CJNE A,#00H,KS
LJMP TSF0
KS: MOV DPTR,#UNITT1
MOV COMX,#0BCH
MOV COMY,#40H
MOV JCS1CS2,#00H
LCALL DISP
MOV DPTR,#UNITT2
MOV COMX,#0BCH
MOV COMY,#50H
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
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 5CH, #00H
MOV 5DH, #28H ;置数值先送入4D~4F单元
MOV 5EH, #0F5H
MOV 5FH, #0C2H ;先乘以2684354(扩大1000000倍后的2的24次方除时钟6.25M的值)
LCALL MULNM
MOV 4AH,5AH
MOV 4BH,5BH
MOV 4CH,5CH
MOV 4DH,5DH
MOV 4EH,5EH
MOV 4FH,5FH
MOV 5AH,#00H
MOV 5BH,#00H
MOV 5CH,#00H
MOV 5DH,#0FH
MOV 5EH,#42H
MOV 5FH,#40H
LCALL DIVD2
;送频率字
PLZ: SETB P1.6
CLR P1.5
MOV P0,4DH
NOP
CLR P1.6
SETB P1.5
MOV P0,4EH
NOP
CLR P1.6
CLR P1.5
MOV P0,4FH
NOP
LJMP $
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -