找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 738|回复: 1
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
一、系统方案
1、本设计采用52单片机作为主控器。
2、霍尔测速送到液晶1602。
3、蜂鸣器报警。


二、硬件设计
原理图如下:

三、单片机软件设计
  1. 1、首先是系统初始化
  2. void lcd_init()//***液晶初始化函数****
  3. {
  4.         
  5.         write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据
  6.         write_1602com(0x0c);//开显示不显示光标
  7.         write_1602com(0x06);//整屏不移动,光标自动右移
  8.         write_1602com(0x01);//清显示
  9. }
  10. 2、液晶显示程序
  11. /********液晶写入指令函数与写入数据函数,以后可调用**************/
  12. void write_1602com(uchar com)//****液晶写入指令函数****
  13. {
  14.         RS=0;//数据/指令选择置为指令
  15.         rw=0; //读写选择置为写
  16.         P0=com;//送入数据
  17.         delay(1);
  18.         EN=1;//拉高使能端,为制造有效的下降沿做准备
  19.         delay(1);
  20.         EN=0;//en由高变低,产生下降沿,液晶执行命令
  21. }
  22. void write_1602dat(uchar dat)//***液晶写入数据函数****
  23. {
  24.         RS=1;//数据/指令选择置为数据
  25.         rw=0; //读写选择置为写
  26.         P0=dat;//送入数据
  27.         delay(1);
  28.         EN=1; //en置高电平,为制造下降沿做准备
  29.         delay(1);
  30.         EN=0; //en由高变低,产生下降沿,液晶执行命令
  31. }
  32. 3、按键程序
  33. /*********************************************************/
  34. // 按键扫描
  35. /*********************************************************/
  36. void key()
  37. {
  38.         if(k1==0)         //按下按下
  39.         {
  40.                 delay(10);//延时消除按键抖动
  41.                 if(k1==0)         //再次判断按键是否按下
  42.                 {
  43.                         while(!k1);  //判断按键是否释放
  44.                   MAX++;
  45.                         if(MAX==10000) MAX=9999;
  46.             }
  47.         }        
  48.         if(k2==0)//加
  49.         {
  50.            delay(10);
  51.                 if(k2==0)
  52.                 {
  53.                         while(!k2);
  54.                  if(MAX>1) MAX--;
  55.                         
  56.             }
  57.         }
  58. }
  59. 4、核心算法程序
  60.   /*******************T2中断函数函数********************/
  61. void T2_time() interrupt 5
  62. {
  63.      
  64.          TF2 = 0;
  65.          time++; //累计中断 的次数
  66.           if(time==20) //1秒到
  67.                 {
  68.                   TR0=0; //关闭计数
  69.                   time=0; //1秒时间清零,等待下一秒
  70.                   flag=1; //置1告诉主程序
  71.                
  72.         }
  73. }
复制代码
四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:774081 发表于 2024-1-5 12:30 | 只看该作者
代码哪个地方跟霍尔有关了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表