仿真圖proteus7.8及以上
程序編譯器:keil 4/keil 5
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):S0078
1. 主要功能:
基于51單片機(jī)的自行車(chē)測(cè)速行駛里程檢測(cè)與顯示設(shè)計(jì)
1、通過(guò)按鍵控制自行車(chē)行駛速度;
2、通過(guò)霍爾傳感器測(cè)量自行車(chē)當(dāng)前速度;
3、單片機(jī)實(shí)時(shí)檢測(cè)自行車(chē)的行駛里程,行駛里程顯示,顯示精度0.01公里;
4、顯示當(dāng)前速度和行駛里程,可按鍵清零;
5、具有超速報(bào)警功能,可以設(shè)置報(bào)警值;
需注意仿真中51單片機(jī)芯片是兼容的,AT89C51,AT89C52是51單片機(jī)的具體型號(hào),內(nèi)核是一樣的。相同的原理圖里,無(wú)論stc還是at都一樣,引腳功能都是一樣的,程序是兼容的,芯片可以替換為STC89C52/STC89C51/AT89C52/AT89C51等51單片機(jī)芯片。
2. 講解視頻:
講解視頻包含仿真運(yùn)行講解和代碼講解
3. 仿真設(shè)計(jì)
打開(kāi)仿真工程,雙擊proteus中的單片機(jī),選擇hex文件路徑,然后開(kāi)始仿真。開(kāi)始仿真LCD1602顯示當(dāng)前速度和里程數(shù),當(dāng)前速度為0km/h,當(dāng)前總里程數(shù)0km。
通過(guò)加減速按鍵調(diào)整速度,直流電機(jī)逐漸加速,直到穩(wěn)定。
實(shí)測(cè)12.9KM/h速度運(yùn)行一個(gè)班小時(shí)后累計(jì)總里程為18.249km。
具有超速報(bào)警功能,通過(guò)按下設(shè)置鍵可以調(diào)整速度報(bào)警值。
4. 程序代碼
使用keil4或者keil5編譯,代碼有注釋?zhuān)梢越Y(jié)合視頻理解代碼含義。
#include "reg51.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
#define DIR 26*2.54//輪胎直徑66.04CM 26英寸 1 英寸=2.54 厘米
#define RUOND DIR*3.14//207.3656單位CM 周長(zhǎng)(C)=π×D 其中 D 是輪胎的外徑,包括胎壁和胎面的整體直徑。
#define PER_RUOND RUOND/240.0 //電機(jī)一圈產(chǎn)生240次中斷。每次中斷前進(jìn)約0.864023cm
sbit k1=P1^0;//按鈕
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit out=P1^6;//輸出控制
sbit beep=P2^0;//蜂鳴器
float pwm=0;//占空比
uchar time=0,mode=0;//系統(tǒng)變量
uint sudu1=0,sudu2=0,lim=150;//速度
float sum=0;//里程
uchar disp1[]="Speed:000.0km/h";
uchar disp2[]="Sum:000.000km ";
uchar disp3[]="00.0km/h ";
//主函數(shù)
void main()
{
uchar i;
init_1602();
//設(shè)置INT0
IT0=1;//跳變沿出發(fā)方式(下降沿)
EX0=1;//打開(kāi)INT0的中斷允許。
TMOD|=0X01;//初始化定時(shí)器
TH0=0X3C;
TL0=0XB0;
ET0=1;//打開(kāi)定時(shí)器0中斷允許
EA=1;//打開(kāi)總中斷
TR0=1;//打開(kāi)定時(shí)器
while(1)
{
//電機(jī)速度控制
if(i<20)
i++;
else
i=0;
if(i<pwm)
out=1;
else
out=0;
//電機(jī)調(diào)速
if(!k1)//加速
{
if(pwm<10)
pwm+=0.5;
while(!k1);
}
if(!k2)//減速
{
if(pwm>0)
pwm-=0.5;
while(!k2);
}
//設(shè)置
if(!k3)
{
mode=!mode;
while(!k3);
}
if(!k4)//加
{
if(lim<999)
lim++;
while(!k4);
}
if(!k5)//減
{
if(lim>0)
lim--;
while(!k5);
}
if(!k6)//清零
{
sum=0;
while(!k6);
}
}
}
//定時(shí)器中斷
void Timer0() interrupt 1
{
float i;
uint j;
if(time<20)//1s
time++;
else
{
time=0;
sudu1 = sudu2*PER_RUOND;//厘米/秒sudu2*
sudu1 = sudu1/100.0*3600/10;//單位km/h 多除以10是因?yàn)檫@樣算下來(lái)速度太快了,多除以10合理
sudu2=0;
//計(jì)算里程
i=sudu1;
i=i/360;
sum=sum+i;//一秒記錄一次里程
//報(bào)警
if(sudu1>lim)
beep=0;
else
beep=1;
//顯示
disp1[6]=sudu1/1000+0x30;
disp1[7]=sudu1%1000/100+0x30;
disp1[8]=sudu1%100/10+0x30;
disp1[10]=sudu1%10+0x30;
j=sum*10;
disp2[4]=j/100000+0x30;
disp2[5]=j%100000/10000+0x30;
disp2[6]=j%10000/1000+0x30;
disp2[8]=j%1000/100+0x30;
disp2[9]=j%100/10+0x30;
disp2[10]=j%10+0x30;
disp3[0]=lim/100+0x30;
disp3[1]=lim%100/10+0x30;
disp3[3]=lim%10+0x30;
if(mode==0)
{
write_string(1,0,disp1);
write_string(2,0,disp2);
}
else
{
write_string(1,0,"set:");
write_string(1,4," ");
write_string(2,0," ");
write_string(2,4,disp3);
}
}
TH0=0X3C;
TL0=0XB0;
}
void Int0() interrupt 0 //外部中斷0的中斷函數(shù)
{
sudu2++;
}
5. 設(shè)計(jì)報(bào)告
6613字設(shè)計(jì)報(bào)告,內(nèi)容包括硬件設(shè)計(jì)、軟件設(shè)計(jì)、軟硬件框圖、調(diào)試、結(jié)論等
隨著現(xiàn)代科技的快速發(fā)展,智能化技術(shù)已廣泛滲透到人們的日常生活中,并在諸多領(lǐng)域中發(fā)揮著日益重要的作用。在倡導(dǎo)綠色出行、節(jié)能環(huán)保的大背景下,自行車(chē)作為一種經(jīng)濟(jì)、便捷且環(huán)保的交通工具,其在性能監(jiān)測(cè)與智能控制方面的提升顯得尤為關(guān)鍵。現(xiàn)代社會(huì)對(duì)于自行車(chē)的需求不再僅限于基礎(chǔ)的代步功能,而是更加強(qiáng)調(diào)安全、高效和用戶體驗(yàn)的全面提升。
本課程設(shè)計(jì)作業(yè)正是基于這一需求背景,致力于研發(fā)一款以51系列單片機(jī)為核心的自行車(chē)測(cè)速行駛里程檢測(cè)與顯示系統(tǒng)。該系統(tǒng)集成了先進(jìn)的傳感技術(shù)和嵌入式計(jì)算能力,旨在實(shí)現(xiàn)對(duì)自行車(chē)速度信息的實(shí)時(shí)獲取和高精度顯示,同時(shí)還能精確記錄并展示騎行過(guò)程中的累計(jì)行駛里程數(shù)據(jù)。為確保用戶騎行的安全性和舒適性,系統(tǒng)特別設(shè)計(jì)了超速報(bào)警功能,當(dāng)騎行速度超過(guò)預(yù)設(shè)閾值時(shí),能夠及時(shí)發(fā)出警示信號(hào),提醒騎行者調(diào)整速度至合理范圍內(nèi),從而有效降低因高速騎行可能導(dǎo)致的風(fēng)險(xiǎn)。
6. 原理圖
原理圖使用AD繪制,可供實(shí)物參考,仿真不同于實(shí)物,需要調(diào)試經(jīng)驗(yàn)才能做出來(lái)。
Proteus仿真和實(shí)物作品的區(qū)別:
1.運(yùn)行環(huán)境:Proteus仿真是在計(jì)算機(jī)上運(yùn)行的,而實(shí)物則是在硬件電路板上運(yùn)行。
2.調(diào)試方式:在Proteus仿真中,可以方便地進(jìn)行單步調(diào)試和觀察變量值的變化,而在實(shí)物中則需要通過(guò)調(diào)試器或者串口輸出等方式進(jìn)行調(diào)試。
電路連接方式:在Proteus仿真中,可以通過(guò)軟件設(shè)置進(jìn)行電路連接的修改,而在實(shí)物中則需要通過(guò)硬件電路板和連接線進(jìn)行修改。
3.運(yùn)行速度:Proteus仿真通常比實(shí)物運(yùn)行速度快,因?yàn)榉抡媸腔谟?jì)算機(jī)運(yùn)行的,而實(shí)物則需要考慮電路板上的物理限制和器件的響應(yīng)時(shí)間等因素。
4.功能實(shí)現(xiàn):在Proteus仿真中,可以通過(guò)軟件設(shè)置實(shí)現(xiàn)不同的功能,而在實(shí)物中則需要根據(jù)電路設(shè)計(jì)和器件的性能進(jìn)行實(shí)現(xiàn)。
7. 設(shè)計(jì)資料內(nèi)容清單
資料設(shè)計(jì)資料包括仿真,程序代碼、講解視頻、功能要求、設(shè)計(jì)報(bào)告、軟硬件設(shè)計(jì)框圖等。
0、常見(jiàn)使用問(wèn)題及解決方法–必讀?。。?!
1、程序代碼注釋
3、功能要求
4、軟硬件流程圖
5、開(kāi)題報(bào)告
6、設(shè)計(jì)報(bào)告
7、原理圖
8、元器件清單
9、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡(jiǎn)易使用教程
單片機(jī)學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊(cè)
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開(kāi)查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url
資料下載鏈接:
https://docs.qq.com/doc/DS0RPUnJsZVNNUUNW