📄 波形信号发生器程序.txt
字号:
MOV DPTR,#TAB5
MOV COMX,#0BCH ;电
MOV COMY,#40H
MOV JCS1CS2,#00H
LCALL DISP
MOV DPTR,#TAB6
MOV COMX,#0BCH ;气
MOV COMY,#50H
MOV JCS1CS2,#00H
LCALL DISP
MOV DPTR,#TAB7
MOV COMX,#0BCH
MOV COMY,#60H ;与
MOV JCS1CS2,#00H
LCALL DISP
MOV DPTR,#TAB8
MOV COMX,#0BCH
MOV COMY,#70H ;信
MOV JCS1CS2,#00H
LCALL DISP
MOV DPTR,#TAB9
MOV COMX,#0BCH
MOV COMY,#40H ;息
MOV JCS1CS2,#01H
LCALL DISP
MOV DPTR,#TAB10
MOV COMX,#0BCH
MOV COMY,#50H ;工
MOV JCS1CS2,#01H
LCALL DISP
MOV DPTR,#TAB11
MOV COMX,#0BCH
MOV COMY,#60H ;程
MOV JCS1CS2,#01H
LCALL DISP
MOV DPTR,#TAB12
MOV COMX,#0BCH
MOV COMY,#70H ;系
MOV JCS1CS2,#01H
LCALL DISP
TSF0: LCALL KEY
KEYGN: MOV DPTR, #KEYTAB
MOV KEYZHI, A
CLR C
SUBB A,#0BH
JNC CLR0
KK: MOV A,KEYZHI
MOV B, #03H
MUL AB
JMP @A+DPTR
CLR0: MOV COMX,#0B8H
MOV COMY,#40H
LCALL CLEAR1
LJMP KK
;键功能转移指令表KEYTAB
KEYTAB: LJMP TSF0
LJMP KEY00
LJMP KEY01
LJMP KEY02
LJMP KEY03
LJMP KEY04
LJMP KEY05
LJMP KEY06
LJMP KEY07
LJMP KEY08
LJMP KEY09
LJMP KEY0A
LJMP KEY0B
LJMP KEY0C
LJMP KEY0D
LJMP KEY0E
LJMP KEY0F
;键功能程序区
KEY00: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#40H
MOV JCS1CS2,#00H
LCALL DISP
LJMP TSF0
KEY01: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#50H
MOV JCS1CS2,#00H
LCALL DISP
LJMP TSF0
KEY02: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#60H
MOV JCS1CS2,#00H
LCALL DISP
LJMP TSF0
KEY03: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#70H
MOV JCS1CS2,#00H
LCALL DISP
LJMP TSF0
KEY04: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#40H
MOV JCS1CS2,#01H
LCALL DISP
LJMP TSF0
KEY05: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#50H
MOV JCS1CS2,#01H
ACALL DISP
LJMP TSF0
KEY06: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#60H
MOV JCS1CS2,#01H
ACALL DISP
LJMP TSF0
KEY07: LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,#70H
MOV JCS1CS2,#01H
ACALL DISP
LJMP TSF0
KEY08: LCALL FINDTAB
MOV COMX,#0BAH
MOV COMY,#40H
MOV JCS1CS2,#00H
ACALL DISP
LJMP TSF0
KEY09: LCALL FINDTAB
MOV COMX,#0BAH
MOV COMY,#50H
MOV JCS1CS2,#00H
ACALL DISP
LJMP TSF0
KEY0A: LCALL FINDTAB ;置频率字
LCALL ZHISU
ACALL DISP
LJMP TSF0
KEY0B: SETB P1.1 ;写双口RAM
SETB P1.0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
CLR P1.0
LCALL WRITERAM
LJMP TSF0
KEY0C: LCALL CLEAR1 ;读双口RAM
LCALL READRAM
MOV R1,#08H
MOV R0,#40H
MOV R2,#00H
MOV R5,#40H
MOV R6,#00H
QQQ: MOV A,@R0
INC A
MOV KEYZHI,A
LCALL FINDTAB
MOV COMX,#0B8H
MOV COMY,R5
MOV JCS1CS2,R6
LCALL DISP
MOV A,R5
ADD A,#10H
MOV R5,A
INC R0
INC R2
MOV A,R2
CJNE A,#04H,UUU
MOV R6,#01H
MOV R5,#40H
UUU: DJNZ R1,QQQ
LJMP TSF0
KEY0D: LCALL FINDTAB ;置相位字
LCALL ZHISU1
LCALL DISP
LJMP TSF0
KEY0E:
LJMP TSF0
KEY0F:
LJMP TSF0
DISP: PUSH PSW
PUSH DPH
PUSH DPL
SETB RS0
CLR RS1
LCALL OUTPUT
NOP
NOP
NOP
NOP
MOV A, COMY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV COMONOFF, #3FH ;开显示
MOV COMSAME, COMONOFF
LCALL PRL00
LCALL DELAY
POP DPL
POP DPH
POP PSW
RET
;写命令子程序
PRL00: PUSH A
SETB CSA ;Write ins
SETB CSB ;CLR CSB
CLR DI
PRL001: NOP
NOP
NOP
NOP
MOV P0, COMSAME
SETB E
CLR E
POP A
RET
;写数据子程序
PRL11: PUSH A
MOV A, JCS1CS2
CJNE A, #00H, PRL1111
SETB CSA ;选择左片
CLR CSB
LJMP PRL111
PRL1111: CLR CSA ;选择右片
SETB CSB
PRL111: NOP
NOP
NOP
NOP
MOV P0, COMDATA
SETB DI
SETB E
CLR E
POP A
RET
;显示一个字的循环程序
OUTPUT: MOV R0, #00H
PUT1: MOV A, R0
ORL A, COMX
MOV COMSAME, A ;Set PAGE
LCALL PRL00
MOV COMSAME, COMY ;Set LINE
LCALL PRL00
MOV R3, #10H
PUT2: LCALL WORD
LCALL PRL11
DJNZ R3, PUT2
INC R0
CJNE R0, #02H, PUT1
MOV A, COMY
ADD A, #0FH
MOV COMY, A
MOV A, COMY
LCALL DELAY
INC COMX
INC COMX
RET
;查表程序
WORD: MOV A, #00H
MOVC A, @A+DPTR
MOV COMDATA, A
INC DPTR
RET
;延时程序
DELAY: MOV R4, #5
D1: MOV R5, #5
D2: MOV R6, #100
DJNZ R6, $
DJNZ R5, D2
DJNZ R4, D1
RET
;液晶清屏子程序
;/*入口参数: COMX 7AH ;液晶的x轴
; COMY 7BH ;液晶的y轴*/
CLEAR1:MOV R0,#00H ;Clear screen
CLS11: MOV A,R0
ORL A,COMX
MOV COMSAME,A
CALL PRL008
MOV COMSAME,COMY
CALL PRL008
MOV R3,#40H
CLS22: MOV COMDATA,#00H
CALL PRLL18
DJNZ R3,CLS22
INC R0
CJNE R0,#08H,CLS11
RET
PRL008: PUSH A
SETB CSA ;Write ins
SETB CSB ;CLR CSB
CLR DI
PRL0018: NOP
NOP
NOP
NOP
MOV P0,COMSAME
SETB E
CLR E
POP A
RET
PRLL18: PUSH A
SETB CSA ;Write data
SETB CSB ;CLR CSB
CLR DI
PRL1118: NOP
NOP
NOP
NOP
MOV P0,COMDATA
SETB DI
SETB E
CLR E
POP A
RET
TAB:
;-- 文字: 0 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,00FH,010H,020H,020H,010H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 1 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,010H,010H,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,020H,020H,03FH,020H,020H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 2 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,070H,008H,008H,008H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,030H,028H,024H,022H,021H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 3 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,030H,008H,088H,088H,048H,030H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,018H,020H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 4 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,0C0H,020H,010H,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,007H,004H,024H,024H,03FH,024H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 5 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,0F8H,008H,088H,088H,008H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,019H,021H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 6 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,0E0H,010H,088H,088H,018H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,00FH,011H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 7 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,038H,008H,008H,0C8H,038H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,03FH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 8 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,070H,088H,008H,008H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,01CH,022H,021H,021H,022H,01CH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: 9 --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,031H,022H,022H,011H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: A --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 000H,000H,0C0H,038H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 020H,03CH,023H,002H,002H,027H,038H,020H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: B --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 008H,0F8H,088H,088H,088H,070H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 020H,03FH,020H,020H,020H,011H,00EH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: C --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 0C0H,030H,008H,008H,008H,008H,038H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 007H,018H,020H,020H,020H,010H,008H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: D --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 008H,0F8H,008H,008H,008H,010H,0E0H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 020H,03FH,020H,020H,020H,010H,00FH,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: E --
;-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --
DB 008H,0F8H,088H,088H,0E8H,008H,010H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 020H,03FH,020H,020H,023H,020H,018H,000H,000H,000H,000H,000H,000H,000H,000H,000H
;-- 文字: F --
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -