基于Proteus的LED点阵显示屏的
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用系统设计
课题:基于Proteus的LED点阵显示屏的
设计与仿真
姓名:
班级:
学号:
指导老师:
日期:
单片机汉字点阵显示系统设计
一、摘要:
Proteus软件可进行单片机仿真,本文用Proteus软件设计汉字LED点阵静态显示,给出了完整设计电路和仿真程序源代码,通过仿真运行,在LED点阵中显示出"徐州工程学院"六个汉字。仿真结果表明Proteus软件在单片机应用设计中具有重要的实用价值,能极大缩短产品开发周期,节约开发成本。
二、引言:
一、Proteus的介绍:
Proteus最重要的特点是它能够把用户编写的应用软件作用在微处理器上并
和连接在该处理器外围模拟器件及数字器件协同仿真,就像在真正的单片机应用系统的硬件平台上执行目标代码。支持的微控制器有51系列、Microchip的P IC系列、Atmel的A V系列、和ARM7 /LPC2000。Proteus软件使用彻底改变了传统单片机学习和开发方式,初学者可以在没有实验硬件条件下进行仿真实验,开发者也不必经历"原理图设计、PCB线路板制作、元件焊接、然后进行软件编程、通过仿真
器对系统硬件和软件调试"过程,可以直接用Proteus进行电路设计和仿真运行程序,运行成功后再制作产品,缩短开发周期,节约开发成本。汉字点阵显示电路设计制作时,显示部分由8 ×8单色LED模块拼接而成,元件引脚较多,硬件制作繁琐,应用Proteus进行仿真设计,极大缩短开发周期。本文用Proteus软件设计16 ×16六个汉字静态显示屏。
二、单片机的应用介绍
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
三、课程设计目的与意义
《单片机原理及应用》是一门技术性,应用性、实践性很强的学科。课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的和任务就是配合单片机的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。
四、汉字显示电路设计
汉字点阵的控制电路采用C51系列单片机,硬件电路可分为单片机控制器、LED显示屏行列驱动电路、LED点阵显示屏三部分,详见硬件连接图。
显示器由4块8×8的点阵显示芯片构成16×16的点阵显示器,显示汉字时,从U6单元的第一列开始扫描,然后是U7的第一列,列中的每一点对应与
RESPACK的每一位,出现高电平的点就亮,延迟一段时间后继续扫描,再U6的第二列,U7的第二列,再U6的第三列……..直到U6U7的8列全部扫描结束,接着再按照同样的方式扫描U8和U9,在显示屏上就滚动显示“徐州工程学院”。
五、硬件设计
741HC138译码器:P2.3、P2.4、P2.5、P2.6为选择位,对应A T89C52的P2口的P2.3- P2.6,当选中某一位时,译码器的A,B,C口接通,Y0到Y7与BENNY-8*8-RED显示器的Y20到Y27位。
六、软件设计
先申明一些变量和汉字库,接着是主函数,主函数中用一个while循环,循环显示汉字,再调用延迟函数和定时函数控制汉字的显示。
系统框图如下:
程序开始
程序初始化
(相关变量进行初始化)
输出扫描码给U6
输出扫描码给U7
输出扫描码给
U8
输出扫描码给
U9
程序结束
七、汉字显示程序设计
根据以上硬件电路和单片机控制原理,编程思路为:
a先对相关变量进行初始化。
b装载三个汉字的第一行数据,并显示出来。
c依次显示三个汉字的第二行至第十六行。
d结束。
完整的程序代码如下:
#include
#define int8 unsigned char
#define int16 unsigned int
#define int32 unsigned long
int8 flag;
int8 n;
int8 code table[][32]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00},
{0x00,0x40,0x08,0x80,0x11,0x00,0x23,0xff,0xc4,0x00,0x04,0x44,0x0a,0x48,0x12,0 x52,0x22,0x41,0xc3,0xfe,0x22,0x40,0x12,0x50,0x0a,0xc8,0x0c,0x4c,0x08,0x00,0x0 0,0x00},/*"徐",0*/
{0x01,0x00,0x0e,0x02,0x00,0x0c,0xff,0xf0,0x00,0x00,0x08,0x00,0x06,0x00,0x00,0x 00,0x7f,0xfc,0x00,0x00,0x08,0x00,0x06,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0 x00},/*"州",1*/
{0x00,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x3f,0 xfc,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x60,0x04,0x20,0x0c,0x00,0x04,0x0 0,0x00},/*"工",2*/
{0x24,0x10,0x24,0x60,0x25,0x80,0x7F,0xFF,0xC5,0x00,0x44,0xC2,0x04,0x82,0x7E ,0x92,0x42,0x92,0x42,0x92,0x42,0xFE,0x42,0x92,0x42,0xB2,0xFE,0x96,0x40,0x82, 0x00,0x00},/*"程",3*/
{0x02,0x20,0x0C,0x20,0x88,0x20,0x69,0x20,0x09,0x20,0x09,0x22,0x89,0x21,0x69, 0x7E,0x09,0x60,0x09,0xA0,0x19,0x20,0x28,0x20,0xC8,0x20,0x0A,0x60,0x0C,0x20 ,0x00,0x00},/*"学",4*/
{0x00,0x00,0x7F,0xFF,0x44,0x20,0x5A,0x10,0x69,0xE1,0x30,0x81,0x24,0x82,0x24, 0x8C,0xA4,0xF0,0x64,0x80,0x24,0xFC,0x2C,0x82,0x25,0x82,0x28,0x82,0x30,0x0E