|
|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機+車速監(jiān)測+報警 程序
#include "reg51.h"
#include "lcd1602.h"
#include "ADC0832.h"
sbit beep=P2^7;//蜂鳴器
uchar sec=0;//計時
uint freq=0;//頻率
uchar lim=100;
uchar hang1[]="speed:000km/h";
uchar hang2[]="limit:000km/h";
void main()
{
init_1602();//初始化LCD1602
write_string(1,0,hang1); //顯示初始化
TMOD|=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。
//設(shè)置INT0
IT0=1;//跳變沿出發(fā)方式(下降沿)
EX0=1;//打開INT0的中斷允許。
TH0=0X3C; //50ms
TL0=0Xb0;
ET0=1;//打開定時器0中斷允許
EA=1;//打開總中斷
TR0=1;//打開定時器
while(1);
}
void Timer0() interrupt 1 //定時器0中斷
{
//定時
if(sec<20)//定時1s
sec++;
else
{
sec=0;
EX0=0;//關(guān)INT0
lim=ADC(1);
hang1[6]=freq/100+0x30;//顯示速度
hang1[7]=freq%100/10+0x30;
hang1[8]=freq%10+0x30;
write_string(1,0,hang1);
hang2[6]=lim/100+0x30;//顯示速度
hang2[7]=lim%100/10+0x30;
hang2[8]=lim%10+0x30;
write_string(2,0,hang2);
if(freq>lim)//報警
beep=0;
else
beep=1;
freq=0;
EX0=1;//開INT0
}
TH0=0X46; //50ms
TL0=0X2f;
}
void Int0() interrupt 0 //外部中斷0的中斷函數(shù)
{
freq++;
}
下載:
01車速監(jiān)測報警仿真設(shè)計.7z
(93.23 KB, 下載次數(shù): 0)
2026-7-24 12:33 上傳
點擊文件名下載附件
|
評分
-
查看全部評分
|