历史上的今天
今天是:2024年10月18日(星期五)
2021年10月18日 | 基于51单片机电机PWM调速控制系统霍尔测速仪温度检测
2021-10-18 来源:eefocus
51单片机电机PWM调速控制系统霍尔测速仪温度检测4
本系统由STC89C52单片机、LCD1602液晶显示、L298N电机驱动模块
、按键、霍尔传感器、DS18B20温度传感器及电源组成。
1、通过按键可以控制电机的启动、停止、正转、反转、加速、减速。
2、通过温度传感器DS18B20检测温度。
3、通过液晶显示温度、PWM档位值、速度。
4、温度超过50度蜂鸣器报警。
按键说明
启动 停止
正传 反转
加速 减速

#include #include #include "18b20.h" #include "1602.h" #include "delay.h" sbit IN1=P2^0; //引脚定义 sbit IN2=P2^1; sbit ENA=P2^2; sbit Buzzer=P1^7; sbit Key1=P1^0; //按键引脚定义 sbit Key2=P1^3; sbit Key3=P1^1; sbit Key4=P1^4; sbit Key5=P1^2; sbit Key6=P1^5; sbit LED1=P3^4; sbit LED2=P3^5; bit ReadTempFlag;//定义读时间标志 int temp; //温度读取 float temperature; //实际温度 char displaytemp[16];//定义显示区域临时存储数组 unsigned long time_20ms=0; //定时器计数 unsigned char Count=0; //调节占空比 unsigned char PwmZ=2; //占空比调整 unsigned char MotorFlag=1; //正反转标志 unsigned char rekey=0; //防止重复按键 unsigned char PwmVal; //pwm显示值 unsigned char ReadSuDu=0; //读取速度标志 float SuDu; //速度值 unsigned int PluNum; //脉冲计数 void Init_Timer0(void); //函数声明 void UART_Init(void); void SendByte(unsigned char dat); void SendStr(unsigned char *s,unsigned char length); void main (void) { time_20ms = 0; Init_Timer0(); UART_Init(); EX0=1; //外部中断0开 IT0=1; //边沿触发 EA=1; //全局中断开 LCD_Init(); //初始化液晶 Buzzer = 0; DelayMs(200); //延时有助于稳定 Buzzer = 1; LCD_Clear(); //清屏 SendStr("ready ok!",9);
史海拾趣
|
1.微发射功率:最大17dbm(50mW)的发射功率。 2. 工作载频频率470-490MHz,无需申请频点。 3.专业工业级嵌入式设计,体积小(32.5×20×5mm)。 4.基于GFSK调制方式的高效前向纠错编码方式提高高抗干扰能力和低误码率。 5.传输距离远。在视距情 ...… 查看全部问答> |
|
公司现在有2个产品一个是ARM7的还有个是SyncMOS sm8958A的板子上还有个Atmel ATF1508AS,现在要我接手,我该从哪学起呢?我以前是做Windows下软件开发的会Java和C#,C也会,但很久没用了,重新上手的话,估计时间不长。还望各位解答,谢谢。… 查看全部问答> |
|
工作一年了,主要是编写单片机程序和VC的小运用程序。感觉单片机学得差不多了(也许是自我感觉良好而已),想学硬件电路设计,但是公司不许。在这个公司呆着也学不到什么东西了,想换换地方转去学ARM,DSP,硬件。但是又有很多东西不懂,担心是不是 ...… 查看全部问答> |
|
我目前是作java 企业计算方面的软件开发,现在有一份作51单片机的工作机会,不知该不该去做?我想往嵌入式方向转,我的定位是linux+arm, 看网上讲51和arm相差很大,不知我从51开始接近嵌入式开发有没有什么问题?有没有走弯路? ...… 查看全部问答> |
|
这个帖子也不知道发哪里合适。请问大家的工具和元件是怎么整理收纳的?现在我是有很多大小不一的箱子,电子元件用小袋子装好分类在不同的小箱子里。各种工具扔在2个略大箱子里。用起来找起来挺不方便的,想有没有一个大的收纳箱,里面有大小不一的 ...… 查看全部问答> |




