51速度检测系统设计-霍尔-LCD1602-LED
本设计由STC89C52单片机电路+霍尔测速传感器电路+LED指示灯电路+LCD1602液晶显示电路+电源电路。
1、液晶实时显示速度。
2、如果速度0-1km/h。只是绿灯亮,同时只是绿灯对应的端口输出低电平。
3、如果速度1-1.5km/h。只是黄灯亮,同时只是黄灯对应的端口输出低电平。
4、如果速度1.5-2km/h。只是红灯亮,同时只是红灯对应的端口输出低电平。
4、如果速度超过2km/h。只是蓝灯亮,同时只是蓝灯对应的端口输出低电平。
直径是2cm。
资料下载地址
https://pan.baidu.com/s/1NVvQ7rItpetHG-eJuzNhjw?pwd=8888
void main (void)
{
Init_Timer0(); //定时器0初始化
EX0=1; //外部中断0开
IT0=1; //边沿触发
EA=1; //全局中断开
LCD_Init(); //初始化液晶
DelayMs(20); //延时有助于稳定
LCD_Clear(); //清屏
LCD_Write_String(0,0,"My Designer! "); //初始化
while (1) //主循环
{
if(DealSudu==1) //处理速度
{
DealSudu=0;
sudu=3.6*3.1415*0.02*(float)PluNum/5; //直径*3.1415 周长 *3.6转化为km/h
PluNum=0;
sprintf(displaytemp,"sd:%5.2fkm/h",sudu); //打印
LCD_Write_String(0,1,displaytemp); //显示
if(sudu < 1)
{
led_gre = 0; led_yel = 1; led_red = 1; led_blu = 1; //绿 灯亮
}
}
}
}
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
TH0=(65536-20000)/256; //重新赋值 20ms
TL0=(65536-20000)%256;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}