51小东西霍尔计数器

本文介绍了使用51单片机配合1602液晶显示屏和3144霍尔模块制作计数器的过程。通过详细阐述LCD1602的初始化及延时函数,展示了如何在51单片机上编程实现计数器,并讨论了霍尔传感器的不同类型。代码中使用中断来更新计数显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很久没有碰51了,  发现对于寄存器操作又编程大一那时候,啥也不懂了,对于本次这个小东西,还特意去图书馆借了三本51单片机的书籍来看,顿时茅塞顿开。这个小东西需要一个显示的东西来让用户看到此时的计件数目,我选了1602模块,本来想用数码管的,  但是数码管感觉好简单的样子。。。。木有时序的操作。。。这也是我做东西以来第一次用1602。。。说来也是惭愧。。。好了 ,再次接下来是用了3144的霍尔模块来测试程序的可行性。。。这里要注意区分传感器的类别,霍尔分为开关型和线性型的,一个输出数字量,一个输出模拟量。这个百度一下就知道了。


大概就是这个样子= =、

接下来是代码咯。

首先是LCD部分

#include"lcd.h"


/*******************************************************************************
* 函 数 名         : Lcd1602_Delay1ms
* 函数功能   : 延时函数,延时1ms
* 输    入         : c
* 输    出         : 无
* 说    名         : 该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/


void Lcd1602_Delay1ms(uint c)   //误差 0us
{
    uchar a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
  for(a=1;a>0;a--);
}      
}
   
}


/*******************************************************************************
* 函 数 名         : LcdWriteCom
* 函数功能   : 向LCD写入一个字节的命令
* 输    入         : com
* 输    出         : 无
*******************************************************************************/
#ifndef LCD1602_4PINS//当没有定义这个LCD1602_4PINS时
void LcdWriteCom(uchar com)  //写入命令
{
LCD1602_E = 0;     //使能
LCD1602_RS = 0;  //选择发送命令
LCD1602_RW = 0;  //选择写入

LCD1602_DATAPINS = com;     //放入命令
Lcd1602_Delay1ms(1);//等待数据稳定


LCD1602_E = 1;         //写入时序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值