📄 stepper.src
字号:
$include(steppervar.inc)
*********SEE MEEZAN PRINTER************
ORG 00H
AJMP ATRESET
NOP
ORG 23H
SerialInt :
AJMP UART_ISR
ATRESET :
ANL P1,#0FH
MOV Sp,#50H
MOV PexilSize,#09H
MOV LineSpace,#15H
SETB ColEnd
ORL PCON,#80H ;enable high speed (doubled baud rate)
;MOV IP,#10H ;give serial port high priority
MOV TMOD,#20H ;timer 1 mode
MOV TH1,#0F3H ;load timer 1 reload
MOV SCON,#50H ;enable serial port in mod 1
MOV TL1,#0F3H
MOV TCON,#40H ;start timer 1
ORL IE,#90H
AJMP MAIN
BigDelay: DJNZ R7,$
DJNZ R7,$
Delay: DJNZ R7,$
DJNZ R7,$
SMALLDELAY: DJNZ R7,$
RET
UART_ISR:
JNB TI,$+07H ; SENDING
CLR TI
SETB Ready2Send
JB RI,$+04H
RETI
CLR RI
MOV SerialRecB,SBUF
RETI
MAIN: JNB Run,Go
MOV A,#"*"
XRL A,SerialRecB
JNZ MainLoop
MOV SerialRecB,#0
AJMP Go
MainLoop : ANL P1,#0FH
ACALL DELAY
AJMP Main
Go :
MOV LineA,#"Y"
MOV LineB,#"N"
MOV LineC,#" "
ACALL BurnCol
MOV LineA,#"a"
MOV LineB,#"a"
MOV LineC,#" "
ACALL BurnCol
MOV LineA,#"c"
MOV LineB,#"t"
MOV LineC,#" "
ACALL BurnCol
MOV LineA,#"o"
MOV LineB,#"s"
MOV LineC,#" "
ACALL BurnCol
MOV LineA,#"u"
MOV LineB,#"h"
MOV LineC,#" "
ACALL BurnCol
MOV LineA,#"b"
MOV LineB,#"e"
MOV LineC,#" "
ACALL BurnCol
MOV LineA,#" "
MOV LineB,#"h"
MOV LineC,#" "
ACALL BurnCol
MOV LineA,#" "
MOV LineB,#" "
MOV LineC,#" "
ACALL BurnCol
AJMP MAIN
Clock_Count:JNB ColEnd,SetClk
CLR ColEnd
MOV Colsize1,#0A0H
MOV Colsize2,#03H
SetClk : SETB CLK
NOP
CLR CLK
DJNZ Colsize1,EndClk
DJNZ Colsize2,EndClk
SETB ColEnd
EndClk : RET
GetChar :
MOV DPTR,#CharSet
MOV A,@R1
INC R1
CLR CY
SUBB A,#20H
MOV B,#05H
MUL AB
CLR CY
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV A,#05H
SUBB A,CharWide
RET
BurnCol :
ACALL Stepping
ACALL Stepping
MOV CharWide,#05H
BurnColLoop:MOV R1,#LineA
CLR LastLine
ACALL GetChar
MOVC A,@A+DPTR
ACALL SendLine
ACALL GetChar
MOVC A,@A+DPTR
ACALL SendLine
SETB LastLine
ACALL GetChar
MOVC A,@A+DPTR
ACALL SendLine
PUSH PexilSize
MOV A,PexilSize
MOV B,#03H
DIV AB
XCH A,PexilSize
SUBB A,PexilSize
XCH A,PexilSize
NextLine : ACALL Burning
ACALL Stepping
DJNZ PexilSize,NextLine
POP PexilSize
ACALL Stepping
DJNZ CharWide,BurnColLoop
ACALL Stepping
ACALL Stepping
RET
Burning : CLR Strobe
NOP
NOP
SETB Strobe
CLR Enable
ACALL DELAY
SETB Enable
RET
Stepping: JNB StepAB,Step2
Step1: CPL StepAB
ANL P1,#0FH
ORL P1,#90H
ACALL BigDelay
ANL P1,#0FH
ORL P1,#50H
ACALL BigDelay
RET
Step2: CPL StepAB
ANL P1,#0FH
ORL P1,#60H
ACALL BigDelay
ANL P1,#0FH
ORL P1,#0A0H
ACALL BigDelay
RET
SendLine : PUSH LineSpace
ACALL Clock_Count
DJNZ LineSpace,$-2
POP LineSpace
MOV R0,#08H
NextBit: JB ACC.7,$+7
CLR DATAOUT
AJMP $+4
SETB DATAOUT
PUSH PexilSize
Clocking: ACALL Clock_Count
DJNZ PexilSize,Clocking
POP PexilSize
RL A
CLR DATAOUT
ACALL Clock_Count
DJNZ R0,NextBit
Ending : JNB ColEnd,$+4
RET
JNB LastLine,$-1
ACALL Clock_Count
AJMP Ending
CharSet : DB 00H,00H,00H,00H,00H ;( )
DB 00H,00H,4FH,00H,00H ;(!)
DB 00H,07H,00H,07H,00H ;()
DB 14H,7FH,14H,7FH,14H ;(#)
DB 24H,2AH,7FH,2AH,12H ;($)
DB 23H,13H,08H,64H,62H ;(%)
DB 36H,49H,55H,22H,50H ;(&)
DB 00H,05H,03H,00H,00H ;(')
DB 00H,1CH,22H,41H,00H ;(()
DB 00H,41H,22H,1CH,00H ;())
DB 14H,08H,3EH,08H,14H ;(*)
DB 08H,08H,3EH,08H,08H ;(+)
DB 00H,50H,30H,00H,00H ;(,)
DB 08H,08H,08H,08H,08H ;(-)
DB 00H,60H,60H,00H,00H ;(.)
DB 20H,10H,08H,04H,02H ;(/)
Numbers0: DB 3EH,51H,49H,45H,3EH ;(0)
Numbers1: DB 00H,42H,7FH,40H,00H ;(1)
Numbers2: DB 42H,61H,51H,49H,46H ;(2)
Numbers3: DB 21H,41H,45H,4BH,31H ;(3)
Numbers4: DB 18H,14H,12H,7FH,10H ;(4)
Numbers5: DB 27H,45H,45H,45H,39H ;(5)
Numbers6: DB 3CH,4AH,49H,49H,30H ;(6)
Numbers7: DB 03H,01H,71H,09H,07H ;(7)
Numbers8: DB 36H,49H,49H,49H,36H ;(8)
Numbers9: DB 06H,49H,49H,29H,1EH ;(9)
DB 00H,36H,36H,00H,00H ;(:)
DB 00H,56H,36H,00H,00H ;(;)
DB 08H,14H,22H,41H,00H ;(<)
DB 14H,14H,14H,14H,14H ;(=)
DB 00H,41H,22H,14H,08H ;(>)
DB 02H,01H,51H,09H,06H ;(?)
DB 00H,00H,00H,00H,00H ;()
CharacterA: DB 7EH,11H,11H,11H,7EH ;(A)
CharacterB: DB 7FH,49H,49H,49H,36H ;(B)
CharacterC: DB 3EH,41H,41H,41H,22H ;(C)
CharacterD: DB 7FH,41H,41H,22H,1CH ;(D)
CharacterE: DB 7FH,49H,49H,49H,41H ;(E)
CharacterF: DB 7FH,09H,09H,09H,01H ;(F)
CharacterG: DB 3EH,41H,49H,49H,3AH ;(G)
CharacterH: DB 7FH,08H,08H,08H,7FH ;(H)
CharacterI: DB 00H,41H,7FH,41H,00H ;(I)
CharacterJ: DB 20H,40H,41H,3FH,01H ;(J)
CharacterK: DB 7FH,08H,14H,22H,41H ;(K)
CharacterL: DB 7FH,40H,40H,40H,40H ;(L)
CharacterM: DB 7FH,02H,0CH,02H,7FH ;(M)
CharacterN: DB 7FH,04H,08H,10H,7FH ;(N)
CharacterO: DB 3EH,41H,41H,41H,3EH ;(O)
CharacterP: DB 7FH,09H,09H,09H,06H ;(P)
CharacterQ: DB 3EH,41H,51H,21H,5EH ;(Q)
CharacterR: DB 7FH,09H,19H,29H,46H ;(R)
CharacterS: DB 46H,49H,49H,49H,31H ;(S)
CharacterT: DB 01H,01H,7FH,01H,01H ;(T)
CharacterU: DB 3FH,40H,40H,40H,3FH ;(U)
CharacterV: DB 1FH,20H,40H,20H,1FH ;(V)
CharacterW: DB 3FH,40H,38H,40H,3FH ;(W)
CharacterX: DB 63H,14H,08H,14H,63H ;(X)
CharacterY: DB 07H,08H,70H,08H,07H ;(Y)
CharacterZ: DB 61H,51H,49H,45H,43H ;(Z)
DB 00H,7FH,41H,41H,00H ;([)
DB 15H,16H,7CH,16H,15H ;()
DB 00H,41H,41H,7FH,00H ;(])
DB 04H,02H,01H,02H,04H ;(^)
DB 40H,40H,40H,40H,40H ;(_)
DB 00H,01H,02H,04H,00H ;(`)
DB 20H,54H,54H,54H,78H ;(a)
DB 7FH,48H,44H,44H,38H ;(b)
DB 38H,44H,44H,44H,20H ;(c)
DB 38H,44H,44H,48H,7FH ;(d)
DB 38H,54H,54H,54H,18H ;(e)
DB 08H,7EH,09H,01H,02H ;(f)
DB 0CH,52H,52H,52H,3EH ;(g)
DB 7FH,08H,04H,04H,78H ;(h)
DB 00H,44H,7DH,40H,00H ;(i)
DB 00H,20H,40H,44H,3DH ;(j)
DB 7FH,10H,28H,44H,00H ;(k)
DB 00H,41H,7FH,40H,00H ;(l)
DB 7CH,04H,78H,04H,78H ;(m)
DB 7CH,08H,04H,04H,78H ;(n)
DB 38H,44H,44H,44H,38H ;(o)
DB 7CH,14H,14H,14H,08H ;(p)
DB 08H,14H,14H,18H,7CH ;(q)
DB 7CH,08H,04H,04H,08H ;(r)
DB 48H,54H,54H,54H,20H ;(s)
DB 04H,3FH,44H,40H,20H ;(t)
DB 3CH,40H,40H,20H,7CH ;(u)
DB 1CH,20H,40H,20H,1CH ;(v)
DB 3CH,40H,38H,40H,3CH ;(w)
DB 44H,28H,10H,28H,44H ;(x)
DB 0CH,50H,50H,50H,3CH ;(y)
DB 44H,64H,54H,4CH,44H ;(z)
DB 00H,08H,36H,41H,00H ;({)
DB 00H,00H,7FH,00H,00H ;(|)
DB 00H,41H,36H,08H,00H ;(})
DB 08H,08H,2AH,1CH,08H ;(->)
DB 08H,1CH,2AH,08H,08H ;(<-)
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -