|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[li]#include<at892051.h> // at892051.h 這個檔案裡有各個暫存器對應的記憶位址
[/li][li]main()
[/li][li]{
[/li][li] while (1) // 讓程式反覆執行
[/li][li] {
[/li][li] if (P1_2==1) // 如果右前方有障礙物
[/li][li] P1_3=1; // 左輪反轉
[/li][li] if (P1_2==0) // 如果右前方無障礙物
[/li][li] P1_3=0; // 左輪前進
[/li][li] if (P1_4==1) // 如果左前方有障礙物
[/li][li] P1_5=1; // 右輪反轉
[/li][li] if (P1_4==0) // 如果左前方無障礙物
[/li][li] P1_5=0; // 右輪前進
[/li][li] }
[/li][li]}[/li] 复制代码
[li]例題二 閃避前方的障礙物 (先後退再轉彎)
[/li][li]
[/li][li]假若右前方有障礙物, 則車子先後退, 再向左轉 .
[/li][li]假若左前方有障礙物, 則向右轉 (不後退)
[/li][li]
[/li][li]
[/li][li]#include<at892051.h> // at892051.h 這個檔案裡有各個暫存器對應的記憶位址
[/li][li]void delay(unsigned int dly);
[/li][li]main()
[/li][li]{
[/li][li] while (1) // 讓程式反覆執行
[/li][li] {
[/li][li] if (P1_2==1) // 如果右前方有障礙物
[/li][li] {
[/li][li] P1_3=1; // 左輪反轉
[/li][li] P1_5=1; // 右輪反轉
[/li][li] delay(100); // 讓車子後退一段時間
[/li][li] P1_5=0; //右輪前進,車子開始向左轉
[/li][li] delay(40); // 讓車子轉彎一段時間
[/li][li] }
[/li][li] if (P1_2==0) // 如果右前方無障礙物
[/li][li] P1_3=0; // 左輪前進
[/li][li] delay(1); // 等一段時間, 讓干擾消失
[/li][li] if (P1_4==1) // 如果左前方有障礙物
[/li][li] P1_5=1; // 右輪反轉
[/li][li] delay(1); // 等一段時間, 讓干擾消失
[/li][li] if (P1_4==0) // 如果左前方無障礙物
[/li][li] P1_5=0; // 右輪前進
[/li][li] delay(1); // 等一段時間, 讓干擾消失
[/li][li] }
[/li][li]}
[/li][li]
[/li][li]
[/li][li]void delay(unsigned int dly) // 延遲時間的副程式
[/li][li] {
[/li][li] dly=dly*300;
[/li][li] while (dly>0)
[/li][li] dly--;
[/li][li] }[/li] 复制代码
[li]例題三 閃避前方的障礙物
[/li][li]
[/li][li]假若右前方有障礙物, 則車子左右搖擺五次, 再轉彎前進.
[/li][li]假若左前方有障礙物, 則向右轉 (不後退)
[/li][li]
[/li][li]#include<at892051.h>
[/li][li]void delay(unsigned int dly);
[/li][li]unsigned int aa;
[/li][li]main()
[/li][li]{
[/li][li] while (1)
[/li][li] {
[/li][li] if (P1_2==1)
[/li][li] {
[/li][li] P1_3=1;
[/li][li] P1_5=1;
[/li][li] delay(1);
[/li][li] for (aa=1;aa<=5;aa=aa+1)
[/li][li] {
[/li][li] P1_3=1;
[/li][li] P1_5=0;
[/li][li] delay(40);
[/li][li] P1_3=0;
[/li][li] P1_5=1;
[/li][li] delay(40);
[/li][li] }
[/li][li] P1_5=0;
[/li][li] delay(100);
[/li][li] }
[/li][li] if (P1_2==0)
[/li][li] P1_3=0;
[/li][li] delay(1);
[/li][li] if (P1_4==1)
[/li][li] P1_5=1;
[/li][li] delay(1);
[/li][li] if (P1_4==0)
[/li][li] P1_5=0;
[/li][li] delay(1);
[/li][li] }
[/li][li]}
[/li][li]
[/li][li]void delay(unsigned int dly)
[/li][li] {
[/li][li] dly=dly*300;
[/li][li] while (dly>0)
[/li][li] dly--;
[/li][li] }[/li] 复制代码 |
|