📄 print.txt
字号:
///////////////////////////////////////////////////////////////////////////////////////////////////////////
;correct
;单片机CPU的P1.0~P1.6分别接模块上的L.S、D.T、P.M、PSA、PSB、PSC、PSD,P1.7接实验箱上的;平推开关KK1的输出K1
;模块上的P.P接实验箱上的平推开关KK8的输出K8,实验时要保证KK8在H侧,输出为高电平
////////////////////////////////////////////////////////////////
CSEG AT 00H
LJMP START
CSEG AT 4100H //主函数,
START: MOV P1, #0FFH
START1: MOV 20H, #00H
MOV 21H, #00H
MOV 50H,20H //初始化各参数
LCALL DELAY100M //延时60毫秒
MOV R5,#08H
MOV R6,#90H
MOV R7,#2
MOV R1,#0
JNB P1.7,PRINT603
LJMP START1
PRINT603: MOV A,20H
JB ACC.0,PRINT51
CLR P1.2 ;马达供电
PRINT50: LCALL PRINTLINE ;打印一行
MOV R7,#33H
DJNZ R5,PRINT50 ;前8行
NOP
SETB P1.2 ;马达断电
LCALL DELAY100M ;延时
MOV R5,#8
CLR P1.2 ;马达供电
PRINT51: LCALL PRINTLINE ;打印一行
MOV R7,#33H
DJNZ R5,PRINT51 ;中间8行
NOP
SETB P1.2
LCALL DELAY100M
MOV R5,#7
CLR P1.2
PRINT52: LCALL PRINTLINE
MOV R7,#33H
DJNZ R5,PRINT52 ;后8 行
NOP
SETB P1.2
LCALL DELAY100M
LJMP START1
/////////////////////////////////////////////////////////
DELAY100M: MOV R6, #40 ;60ms
DEL1: MOV R7, #250
DEL2: NOP
NOP
DJNZ R7, DEL2
DJNZ R6, DEL1
RET
//////////////////////////////////////////////////////////////////////////////
WAIT: CLR A
MOV C,P1.1
RLC A
MOV 41H,A
MOV 50H,A
XRL A,40H
JZ WAIT
MOV 40H,41H
MOV 50H,41H
RET
///////////////////////////////////////////////////////////////////////////
PRINTLINE: NOP
JNB P1.0,PRINTLINE ;等待R信号
MOV R2, #60H
MOV R3,#00H
CLR A
MOV C,P1.1
RLC A
MOV 40H,A
MOV 50H,40H
LCALL WAIT ;等待打印机定时脉冲 ///////////////////////////////////////////////////////////////////////////////////
PRINT300: MOV DPTR,#TABLE11 ;打印第一个字的第R1个点阵数据
LCALL PRINT1
MOV DPTR,#TABLE12 ;打印第二个字的第R1个点阵数据
LCALL PRINT2
MOV DPTR,#TABLE13 ;打印第三个字的第R1个点阵数据
LCALL PRINT3
MOV DPTR,#TABLE14 ;打印第四个字的第R1个点阵数据
LCALL PRINT4
INC R3
MOV A,R3
CJNE A,#8,PRINT300 ;第R1个点阵数据的8位点阵数据打印完
MOV R3,#0
INC R1
DEC R7
MOV A,R2
JNZ PRINT300 ;96点打印完
NOP
RET
////////////////////////////////////////////////////////////////////////////////////////////////////////
PRINT1: MOV A,R3 ;打印第1个字的第R1个点阵数据的第R3位
JNZ PRINT400
MOV A, R1 ;是第一次调用,第R1个点阵数据暂存43H
MOVC A, @A+DPTR
MOV 43H,A ;
PRINT400: MOV A,43H
JNB ACC.7, PRINT111 ;打印最高位
CLR P1.3
LCALL WAIT
SETB P1.3
LJMP PRINT311
PRINT111: LCALL WAIT
PRINT311: MOV A,43H
RL A ;第R1个点阵数据左移,暂存43H
MOV 43H,A
MOV 50H,43H
RET
PRINT2: DEC R2
MOV A,R3
JNZ PRINT401
MOV A,R1
MOVC A,@A+DPTR
MOV 44H,A
PRINT401: MOV A,44H
JNB ACC.7,PRINT11
CLR P1.4
LCALL WAIT
SETB P1.4
LJMP PRINT312
PRINT11: LCALL WAIT
PRINT312: MOV A,44H
RL A
MOV 44H,A
MOV 50H,44H
RET
PRINT3: DEC R2
MOV A,R3
JNZ PRINT402
MOV A,R1
MOVC A,@A+DPTR
MOV 45H,A
PRINT402: MOV A,45H
JNB ACC.7,PRINT21
CLR P1.5
LCALL WAIT
SETB P1.5
LJMP PRINT313
PRINT21: LCALL WAIT
PRINT313: MOV A,45H
RL A
MOV 45H,A
MOV 50H,45H
RET
PRINT4: DEC R2
MOV A,R3
JNZ PRINT403
MOV A,R1
MOVC A,@A+DPTR
MOV 46H,A
PRINT403: MOV A,46H
JNB ACC.7,PRINTEND
CLR P1.6
LCALL WAIT
SETB P1.6
LJMP PRINT314
PRINTEND: LCALL WAIT
PRINT314: MOV A,46H
RL A
MOV 46H,A
MOV 50H,46H
DEC R2
INC R7
RET
/////////////////////////////////////////////////////////////////////////////////////////////////////
TABLE11: DB 00H,00H,00H,00H,00H,00H,00H,0C6H,00H,00H,84H,00H,00H,84H,00H,00H
DB 84H,00H,00H,84H,10H,00H,84H,18H,3FH,84H,60H,00H,84H,80H,00H,87H
DB 00H,00H,84H,00H,00H,84H,00H,00H,84H,00H,00H,84H,00H,00H,84H,08H
DB 01H,84H,08H,0EH,84H,08H,30H,84H,08H,00H,84H,08H,00H,87H,0F8H,00H
DB 80H,00H,00H,00H,00H
TABLE12: DB 00H,00H,00H,00H,00H,00H,00H,30H,00H,00H,18H,00H,00H,10H,18H,3FH
DB 0FFH,0FCH,00H,00H,00H,00H,00H,00H,03H,0FFH,0C0H,02H,00H,0C0H,02H,00H
DB 0C0H,02H,00H,0C0H,02H,00H,0C0H,03H,0FFH,0C0H,00H,10H,00H,00H,10H,00H
DB 03H,91H,80H,02H,10H,0C0H,04H,10H,60H,08H,10H,30H,30H,0F0H,30H,40H
DB 30H,00H,00H,00H,00H
TABLE13: DB 00H,00H,00H,00H,00H,00H,08H,06H,00H,04H,06H,00H,06H,06H,00H,04H
DB 06H,00H,00H,06H,00H,00H,04H,18H,00H,0FFH,0E0H,7CH,04H,00H,0CH,04H
DB 00H,0CH,0CH,00H,0CH,0BH,00H,0CH,18H,80H,0CH,10H,40H,0CH,20H,20H
DB 0CH,40H,30H,0DH,80H,10H,32H,00H,00H,61H,80H,00H,00H,7FH,0F8H,00H
DB 00H,10H,00H,00H,00H
TABLE14: DB 00H,00H,00H,00H,09H,00H,00H,0EH,0C0H,00H,04H,40H,08H,04H,18H,07H
DB 0FFH,0E0H,04H,04H,00H,04H,26H,60H,07H,0E2H,0C0H,0CH,22H,80H,08H,63H
DB 00H,08H,43H,88H,19H,0CCH,0C8H,10H,30H,78H,24H,00H,58H,47H,0FFH,0E0H
DB 04H,44H,40H,04H,44H,40H,04H,44H,40H,04H,44H,40H,3FH,0FFH,0F8H,00H
DB 00H,00H,00H,00H,00H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -