本文主要是介绍毕业设计 基于51单片机霍尔电机转速测量温度PWM调速设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基于51单片机霍尔转速测量温度PWM调速设计
- 1、快速完成毕设的方法
- 2、项目资料
- 2.1 系统框架
- 2.2 系统功能
- 3、部分电路设计
- 3.1 STC89C52单片机最小系统电路设计
- 3.2 A3144霍尔传感器模块电路设计
- 3.3L298N电机驱动模块电路设计
- 3.4 LCD1602液晶显示电路设计
- 4、部分代码展示
- 4.1 DS18B20读取温度程序设计
- 4.2 LCD1602显示字符串程序设计
- 4.3 定时器初始化程序设计
- 5. 项目编号
1、快速完成毕设的方法
- 点击查看
2、项目资料
- https://gitee.com/lighter-z/graduation-design
2.1 系统框架
本设计由STC89C52单片机电路+LCD1602液晶显示电路+L298N电机驱动电路+按键电路+霍尔传感器电路+DS18B20温度传感器电路+电源电路组成。
2.2 系统功能
- 1、通过按键可以控制电机的启动、停止、正转、反转、加速、减速。
- 2、通过温度传感器DS18B20检测温度。
- 3、通过液晶显示温度、PWM档位值、速度。
- 4、温度超过50度蜂鸣器报警。
按键说明
启动 停止
正传 反转
加速 减速
3、部分电路设计
3.1 STC89C52单片机最小系统电路设计
STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
STC89C52单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。
单片机最小系统原理图如下图所示:
实物图:
3.2 A3144霍尔传感器模块电路设计
本霍尔传感器模块是基于霍尔元件A3144设计制作的模块,A3144芯片是一种磁传感器,其应用霍尔效应原理,采用半导体集成技术制造的磁敏电路,它是由电压调整器、霍尔电压发生器、差分放大器、史密特触发器,温度补偿电路和集电极开路的输出级组成的磁敏传感电路,其输入为磁感应强度,输出是一个数字电压信号,用它可以检测磁场及其变化,可在各种磁场相关的场合中使用,霍尔器件具有很多优点,它的结构牢固、体积小、重量轻、寿命长、安装方便、功耗低、频率高、耐振动、不怕灰尘、油污、水汽、盐雾等的污染或腐蚀。
其具体电路原理图如下图所示:
- 实物图
3.3L298N电机驱动模块电路设计
本L298N驱动模块,采用ST公司的L298N芯片,L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。该模块可以直接驱动两路3-30V直流电机,并提供了5V输出接口,可以给5V单片机电路系统供电,可以方便的控制直流电机速度和方向。
其具体电路原理图如下图所示:
实物图如下:
3.4 LCD1602液晶显示电路设计
LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。
其具体电路原理图如下图所示:
实物图如下:
4、部分代码展示
4.1 DS18B20读取温度程序设计
unsigned int ReadTemperature(void)
{
unsigned char a=0;
unsigned int b=0;
unsigned int t=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
DelayMs(2);
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar(); //低位
b=ReadOneChar(); //高位b<<=8;
t=a+b;return(t);
}
4.2 LCD1602显示字符串程序设计
void Lcd_Puts(unsigned char x,unsigned char y, unsigned char *string) //向1602写一个字符串
{ Lcd_SetXY(x,y); while(*string) { Lcd_Write_Data(*string); string++; }
}
4.3 定时器初始化程序设计
void Init_Timer0(void)
{TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TH0=(65536-20000)/256; //重新赋值 20msTL0=(65536-20000)%256;EA=1; //总中断打开ET0=1; //定时器中断打开TR0=1; //定时器开关打开
}
5. 项目编号
015
这篇关于毕业设计 基于51单片机霍尔电机转速测量温度PWM调速设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!