標(biāo)題: 基于單片機(jī)的速度測量系統(tǒng)設(shè)計(jì)(程序+電路原理圖) [打印本頁]
作者: 雷瘋子 時(shí)間: 2018-12-28 18:24
標(biāo)題: 基于單片機(jī)的速度測量系統(tǒng)設(shè)計(jì)(程序+電路原理圖)
要求:
設(shè)計(jì)一個(gè)汽車速度測速系統(tǒng),已知車輪直徑D一米,
器件清單: 光電傳感器,單片機(jī),共陽極數(shù)碼管
本系統(tǒng)設(shè)計(jì)主要內(nèi)容
1信號(hào)采集 這部分主要采用光電信號(hào)傳感器采集信號(hào),并傳向單片機(jī)
2單片機(jī)數(shù)據(jù)處理 這部分主要才用單片機(jī)采用適當(dāng)?shù)乃惴ǎ瑢ο嚓P(guān)數(shù)據(jù)進(jìn)行相關(guān)運(yùn)算并得出結(jié)果
3 Led數(shù)字顯示 這部分主要通過7位共陽極數(shù)碼管顯示給用戶。
4 用protues仿真
:
一 。 光電脈沖發(fā)生器
在車輪上安裝光電傳感器,輪子轉(zhuǎn)一次得到一個(gè)脈沖,經(jīng)過信號(hào)處理,通過T1口傳到單片機(jī),經(jīng)過單片機(jī)處理,通過數(shù)碼管顯示。如圖所示:
單片機(jī)測速系統(tǒng)總原理圖

二. 系統(tǒng)程序設(shè)計(jì):
本設(shè)計(jì)軟件主要分為主程序,中斷服務(wù)子程序,led數(shù)碼管顯示子程序三個(gè)部分。軟件功能在keil中編寫c語言實(shí)現(xiàn)。
中斷函數(shù)程序如下:
void timero(void) interrupt 1 //中斷子程序
{
TR1=0; TR0=0;
TF0=0;
TL0=0x00;
TH0=0x4c;
k++;
if(k>=20) //每50ms中斷一次,那么當(dāng)K》=20是就是1s,每一秒計(jì)算一次顓頊
{
js=TH1*256+TL1;
TH1=0; TL1=0; k=0;
}
js=0; TR0=1;
}
三.Led顯示子程序 主要通過控制共陽極來實(shí)現(xiàn)由p1線控制四個(gè)數(shù)碼管
while(1)
{
P0=SEG_TAB[ss/10000];
P2_0=0;
delay(10);
P0=SEG_TAB[(ss%100000)/100];
P2_1=0;
delay(10);
P0=SEG_TAB[(ss%100000)%100/10];
P2_2=0;
delay(10);
P0=SEG_TAB[(ss%100000)%100%10];
P2_3=0;
delay(10);
附錄
單片機(jī)測量系統(tǒng)主程序如下:
- #include <reg51.h>
- #include <stdio.h>
- #define uchar unsigned char
- #define unit unsigned int
- #define ulong unsigned long
- #define R 5
- #define PI 314 //段暄定義
- sbit P0_0=P0^0;
- sbit P0_1=P0^1;
- sbit P0_2=P0^2;
- sbit P0_3=P0^3;
- sbit P0_4=P0^4;
- sbit P0_5=P0^5;
- sbit P0_6=P0^6;
- sbit P0_7=P0^7;
- //位選定義
- sbit P2_0=P2^0;
- sbit P2_1=P2^1;
- sbit P2_2=P2^2;
- sbit P2_3=P2^3;
- uchar SEG_TAB[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- ulong js=0;
- uchar k=0;
- void main()
- {
- int ss=js*2*PI*R;
- TMOD=0x51;
- TL1=0x00; TH1=0x00;
- TL0=0x00;TH0=0x4c;
- IE=0x82;
- TR0=1;//定時(shí)開始
- while(1)
- {
- P0=SEG_TAB[ss/10000];
- P2_0=0;
- delay(10);
- P0=SEG_TAB[(ss%100000)/100];
- P2_1=0;
- delay(10);
- P0=SEG_TAB[(ss%100000)%100/10];
- P2_2=0;
- delay(10);
- P0=SEG_TAB[(ss%100000)%100%10];
- P2_3=0;
- delay(10);
- }
- }
- void timero(void) interrupt 1 //中斷子程序
- {
- TR1=0; TR0=0;
- TF0=0;
- TL0=0x00;
- TH0=0x4c;
- k++;
- if(k>=20)
- {
- js=TH1*256+TL1;
- TH1=0; TL1=0; k=0;
- }
- js=0; TR0=1;
-
- }
- void delay(unsigned int time)
- {
- unsigned int j=0;
- for(;time>o;time--);
- for(j=0;j<125;j++);
-
-
- }
復(fù)制代碼
完整的Word格式文檔51黑下載地址:
基于單片機(jī)的速度測量系統(tǒng).doc
(46.5 KB, 下載次數(shù): 47)
2018-12-28 18:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: a1a1a1 時(shí)間: 2019-10-29 22:16
沒有proteus的文件嗎
作者: 1340634897 時(shí)間: 2021-3-19 09:05
這個(gè)是不是無法仿真,得有實(shí)際測試才可以
作者: Ming.MO 時(shí)間: 2022-3-6 16:39
大佬大佬,程序里面的js是時(shí)間嗎,如果是時(shí)間的話ss=js*2*PI*R該怎么理解
作者: Ming.MO 時(shí)間: 2022-3-12 22:09
大佬,我按照你的仿真做了沒反應(yīng)呀,就算加了時(shí)鐘激勵(lì)源也沒反應(yīng)這是為啥呢
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |