单片机课程设计报告-1616LED滚动显示_第1页
单片机课程设计报告-1616LED滚动显示_第2页
单片机课程设计报告-1616LED滚动显示_第3页
单片机课程设计报告-1616LED滚动显示_第4页
单片机课程设计报告-1616LED滚动显示_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、16x16LED 滚动显示课程设计:单片机课程设计专业名称:电气工程及其自动化学 号:学生姓名:同组人员:指导教师:2014 年12 月8日课程设计任务书20142015学年第1学期学生姓名:专业班级:电气工程及其自动化2012级(2)班指导教师: 工作部门:、课程设计题目:16x16LED滚动显示1.电机控制6.篮球比赛计分器2.简易电子琴设计7.密码锁控制3.公交车报站器设计8.交通信号灯控制4.键盘花样彩灯控制9.温度控制系统5.数码显示抢答器控制10.自选二、课程设计内容根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进 行方案论证和电路设计,完成仿真操作。要求

2、概念清楚、方案合理、方法正确、步骤完整熟悉、掌握各种外围接口电路芯片的工作原理和控制方法;熟练使用单片机汇编语言或 C51 进行软件设计;熟练使用 Proteus、Keil 软件进行仿真电路测试;熟练使用 Protel 软件设计印刷电路板;学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;编写设计报告,参考毕业设计论文格式。(1)根据课题要求确定系统设计方案;(2)绘制系统框图、系统仿真原理图(印刷电路板图),列出元器件明细表;(3)计算电路参数和选择元器件,画出软件框图,列出程序清单;(4)打印仿真结果,根据测试结果进行误差分析与修改调整;(5)对设计进行全面总结。三、进度安排1时间

3、安排序号内容学时安排(天)1方案论证和总体设计12硬件设计测试13软件设计14仿真测试及PCB设计15答辩1合计5设计指导地点:K2-407单片机、微机原理实验室2执行要求单片机应用课程设计共9 个选题,学生可自选课题。每组不超过2 人,为避免雷同,在 设计中每个同学所采用的方案不可一样。四、课程设计考核办法与成绩评定根据过程、报告、答辩等确定设计成绩,成绩分优、良、中、及格、不及格五等。评定项目基本内涵分值设计过程考勤10分答辩回答问题情况20分实物或仿真测试正常无故障运行20分设计报告完成设计任务、报告规范性等情况50分90100分:优;8089分:良;7079分:中;6069分,及格;6

4、0分以下:不及格六、课程设计参考资料贺哲荣.AT89S51单片机硬件设计与编程实例.北京:中国电力出版社.2012李泉溪. 单片机原理与应用实例仿真. 北京:北京航空航天大学出版社,2012.王平. 单片机应用设计与制作. 北京:清华大学出版社, 2012.彭为等. 单片机典型系统设计实例精讲. 北京:电子工业出版社,2007王庆利等. 单片机设计案例实践教程. 北京:北京邮电大学出版社,2008韩志军等. 单片机应用系统设计入门向导与设计实例. 北京:机械工业出版社,2005皮大能等. 单片机课程设计指导书. 北京:北京理工大学出版社,2010指导教师:2014年12月8日教研室主任:201

5、4 年 12 月 8 日目录 TOC o 1-5 h z 摘 要 1引 言 2 HYPERLINK l bookmark28 o Current Document 16X 16LED点阵的总体设计3 HYPERLINK l bookmark30 o Current Document 设计的功能要求 3 HYPERLINK l bookmark32 o Current Document 设计论证 3 HYPERLINK l bookmark34 o Current Document 实验原理 3总体设计框图 4 HYPERLINK l bookmark36 o Current Document

6、硬件设计4 HYPERLINK l bookmark38 o Current Document 2.1 主要芯片介绍 4 HYPERLINK l bookmark40 o Current Document 2.2 16X16LED点阵显示制作7 HYPERLINK l bookmark42 o Current Document 2.3用4个8X8LED点阵构成16X16LED点阵8 HYPERLINK l bookmark44 o Current Document 实验电路及连线 8 HYPERLINK l bookmark46 o Current Document 软件设计8 HYPERLI

7、NK l bookmark48 o Current Document 3.1 实验要求及程序流程图 9 HYPERLINK l bookmark50 o Current Document 3. 2 程序清单 15实验结果16系统调试 17 HYPERLINK l bookmark68 o Current Document 心得体会17 HYPERLINK l bookmark70 o Current Document 参考文献 18摘要本设计使用 AT89C55 系列高速单片机作为主控制模块,利用简单 的外围电 路来驱动16X16的点阵LED显示屏。利用AT89C55系列高速单片机本身强大的

8、功能,可以很方便的实现单片机与PC机间的数据传输及存储,并能利用软件方 便的进行显示内容的多样变化,另一方面点阵显示屏广泛的应用于医院、机场、 银行等公共场所,所以本设计具有很强的现实应用性。本LED显示屏能够以动态扫描的方式同时显示4个8X8点阵汉字,并能通 过上位机软件修改显示内容和显示效果等等。把字符内码存储在空闲的单片机程 序存储器空间,使本LED显示系统能掉电存储1024个字符。设计中采用了 SPI 接口的GB2312标准字库,支持所有的国标字符和ASCII标准字符的显示。因为 采用串行传输方式,使本系统的可扩展性得到提升,便于多个显示单元的级联。本文从LED的显示原理入手,详细阐述

9、了 LED动态显示的过程,以及硬件电 路的设计、计算和软件的算法。关键词:LED动态显示 AT89C55点阵汉字显示 仿真引言LED 显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、 图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。图文显示屏 可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控 制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可 显示二维、三维动画、录像、电视、VCD节目以及现场实况。LED显示屏显示 画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、 商场、医院、宾馆、银行、证券市场、建筑

10、市场、拍卖行、工业企业管理和其它 公共场所。它的优点:亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱 动简单、寿命长、耐冲击、性能稳定。当今社会在飞速发展无疑能源、健康、空 间的利用,成了人们着重关注的对象。而在这个信息传递极速的社会, LED 的 出现给人们带来了希望之光。 LED 的特色之处一是节能(直接功耗,间接耗能), 二是基本无电离辐射,三提高空间利用率。而这些特色又恰好解决了上述的三种 问题。然而LED点阵显示屏的特点不仅仅于此LED点阵显示屏用的是数码管, 而数码管具有实用,便宜等优点。做出来的LED点阵显示很耐用。LED点阵显示 屏之所以受到广泛重视而得到迅速发展,是

11、与LED显示屏本身所具有的优点分 不开的。 LED 点阵显示屏的发展前景极为广阔,目前正朝着更高亮度、更高耐 气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。本文 要求设计一个能显示16X16点阵图文LED显示屏,要求能显示图文或文字,显 示图文或文字应稳定、清晰,图文或文字显示,以卷帘形式向上下左右滚动显示。16X16LED点阵的总体设计设计的功能要求设计一个能显示 16X16 点阵图文 LED 显示屏,要求能显示图文或文字,显示 图文或文字应稳定、清晰,图文或文字显示,以卷帘形式向上滚动显示。设计论证图文显示采用动态扫描的显示方法,逐行轮流点亮,这样扫描驱动电路就 可以实

12、现多行(比如16行)的同名列共用一套驱动器。具体就16x16的点阵来 说,把所有同 1 行的发光管的阳极连在一起,把所有同 1 列的发光管的阴极连在 一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通 第 1 行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第 2 行使其燃亮相同的时间,然后熄灭;以此类推,第16 行之后,又重新燃亮第 1 行,反复轮回。当这样轮回的速度足够快(每秒24 次以上),由于人眼的视觉 暂留现象,就能够看到显示屏上稳定的图形了。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位 传往列驱动器,在硬件方面无疑是十分经济的

13、。但是,在行扫描周期确定的情况 下留给行显示的时间就太少了,以致影响到 LED 的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处 理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理 的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱 动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能; 对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入 并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影 响本行的显示。实验原理16X16扫描LED点阵的工作原理同8位扫描数码管类似。它有

14、16个共阴极输出端口,每个共阴极对应有16个LED显示灯。所以其扫描译码地址需4位信 号线。要使16点阵上某个点亮,如第10行第4列的LED点亮,只要让列选信号 为“0100”,从而选中第4列,再给第10行一个高电平,即可点亮该LED。本 实验通过74LS164和74LS595芯片写入字形,产生扫描信号。为了显示整个汉字, 首先分布好汉字的排列,以行给汉字信息;然后以大于24HZ的频率扫描列,即 每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。总体设计框图列驱动器电源行驱动器16X16LED 显示 点阵电源行驱动器16X16LED 显示 点阵二 硬件设计主要芯片介绍1.AT8

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

16、其功能用途由软件定义,在本设计中,P0端口(3239脚) 被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接, 13 脚定义为 IR 输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚) 和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接 主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。XTAL1XTAL2RSTPSEN ALE EAP1,0XTAL1XTAL2RSTPSEN ALE EAP1,013 B713 B1S;-XTAL1XTALZPSTALE0PDIVAraP 口 .1 妝 D1PDJI

17、hIGpnjHiapo.ad*pnAKpn.SAMPD.Twn?pzhhe F2.1ihB PZiA-n pzaAH PZ.H.IZ pzsh.q FZ.&AH. PZ.7Ai5图2.6P1UTE P1 .liTTE:LATCH1Z B612 B1 +J3U45L-RSRCeBCLKS113 B713 B1S;-XTAL1XTALZPSTALE0PDIVAraP 口 .1 妝 D1PDJIhIGpnjHiapo.ad*pnAKpn.SAMPD.Twn?pzhhe F2.1ihB PZiA-n pzaAH PZ.H.IZ pzsh.q FZ.&AH. PZ.7Ai5图2.6P1UTE P1 .l

18、iTTE:-: F12 P12 接线图 F1.7P3IVRXDF3.1iT:Ii PLJEBE paliTTP3ST1 P3.&1jiJK PI.TiTT37SSA DATA.口 V n?urr三 软件设计3.1 实验要求及程序流程图本软件要求实现如下要求:汉字要稳定、明亮并且文字要以一定速度上升滚 动显示。显示屏软件模块:初始化程序、主程序、多字滚动、显示程序、扫描程序。显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行

19、扫描信号和其他控制信号,配合完成 LED 显示屏的扫描显示工作。显示驱动器程序由定时器TO中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。显示驱动程序在进入中断后首先要对定时器TO重新赋初值,以保证显示屏 刷新率的稳定,1/16 扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=l/16XT0 溢=l/16Xf/12 (65536-t)其中f位晶振频率,t为定时器TO初值(工作在16位定时器模式)。 然 后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据, 并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,

20、驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再 输出新的行号,重新打开显示。图 3.1 系统主程序流程图程序清单#include #include #define DATAOUT P2 /P2 use as data#define SPEED 13void ymove(char dir,unsigned char *ptr,char speed);void xmove(char dir,unsigned char *ptr,char n,char speed);void delay(unsigned int a);void display();void displayt

21、ime(char time);void init164();sbit ADATA= DATAOUTO;sbit ASCK= DATAOUTA1;sbit LATCH= DATAOUTA2;sbit BDATA= DATAOUTA3;sbit BCLK= DATAOUTA4;code unsigned char xin32=OxOO,OxOO,OxOO,OxOO,OxOO,OxOO,OxOE,Ox38, /心Ox1F,Ox7C,Ox3F,OxFE,Ox3F,OxFE,Ox3F,OxFE,Ox1F,OxFC,OxOF,OxF8,OxO7,OxFO,OxO3,OxEO,OxO1,OxCO,OxOO,

22、Ox8O,OxOO,OxOO,OxOO,OxOO;code unsigned char zhong32=OxO1,OxOO,OxO1,OxOO,OxO1,OxO4,Ox7F,OxFE, /中Ox41,OxO4,Ox41,OxO4,Ox41,OxO4,Ox41,OxO4,Ox7F,OxFC,Ox41,OxO4,OxO1,OxOO,OxO1,OxOO,OxO1,OxOO,OxO1,OxOO,OxO1,OxOO,OxO1,OxOO;code unsigned char guo32=OxOO,OxO4,Ox7F,OxFE,Ox4O,Ox24,Ox5F,OxF4, /国Ox41,OxO4,Ox41,Ox

23、O4,Ox41,Ox44,Ox4F,OxE4,Ox41,OxO4,Ox41,Ox44,Ox41,Ox24,Ox41,OxO4,Ox5F,OxF4,Ox4O,OxO4,Ox7F,OxFC,Ox4O,OxO4;code unsigned char dui32=Ox7C,Ox4O,Ox44,Ox4O,Ox48,Ox4O,Ox48,Ox4O, /队Ox5O,Ox4O,Ox48,Ox4O,Ox48,Ox4O,Ox44,OxAO,Ox44,OxAO,Ox44,OxAO,Ox69,Ox1O,Ox51,Ox1O,Ox42,OxO8,Ox44,OxO6,Ox48,OxO4,OxOO,OxOO;code unsi

24、gned char jia32=Ox1O,OxOO,Ox1O,OxOO,Ox1O,OxO4,Ox12,Ox7E, /加OxFF,Ox44,Ox12,Ox44,Ox12,Ox44,Ox12,Ox44,Ox12,Ox44,Ox22,Ox44,Ox22,Ox44,Ox22,Ox44,Ox22,Ox44,Ox4A,Ox7C,Ox84,Ox44,OxOO,OxOO;code unsigned char you32=0 x00,0 x40,0 x40,0 x40,0 x30,0 x40,0 x10,0 x44, /油0 x87,0 xFE,0 x64,0 x44,0 x24,0 x44,0 x0C,0 x

25、44,0 x14,0 x44,0 x27,0 xFC,0 xE4,0 x44,0 x24,0 x44,0 x24,0 x44,0 x24,0 x44,0 x27,0 xFC,0 x24,0 x04 ; code unsigned char gth32= 0 x00,0 x00,0 x01,0 x80,0 x03,0 xC0,0 x03,0 xC0, /!0 x03,0 xC0,0 x03,0 xC0,0 x03,0 xC0,0 x01,0 x80, 0 x01,0 x80,0 x01,0 x80,0 x00,0 x00,0 x01,0 x80, 0 x03,0 xC0,0 x01,0 x80,

26、0 x00,0 x00,0 x00,0 x00;unsigned char idata buffer32; void main(void)unsigned char i; init164();while(1)for(i=0;i32;i+) bufferi=xini;displaytime(1); xmove(1,zhong,3,SPEED); displaytime(1); ymove(1,0,SPEED); ymove(1,jia,SPEED); ymove(1,you,SPEED); ymove(1,0,SPEED); xmove(0,jia,3,SPEED); ymove(0,gth,S

27、PEED); ymove(0,0,SPEED);xmove(1,xin,1,SPEED); /* 子函数 */void delay(unsigned int a) while(a-); void display() unsigned char hang,ib,k,tmp;DATAOUT= 0 x0;BDATA = 0;for(hang=0;hang16;hang+) ASCK =0;LATCH=0;BCLK =0;for(ib=0;ib2;ib+) tmp = bufferhang*2+ib;for(k=0;k8;k+) tmp =1; ASCK =0; ADATA =CY; ASCK =1;

28、 DATAOUT|=0 x14;/LATCH=1; /BCLK=1; BDATA=1; delay(64);ASCK =0;ASCK =1; void displaytime(char time) unsigned char i;while(time-) i=130;while(i-) display(); void init164() char i;BDATA=1; for(i=0;i16;i+) BCLK =0;BCLK =1; void xmove(char dir,unsigned char *ptr,char n,char speed)/*方向n 是要移动的汉字个数移动速度*/uns

29、igned char i=0, ib=0;unsigned int tmp=0, speedm=0;unsigned char buffer216;/半个汉字的缓存n*=2;/左半字和右半字,所以要 x2for(i=0;i0;n-)if(ptr != 0) tmp = n%2; / 判断是左半字还是右半字 for(i=0;i0;tmp-) /要移动 8 列 ib=0;for(i=0;i16;i+)/ 要移 16 行,共 16 个字节bufferib =1; /移第一个半字if(bufferib+1 & 0 x80)bufferib+;ib+;bufferib=1;/移后半字if(buffer2

30、i & 0 x80)bufferib+;ib+;buffer2i0;n-) if(ptr != 0) tmp = (n+1) % 2 ;/判断左半字还是右半字 for(i=0;i0;tmp-) /要移动 8 列ib=0;for(i=0;i= 1;/移右半字if(bufferib & 0 x01) bufferib+1 |=0 x80 ;bufferib = 1;/移左半字if(buffer2i & 0 x01)bufferib |= 0 x80;ib+=2;buffer2i =1;/下个汉字的右半字向右移一位 speedm=speed;while(speedm-) /更新点阵display()

31、;void ymove(char dir,unsigned char *ptr, char speed)dir=l上移动,dir=0为下移动char i=0, j=0, ib=0;unsigned int tmp=0, speedm=0;if(dir=0)/*向下移 /*向下移 */ib=3l;for(i=16;i0;i-)下移 16 行for(j=29;j-l;j-)bufferj+2=bufferj;/将上一行的内容复制到下一行if(ptr=0)/移空时,buffer的首行用0移入buffer0=0;buffer1=0; else/否则,处理 buffer 的首行元素buffer1=ptr

32、ib; buffer0=ptrib-1;ib=ib-2speedm=speed;while(speedm-)/更新点阵display(); /* 向上移 */elseib=0;/数组元素序号for(i=0;i16;i+)/上移16行for(j=0;jBSJ5;.:;THUXTAL2五3T*PSEMALEEhpidtsP1.1fT2BE:41;ST_CPazQ3a*asQhPUTQ?Q711HB DATA | 2bU3* R SR,JSbclk shU2启H CPQUazT_C PQ3Q +2QGmrQTCTEQT1ii WC 1DBjjUD 占.T + LES5S1SASAI5 AltASCK

33、 .H.El.H.T.HU1 ii 広wcALATCH1Z|)ST_CP101HITiVFQSQbQ7QT 1SHJZI 1 a? |Z理R A31 + A* 声rM s媚BDATAa+LESS51Z|;WT:PijffTi7+L8SB5HITVCC 1DH TIPU2a1D* 叭3 HDSBZ*B3111ZBb1337.1 口 B +131CBSJ5;.:;THUXTAL2五3T*PSEMALEEhpidtsP1.1fT2BE:41;ST_CPazQ3a*asQhPUTQ?Q711HB DATA | 2bU3* R SR,JSbclk shU2启H CPQUazT_C PQ3Q +2QGmr

34、QTCTEQT1ii WC 1DBjjUD 占.T + LES5S1SASAI5 Alt 1 hB; 2 Aibf A13157+LJ81S+U5.+,12XTAL2BE*B1DB11B12B13BUB1SALE Eh系统调试.PIBTZ-pi.irr2B3 PCI .MD* PUS ADS Pn.SADh POJ/AD?pzh.he P2.1/A9 P2ZfAinP2.4/A1Z P2STA13 PZJSA1*PWH;:DP3.1fTXDpiiTirraPiaTTTTP3.4iTDP3iT1Pl.&TiTnrPl.T/KT-B1DB11B12B13B1 +H15ADATA软件调试:软件为网络所提供,其原理在上一模块已作说明,在这里再作说明,软件经调试无误,直接将其下再到单片机中,看是否达到所要的效果软件部 分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是单片机 汇编语言,所以这个系统在编写程序过程中都采用汇编语言编写。刚刚开始,编 写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如 C52 中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后, 程序能够正常运行。硬件调试:在对各个硬件模

温馨提示

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

评论

0/150

提交评论