基于Proteus的LED点阵显示屏的

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档