单片机霍尔测速系统设计+源程序

一、系统方案

1、本设计采用52单片机作为主控器。

2、霍尔测速送到液晶1602。

3、蜂鸣器报警。

二、硬件设计

原理图如下:

三、单片机软件设计

1、首先是系统初始化

void lcd_init()//液晶初始化函数 *

{

复制代码
write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据
write_1602com(0x0c);//开显示不显示光标
write_1602com(0x06);//整屏不移动,光标自动右移
write_1602com(0x01);//清显示

}

2、液晶显示程序

/液晶写入指令函数与写入数据函数,以后可调用******/

void write_1602com(uchar com)//液晶写入指令函数

{

RS=0;//数据/指令选择置为指令

rw=0; //读写选择置为写

P0=com;//送入数据

delay(1);

EN=1;//拉高使能端,为制造有效的下降沿做准备

delay(1);

EN=0;//en由高变低,产生下降沿,液晶执行命令

}

void write_1602dat(uchar dat)//液晶写入数据函数 *

{

RS=1;//数据/指令选择置为数据

rw=0; //读写选择置为写

P0=dat;//送入数据

delay(1);

EN=1; //en置高电平,为制造下降沿做准备

delay(1);

EN=0; //en由高变低,产生下降沿,液晶执行命令

}

3、按键程序

//
// 按键扫描
/
/

void key()

{

if(k10) //按下按下
{
delay(10);//延时消除按键抖动
if(k10) //再次判断按键是否按下

{

while(!k1); //判断按键是否释放

MAX++;

if(MAX10000) MAX=9999;
}
}
if(k20)//加

{

delay(10);

if(k2==0)

{

while(!k2);

if(MAX>1) MAX--;

复制代码
	}
}

}

4、核心算法程序

/T2中断函数函数 */

void T2_time() interrupt 5

{

复制代码
 TF2 = 0;
 time++; //累计中断 的次数
  if(time==20) //1秒到
	{ 
	  TR0=0; //关闭计数
	  time=0; //1秒时间清零,等待下一秒
	  flag=1; //置1告诉主程序
	
} 

}

四、 proteus仿真设计

Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

相关推荐
晶振厂家-晶发电子2 天前
晶振在5G时代的角色:高精度时钟的核心支撑
单片机·嵌入式硬件·5g·晶振·电子元器件·晶振知识
F137298015572 天前
WD5030A 芯片,12V降5V,输出电流12A,电路设计
stm32·单片机·嵌入式硬件·汽车·51单片机
小莞尔2 天前
【51单片机】【protues仿真】基于51单片机的篮球计时计分器系统
c语言·stm32·单片机·嵌入式硬件·51单片机
三佛科技-187366133972 天前
分享机械键盘MCU解决方案
单片机·嵌入式硬件·计算机外设
李永奉2 天前
51单片机-使用IIC通信协议实现EEPROM模块教程
单片机·嵌入式硬件·51单片机
工大一只猿2 天前
51单片机学习
嵌入式硬件·学习·51单片机
小莞尔2 天前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
风_峰2 天前
Ubuntu Linux SD卡分区操作
嵌入式硬件·ubuntu·fpga开发
bing_feilong2 天前
STM32精准控制水流
单片机·嵌入式硬件
Hello_Embed2 天前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件