点阵电子显示屏的设计_第1页
点阵电子显示屏的设计_第2页
点阵电子显示屏的设计_第3页
点阵电子显示屏的设计_第4页
点阵电子显示屏的设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、led点阵的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 个读写口线

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

4、标准的c51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主ic 内部寄存器、数据ram及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号ir的接收解码及与主板cpu通信等。主要管脚有:xtal1(19 脚)和xtal2(18 脚)为振荡器输入输出端口,外接12mhz 晶振。rst/vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。vcc(40 脚)和vss(20 脚)为供电端口,分别接+5v电源的正负端。p0p3 为可编程通用i/o 脚,其功能用途由软件定义,在本设计中,p0 端口(3239 脚)被定义为n

5、1 功能控制端口,分别与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、串并转换器74hc595从而实现点阵的扩展。左图是74hc595的引脚分布图,各引脚功能为:qaqh: 并行数据输出,即存储器的数据输出qh 9 串行数据输出sck 11 移位寄存器时钟输入rck 12 存储寄存器时钟输入g 13 输出有效(低电平)sclr 10 主复位(低电平)ser 14 串行数据输入74hc595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器使用独立的时钟。数据在sh_cp的上升沿输入,在st_cp的上升沿进入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储器早一个脉冲。移位寄存器有一个串行移位输入端ds,一个串行输出q7和第二片74h

8、c595的ds连接实现多片扩展。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点阵显示屏六、软件分析(含程序流程图,程序清单要有注释)主要程序流程图如下:主函数yn

10、yy调用keyscan()开始flagscan(flag)1流程图yyyykeycsan()入口key0=0delayms(5)key0=0flag=1key1=0delayms(5)key1=0flag=2keyscan()函数流程图scan()调用入口row=0;row<31;row+=2p2=row>>1oe=1;st_cp=0延迟函数delay(6)oe=0;输出端有效由m控制显示字for循环控制寄存器的时钟输入for循环控制寄存器的时钟输入st_cp=1;上升沿锁存scan()函数流程图具体程序如下:#include<reg52.h>#include&l

11、t;intrins.h>#define uchar unsigned char#define uint unsigned intsbit 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,0

12、x00,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,/空数据 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,0

13、x0e,0x18,0x00,/机0x00,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x84,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,0x

14、ff,0xfe,0x01,0x00,0x01,0x00,0x01,0x00,/单0x00,0x40,0x20,0x40,0x10,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,0x1

15、0,0x10,0x90,0x10,0xa0,0x14,0x40,0x18,0xb0,0x13,0x0e,0x0c,0x04,/设0x00,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,0x4

16、2,0x10,0x42,0x10,0x7f,0xf0,0x42,0x10,0x02,0x00,0x02,0x04,0x02,0x04,0x01,0xfc,0x00,0x00/电;/*1ms延时函数,用于按键消抖*/void delayms(int z)int x,y;for(x=z;x<=0;x-)for(y=120;y<=0;y-);/*(400+3)*n(us)延时函数,用于行扫描中每行的暂留时间*/void delay(uint n)for(;n>0;n-)for(delayi=0;delayi<100;delayi+);/*逐行扫描数据函数,每次扫描16行*/s

17、can(uchar m) uchar i,j; uchar temp0,temp1; for(row=0;row<31;row+=2) p2=row>>1;oe=1;/关闭输出 st_cp=0;/现在锁存器赋一个高电平 for(j=(4*m-4);j<=(4*m-1);j+) temp0=tablejrow; temp1=tablejrow+1; for(i=0;i<8;i+) sh_cp=0;/寄存器的时钟输入,上升沿有效 ds=temp1&0x80;/高位优先 temp1<<=1; sh_cp=1; for(i=0;i<8;i+) s

18、h_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)delayms(5);/按键消抖if(key1=0)flag=2;/按键标识位2/*主函数*/void main()while(1)keyscan();/按键扫描if(fla

19、g)scan(flag);/按下1,显示“单片机”,按下2,显示“电子设计”七、总结与展望这次课程设计,我从设计过程的错误中学到了很多,首先是明白了理论知识不一定能做的很好,还有许多要去学,去实现。不仅通过这次实际操作是我对proteus这款软件的操作有了一个很大的进步 ,而且在这次设计中,如果没有查阅各种资料,就不知道怎样去用有限的io口去实现16*32点阵的连接。对出去单片机外的芯片也有了一些认识明白了这些芯片的用途。在编写这次的程序时,不知道如何下手,只是从延迟函数开始一点点的写出,里面用到几个子函数。对于延迟函数,一开始在scan()函数里没有用到,但是结果显示出的子不完全,最后才想到需要用延迟函数,不然的话闪动太快,出现不完全的字体。纵观我们现在生活的各个领域,从导 弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据 处理,以及我们生活中广泛使用的各种智

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论