点阵电子显示屏的设计.doc

上传人:PIYPING 文档编号:10865928 上传时间:2021-06-09 格式:DOC 页数:12 大小:294.50KB
返回 下载 相关 举报
点阵电子显示屏的设计.doc_第1页
第1页 / 共12页
点阵电子显示屏的设计.doc_第2页
第2页 / 共12页
点阵电子显示屏的设计.doc_第3页
第3页 / 共12页
点阵电子显示屏的设计.doc_第4页
第4页 / 共12页
点阵电子显示屏的设计.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《点阵电子显示屏的设计.doc》由会员分享,可在线阅读,更多相关《点阵电子显示屏的设计.doc(12页珍藏版)》请在三一文库上搜索。

1、河南理工大学计算机科学与技术学院课程设计报告200 9 20 10 学年第 一 学期课程名称 单片机原理与应用实例仿真 设计题目 点阵电子显示屏的设计 学生姓名 学 号 310709010426 专业班级 计算机 指导教师 2010年 1月 3日一、设计题目:点阵电子显示屏的设计二、设计要求:用88点阵LED字符显示器和键盘,按1健,显示“单片机”三个字,按2键,显示“电子设计”四个字。三、设计目的:通过课程设计及研究论文,使我们对单片机的应用有更深入的理解,并具有较简单的单片机应用的设计能力。四、设计方案:串行输入,并行输出,动态行扫描显示汉字。通过串并转换器扩展I0口,达到控制LED点阵的

2、64个列线的目的。方案中运用8片串并转换器74HC595级联,锁存4个字的一行数据,并用4/16译码器74HC154选择对应的行线,在主程序中通过逐行扫描使8片串并转换器锁存的数据依次输入到点阵的列线端口上,这样依据人体视觉暂留,可以完整的看到扫描后的汉字。五、硬件设计硬件:Atmel89C52单片机,74HC154,74HC595(锁存器/驱动器),MATRIX-8*8-RED(8*8绿色LED矩阵),电阻,BUTTON(按键)AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C

3、52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。AT89C52主要特性:与MCS-51产品指令和引脚完全兼容、8Kbyte字节可重复擦写flash存储器、1000次擦写周期、全静态操作:0-24MHz时钟频率、三级加密程序存储器、256x8字节内部RAM、32个可编程I/O口 、3个16位定时器/计数器 、8个中断源、可编程串行UART通道、支持低功耗空闲及掉电模式 。 如图为AT89C52引脚针试图和内部框架图。AT89C52为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51

4、内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制

5、端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能.。P0 口:P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻

6、。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。由于显示多个汉字,需要多块LED点阵块,就需要采用级联多只串并转换器7

7、4HC595从而实现点阵的扩展。左图是74HC595的引脚分布图,各引脚功能为:QAQH: 并行数据输出,即存储器的数据输出QH 9 串行数据输出SCK 11 移位寄存器时钟输入RCK 12 存储寄存器时钟输入G 13 输出有效(低电平)SCLR 10 主复位(低电平)SER 14 串行数据输入74HC595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器使用独立的时钟。数据在SH_CP的上升沿输入,在ST_CP的上升沿进入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储器早一个脉冲。移位寄存器有一个串行移位输入端DS,一个串行输出Q7和第二片74HC595的D

8、S连接实现多片扩展。OE是输出使能端,该端为低电平时数据从74HC595寄存器内输出到数据总线上。简介:4线16线译码器,可以实现地址的扩展。4-Line to 16-Line Decoder/Demultiplexer 引脚说明1-11 13-17 :输出端。(outputs (active LOW))12:Gnd电源地 (ground (0 V))18-19:使能输入端 (enable inputs (active LOW)20-23地址输入端 (address inputs)24:VCC电源正 (positive supply voltage)LED点阵显示屏是一种通过控制半导体发光二极

9、管的显示方式,用来显示文字图形等各种信息的显示屏幕。8*8点阵由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上。当点阵中的某一行置高电平,某一列置低电平,则该行列线交叉点的二极管就点亮。因此要实现某一列的发光二极管都点亮,则该列的列线上都应送上低电平,所有行线送高电平;若实现某一行的发光二极管都点亮,则该行的行线上都应送上高电平,所有列线送低电平,这一操作可以利用软件扫描的方法来实现。硬件框图(仿真图):原理图:单片机按键控制416译码器级联的串并转换器74HC59516*32点阵显示屏六、软件分析(含程序流程图,程序清单要有注释)主要程序流程图如下:主函数YNYY调用ke

10、yscan()开始flagScan(flag)1流程图YYYYKeycsan()入口key0=0Delayms(5)key0=0flag=1key1=0Delayms(5)key1=0flag=2keyscan()函数流程图Scan()调用入口row=0;row1OE=1;ST_CP=0延迟函数delay(6)OE=0;输出端有效由m控制显示字for循环控制寄存器的时钟输入for循环控制寄存器的时钟输入ST_CP=1;上升沿锁存Scan()函数流程图具体程序如下:#include#include#define uchar unsigned char#define uint unsigned i

11、ntsbit DS=P24;/74HC595串行数据输入端sbit SH_CP=P25;/74HC595数据输入移位控制端sbit ST_CP=P26;/74HC595数据输入锁存端sbit OE=P27;/74HC595数据输出使能端sbit key0=P10;sbit key1=P11;uchar row;/列变量uchar flag;/按键标识位uint delayi,delayj;/us级延时变量uchar code table832=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

12、x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/空数据 0x10,0x00,0x10,0x10,0x11,0xF8,0x11,0x10,0xFD,0x10,0x11,0x10,0x31,0x10,0x39,0x10,0x55,0x10,0x51,0x10,0x91,0x10,0x11,0x10,0x11,0x12,0x12,0x12,0x14,0x0E,0x18,0x00,/机0x00,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x84

13、,0x3F,0xFE,0x20,0x00,0x20,0x00,0x3F,0xC0,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x40,0x40,0x80,0x40,/片0x10,0x10,0x08,0x20,0x04,0x48,0x3F,0xFC,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,/单0x00,0x40,0x20,0x40,0x10,

14、0x40,0x10,0x40,0x00,0x40,0x00,0x44,0xF7,0xFE,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x12,0x40,0x14,0x40,0x18,0x40,0x10,0x40,0x00,0x40,/计0x01,0xF0,0x21,0x10,0x11,0x10,0x11,0x10,0x01,0x10,0x02,0x0E,0xF4,0x00,0x13,0xF8,0x11,0x08,0x11,0x10,0x10,0x90,0x10,0xA0,0x14,0x40,0x18,0xB0,0x13,0x0E,0x0C,0x04,/设0

15、x00,0x00,0x3F,0xF0,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,/子 0x02,0x00,0x02,0x00,0x02,0x10,0x7F,0xF8,0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x10,0x02,0x00,0x02,0x04,0x02,0x0

16、4,0x01,0xFC,0x00,0x00/电;/*1ms延时函数,用于按键消抖*/void Delayms(int z)int x,y;for(x=z;x=0;x-)for(y=120;y0;n-)for(delayi=0;delayi100;delayi+);/*逐行扫描数据函数,每次扫描16行*/Scan(uchar m) uchar i,j; uchar temp0,temp1; for(row=0;row1;OE=1;/关闭输出 ST_CP=0;/现在锁存器赋一个高电平 for(j=(4*m-4);j=(4*m-1);j+) temp0=tablejrow; temp1=tablej

17、row+1; for(i=0;i8;i+) SH_CP=0;/寄存器的时钟输入,上升沿有效 DS=temp1&0x80;/高位优先 temp1=1; SH_CP=1; for(i=0;i8;i+) SH_CP=0;/寄存器的时钟输入,上升沿有效 DS=temp0&0x80;/高位优先 temp0=1; SH_CP=1; ST_CP=1;/上升沿锁存输入的数据 OE=0;/输出端有效 delay(2);/800us延时,行暂存数据 /*按键扫描函数*/void keyscan()if(key0=0)Delayms(5);/按键消抖if(key0=0)flag=1;/按键标识位1if(key1=0

18、)Delayms(5);/按键消抖if(key1=0)flag=2;/按键标识位2/*主函数*/void main()while(1)keyscan();/按键扫描if(flag)Scan(flag);/按下1,显示“单片机”,按下2,显示“电子设计”七、总结与展望这次课程设计,我从设计过程的错误中学到了很多,首先是明白了理论知识不一定能做的很好,还有许多要去学,去实现。不仅通过这次实际操作是我对proteus这款软件的操作有了一个很大的进步 ,而且在这次设计中,如果没有查阅各种资料,就不知道怎样去用有限的IO口去实现16*32点阵的连接。对出去单片机外的芯片也有了一些认识明白了这些芯片的用途

19、。在编写这次的程序时,不知道如何下手,只是从延迟函数开始一点点的写出,里面用到几个子函数。对于延迟函数,一开始在Scan()函数里没有用到,但是结果显示出的子不完全,最后才想到需要用延迟函数,不然的话闪动太快,出现不完全的字体。纵观我们现在生活的各个领域,从导 弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据 处理,以及我们生活中广泛使用的各种智能IC 卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些 东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用, 元器件不断老化,控制的精度自

20、然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们 只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成 本也降低了,长期使用也不会担心精度达不到了。所以,它的魔力不仅是在现在,在将来将会有更多的 人来接受它、使用它。在我国,单片机的开发应用已六年有余,已经形成一支庞大的技术开发队伍,为我国单片机应用积累了丰富的经验.随着电子技术、计算机芯片技术和微电子技术的飞速发展,促进了单片机应用技术一日千里的变化.面对这种形势,及时地了解国内外单片机应川技术的现状,总结应用经验和分析技术。涉及单片机开发的电子公司多如牛毛,单片机开发人才缺口巨大,所以学好单片机的话就业会很有前景的。八、参考文献1 李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,19982 李广弟.单片机基础. 北京:北京航空航天大学出版社,19923 何立民.单片机应用技术大全. 北京:北京航空航天大学出版社, 19944 张毅刚.单片机原理及接口技术. 哈尔滨:哈尔滨工业大学出版社,19905 谭浩强.单片机课程设计. 北京:清华大学出版社,19896李泉溪.单片机原理与应用实例仿真. 北京:北京航空航天大学出版社,2009

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1