導航:首頁 > 操作系統 > 51單片機小車模擬程序

51單片機小車模擬程序

發布時間:2022-09-12 00:44:40

❶ 51單片機控制的智能小車程序

#include<reg51.h> //包含單片機寄存器的頭文件
sbit IR=P3^2; //將IR位定義為P3.2引腳
unsigned char a[4]; //儲存用戶碼、用戶反碼與鍵數據碼、鍵數據反碼
unsigned int LowTime,HighTime; //儲存高、低電平的寬度
/************************************************************
函數功能:對4個位元組的用戶碼和鍵數據碼進行解碼
說明:解碼正確,返回1,否則返回0
出口參數:dat
*************************************************************/
bit DeCode(void)
{

unsigned char i,j;
unsigned char temp; //儲存解碼出的數據
for(i=0;i<4;i++) //連續讀取4個用戶碼和鍵數據碼
{
for(j=0;j<8;j++) //每個碼有8位數字
{
temp=temp>>1; //temp中的各數據位右移一位,因為先讀出的是高位數據
TH0=0; //定時器清0
TL0=0; //定時器清0
TR0=1; //開啟定時器T0
while(IR==0) //如果是低電平就等待
; //低電平計時
TR0=0; //關閉定時器T0
LowTime=TH0*256+TL0; //保存低電平寬度
TH0=0; //定時器清0
TL0=0; //定時器清0
TR0=1; //開啟定時器T0
while(IR==1) //如果是高電平就等待
;
TR0=0; //關閉定時器T0
HighTime=TH0*256+TL0; //保存高電平寬度
if((LowTime<370)||(LowTime>640))
return 0; //如果低電平長度不在合理范圍,則認為出錯,停止解碼
if((HighTime>420)&&(HighTime<620)) //如果高電平時間在560微秒左右,即計數560/1.085=516次
temp=temp&0x7f; //(520-100=420, 520+100=620),則該位是0
if((HighTime>1300)&&(HighTime<1800)) //如果高電平時間在1680微秒左右,即計數1680/1.085=1548次
temp=temp|0x80; //(1550-250=1300,1550+250=1800),則該位是1
}
a[i]=temp; //將解碼出的位元組值儲存在a[i]
}
if(a[2]=~a[3]) //驗證鍵數據碼和其反碼是否相等,一般情況下不必驗證用戶碼
return 1; //解碼正確,返回1
}
/************************************************************
函數功能:執行遙控功能
*************************************************************/
void Function(void)
{
P1=a[2]; //將按鍵數據碼送P1口顯示
}
/************************************************************
函數功能:主函數
*************************************************************/
void main()
{
EA=1; //開啟總中斷
EX0=1; //開外中斷0
ET0=1; //定時器T0中斷允許
IT0=1; //外中斷的下降沿觸發
TMOD=0x01; //使用定時器T0的模式1
TR0=0; //定時器T0關閉
while(1) //等待紅外信號產生的中斷
;
}
/************************************************************
函數功能:紅外線觸發的外中斷處理函數
*************************************************************/
void Int0(void) interrupt 0 using 0
{
EX0=0; //關閉外中斷0,不再接收二次紅外信號的中斷,只解碼當前紅外信號
TH0=0; //定時器T0的高8位清0
TL0=0; //定時器T0的低8位清0
TR0=1; //開啟定時器T0
while(IR==0) //如果是低電平就等待,給引導碼低電平計時
;
TR0=0; //關閉定時器T0
LowTime=TH0*256+TL0; //保存低電平時間
TH0=0; //定時器T0的高8位清0
TL0=0; //定時器T0的低8位清0
TR0=1; //開啟定時器T0
while(IR==1) //如果是高電平就等待,給引導碼高電平計時
;
TR0=0; //關閉定時器T0
HighTime=TH0*256+TL0; //保存引導碼的高電平長度
if((LowTime>7800)&&(LowTime<8800)&&(HighTime>3600)&&(HighTime<4700))
{
//如果是引導碼,就開始解碼,否則放棄,引導碼的低電平計時
//次數=9000us/1.085=8294, 判斷區間:8300-500=7800,8300+500=8800.
if(DeCode()==1)
Function(); //如果滿足條件,執行遙控功能
}
EX0=1; //開啟外中斷EX0
}

❷ 51單片機智能兩路循跡小車程序,檢測到黑線直走,檢測不到黑線就左轉或右轉都可以,需要程序代碼麻煩了

別想那麼復雜。
首先,你把檢測黑線的感測器就當一普通開關。因為,當照射在黑線上時,光線反射能力弱,輸出低電平。照在黑線外,則輸出高電平。只有高低兩種電平,所以,你只需要把它當一個普通開關看待。
然後,既然是普通開關,寫代碼時只需要位聲明以及設置gpio為雙向或強拉模式,51單片機都不用設置gpio。
最後,程序里,檢測到高電平然後io口電平取反就行。

❸ 關於51單片機的避障小車程序問題。我是一個程序菜鳥,已經盡力寫出這樣程序但是不能完成目標。詳細如下:

看著眼疼,建議整理好,讓人看起來比較舒服在穿上來,否則,只能呵呵了

❹ 很簡單的單片機模擬程序

用protues模擬單片機的時候要注意,模擬和真實電路是有一定區別的,模擬只能大體上看一下效果,模擬時單片機最小系統(晶振,復位)都可以不接,雙擊單片機可以載入hex文件進行模擬。

❺ 怎麼用proteus來模擬51

用proteus來模擬51的步驟:

工具/原料:Proteus,keil c51

1、首先我們打開Proteus軟體,點擊左邊菜單欄的P按鈕,然後再搜索框里輸入80c51,選擇第一個就是80c51單片機;

❻ 51單片機智能小車製作,求通俗易懂的講解

系統的單片機程序:

#include"reg52.h"

#definedet_Dist2.55//

單個脈沖對應的小車行走距離,其值為車輪周長

/4#defineRD9//

小車對角軸長度。

#definePI3.1415926

#defineANG_9090

#defineANG_90_T102

#defineANG_180189/

全局變數定義區。

/sbitP10=P1^0;//

控制繼電器的開閉sbitP11=P1^1;//

控制金屬接近開關。


(6)51單片機小車模擬程序擴展閱讀:


控制器部分:接收感測器部分傳遞過來的信號,並根據事前寫入的決策系統(軟體程序),來決定機器人對外部信號的反應,將控制信號發給執行器部分。好比人的大腦。

執行器部分:驅動機器人做出各種行為,包括發出各種信號(點亮發光二極體、發出聲音)的部分,並且可以根據控制器部分的信號調整自己的狀態。

對機器人小車來說,最基本的就是輪子。這部分就好比人的四肢一樣。 感測器部分:機器人用來讀取各種外部信號的感測器,以及控制機器人行動的各種開關。好比人的眼睛、耳朵等感覺器官。




❼ 51單片機小車速度控制

你好!
1、建議採用PWM控制小車速度以及啟停等
2、可以增加無線部分,傳輸PWM控制指令
3、電機驅動,可以採用L298模塊
4、具體小車實物和程序,都能完成

❽ 求最簡單的51單片機智能循跡小車原理圖以及程序以及製作過程,不勝感激!!

簡單的寫的話不會區別偏離黑線距離遠近的,復雜點兒的話會分區編程,簡單版如下:
void turn_left()
{
P1.0 = 0; //左前輪

P1.1 = 1; //右前輪
P1.2 = 0; //左後輪
P1.3 = 1; //右後輪
}
... ...
unsigned char judge()
{
switch(P2 & 0x??)

case 0x??:

{

break;

}

... ...

return 某變數(用於選擇拐彎方向程序)

}
轉彎比較簡單,就是一個輪轉,另一個不轉達到轉彎目的,你也可以用速度高低來控制,自己DIY就行。

閱讀全文

與51單片機小車模擬程序相關的資料

熱點內容
2k21公園怎麼換伺服器 瀏覽:724
php釋放資料庫連接 瀏覽:722
php網頁抓取工具 瀏覽:726
android設置對齊方式 瀏覽:23
linux創建網頁 瀏覽:280
凈化車間門演算法 瀏覽:934
安卓怎麼搞jpg 瀏覽:546
如來佛祖命令雷神去下界 瀏覽:856
新電腦管家下載好怎麼解壓 瀏覽:530
php獲取介面數據 瀏覽:766
最後的命令 瀏覽:921
如何添加手機app桌面快捷圖標 瀏覽:427
ui設計師與程序員 瀏覽:417
壽司pdf 瀏覽:828
pythonbg是什麼 瀏覽:248
c數值演算法程序大全 瀏覽:787
android整點報時 瀏覽:221
稀土pdf 瀏覽:536
單片機電子鎖 瀏覽:596
通達信機智資金流指標公式源碼 瀏覽:216