汪老师分享 -爱代码爱编程
序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的LED点阵显示系统设计
第3章 系统硬件设计
3.1 硬件整体设计概述及功能分析
系统硬件设计过程当中首先要知道它具体是由通信系统、单片机、译码电路、显示驱动电路以及48×16的点阵屏五部分所组成的。整体的设计概述是,首先核心元器件单片机通过通信系统去发送相关的指令以及代码,执行控制指令处理显示代码将通过发光二极管行串行并通过其译码电路完成串并转换,最终进行输出,使用一个驱动对所需要的电压、电流进行处理,达到显示器使用的显示电流,最终显示内容[19]。
在了解了不同硬件的功能时要选择合适的元器件,这些器件的选择过程当中,要完成每一部分需要完成的功能与任务的同时,首先核心元器件单片机通过通信系统去发送相关的指令以及代码,还要能够兼容到整个系统当中。使用一个驱动对所需要的电压、电流进行处理,达到显示器使用的显示电流,所以该系统所要实现的功能和要求有以下几点,首先就是该实验设计的LED显示屏面积要足够大,能够满足显示一个汉字,并且在显示时一定要保证清晰,其次是对于驱动电路路来说,这些器件的选择过程当中,它需要提供能够满足此次LED显示屏所需要的电压以及电流。AT89S51是一个低电压,高性能单片机,AT89S51的引脚图。如图3-1所示。
图3-1 为AT89S51的引脚图
表3-1 引脚功能表
引脚 | 功能 |
VCC | 供电电压 |
GND | 接地 |
P0口 | P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。 |
P1口 | P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 |
P2口 | P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。 |
P3口 | P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。 |
RST | 复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 |
/PSEN | 外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效 |
/EA/VPP | 当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序 |
存储器 | 注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP) |
XTAL1 | 反向振荡放大器的输入及内部时钟工作电路的输入 |
XTAL2 | 来自反向振荡器的输出 |
图3-2 AT89S51引脚功能图
3.2 控制单元设计
控制单元,是整个显示系统的核心,采用单片机作为核心器件来控制指令以及显示内容,51系列的单片机当中选择一种比较合适的型号来作为控制单元的主控芯片,根据事先所要达到的程序要求,单片机一定要具有良好的编程能力,在软件设计过程当中要方便下载和编写,同时LED显示屏扫描速度也是十分重要的,所以需要有一个有着更高执行速度的单片,根据这两点要求选择了美国ATMEL公司生产的AT89S51为控制单元的主控芯片[20]。控制电路设计中采用的是单片机系统,指单片机的可以运行的最小配置系统。具体电路如图3-3所示。
图3-3 控制部分电路图
3.3 译码电路设计
译码电路的功能是为了解决单片机I/O端口不足。单片机一定要具有良好的编程能力,在软件设计过程当中要方便下载和编写,同时LED显示屏扫描速度也是十分重要的,所以需要有一个有着更高执行速度的单片,行译码所用器件为串并转换器74LS164和锁存器74LS373[21]。具体电路如图3-4所示。
3.3.1 串并转换器74LS164
大大减少了I/O口的占用数目,为单片机扩展其他功能预留下来了空间[22]。然后根据所选择的电子元器件的性能、特性的基础之上,根据硬件的特点以及该实验设计的要求,将选择使用C语言编写。
表3-2 74LS164工作参数
参数 | 最小值 | 标准值 | 最大值 | 单位 |
高电平输入电压 | 2 | — | — | V |
低电平输入电压 | — | — | 0.8 | V |
高电平输出电压 | 2.4 | 3.2 | -- | V |
低电平输出电压 | — | 0.2 | 0.4 | V |
时钟频率 | 0 | — | 25 | MHZ |
图3-4 行译码电路图
3.3.2 锁存器74L373
因此在串并转换完成前就需要74LS164的输出口不与驱动电路导通。P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。所以选择锁存器74LS373来完成这一功能。
表3-374LS373工作参数表
参数 | 最小值 | 额定值 | 最大值 | 单位 |
电源电压 | 4.75 | 5 | 5.25 | V |
输入高电平电压 | 2 | — | — | V |
输入低电平电压 | — | — | 0.8 | V |
输出高电平电压 | — | — | -2.6 | mA |
输出低电平电压 | — | — | 24 | mA |
3.4 驱动电路设计
发光二极管,微处理器显示接口电路,每个驱动晶体臂的发射级接+5V电源基级受微处理器控制,微处理器输出低电平时,晶体管基极电平降低晶体管发射级和集电极之间导通,+5V电源经过晶体管加到发光二极管上,使二极管发光。所有器件有集电极开路输出和用于瞬变抑制的续流箝位二极管。具体电路如图3-5所示。
图3-5 列驱动原理图
3.5 通信系统硬件设计
支持单片机进行数据的串行传输。单片机与计算机不能直接相连进行通信必须将RS-232C与TTL电平进行转换。实际应用中,显然不能使用电脑USB供电,这个时候就需要将常用的民用的220V的电压进行整流,串口通信系统电路如图3-6所示。
图3-6 串口通信系统电路图
3.6 电源设计
在系统中MAX232、74LS164、74LS373、AT89S51全需要5V的供电电压,在系统开发过程中可以使用电脑USB供电。实际应用中,显然不能使用电脑USB供电,这个时候就需要将常用的民用的220V的电压进行整流,整流为5V直流电压为显示系统供电。电路图如图3-7所示。
图3-7 电源原理图
3.7 级连大屏幕LED显示屏
要实现LED的大屏幕显示主要采用内部译码器级连和多个单片机系统级连的方法。从独立的小型的LED显示系统整合组成一个大的LED显示系统,可以将大屏幕当中的不同画面拆分成几个小的画面,分别送入到这些子系统当中。但是这种方法依然上的难点,因为存在很多的独立系统,所以更加考察整个系统的协调、统一性。这些子显示系统之间是相互独立的,可以将大屏幕当中的不同画面拆分成几个小的画面,分别送入到这些子系统当中。如果不能够同时进行传递,就会导致画面产生延迟或者进行分裂[23]。译码器级连如图3-9所示。
图3-9 74LSL64级连
在构成大规模屏幕的LED显示屏时,有一种方法就是把小的LED显示系统作为模块,在此基础上进行整合、连接,从独立的小型的LED显示系统整合组成一个大的LED显示系统,这些子显示系统之间是相互独立的,可以将大屏幕当中的不同画面拆分成几个小的画面,分别送入到这些子系统当中。但是这种方法依然上的难点,因为存在很多的独立系统,所以更加考察整个系统的协调、统一性。
显然不能使用电脑USB供电,这个时候就需要将常用的民用的220V的电压进行整流,整流为5V直流电压为显示系统供电。如果不能够同时进行传递,就会导致画面产生延迟或者进行分裂。而且最重要的一点就是使用这种方法让操作成本急剧提高。在实际应用当中为了避免发生次种情况,所以通常采用两种方式对其进行连接。即增加单个显示系统显示屏幕大小的同时又将单个的显示系统级连。
图3-8 硬件原理图
第4章 系统软件设计
4.1 程序设计
系统软件采用C语言编写,按照模块化的设计思路设计。大大减少了I/O口的占用数
目,为单片机扩展其他功能预留下来了空间。然后根据所选择的电子元器件的性能、
特性的基础之上,根据硬件的特点以及该实验设计的要求,将选择使用C语言编写。
其功能结构如图2-4所示。主程序的工作流程图如图4-1所示。
图4-1 主程序流程图
4.2 显示程序的设计
主程序主要为各功能子程序提供运行平台,子程序分为显示程序,特效显示程序,按键输入中断子程序。
//#include<reg51.h>
//#include<absacc.h>
//#include<intrins.h>
#include<AT89x52.h>
//#include<regx52.h>
#define COUNT 34
#define W 0X01
unsigned char buffer[COUNT];
unsigned char point;
sbit A1=P1^0;//定义第一列对应端口
sbit A2=P1^1;//第二列
sbit A3=P1^4;//第一行
sbit A4=P1^5;//第二行
sbit CLK_H=P1^6;//行移位时钟
sbit CLEAR_H=P1^7;//行清除控制位低电平有效
sbit EN=P2^0;
sbit P21=P2^1;
sbit OE=P2^2;//三态允许控制端低电平有效
sbit LE=P2^3;//锁存允许端
unsigned char code H1[16]={1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},H2[16]={0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0};//分别暂存行(H)列(L)所要显示的数据
4.2.1 LED显示屏的显示方式
LED点阵屏显示方式主要由静态显示和动态扫描显示两种。根据它们的比较再结合51单片机IO口数量有限的原因决定采用动态扫描的方式进行显示。
图4-2 扫描显示程序原理图
4.2.2 点阵数据表达方式
该显示系统的显示数据采取纵向取模方向正向的数据存储方式。执行控制指令处理显示代码将通过发光二极管行串行并通过其译码电路完成串并转换,最终进行输出,如图4-3所示。
图4-3 点阵数据原理图
4.2.3 显示程序的设计
静态显示程序流程图,使用一个驱动对所需要的电压、电流进行处理,达到显示器使用的显示电流,所以该系统所要实现的功能和要求有以下几点,首先就是该实验设计的LED显示屏面积要足够大,能够满足显示一个汉字,并且在显示时一定要保证清晰,如图4-4所示。
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!