基于51单片机的红外计数器proteus仿真 LCD1602显示原理图程序设计
硬件设计
(末尾附文件)
设计要求
本设计主要任务是以单片机为主控芯片来进行软件控制,能正常进行数据计数。基于单片机构成的产品自动计数器研究的主要内容包括:如果构成检测电路、MCS-51 单片机用何种方式对外部计数脉冲进行计数显示控制、LCD 显示驱动模块的选择、MCS-51 单片机的扩展。在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
主要技术指标:
(1)显示并能计数;
(2)具有报警功能;
(3)具有较强的抗干扰性。
方案
原理图:
仿真图:
程序设计
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include <intrins.h>bit flag_500ms;
sbit beep = P1^4; //蜂鸣器IO口定义 sbit hw_jin = P2^0; //红外传感器IO口定义
sbit hw_chu = P2^1; //红外传感器IO口定义
uchar a_a;
uchar menu_1; //设置参数用uint num; //计的数
uint jin,chu;
uchar set_num = 80; // 设置倒计时数的启始值 /***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{uint i,j;for(i=0;i<q;i++)for(j=0;j<120;j++);
}/*************定时器0初始化程序***************/
void time_init()
{EA = 1; //开总中断TMOD = 0X01; //定时器0、工作方式1ET0 = 1; //开定时器0中断 TR0 = 1; //允许定时器0定时
}sbit rs=P1^0; //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit rw=P1^1; //寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit e =P1^2; //片选信号 下降沿触发/********************************************************************
* 名称 : delay_uint()
* 功能 : 小延时。
* 输入 : 无
* 输出 : 无
***********************************************************************/
void delay_uint(uint q)
{while(q--);
}/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{e=0;rs=0;rw=0;P0=com;delay_uint(25);e=1;delay_uint(100);e=0;
}/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{e=0;rs=1;rw=0;P0=dat;delay_uint(25);e=1;delay_uint(100);e=0;
}/***********************lcd1602上显示两位十进制数************************/
void write_sfm4(uchar hang,uchar add,uint date)
{if(hang==1) write_com(0x80+add);elsewrite_com(0x80+0x40+add);write_data(0x30+date/1000%10);write_data(0x30+date/100%10);write_data(0x30+date/10%10);write_data(0x30+date%10);
}/***********************lcd1602上显示这字符函数************************/
void write_string(uchar hang,uchar add,uchar *p)
{if(hang==1) write_com(0x80+add);elsewrite_com(0x80+0x40+add);while(1) {if(*p == '\0') break;write_data(*p);p++;}
}/***********************lcd1602初始化设置************************/
void init_1602() //lcd1602初始化
{write_com(0x38); write_com(0x0c);write_com(0x06);delay_uint(1000);write_string(1,0," Z:0000 "); write_string(2,0," J:0000 C:0000 "); write_sfm4(2,1,jin); //显示人数write_sfm4(1,6,num); //显示人数write_sfm4(2,11,chu); //显示人数
}/********************独立按键程序*****************/
uchar key_can; //按键值void key() //独立按键程序
{static uchar key_new;key_can = 20; //按键值还原P3 |= 0xf0;if((P3 & 0xf0) != 0xf0) //按键按下{delay_1ms(1); //按键消抖动if(((P3 & 0xf0) != 0xf0) && (key_new == 1)){ //确认是按键按下key_new = 0;switch(P3 & 0xf0){case 0xd0: key_can = 1; break; //得到k1键值case 0xb0: key_can = 2; break; //得到K2键值case 0x70: key_can = 3; break; //得到k3键值}} }else key_new = 1;
}
.
文件仅供参考:
链接:https://pan.baidu.com/s/1khRUjXXJMTa8vNOVQoiOcQ
提取码:ach0
.
基于51单片机的红外计数器proteus仿真 LCD1602显示原理图程序设计相关推荐
- 【019】基于51单片机的交通灯Proteus仿真设计
一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...
- 【034】基于51单片机的HX711电子秤Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的HX711电子秤proteus仿真设计一份: (2).基于51单片机的HX711电子秤proteus仿真设计keli源代码一份: (3).基于51单片机的H ...
- 基于51单片机的烟雾火灾报警器proteus仿真设计
基于51单片机的烟雾火灾报警器proteus仿真设计 1 开发环境 仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0004 代码讲解+仿真讲解+仿真演示 ...
- 【002】基于51单片机的电子万年历proteus仿真设计
一.资料内容(私信获取) (1).基于51单片机的电子万年历proteus仿真设计一份: (2).基于51单片机的电子万年历proteus仿真设计keli源代码一份: (3).基于51单片机的电子万年 ...
- 【008】【毕业设计】基于51单片机的烟雾报警系统proteus仿真与实物设计
一.压缩包资料内容(私信获取) (1).基于51单片机的烟雾报警系统proteus仿真设计一份: (2).基于51单片机的烟雾报警系统proteus仿真设计keli源代码一份: (3).基于51单片 ...
- 【013】【毕业设计】基于51单片机的节能路灯proteus仿真设计
一.资料内容(私信) (1).基于51单片机的节能路灯proteus仿真设计一份: (2).基于51单片机的节能路灯proteus仿真设计keli源代码一份: (3).基于51单片机的节能路灯pro ...
- 基于51单片机多路温度检测proteus仿真 ds18b20
本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...
- 【039】基于51单片机的简易门铃Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的简易门铃proteus仿真设计一份: (2).基于51单片机的简易门铃proteus仿真设计keli源代码一份: (3).基于51单片机的简易门铃prote ...
- 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)
基于51单片机驱动HC-SR04超声波模块(LCD1602显示) 一.基本参数 二.通信时序 三.部分代码展示 四.实际效果 总结 一.基本参数 点击图片购买 HC- SR04+是一款宽电压工作的超声 ...
- 基于51单片机智能路灯控制系统Proteus仿真
资料编号:182 下面是仿真功能视频演示: 182-基于51单片机智能路灯控制系统Proteus仿真 功能讲解: 采用51单片机作为控制CPU,可以通过设置开灯和关灯时间开自动控制路灯的打开和关 ...
最新文章
- 你们都是怎么学 Python 的?
- 从语言学到深度学习NLP,一文概述自然语言处理
- 在windows7下安装CentOS
- 20179311《网络攻防实践》第一周作业
- 教之初计算机考试函数应用题,教之初计算机考试系统
- 最新后端架构师技术图谱
- linux rsa登录改密码登录_LINUX中RSA认证登录SSH(不需要输入密码登录)2种方法
- 百度-Java中级面试题分享-
- R7-4 检查密码 (15 分)
- boost 容器tuple 信号signal2测试
- Vim 命令常用功能详解
- jhipster使用简明教程
- python自定义拼音输入法_Python与HMM实现简单拼音输入法
- 关于主机的思维导图_「停课不停学」思维导图—初中数学全部知识点总结,高清可打印...
- 电子管功放制作指南_电子管功率放大器的简易设计
- 优动漫PAINT实现制图化繁为简的一波骚操作
- 查看用友NC的版本方法(不启动NC,只看NCHOME)
- 28. 如何使用 SAP OData 服务向 ABAP 服务器上传文本格式和 Excel,PDF 等格式的文件
- 最方便的短信发送平台:中国网建
- Keras学习之:tensorboard 异常报错及处理方法