单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc

上传人:rrsccc 文档编号:9241131 上传时间:2021-02-11 格式:DOC 页数:15 大小:371.50KB
返回 下载 相关 举报
单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc_第1页
第1页 / 共15页
单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc_第2页
第2页 / 共15页
单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc_第3页
第3页 / 共15页
单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc_第4页
第4页 / 共15页
单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc》由会员分享,可在线阅读,更多相关《单片机课程设计之基于Proteus的LED点阵显示屏的设计与仿真.doc(15页珍藏版)》请在三一文库上搜索。

1、单片机应用系统设计课 题:基于Proteus的LED点阵显示屏的设计与仿真 姓 名: 班 级: 学 号: 指导老师: 日 期: 一 绪论八十年代以来出现了组合型IED点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。LED点阵有44、48、57、58、88、1616、2424、4040等多种; 根据像素的数目分为等,双基色、三基色等,根据像素颜色的不同所显示的文字、图象等内容的颜色也不同,单基色点阵只能显示固定色彩如红、绿、黄等单色

2、,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。图1-5示出几种LED点阵显示器的内部电路结构和外型规格,其它型号点阵的结构与引脚可试验获得。 LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号如5 x 7点阵显示器用于显示西文字母58点阵显示器用于显示中西文,8 x 8点阵用于显示中文文字,也可用于图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过微机或单片机控制驱动。 LED点阵扫描驱动方案: 由L

3、ED点阵显示器的内部结构可知,器件宜采用动态扫描驱动方式工作,由于LED管芯大多为高亮度型,因此某行或某列的单体LED驱动电流可选用窄脉冲,但其平均电流应限制在20mA内多数点阵显示器的单体LED的正向压降约在2V左右但大亮点10的点阵显示器单体LED的正向压降约为6V。大屏幕显示系统一般是将由多个LED点阵组成的小模块以搭积木的方式组合而成的,每一个小模块都有自己的独立的控制系统,组合在一起后只要引入一个总控制器控制各模块的命令和数据即可,这种方法既简单而且具有易展、易维修的特点。 LED点阵显示系统中各模块的显示方式有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应

4、用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。 Proteus最重要的特点是它能够把用户编写的应用软件作用在微处理器上并和连接在该处理器的外围模拟器件及数字器件协同仿真,就像在真正的单片机应用系统的硬件平台上执行目标代码。支持的微控制器有51系列、 Microchip的PIC系列、Atmel的AV系列、 和ARM7/LPC2000。Proteus软件使用彻底改变了传统单片机学习和开发方式,初学者可以在没有实验硬件条件下进行仿真实验

5、,开发者也不必经历“原理图设计、PCB线路板制作、元件焊接、然后进行软件编程、通过仿真器对系统硬件和软件调试”过程,可以直接用Proteus进行电路设计和仿真运行程序,运行成功后再制作产品,缩短开发周期,节约开发成本。汉字点阵显示电路设计制作时,显示部分由88单色LED模块拼接而成,元件引脚较多,硬件制作繁琐,应用Proteus进行仿真设计,极大缩短开发周期。下文用Proteus软件设计1616三个汉字静态显示屏。二 系统总体设计方案(1)硬件框图汉字点阵的控制电路采用C51系列单片机,硬件电路可分为单片机控制器、LED显示屏行列驱动电路、LED点阵显示屏三部分,如下图所示。单片机AT89C5

6、1列驱动74HC595行驱动译码器74HC154 3个16X16点阵振荡电路复位电路 系统设计硬件框图(2)基本原理点阵LED扫描法介绍点阵LED一般采用扫描式显示,实际运用分为三种方式: (1)点扫描(2)行扫描(3)列扫描若使用第一种方式,其扫描频率必须大于1664=1024Hz,周期小于1ms即可。若使用第二和第三种方式,则频率必须大于168=128Hz,周期小于7.8ms即可符合视觉暂留要求。此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。汉字的存储用动态分时扫描技术使LED点阵模块显示图像,需要进行两步工作。第一步是获得数据并保存,即在存贮器中建立

7、汉字数据库。第二步是在扫描模块的控制下,配合行扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一个如图3.3所示的被分成1616共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,再将此分布关系以3216的数据结构组成64个字节的数据,并保存在只读存贮器ROM中。以这种方式将若干个汉字的数据贮存在存贮器内,就完成了图像数据库的建立工作。1616LED点阵模块然后,依次对多汉字抽取像素信息,并按序排队存放起来,便可得到一个待显示数据序列。将这个序列存到ROM中进一步通过寻址

8、的方法来控制该数据序列的释放过程,就可实现在LED 发光二极管点阵上滚动显示多汉字信息的目的。由图3.4可知,某一时刻能在显示数据序列中定位待显示数据的地址指针可用下式计算: addr=n+m (式3.1)滚动显示多汉字信息的原理示意图第二步工作的步骤是:先在扫描模块的控制下,由地址线确定每次由ROM送出某一列的16个LED所要显示的汉字的控制字节数据,同时由扫描模块输出的5位扫描码经两个4-16译码器解码后决定相应的某一列可以被点亮,而另外31列都不能被点亮。该状态持续约0.4毫秒后,就接着进行下一行的扫描。当完成了一次32行的扫描后,也就完成了一帧画面的显示。重复上述过程不断修改ROM的地

9、址区间的起始地址,转向下一幅画面的数据传送和显示。如此进行,就可以在LED点阵模块上滚动显示ROM中存储的汉字。三 硬件系统设计(1) 硬件原理图利用Proteus仿真软件制作出详细的硬件原理图如下: 硬件原理图(2)元器件的选择元件编号规格参数LED16x16点阵PCB板10cm*10cm环氧板U1U674HC595U7AT89C51U874HC154R12K欧姆C1、C233pFC310uF四 系统软件设计(1) 编程思路根据以上硬件电路和单片机控制原理,编程思路为:a先对相关变量进行初始化。b调用显示程序c装载三个汉字的第一行数据,并显示出来。d依次显示三个汉字的第二行至第十六行。e结束

10、(2) 流程图:调用显示程序序调用发送字节程序发送第一个字显示汉字延时调用发送字节程序发送第二个字调用发送字节程序发送第三个字结束开始(3) 程序编写利用字库软件查找所要显示的3个字的代码,为了突出课程设计的唯一性,我用了自己的名字“费星”来加以与其他同学区别。“费”字代码如下0x04,0x48,0x7F,0xFC,0x04,0x48,0x7F,0xF8,0x44,0x40,0x7F,0xFE,0x04,0x42,0x08,0x4A,0x3F,0xF4,0xD0,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x02,0xC0,0x0C,0x30,0x30,0x08,/

11、费“星”字代码如下0x00,0x08,0x3F,0xFC,0x20,0x08,0x3F,0xF8,0x20,0x08,0x3F,0xF8,0x01,0x00,0x21,0x08,0x3F,0xFC,0x21,0x00,0x41,0x10,0xBF,0xF8,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00,0x00,/星“做”字代码如下0x10,0x20,0x12,0x20,0x12,0x20,0x22,0x24,0x3F,0xFE,0x62,0x84,0xA2,0x44,0x22,0x44,0x2F,0xC8,0x28,0xA8,0x28,0xA8,0x28,0x90,0

12、x28,0xA8,0x2F,0xA8,0x28,0x46,0x20,0x84,/做按流程图完成其他剩余程序的编写,详细程序见附录。(4)系统的仿真调试1) 将上述程序原代码用Keil软件编译产生一个“.hex”为后缀的用于烧写芯片的文件。2)把生成的hex文件添加到硬件电路图中的单片机驱动程序中。3) 在ISIS电路图中点击左下角的运行按钮,则可在LED显示点阵中看到图结果。仿真调试结果五 设计总结本次课程设计的制作使我对Proteus、Keil uvision2等软件的认识有了进一步的加深,对它们的使用能力也得到了进一步的加强。同时也加深对单片机课程的全面掌握和认识,对单片机课程的应用得到了

13、更深的了解。虽然本设计只使用了一块1616LED点阵,电路简单,但是已经包涵了LED汉字滚动显示屏的电路基本原理、基本程序和Proteus软件仿真,只要扩展单片机的10接口,并增加一些LED点阵和相关芯片,就能设计出更大面积、更多花样的LED显示屏。在一开始做课程设计的时候由于缺乏经验和资料,没有找准目标,思路和设计都缺乏针对性,在一些小细节上浪费了很多时间。通过和同学的交流,找准了此次课程设计的重点,在网上有目的的找到了相关的资料,在同学的帮助和自己的努力下完成了最后的课程设计。虽然还有很多地方需要完善,但通过本次课程设计使我对自己的动手能力更加的有自信,同时也了解到人多力量大的道理,和同学

14、的交流以及上网搜索资料能更快更好的完成任务。参考文献:1) 周润景.基于Proteus的电路与单片机仿真系统设计与仿真 北京航空航天大学出版社,2005.2) 楼然苗,李光飞.单片机课程设计指导M.北京:北京航空航天大学出版社,2007.7.3) 周兴华. 单片机智能化产品C语言设计实例详解 北京航空航天大学出版社,2005.4) 戴俊峰.嵌入式系统大屏幕LED点阵显示器J.现代电子技术,2004,27(19).5) 冯寿鹏.基于嵌入式系统的LED信息显示技术研究J.现代电子技术,2005(1).6) 金炯泰,金奎焕. 如何使用KEIL8051C编译器M 北京航空航天大学出版社,2002.7)

15、 杨世品. 基于Proteus的单片机出租车计价器的设计. 微计算机信息,2007.附录:#include#include unsigned char code FONT16x16332= 0x04,0x48,0x7F,0xFC,0x04,0x48,0x7F,0xF8,0x44,0x40,0x7F,0xFE,0x04,0x42,0x08,0x4A,0x3F,0xF4,0xD0,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x02,0xC0,0x0C,0x30,0x30,0x08,/费0x00,0x08,0x3F,0xFC,0x20,0x08,0x3F,0xF8,0x2

16、0,0x08,0x3F,0xF8,0x01,0x00,0x21,0x08,0x3F,0xFC,0x21,0x00,0x41,0x10,0xBF,0xF8,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00,0x00,/星0xEF,0xDF,0xED,0xDF,0xED,0xDF,0xDD,0xDB,0xC0,0x01,0x9D,0x7B,0x5D,0xBB,0xDD,0xBB,0xD0,0x37,0xD7,0x57,0xD7,0x57,0xD7,0x6F,0xD7,0x57,0xD0,0x57,0xD7,0xB9,0xDF,0x7B;/做sbit SDI=P21;sbit S

17、RCLK=P20;sbit RCLK=P22;#define LineCtrl P1void delay(unsigned int us)while(us-);void SendByte(unsigned char dat)unsigned char i;for(i=0;i8;i+)SRCLK=0;if(dat&0x80)SDI=1;elseSDI=0;SRCLK=1;dat=dat1;void Display(unsigned char *dat1,unsigned char *dat2,unsigned char *dat3)unsigned char i;for(i=0;i16;i+)SendByte(dat32*i+1); SendByte(dat32*i);SendByte(dat22*i+1); SendByte(dat22*i);SendByte(dat12*i+1); SendByte(dat12*i);RCLK=0;_nop_();_nop_();_nop_();_nop_();LineCtrl=i;RCLK=1;delay(100);void main(void) while(1)Display(FONT16x160,FONT16x161,FONT16x162);

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

当前位置:首页 > 社会民生


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