53、基于51单片机蓄电池充电器过充过放保护LCD液晶屏显示系统设计(程序+原理图+PCB源文件+参考论文+参考PPT+元器件清单等)

news2024/11/18 1:41:33

方案选择
单片机的选择

方案一: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单片机作为主控芯片。足够本设计运行,且价格便宜,下载程序方便。
 

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

一、STC89C52主要特性如下:

(1)8K字节程序存储空间;

(2)512字节数据存储空间;

(3)内带4K字节EEPROM存储空间;

(4)可直接使用串口下载。

二、STC89C52主要参数如下:

(1)增强型8051单片机,6时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051;

(2)工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机);

(3)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作 频率可达48MHz;

(4)用户应用程序空间为8K字节;

(5)片上集成512 字节RAM;

(6)通用I/O 口(32个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,需加上拉电阻;

(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片;

(8)具有EEPROM功能;

(9)共3个16 位定时器/计数器。即定时器T0、T1、T2;

(10)外部中断4路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒;

(11)通用异步串行口(UART),还可用定时器软件实现多个UART;

(12)工作温度范围:-40~+85℃(工业级)/0~75℃(商业级);

(13)PDIP封装。

三、STC89C52单片机相关引脚说明:

(1)VCC:供电电压。

(2)GND:接地。

(3)P3.0 RXD(串行输入口)

(4)P3.1 TXD(串行输出口)

(5)P3.2 /INT0(外部中断0)

(6)P3.3 /INT1(外部中断1)

(7)P3.4 T0(记时器0外部输入)

(8)P3.5 T1(记时器1外部输入)

(9)P3.6 /WR(外部数据存储器写选通)

(10)P3.7 /RD(外部数据存储器读选通)

(11)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

(12)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

(13)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

(14)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

(15)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

(16)XTAL2:来自反向振荡器的输出。

一、硬件方案

硬件构成:本系统由STC89C52单片机、LCD1602液晶显示、A/D采样PCF8591、继电器、220V交流电转5V直流电源组成。

二、设计功能

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

2、通过整流滤波将220V交流电转化为直流电给蓄电池充电。

3、通过A/D芯片检测蓄电池电压,并在液晶LCD1602上实时显示,如果蓄电池的电压大于14.4V就断开继电器进而防止蓄电池过充,如果蓄电池电压小于11.6V就闭合继电器进行充电。

三、实物图


 

 

 

单片机最小系统
单片机芯片内还有一项主要内容就是并行I/O口。STC89C52共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。

单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点。

STC89C52单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2-12MHz间选择,典型值为12MHz和11.0592MHz。

当在STC89C52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。

复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1KΩ。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经过电阻与电源Vcc接通而实现的。

四、原理图

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。


 

 五、PCB图  

在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。

 

六、程序源码  

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

 

资料包括:

 

需要完整的资料可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

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

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

相关文章

STL之Stack与queue的模拟实现与duque的底层结构(3千字长文详解)

STL之Stack与queue的模拟实现与duque的底层结构 文章目录 STL之Stack与queue的模拟实现与duque的底层结构设计模式的概念适配器模式 stack的实现queue的实现双端队列——dequedeque的底层结构 设计模式的概念 设计模式像是古代的兵法,是以前的人总结出来的一些在特定…

TClientDataSet 模拟 EXCEL表

日常处理数据时,经常需要,从EXCEL表格中,批量导入数据,通过 XLSReadWriteII编程,会很快导入。 但是,客户提供的EXCEL表的字段,数据格式,字段的排序,有很大的区别。因此&a…

PostmanScript脚本功能使用详解!

目录 前言: 一、Pre-requestScript 二、TestScript 三、随机参数: 前言: Postman 是一个强大的 API 工具,可以用于构建、测试和文档化 Web API。Postman 还提供了一个名为 PostmanScript 的功能,它可以用于自动化…

【5】Midjourney Prompt

Prompt 是Midjourney Bot解释以生成图像的简短文本短语。 Midjourney Bot将Prompt 中的单词和短语分解成为Token的较小部分,可以将其与训练数据进行比较,然后用于生成图像。 精心制作的 Prompt可以帮助生成独特且令人兴奋的图像。 Structure 结构 基本…

Spring Boot + Vue3前后端分离实战wiki知识库系统<八>--分类管理功能开发二

接着上一次Spring Boot Vue3 前后端分离 实战 wiki 知识库系统<七>--分类管理功能开发的分类功能继续完善。 分类编辑功能优化: 概述: 现在分类编辑时的界面长这样: 很明显目前的父分类的展现形式不太人性&#xf…

【JVM】JVM常用指令

文章目录 1、jps2、jinfo3、jstat4、jstack5、jmap6、jhat 1、jps jps(java process status tool), 用于查看java进程及相关信息,如果你想找到一个java进程的pid,可以使用jps命令代替linux的ps命令。 命令格式&#…

ansible常见模块应用简介

目录 command, shell, raw模块file 模块copy 模块fetch 模块lineinfile模块unarchive解包解压缩 模块user 模块yum_repository 仓库管理yum/dnf模块Service/systemd模块firewalld 模块nmcli 模块get_url 模块mount模块 注意:该文档需要有 Linux 基础的看 command, s…

【架构基础】高内聚低耦合

软件设计目标:实现需求、易于重用、易于理解、没有冗余。 Dont reinvent the wheel, just realign it. --Anthony J D’ Angelo 高内聚低耦合,是软件工程中判断软件设计好坏的标准。主要评判模块或类的内聚性是否高,耦合度是否低。目的是使…

【图像处理】基于双目视觉的物体体积测量算法研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

TCP的安全和效率机制

目录 0.TCP协议格式 ​编辑 一.确认应答(安全机制) 二.超时重传(安全机制) 1.SYN丢包 2.ACK丢包 三.连接管理(安全机制) 1.三次握手建立连接 ​编辑 2.四次挥手断开连接 3.建立和断开连接 四.滑动窗口(效率机制) 五.流量控制(效率机制) 六.拥塞控制(安全机制) 七…

算法扩展第一次:收集雪花 【hash表,双指针,stl中的map】

算法详解 这道题需要新学的知识一个是双指针,一个是c库中的unordered_map容器 双指针 双指针原先我写过很多这方面的题,但是这道题我一开始是低估了它的难度,而且压根没有想到要用双指针,属于是长见识了,这道题的双…

Virtual box安装Ubuntu1804乱码

Virtual box安装Ubuntu1804乱码 1. 首先检查编码格式 运行以下命令打开locale配置文件: sudo nano /etc/default/locale2. 可能缺少字体,打开终端,先执行更新 sudo apt-get update 接着进入设置,搜索language,进入…

机器学习-搭建轻量级GPT2训练对话

在自己的机器上部署一个GPT简直太酷啦,因为模型数据缘故,所以这个机器人有时候傻傻的。。。 需要安装环境:python3.7 、Transformers4.2.0、pytorch1.7.0、nginx(映射网页文件) 我的系统:MAC m2 Mac默认是…

Jmeter如何安装jp@gc - Ultimate Thread Group插件(终极线程组)

首先明确一点,我们为什么要做压力测试? 压力测试是为了确保系统能够在负载高峰期和长时间运行的情况下保持高性能、稳定和可靠。同时也是软件开发生命周期中不可或缺的一环,帮助开发人员和系统管理员优化和调整系统,以提供卓越的…

2023春期末考试选择题R2-8计算最小生成树总权重详解

题目如图: 分析和计算: 题目给出一个图的邻接矩阵表示,要求求最小生成树的总开销。 根据Kruskal算法,根据邻接矩阵顶点连接情况,收集开销最小的边,直到所有顶点被收集,且无环路,即…

Debian 12 “bookworm“ 发布 - 通用操作系统

Debian 12 “bookworm” 发布 - 通用操作系统 基于 Linux kernel 6.1 LTS,支持 APFS 读写 请访问原文链接:https://sysin.org/blog/debian-12/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Debian 1…

(数组) 1365. 有多少小于当前数字的数字 ——【Leetcode每日一题】

❓1365. 有多少小于当前数字的数字 难度:简单 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j ! i 且…

希捷科技:具有周期性价值的全球云存储之王

来源:猛兽财经 作者:猛兽财经 总结: (1)根据Statista的数据,希捷科技是全球硬盘驱动器市场的领导者,在全球拥有约43%的市场份额。 (2)希捷科技的管理层近期已经宣布了一…

Node.js模块化学习笔记

Node.js模块化 模块化雨模块 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。 其中拆分的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用 模块化项目 编…

Python课期末考试复习

简答 定义函数的规则 1、函数代码块以def关键词开头,后接函数标识符名称和圆括号() 2、任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。 3、函数的第一行语句可以选择性的使用文档字符串用于存放函数说明。 4、函数内容以冒号起始&#xf…