基于51單片機寵物自動投料喂食器控制系統(tǒng)仿真設(shè)計( proteus仿真+程序+講解視頻)
仿真圖proteus 7.8及以上
程序編譯器:keil 4/keil 5
編程語言:C語言
設(shè)計編號:S0029
視頻講解
基于51單片機的寵物自動投料喂食器控制系統(tǒng)proteus仿真設(shè)計
主要功能:
結(jié)合實際情況,基于51單片機設(shè)計寵物自動投料喂食器控制系統(tǒng)。該系統(tǒng)應滿足的功能要求為:
電機驅(qū)動,數(shù)碼管(或液晶)顯示、獨立鍵盤。
具體功能:
1. 采用C語言。
2. 通過小鍵盤設(shè)置自動/手動喂食模式切換。
3. 自動模式下,可設(shè)置喂食時間和當前時間,步進電機正轉(zhuǎn)模擬投食,投食結(jié)束后電機反轉(zhuǎn):手動模式下,按鍵手動喂食開,手動喂食關(guān);
4. 數(shù)碼管(或液晶)顯示每次喂食時間和當前時間。
5. 上位機監(jiān)控功能要求:通過串口或USB口實現(xiàn)上/下位機通信,能夠顯示步進電機當前狀態(tài)。
資料下載鏈接(可點擊):
【騰訊文檔】S0029 網(wǎng)盤鏈接
以下為本設(shè)計資料展示圖:
仿真
開始仿真
開始仿真后顯示當前實時時間,mos代表當前運行模式Z代表自動,S代表手動。串口顯示電機工作狀態(tài)Z是正轉(zhuǎn)F是反轉(zhuǎn)。按下自動模式按鍵,運行模式改為自動模式。按下手動模式按鍵,運行模式改為手動模式。手動模式下短按設(shè)置分別可以設(shè)置定時時間和當前實時時間,通過加減按鍵做調(diào)整,定時時間到電機正轉(zhuǎn)后再反轉(zhuǎn)。手動模式下,開蓋按鍵電機正轉(zhuǎn)模擬投食,關(guān)蓋按鍵按下電機反轉(zhuǎn)模擬投食結(jié)束。
程序:
主函數(shù)
void main(){
xiezhilin(0x01); //顯示清屏
xiezhilin(0x38); //顯示模式設(shè)置
xiezhilin(0x0c); //光標設(shè)置
TH1 = 0xFD; //晶振11.0592mhz 波特率設(shè)為9600
TL1 = 0xFD;
TMOD = 0x21; //定時器1方式2
SCON = 0x50; //串口接收使能
ES = 0; //串口中斷使能 //使用外中斷函數(shù)必須ES為0
TR1 = 1; //定時器1使能
TI = 0; //發(fā)送中斷標記位,必須設(shè)置
EA = 1;
xianshi(0x80+0,'m');//顯示m
xianshi(0x80+1,'o');//顯示O
xianshi(0x80+2,'s');//顯示S
xianshi(0x80+14,'D');//顯示D
xianshi(0x80+15,'Y');//顯示Y
dushi();
shijian=1;
while(1){
ms++;
if(ms>=5){aa=~aa;ms=0;dushi();}
if(shu=='Z')z_zhuan();
if(shu=='F')f_zhuan();
shu=0;
key();
xian();
if((shi==shi_n)&&(fen==fen_n)&&(miao==miao_n)){//定時時間到
shijian=1;
}
if(shijian==1){//定時時間到之后,延時一段時間再反轉(zhuǎn),期間讀取時間。
z_zhuan();
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
delay(100);
dushi();
xian();
f_zhuan();
shijian=0;
}
}
}
資料清單:
文章開頭有下載鏈接