題45(實踐型)
利用單片機驅動五線四相步進電機(依次給各相脈衝即可驅動)。
備註:驅動芯片ULN2003
ULN2003:
ULN2003是高耐壓、大電流複合晶體管陣列,由七個硅NPN 複合晶體管組成,每一對達林頓都串聯一個2.7K 的基極電阻,在5V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標準邏輯緩衝器來處理的數據。
步進電機實物圖:
參考資料:
程序源碼:
步進電機正轉:(順時針)
;驅動步進電機
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#00H
SETB ET0
SETB EA
MOV TMOD,#01H
MOV TL0,#77h
MOV TH0,#0ecH
;5 MS
MOV A,#08H
SETB TR0
SJMP $
TIMER0ADDR:
MOV TL0,#77h
MOV TH0,#0ecH
MOV P1,A
RR A
CJNE A,#00H,L1
MOV A,#01H
L1:
RETI
END
步進電機反轉:(逆時針)
程序源碼:
;驅動步進電機
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0ADDR
ORG 0030H
START:
MOV SP,#60H
MOV P1,#00H
SETB ET0
SETB EA
MOV TMOD,#01H
MOV TL0,#2Fh
MOV TH0,#0F8H
;2 MS
MOV A,#01H
SETB TR0
SJMP $
TIMER0ADDR:
MOV TL0,#2Fh
MOV TH0,#0F8H
MOV P1,A
RL A
CJNE A,#00H,L1
MOV A,#01H
L1:
RETI
END
小知識點補充12:
AD轉換器的主要技術指標:
1,轉換時間和轉換速率:是指AD轉換器完成一次轉換所需的時間,轉換時間的倒數稱爲轉換速率
2,分辨率:是衡量AD轉換器能夠分辨出模擬輸入量最小變化程度的技術指標。
3,轉換精度:定義爲一個實際AD轉換器與一個理想AD轉換器在量化值上的差值,可用相對轉換精度和絕對轉換精度表示。
強化指令3:XRL異或指令
XRL指令:是指相同爲0,不同爲1,可用於對某些位取反,不關心的位保持不便。(實際應用中較爲重要)
考題:
**已知( R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 執行如下程序段後, ( 40H ) = **
;程序段: ;解析:
MOV @R0,#11H ;(20H)=11H
MOV A,R2 ;(A)=20H
ADD A,20H ;(A)=20H+11H
MOV PSW,#80H ;CY=1
SUBB A,P0 ;(A)=20H+11H-30H-1=0
XRL A,#45H ;(A)=(A)異或45H=45H
MOV 40H,A ;(40H)=(A)
答案:
45H
概念考題2:
解析:此題重點掌握。單片機內部資源需掌握,對後續學習有幫助。
題51
編寫程序查表求兩數的平方和。
程序源碼:
ORG 0000H
START:
MOV A,#2 ;FOR TESTING
ACALL SQR
MOV R1,A
MOV A,#4 ;FOR TESTING
ACALL SQR
ADD A,R1
MOV 40H,A
SJMP $
SQR:
INC A
MOVC A,@A+PC
RET
TAB: DB 0,1,4,9,16,25,36,49,64,81
END