在智能小車的硬件電路基礎上,利用P89V51RD2的PWM功能實現小車的轉彎功能(左轉和右轉),下圖為小車電機驅動電路原理。
硬件電路分析
當左側電機需要前進時,L-端保持為“1”,電機的轉動速度由L+端的占空比決定;
當左側電機需要后退時,L+端保持為“1”,電機的轉動速度由L-端的占空比決定;
當右側電機需要前進時,R-端保持為“1”,電機的轉動速度由R+端的占空比決定;
當右側電機需要后退時,R+端保持為“1”,電機的轉動速度由R-端的占空比決定。
軟件思路
智能小車左轉的條件:左側電機反轉,同時右側電機正轉。
智能小車右轉的條件:右側電機反轉,同時左側電機正轉。
智能小車加速的條件:減少PWM脈沖的占空比。
智能小車減速的條件:增加PWM脈沖的占空比。
單片機硬件資源分配
單片機I/O口分配
??左側電機前進PWM控制信號:??P1.7(CEX4)
??左側電機后退PWM控制信號:??P1.6(CEX3)
??右側電機前進PWM控制信號:??P1.5(CEX2)
??右側電機后退PWM控制信號:??P1.4(CEX1)
程序關鍵點
智能小車PWM初始化程序
?PWM_INIT:?MOV?TMOD,#02H
???MOV?CMOD,#04H
???MOV?TH0,#20H
???MOV?TL0,#20H
???SETB?? ?TR0
???MOV??? ?CCON,#40H??? ;啟動PCA計數器工作
程序關鍵點
智能小車左轉程序
?CAR_LEFT:?MOV?CCON,#00H
???SETB??? ?P1.4??
?????? ???SETB??? ?P1.5
?????? ???SETB??? ?P1.6
??????? ??SETB??? ?P1.7
???MOV?CCAPM1,#00H
???MOV?CCAPM4,#00H
??????? ??MOV???? ?CCAPM2,#42H
?????? ???MOV???? ?CCAP2H,#100
?????? ???MOV???? ?CCAPM3,#42H
???MOV???? ?CCAP3H,#100
?????? ???MOV???? ?CCON,#40H
?????? ???RET
程序關鍵點
智能小車右轉程序
?CAR_RIGHT:?MOV?CCON,#00H
???SETB?? ? P1.4??
?????? ???SETB??? ?P1.5
?????? ???SETB??? P1.6
??????? ??SETB??? P1.7
???MOV?CCAPM2,#00H
???MOV?CCAPM3,#00H
??????? ??MOV???? CCAPM1,#42H
?????? ???MOV???? CCAP1H,#100
?????? ???MOV???? CCAPM4,#42H
???MOV???? CCAP4H,#100
?????? ???MOV???? CCON,#40H
?????? ???RET
程序關鍵點
智能小車前進程序
?CAR_G?MOV?CCON,#00H
???SETB??? P1.4??
?????? ???SETB??? P1.5
?????? ???SETB??? P1.6
??????? ??SETB??? P1.7
???MOV?CCAPM1,#00H
???MOV?CCAPM3,#00H
??????? ??MOV???? CCAPM2,#42H
?????? ???MOV???? CCAP2H,#100
?????? ???MOV???? CCAPM4,#42H
???MOV???? CCAP4H,#100
?????? ???MOV???? CCON,#40H
?????? ???RET
程序關鍵點
智能小車后退程序
?CAR_BACK:?MOV?CCON,#00H
???SETB??? P1.4??
?????? ???SETB??? P1.5
?????? ???SETB??? P1.6
??????? ??SETB??? P1.7
???MOV?CCAPM2,#00H
???MOV?CCAPM4,#00H
??????? ??MOV???? CCAPM1,#42H
?????? ???MOV???? CCAP1H,#100
?????? ???MOV???? CCAPM3,#42H
???MOV???? CCAP3H,#100
?????? ???MOV???? CCON,#40H
?????? ???RET
評論
查看更多