单片机16X16点阵显示设计207

上传人:痛*** 文档编号:159396755 上传时间:2022-10-09 格式:DOC 页数:13 大小:133.50KB
返回 下载 相关 举报
单片机16X16点阵显示设计207_第1页
第1页 / 共13页
单片机16X16点阵显示设计207_第2页
第2页 / 共13页
单片机16X16点阵显示设计207_第3页
第3页 / 共13页
点击查看更多>>
资源描述
中州大学工程技术学院单片机课程设计报告书 题目: 单片机16X16LED显示屏 姓 名:肖光辉 班 级: 机电二班 学 号:201125040207 指导教师: 宋海军 时 间:2013年9月14日摘要本论文主要介绍的是 1616 点阵 LED 显示系统. 硬件部分主要使用Dais-PG系列嵌入式MCS-51教学实验平台中的可编程并行接口芯片 8255,可编程并行接口芯片 8255,1616 点阵 LED,8 位开关等连接组成点阵 LED 显示控制系统的基本电路.软件部分采用了汇 编语言编写程序代码,通过判断,跳转,循环等基本技术实现 LED 显示点阵汉字, 汉字的滚动显示; 并用 8 位开关结合 8255, 实现汉字滚动显示速度和方向的控制等. 该系统显示直观,工作稳定,操作简单,与商用 LED 显示具有类似的显示和滚动原 理,具备较强的实用价值. 关键词:点阵 LED 显示,1616 LED, Dais-PG系列嵌入式MCS-5,8255本设计是1616点阵LED电子显示屏的设计。整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。通过该芯片控制一个行驱动器74154和两个列驱动器74LS595来驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,采用4块8 x 8点阵LED显示模块来组成一个16x16点阵显示模式。显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。一 系统要求 1采用51系列单片机设计一个室内用LED图文显示屏. 2可显示图像和汉字等文字,显示的图形和文字应稳定,清晰无串扰、 二 系统设计结构或设计 1方案设计LED点阵总体框图如下图所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。控制电路部分包括一个51CUP和一些外围电路。在整个电路当中单片机负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。点阵显示屏体、以及它的行和列的各个驱动电路。此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列点燃相应的LED;未接通的列所对应的LED熄灭。可通过扫描输出口的控制实现颜色的转换。 、 单片机列驱动器 行驱动器16X16LED显示点阵电源系统示意图三 系统硬件电路的设计硬件电路大致上可以分成单片机系统及外围电路、列驱动电路和行驱动电路三部分。1单片机系统单片机采用89C51或其兼容系列的芯片,采用24M或更高频率的晶振,以获得较高的刷新频率,使显示更稳定。单片机的串口与列驱动器相连,用来送显示数据。P1口低4位与行驱动器相连,送出行选信号;P1.5P1.7口则用来发送控制信号。P0和P2口空着,在有必要时可以扩展系统的ROM和RAM。2.引脚说明MSC51单片机管脚说明如下:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3、行驱动电路单片机P1口低4位输出的行号经4/16线译码器74LS154译码后生成16条行选通信号线,再经过驱动器驱动对应的行线。一条行线上要带动16列的LED进行显示,按每一LED器件20mA电流计算,16个LED同时发光时,需要320mA电流,选用三极管8550作为驱动管可满足要求。4、列驱动电路列驱动电路由集成电路74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。74HC595的外形及内部结构如图所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并将SI的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入到输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高阻态。SCLR信号是移位寄存器的清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QAQH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因QH受输出锁存器打入控制,所以还从输出锁存器前引出了QH,作为与移位寄存器完全同步的级联输出。 74HC595外形及内部逻辑结构图四 系统软件电路的设计显示屏软件模块:初始化程序、主程序、显示程序、扫描程序。显示程序的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏幕按设计的要求显示。软件设计中,显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T0中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。1显示驱动程序显示驱动程序在进入中断后首先要对定时器T0重新赋初值,以保证显示屏刷新率的稳定,1/16扫描显示屏的刷新率(帧频)计算公式如下:刷频率(帧频)=1/16T0溢=1/16f/12(65536-t) 其中f位晶振频率,t为定时器T0初值(工作在16位定时器模式)。然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图六为显示驱动程序(显示屏扫描函数)流程图2程序流程图五 调试及性能分析1开发环境介绍 程序编写采用Keil 51环境下调试,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。2 理论性能分析LED显示屏硬件电路只要硬件质量可靠,引脚焊接正确,一般无需调试即可 正常工作。软件部分需要调试的主要有显示屏刷新频率及显示效果两部分。显示屏刷新率由定时器T0的溢出率和单片机的晶振频率决定,表5-1给出了实验调试时采用的频率及其对应的定时器T0初值。表5-1 显示平刷新率与T0初值关系表(24MHz晶振)刷新率255062.57585100120T0初值0xec780xf63c0xf8300xf97e0xfa420xfb1e0xfbee从理论上来说,24Hz以上的刷新频率就能看到稳定的连续的显示,刷新率越高,显示越稳定,同时刷新频率越高,显示驱动程序占用的CPU时间越多。试验证明,在目测条件下刷新频率40Hz一下的画面看起来闪烁较严重,刷新频率50Hz以上的已基本察觉不出画面的闪烁,刷新频率达到85Hz以上时再增加画面闪烁没有明显的改善。这个方案设计的1616的点阵LED图文显示屏,电路简单,成本较低,且较容易扩展成更大的显示屏;显示屏各点亮度均匀、充足;显示图形或文字稳定、 清晰无串扰;可用静止、移入移出等多种显示方式显示图形或文字。3 系统调试 调试主要分为硬件调试和软件调试: 硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足。 软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是C语言,所以这个系统在编写程序过程中都采用C语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。六 总结体会 通过本次1616点阵LED显示的设计,理论知识学习和实际设计的结合锻炼了我的综合运用所学的专业基础知识解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。为后继的学习奠定的基础。七 参考文献1 成同福,LED点阵式城市客车电子显示路牌的功能.城市车辆,2003年2 张义和,例说8051(第三版)。人民邮电出版社。2010年版3 上官同英,单片机原理及应用技术。清华大学出版社2011年版4 侯玉宝,基于proteus的51系列单片机设计与仿真。电子工业出版社。2010年版5 楼然苗.单片机课程设计指导.第三版.北京:京航空航天大学出版社,2007年6周润景,袁伟亭,景晓松.Proteus在MCS-51&ARM7系统中的应用百例.北京:电子工业出版社,2006年7 胡汉才. 单片机原理及其接口技术.第二版.北京:清华大学出版社,2004年附录1. 显示驱动主程序#include#include#define uchar unsigned char#define uint unsigned intsbit Serial_Data_Pin=P00;sbit Shift_CLK_Pin=P37;sbit RCK_Pin=P01; sbit Switch_74LS154=P36;uchar data Bit_Stream_832;uchar code Word_Set_OF_32= 0xFF,0xFF,0xEF,0xFB,0xEF,0xFC,0x2F,0xFF,0x00,0x00,0x6F,0xFF,0xEF,0x7C,0xFF,0x9F,0x01,0xE0,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0x01,0xC0,0xFF,0xBF,0xFF,0xBF,0xFF,0x87,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xE0,0x77,0xF7,0x77,0xF7,0x77,0xF7,0x77,0xF7,0x00,0x80,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x07,0x60,0xFF,0x7F,0xFF,0x0F,0xFF,0xFF,0xFF,0xEF,0xFF,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xFF,0x7B,0xEF,0x7B,0xCF,0x03,0xE0,0x7B,0xF7,0x7B,0x77,0xFF,0xBD,0x07,0xDE,0xFF,0xE7,0x00,0xF8,0xFF,0xFF,0x7B,0xDF,0x7B,0xDF,0x03,0xC0,0x7B,0xDF,0x7B,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1D,0x00,0xDB,0xF6,0xD7,0xF6,0xDF,0xF6,0xDF,0xF6,0xC0,0xF6,0xDF,0xF6,0xDF,0xF6,0xD7,0xB6,0xDB,0x76,0x1D,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F,0xBF,0x7F,0xBD,0xBF,0xBB,0xDF,0xA7,0xE7,0x3F,0xF8,0xBF,0xFF,0x80,0xFF,0xBF,0xFF,0x3F,0xC0,0xAF,0xBF,0xB7,0xBF,0xB9,0xBF,0xBF,0xBF,0xBF,0x87,0xFF,0xFF,0xBB,0x7F,0xA7,0x9F,0x3F,0xE0,0x80,0xFF,0x2F,0x80,0xB7,0xDF,0xD9,0xEF,0xDD,0xEC,0x1D,0xED,0xC5,0xED,0x5D,0x00,0xDD,0xED,0xDD,0xED,0xD5,0xED,0xF9,0xEF;void Delay(uint t) uchar i; while(t-)for(i=0;i180;i+);void Serial_Input_Pin(uchar Abyte ) uchar i; for(i=0;i8;i+) Abyte =1; Serial_Data_Pin = CY;Shift_CLK_Pin = 1;_nop_();_nop_();Shift_CLK_Pin=0;void T0_Led_Display_Control () interrupt 1 uchar i; TH0=-1000/256; TL0=-1000%256; i= (P2+1) & 0x0f; Serial_Input_Pin( Bit_Stream_8i*2+1); Serial_Input_Pin( Bit_Stream_8i*2); Switch_74LS154=1; RCK_Pin=1; RCK_Pin=0; Switch_74LS154=0; P2=i; void main() uchar i,k; TMOD=0x01; TH0=-1000/256; TL0=-1000%256; IE=0x82; P2=0xFF; while(1) for(k=0;k12;k+) for(i=0;i32;i+) Bit_Stream_8i=Word_Set_OF_ki;TR0=1;Delay(1000);TR0=0;P2=0xFF; 2. 仿真硬件图
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!