硬件设计

(末尾附文件)

设计要求
本设计主要任务是以单片机为主控芯片来进行软件控制,能正常进行数据计数。基于单片机构成的产品自动计数器研究的主要内容包括:如果构成检测电路、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显示原理图程序设计相关推荐

  1. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

  2. 【034】基于51单片机的HX711电子秤Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的HX711电子秤proteus仿真设计一份: (2).基于51单片机的HX711电子秤proteus仿真设计keli源代码一份: (3).基于51单片机的H ...

  3. 基于51单片机的烟雾火灾报警器proteus仿真设计

    基于51单片机的烟雾火灾报警器proteus仿真设计 1 开发环境 仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0004 代码讲解+仿真讲解+仿真演示 ...

  4. 【002】基于51单片机的电子万年历proteus仿真设计

    一.资料内容(私信获取) (1).基于51单片机的电子万年历proteus仿真设计一份: (2).基于51单片机的电子万年历proteus仿真设计keli源代码一份: (3).基于51单片机的电子万年 ...

  5. 【008】【毕业设计】基于51单片机的烟雾报警系统proteus仿真与实物设计

    ​一.压缩包资料内容(私信获取) (1).基于51单片机的烟雾报警系统proteus仿真设计一份: (2).基于51单片机的烟雾报警系统proteus仿真设计keli源代码一份: (3).基于51单片 ...

  6. 【013】【毕业设计】基于51单片机的节能路灯proteus仿真设计

    ​一.资料内容(私信) (1).基于51单片机的节能路灯proteus仿真设计一份: (2).基于51单片机的节能路灯proteus仿真设计keli源代码一份: (3).基于51单片机的节能路灯pro ...

  7. 基于51单片机多路温度检测proteus仿真 ds18b20

    本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...

  8. 【039】基于51单片机的简易门铃Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的简易门铃proteus仿真设计一份: (2).基于51单片机的简易门铃proteus仿真设计keli源代码一份: (3).基于51单片机的简易门铃prote ...

  9. 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)

    基于51单片机驱动HC-SR04超声波模块(LCD1602显示) 一.基本参数 二.通信时序 三.部分代码展示 四.实际效果 总结 一.基本参数 点击图片购买 HC- SR04+是一款宽电压工作的超声 ...

  10. 基于51单片机智能路灯控制系统Proteus仿真

    资料编号:182    下面是仿真功能视频演示: 182-基于51单片机智能路灯控制系统Proteus仿真 功能讲解: 采用51单片机作为控制CPU,可以通过设置开灯和关灯时间开自动控制路灯的打开和关 ...

最新文章

  1. 你们都是怎么学 Python 的?
  2. 从语言学到深度学习NLP,一文概述自然语言处理
  3. 在windows7下安装CentOS
  4. 20179311《网络攻防实践》第一周作业
  5. 教之初计算机考试函数应用题,教之初计算机考试系统
  6. 最新后端架构师技术图谱
  7. linux rsa登录改密码登录_LINUX中RSA认证登录SSH(不需要输入密码登录)2种方法
  8. 百度-Java中级面试题分享-
  9. R7-4 检查密码 (15 分)
  10. boost 容器tuple 信号signal2测试
  11. Vim 命令常用功能详解
  12. jhipster使用简明教程
  13. python自定义拼音输入法_Python与HMM实现简单拼音输入法
  14. 关于主机的思维导图_「停课不停学」思维导图—初中数学全部知识点总结,高清可打印...
  15. 电子管功放制作指南_电子管功率放大器的简易设计
  16. 优动漫PAINT实现制图化繁为简的一波骚操作
  17. 查看用友NC的版本方法(不启动NC,只看NCHOME)
  18. 28. 如何使用 SAP OData 服务向 ABAP 服务器上传文本格式和 Excel,PDF 等格式的文件
  19. 最方便的短信发送平台:中国网建
  20. Keras学习之:tensorboard 异常报错及处理方法

热门文章

  1. 电子签章系统研发总结
  2. 安全电子签章密码技术规范_最新|8项网络安全国家标准详情公布!10月1日正式实施(附8项标准全文)...
  3. 管理学之父德鲁克:目标管理的八要素和七步骤
  4. 移动前端开发的一些简单分类!
  5. 移动前端开发和 Web 前端开发的区别是什么
  6. gmod服务器文件,gmod服务器里改名字指令 | 手游网游页游攻略大全
  7. 基于GPS的车辆导航及GPRS网络监控
  8. Ant Design学习——TimePicker
  9. vs2010的Visual Assist X破解版安装
  10. 详解高级前端面试常问的EventLoop