⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stepper.src

📁 stepper controlling by AT89c2051
💻 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 + -