119、仿真-51单片机温湿度光照强度LCD 1602显示报警设计(Proteus仿真+程序+元器件清单等)

news2024/11/23 15:18:45

方案选择
单片机的选择

方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的8K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C52目前的售价比8031还低,市场供应也很充足。AT89C52可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于8K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需lOms。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。

方案二:STC89C52系列单片机的指令系统和AT89C52系列的完全兼容,但实际操作起来却存在很多问题:

(1)AT89C52不带ISP下载,要用下载器才行,STC89C52可以用你的USB转串口下载,下载软件可以到STC厂家网上去下。

(2)STC单片机执行指令的速度很快,大约是AT的3-30倍,尽管快是好事,但这样一来,你在AT上好使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,用STC时注意得加长延时,大约是AT的10—30倍就差不多,这一点自己调试就知道了。

(3)STC单片机对工作环境的要求比较低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,然而这样的环境下AT肯定不行了,所以当一个系统用STC单片机好用,但用AT的单片机不工作时,直接查最小系统,看单片机的供电是否正常。

比较这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STC系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比较方便,故STC为更合理的选择。本系统选择STC89C52单片机作为主控芯片。足够本设计运行,且价格便宜,下载程序方便。


显示器选择方案

方案一:采用12864液晶显示屏。液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。

方案二:采用LCD1602液晶显示屏。LCD1602A 是一种工业字符型液晶,能够同时显示16x02 即32个字符。(16列2行)。1602只能显示字母、数字和符号能显示16*2个字符,但寄存器不止32个,有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单。

总结:在编程使用方面,两者难度差不多,原理差不多,都是写指令、写地址、写数据等等。当然12864液晶屏显示更全面、字符更多。相比于1602液晶屏、12864能更形象具体的实现显示功能。不过1602液晶屏也能实现设计的要求。网上买比较廉价,最低的六块钱左右。而12864液晶显示屏最便宜的也要四十块钱。从造价方面考虑,当然是价格低廉的优先。而LCD1602A就是最好的选择。

一、硬件方案

硬件电路组成:51最小系统+51单片机+Lcd1602显示屏+DHT11温湿度传感器+TLC2543+LED+蜂鸣器+光敏电阻

二、设计功能

单片机型号:STC89C52/51、AT89C52/51、AT89S52/51都可通用。

1、可以实现温度、湿度、光强度的检测与显示。温度范围:0-50℃,湿度范围:20%-90%,光强度范围:0-65536lx。

2、温度限值30℃,湿度限值40%,光强度限值700lx。当前温度高于温度限值,蜂鸣器报警,对应的Led灯亮。当前湿度低于湿度限值,蜂鸣器报警,
对应的Led灯亮。当前光强度低于光强度限值,蜂鸣器报警,对应的Led灯亮。

三、Proteus仿真图
 

 

单片机模块设计

单片微型计算机是随着微型计算机的发展而产生和发展的。自从1975 年美国德克萨斯仪器公司的第一台单片微型计算机( 简称单片机)TMS-1000 问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。

如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:

第一阶段(1976—1978):单片机的探索阶段。以Intel公司的MCS-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机”一词即由此而来。

第二阶段(1978—1982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。

(1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。

(2)CPU外围功能单元的集中管理模式。

(3)体现工控特性的地址空间及位操作方式。

(4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。

第三阶段(1982—1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。

第四阶段(1990—):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。

单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活跃的领域之一。在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。

单片机引脚介绍

单片机主要特点:

(1)有优异的性能价格比。

(2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。

(3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。

(4)低功耗、低电压,便于生产便携式产品。

(5)外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。

(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。

优异的性能价格比。

1)集成度高、体积小、有很高的可靠性。

单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。

此外,程序多采取固化形式也可以提高可靠性。

2)控制功能强。

为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。

单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。

   VCC:STC89C52电源正端输入,接+5V。

GND:电源地端。

XTAL1:  单芯片系统时钟的反相放大器输入端。

XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。

RESET:STC89C52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。

ALE/PROG:ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。STC89C52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为STC89C52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。

PSEN:此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。STC89C52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。

PORT0(P0.0~P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。

PORT2(P2.0~P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在STC89C52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。

PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。

PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。


 

四、程序源码

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

 

资料包括:

 

需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/749694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(7 月 13 日论文合集)

文章目录 一、检测相关(8篇)1.1 Exposing the Fake: Effective Diffusion-Generated Images Detection1.2 Large Class Separation is not what you need for Relational Reasoning-based OOD Detection1.3 Visualization for Multivariate Gaussian Anomaly Detection in Imag…

unity计时,1秒执行一次

1.核心代码示例 2.代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public class AddRandomChilden : MonoBehaviour {// Debug.Log("开始进入update");float i 0;// Start is called before the first frame updatevoid Sta…

【智慧交通项目实战】 《 OCR车牌检测与识别》(五):模型部署与优化

👨‍💻作者简介: CSDN、阿里云人工智能领域博客专家,新星计划计算机视觉导师,百度飞桨PPDE,专注大数据与AI知识分享。✨公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等&#xf…

用python合并execl做统计分析

背景: 我们有项目问题记录的表格,每一个项目都会反馈来一个execl表格,表格的格式都是统一的,我需要定期把这些项目上反馈来的表格进行统计,但是表格非常多,我要每个都统计出来在来相加,这样操作…

Mysql 数据库开发及企业级应用

文章目录 1、Mysql 数据库开发及企业级应用1.1、为什么要使用数据库1.1.1、数据库概念(Database)1.1.2、为什么需要数据库 1.2、程序员为什么要学习数据库1.3、数据库的选择1.3.1、主流数据库简介1.3.2、使用 MySQL 的优势1.3.3、版本选择 1.4、Windows …

C语言,通过多文件编辑定义字符指针,指向堆区空间,计算字符串长度

通过多文件编辑,定义字符指针,分别指向堆区空间,计算字符串长度 要求: 1、定义函数实现堆区空间申请 2、在主函数中实现输入字符串 3、定义函数实现字符串长度 函数原型:size_t my_strlen(const char *s) 4、定义函数释…

vue 下拉框显示从后端请求的数据

下拉框<!-- 给产品添加推广人员弹出框 --><el-dialog :title"titlePerson" :visible.sync"openAddPerson" width"1000px" append-to-body><el-select v-model"this.bindingProductPerson.recommendId" filterable plac…

分层解耦-IOCDI-IOC详解

目录 Bean的声明 注意 声明bean的时候&#xff0c;可以通过value属性指定bean的名字&#xff0c;如果没有指定&#xff0c;默认为类名首字母小写 使用以上四个注解都可以声明bean&#xff0c;但在SpringBoot集成Web开发中&#xff0c;声明控制器bean只能使用Controller或者R…

springboot时间管理系统

通过前面的功能分析可以将时间管理系统的功能分为管理员&#xff0c;用户两个部门&#xff0c;系统的主要功能包括首页&#xff0c;个人中心&#xff0c;系统公告管理&#xff0c;用户管理&#xff0c;时间分类管理&#xff0c;事件数据管理&#xff0c;目标数据管理&#xff0…

MySQL数据库第七课————数据的增删改查----------简单操作

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 目录 SQL增删改查 新增数据 删除数据 修改&#xff08;更新&#xff09;数据 查询数据 条件 ————————————————…

java ajax

1.ajax定义:异步刷新技术 2.ajax语法 3.ajax实战 在不需要点击刷新按钮时达到局部刷新显示&#xff0c;如下图所示 步骤一&#xff1a;创建工程/包/js 步骤二&#xff1a;数据库/表创建 步骤三&#xff1a;实体类 步骤四&#xff1a;UserDao package cn.kgc.dao;import cn…

linux_driver_day10

作业1 题目&#xff1a; 使用驱动代码实现如下要求 应用程序通过阻塞的io模型来读取number变量的值 number是内核驱动中的一个变量 number的值随着按键按下而改变&#xff08;按键中断&#xff09; 例如 numbero 按下按键 number1&#xff0c;再次按下按键 number0 在按下按…

pdf文件怎么删除密码?4个方法实用简单!

PDF文件作为一种常见的电子文档格式&#xff0c;广泛应用于各行各业。有时候&#xff0c;我们可能会遇到需要删除PDF文件密码的情况&#xff0c;无论是因为忘记密码、接收到加密的文件或是需要与他人共享文件等。为了帮助你轻松解决这一问题&#xff0c;本文将介绍四种简单实用…

【GitHub】腾讯这一款设计神器,开源了!PAG 动效组件

作为一个资深的互联网用户&#xff0c;我们经常会在各种产品上看到十分酷炫的动画效果。比如&#xff0c;短视频中有趣的虚拟场景、直播间粉丝打榜的 “火箭”、“轮船” 等等。 如今&#xff0c;优质的动效不仅可以使用户更容易地理解产品功能和操作方式&#xff0c;减少用户…

简单分享怎么做卖货小程序

微信卖货小程序是一种基于微信平台开发的小程序应用&#xff0c;它可以帮助用户在小程序中完成商品展示、下单购买、在线支付等操作。下面我们来介绍微信卖货小程序的好处和优点。 一、便捷快速 微信卖货小程序可以直接在微信App中使用&#xff0c;无需下载和安装&#xff0c;…

docker-compose安装gitlab

docker安装gitlab 1、创建docker-compose.yml文件 version: 3 services:gitlab:image: twang2218/gitlab-ce-zh:11.1.4restart: unless-stoppedhostname: gitlab.example.comenvironment:TZ: Asia/ShanghaiGITLAB_OMNIBUS_CONFIG: |external_url http://gitlab.example.comgi…

基于STM32LVGL8.2保姆级教程①软件资料准备

下载LVGL源码 LVGL资料包下载点击直达 点击master -》选择8.2分支,也就是倒数第二个 准备开发环境 这个软件玩STM32的有好吧 准备代码模板 需要准备一份能够成功点亮屏幕的keil工程 既然是保姆级教程 So我免费分享出来 私信或评论区获取 此屏幕驱动 就是图片里面的那块屏幕 具…

【安装】windows环境下的 JDK官网下载 安装配置 环境变量

目录 官网下载JDK8windows安装JDKJava环境配置JDK、JRE、JVMJava环境配置1.JAVA_HOME2.PATH3.CLASSPATH 测试环境变量运行命令行cmd查看jdk是否安装 官网下载JDK8 Oracle 甲骨文中国 | 云应用和云平台 选择产品/Java 下载JDK8 点击下载Java 选择Java archive 选择x64位安装包 …

读笛卡尔《方法论》有感

1.新书到手 今天又到手一本新书《谈谈方法》&#xff08;又称《方法论》&#xff09;&#xff0c;此书的作者是笛卡尔&#xff0c;本书介绍了笛卡尔是如何运用自己的理性在各门学科里寻求真理的方法。 勒内笛卡尔&#xff08;1596年3月31日-1650年2月11日&#xff09;&#xf…

MySQL每日一练:单表查询、连接查询

目录 1、创建两张表 student表&#xff1a; score表 &#xff1a; 2.为student表和score表增加记录 student表&#xff1a; score表&#xff1a; 3、按条件查找 1、创建两张表 student表&#xff1a; CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY…