本科毕业设计论文--16×16led点阵屏显示设计课设论文.doc

上传人:沧海****B 文档编号:91493664 上传时间:2023-05-27 格式:DOC 页数:27 大小:825.50KB
返回 下载 相关 举报
本科毕业设计论文--16×16led点阵屏显示设计课设论文.doc_第1页
第1页 / 共27页
本科毕业设计论文--16×16led点阵屏显示设计课设论文.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《本科毕业设计论文--16×16led点阵屏显示设计课设论文.doc》由会员分享,可在线阅读,更多相关《本科毕业设计论文--16×16led点阵屏显示设计课设论文.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、西安科技大学单片机课程设计 学院:电气与控制工程学院 班级:电气工程及其自动化14XX班 组长:XXX 学号:1406060XXX 组员:XXX 1406060XXX 组员:XXX 1406060XXX 2016年12月30日摘要:31 课程提出背景42 设计内容及要求43 系统整体方案设计43.1 单片机控制方案图43.2 方案比较53.3芯片的选择53.3.1 STC89C52RC5331(2)管脚说明63.32 移位寄存器74HC595原理73.3.3 74LS154原理94 系统电路的设计114.1列驱动电路114.2行驱动电路124.3仿真13附录14附录一 程序设计14附录二 电路

2、原理图21附录三 PCB22附录四 元件清单23设计心得体会24设计心得体会一24设计心得体会二25设计心得体会三26参考文献271616LED点阵屏显示设计摘要: LED电子显示屏是由几百-几十万个半导体发光二极管构成的像素点,按矩阵均匀排列组成。利用不同的半导体材料可以制造不同色彩的LED像素点。目前应用最广泛的是红色,黄色,绿色。而蓝色和纯绿色的开发已经达到了实用阶段。LED显示屏是一种通过控制半导体发光二极管的点亮方式,来显示文字,图形,图像,动画,视频信号等各种信息的显示屏 随着显示器件与技术的进一步发展,屏幕显示系统在国民经济中得到了广泛的应用,LED显示屏是信息显示的重要传媒之一

3、。LED显示屏是利用发光二极管点阵模块或像素单元组成的显示屏幕。伴随着计算机技术的发展,使得LED数码管够在减少驱动器的情况下能够直接被驱动。而且它具有可靠性高、使用寿命长、性能价格比高、使用成本低、环境适应能力强等特点,所以一直在平板显示领域扮演着重要的角色,并且在今后相当长的一段时期内还有相当大的发展空间。所以被广泛应用于金融市场、医院、体育场馆、机场、码头、车站、高速公路等公共场所的信息显示和广告宣传。近几年来我国LED显示的相关技术也取得了较快和较大的发展,早期时曾LED材料器件的限制,LED显示屏的应用领域没有广泛展开,另一方面,显示屏控制技术基本上是通信控制方式,客观上影响了显示效

4、果。所以导致早期的LED显示屏在国内很少,产品以红、绿双基色为主,控制方式为通信控制,灰度等级为单点四级调灰,产品的成本比较高。后来LED显示屏迅速发展,进入九十年代,全球信息产业高速增长,信息技术各个领域不断突破,LED显示屏在LED材料和控制技术方面也不断出现新的成果。蓝色LED镜片研制成功,全彩色LED显示屏进入市场;电子计算机及微电子领域的技术发展,在显示屏控制技术领域出现了视频控制技术,显示屏的动态显示效果大大提高。这个阶段,LED显示屏在我国发展迅速,LED显示屏产业成为新兴的高科技产业。今天,LED显示屏应用领域更为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发

5、光均匀性、可靠性、全色化方向发展关键词: LED 半导体 矩阵 1 课程提出背景 在商场、车站、地铁站、学校以及各类办事窗口等越来越多的场所需要用LED点阵显示图形和汉字。LED行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。随着信息产业的高速发展,。LED显示作为信息传播的一种重要手段,已广泛用于室内外需要进行服务内容和服务宗旨宣传的公共场所。如户内外公共场所广告宣传、体育馆比赛转播、学校公告宣传等。显然,LED显示已成为城市亮化、现代化、和信息社会的一个重要标志。2 设计内容及要求 本电路主要以STC89C52为控制核心,控制74LS154和74HC595输出扫描的行和列信号,驱

6、动4块88的点阵组成的1616的点阵,显示汉字和其它一些字符。并用7个独立按键控制点阵滚动.滚动显示的方向与滚动显示速度。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机爱好者提供了很好的借鉴。 本课题要求实现“刘鹏 李涵 魏振龙的作品”和“”并依次左移、右移、上移、下移循环显示。3 系统整体方案设计 3.1 单片机控制方案图 3.2 方案比较采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动

7、器上去,这就存在一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并行传输的方案是不可取的。采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两个部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下,留

8、给行显示的时间就太少了,以至影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示就需要具有锁存功能。经过上述分析,可以归纳出列驱动器电路应具备的主要功能。对于列数据准备来说,它应能实现串入并出的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示.课题拟以AT89C51单片机为控制核心设计一个简单的数字时钟系统,用单片机、点阵显示屏等设计一个1616点阵LED

9、电子显示屏的设计。系统可以分为电源模块、时钟信号电路、复位电路、驱动模块、单片机控制模块、显示模块等,其系统结构框3.3芯片的选择3.3.1 STC89C52RC89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了CMOS的高速和高密度技术及CMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52内置8位中央处理单元、512字节内部数据存储

10、器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C52有PDIP(40pin)和PLCC(44pin)两种封装形式。331(1)功能特性 标准MCS-51内核和指令系统 片内8kROM(可扩充64kB外部存储器) 32个双向I/O口 256x8bit内部RAM(可扩充64kB外部存储器

11、) 3个16位可编程定时/计数器 时钟频率3.5-12/24/33MHz 向上或向下定时计数器 改进型快速编程脉冲算法 6个中断源 5.0V工作电压 全双工串行通信口 布尔处理器帧错误侦测 4层优先级中断结构自动地址识别 兼容TTL和CMOS逻辑电平 空闲和掉电节省模式 PDIP(40)和PLCC(44)封装形式331(2)管脚说明 VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入

12、口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址

13、外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口作为AT89C51的一些特殊功能口,管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3

14、/INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的底位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH

15、地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡

16、放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.32 移位寄存器74HC595原理是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC NO.7A标准。74HC595具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器有相互独立的时钟。数据在SH_cp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在ST_cp(存储器时钟输入)的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态

17、的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。特点8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态输出寄存器(三态输出:就是具有高电平、低电平和高阻抗三种输出状态的门电路。)可以直接清除 100MHz的移位频率输出能力并行输出,总线驱动; 串行输入;标准中等规模集成电路595移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能

18、OE时(为低电平),存储寄存器的数据输出到总线。参考数据Cpd决定动态的能耗,Pd=CpdVCCf1+(CLVCC2f0)F1=输入频率,CL=输出电容 f0=输出频率(MHz) Vcc=电源电压引脚说明符号引脚描述Q0-Q7第15脚,第1-7脚8位并行数据输出,GND第8脚地Q7第9脚串行数据输出MR第10脚主复位(低电平)SHCP第11脚数据输入时钟线STCP第12脚输出存储器锁存时钟线OE第13脚输出有效(低电平)DS第14脚串行数据输入3.3.3 74LS154原理 74LS154功能简述:74LS154 4线-16 线译码器/解调器将4个二进制编码输入译成16个彼独立的输出之一将数据

19、从一个输入线分配到16个输出的任意一个而实现解调功能输入箝位二极管简化了系统设计与大部分TTL和DTL电路完全兼容74LS154这种单片4 线16 线译码器非常适合用于高性能存储器的译码器。当两个选通输入G1 和G2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。实现解调功能的办法是:用4 个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高与74LS154相比,它的工作电压范围宽,而且接口电平的驱动能力更强3.4 1616点阵显示屏软件流程图显示屏软件的主要功能是向屏体提供显示数据,并产生各种控制信号,使屏

20、幕按设计的要求显示。根据软件分层次设计的原理,可以把显示屏的软件系统分为两层;第一层是底层的显示驱动程序,第二层是上层的系统应用程序。显示驱动程序负责向屏体送显示数据,并负责产生行扫描信号和其他控制信号,配合完成LED显示屏的扫描显示工作。显示驱动器程序由定时器T1中断程序实现。系统应用程序完成系统环境设置(初始化)、显示效果处理等工作,由主程序来实现。从有利于实现较复杂的算法(显示效果处理)和有利于程序结构化考虑,显示屏程序适宜采用C语言编写4 系统电路的设计4.1列驱动电路单片机P1口低4位输出的行号经4/16线译码器74LS154译码后生成16条行选通信号线,再经过驱动器驱动对应的列线。

21、一条行线上要带动16列的LED进行显示,按每一LED器件20MA电流计算,16个LED同时发光时,需要320MA电流,选通三极管8550作为驱动管可满足要求。4.2行驱动电路行驱动电路有集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行列数据的同时,传送下一行的列数据,既达到重叠处理的目的。74HC595的外形及内部结构如图3所示。它的输入侧有8个串行移位寄存器,每个移位寄存器的输出都连接一个输出锁存器。引脚SI是串行数据的输入端。引脚SCK是移位寄存器的移位时钟脉冲,在其上升沿发生移位,并

22、将SI的下一个数据打入最低位。移位后的各位信号出现在各移位寄存器的输出端,也就是输出锁存器的输入端。RCK是输出锁存器的打入信号,其上升沿将移位寄存器的输出打入输出锁存器。引脚G是输出三态门的开放信号,只有当其为低时锁存器的输出才开放,否则为高组态。SCLR信号是移位寄存器清零输入端,当其为低时移位寄存器的输出全部为零。由于SCK和RCK两个信号是互相独立的,所以能够做到输入串行移位与输出锁存互不干扰。芯片的输出端为QAQH,最高位QH可作为多片74HC595级联应用时,向上一级的级联输出。但因为QH受输出锁存器的打入控制,所以还从输出锁存器前引出QH,作为与移位寄存器完全同的级联输出。4.3

23、仿真5. 基本显示原理 每一个字由16行16列的点阵组成显示。即国家标准汉字库中的每一个字均由256点阵来表示。我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。这里我们以“高”字说明,如图3-1所示。用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。一般把它拆分为上部和下部,上部由816点阵组成,下部也由816点阵组成。在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00p07口。方向为p00到p07 ,显示汉字“高”时,p02点亮,由上往下排列,为p

24、0.0 灭,p0.1 灭, p0.2 灭, p0.3 灭, p0.4 灭, p0.5 亮,p0.6灭,p0.7 灭。即二进制00000100,转换为16进制为 04h。上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。然后单片机转向上半部第二列,仍为p01点亮,为00000100,即16进制04h.这一列完成后继续进行下半部分的扫描,p20点亮,为二进制00000010,即16进制02h.依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“

25、高”的扫描代码为:0xA0,0x00, 0x60,0xFF, 0x20,0x82, 0x30,0x84,0x2E,0xBC, 0x2E,0xB4, 0xAA,0xA4, 0x6B,0xE4,0x2A,0xA4, 0x2B,0xE4, 0x2E,0xBC, 0x24,0x92,0x28,0x89, 0x30,0xFE, 0x20,0x02, 0x40,0x01,由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。不过现在有很多现成的汉字字模生成软件,就不必自己去画表格算代码了。附录附录一 程序设计#include /头文件#define uchar

26、unsigned char/宏定义#define uint unsigned int#define BLKN 2sbit G=P27; / 74HC595串行数据输入sbit RCK=P26; / 74HC595 输出锁存器控制sbit SCLR=P25; / 74HC595 移位脉冲sbit k1=P06; /左移动按键sbit k2=P05; /右移动按键sbit k3=P04; /上移动按键sbit k4=P03; /下移动按键sbit k5=P02; /静止显示按键sbit k6=P01; /移动加速按键sbit k7=P00; /移动减速按键uchar dis_flag=0;ucha

27、r speed_dat=100;char i,j,k,l;uchar data dispram32; /发送给74HC595的位流,每片接收8位uchar code bmp32=0xFF,0xFF,0xFF,0xFF,0xF0,0x0F,0xEF,0xF7,0xDF,0xFB,0xBF,0xFD,0xA3,0xC5,0x9D,0xB9,0xBF,0xFD,0xBF,0xFD,0xBF,0xFD,0xB7,0xED,0xD8,0x1B,0xEF,0xF7,0xF0,0x0F,0xFF,0xFF, /0笑脸0xEF,0xFB,0xF7,0xFB,0xF7,0xFB,0x00,0x5B,0xFD,0

28、xDB,0xBD,0xDB,0xDD,0xDB,0xEB,0xDB,0xEB,0xDB,0xF7,0xDB,0xF7,0xDB,0xEB,0xDB,0xDB,0xFB,0xBD,0xFB,0x7D,0xEB,0xFF,0xF7,/*刘,0*/0xFF,0xEF,0x88,0xDF,0xAA,0x83,0xAA,0xBB,0xAA,0x9B,0x88,0xAB,0xAA,0xBB,0xAA,0xB3,0xAA,0xBF,0x88,0x81,0xAA,0xFD,0xAA,0xFD,0xAA,0x85,0x4A,0xFD,0x76,0xF5,0xEC,0xFB,/*鹏,1*/0xFF,0xFF,0x

29、FF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*,2*/0xFE,0xFF,0xFE,0xFF,0x80,0x03,0xFC,0x7F,0xFA,0xBF,0xF6,0xDF,0xCE,0xE7,0x3E,0xF9,0xF0,0x1F,0xFF,0xBF,0xFF,0x7F,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFA,0

30、xFF,0xFD,0xFF,/*李,3*/0xFF,0xFF,0xDC,0x07,0xEF,0xEF,0xEF,0xDF,0x7B,0xBB,0xBA,0xAB,0xBB,0x1B,0xEB,0xBB,0xEB,0x1B,0xDA,0xAB,0x19,0xB3,0xDA,0xBB,0xDB,0x7B,0xDB,0xFB,0xD8,0x03,0xFF,0xFB,/*涵,4*/0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x

31、FF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*,5*/0xF3,0xDF,0x8F,0xBF,0xEE,0x03,0x00,0xDB,0xC6,0xDB,0xAA,0x03,0x6C,0xDB,0xFE,0xDB,0xEE,0x03,0x03,0xBF,0xDB,0x97,0xBB,0x4D,0xD7,0x41,0xEE,0xDF,0xD6,0xDD,0x39,0xE1,/*魏,6*/0xEF,0xFF,0xEC,0x03,0xED,0xFF,0xED,0xFF,0x01,0x07,0xED,0xFF,0xED,0xFF,0xE8,0x03

32、,0xE5,0x5F,0xCD,0x5B,0x2D,0x57,0xED,0x6F,0xED,0x6F,0xEB,0x77,0xAB,0x5B,0xD7,0x3D,/*振,7*/0xFB,0xDF,0xFB,0xEF,0xFB,0xEF,0xFB,0xFF,0x00,0x01,0xFB,0x7F,0xFB,0x77,0xFB,0x77,0xFB,0x6F,0xF7,0x5F,0xF7,0x3F,0xEF,0x7D,0xEE,0x7D,0xDD,0x7D,0xBB,0x81,0x7F,0xFF,/*龙,8*/0xEF,0xBF,0xEF,0xBF,0xDF,0xBF,0x81,0x83,0xBD,

33、0x7B,0xBD,0x7B,0xBC,0xFB,0xBD,0xBB,0x81,0xDB,0xBD,0xDB,0xBD,0xFB,0xBD,0xFB,0xBD,0xFB,0x81,0xFB,0xBD,0xD7,0xFF,0xEF,/*的,9*/0xF6,0xFF,0xF6,0xFF,0xF6,0xFF,0xEE,0x01,0xED,0x7F,0xCD,0x7F,0xCB,0x7F,0xAF,0x07,0x6F,0x7F,0xEF,0x7F,0xEF,0x7F,0xEF,0x03,0xEF,0x7F,0xEF,0x7F,0xEF,0x7F,0xEF,0x7F,/*作,10*/0xFF,0xFF,

34、0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xFF,0xFF,0xFF,0xFF,0x83,0x83,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0xBB,0x83,0x83,0xBB,0xBB,/*品,11*/0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x

35、FF,0xFF,0xFF,0xFF,/*,12*/0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*,13*/;void delay(uint xms)/延时函数uint a,b;for(a=xms;a0;a-)for(b=110;b0;b-);void keyscan() /按键控制程序if(!k6)/判断按键按下dela

36、y(5); /延时消抖if(!k6)if(speed_dat20)/控制速度增加按键按下speed_dat-=10;while(!k6); /判断按键释放else if(!k7)/判断按键按下delay(5);/延时消抖if(!k7)if(speed_dat250)speed_dat+=10; /控制速度减小while(!k7); /判断按键释放/主程序void main()SCON=0X00;TMOD=0X01; /配置16位定时器/计数器TH0=0xfc; /定时器定时1ms TL0=0x18;EA=1; /打开全局中断ET0=1; /打开定时/计数0中断TR0=1;P1=0x3f;for

37、(i=0;i32;i+)/数据初始化清楚 disprami=0xff; /清除显示数据 while(1) /主程序循环程序 switch(dis_flag) /点阵显示模式标志位,dis_flag case 0: /左移 for(i=1;i15;i+) /循环显示数组中的字 for(j=0;j2;j+) for(k=1;k9;k+) for(l=0;l16;l+) /处理dispram显示1帧的数据 dispraml*BLKN=dispraml*BLKN7; dispraml*BLKN+1=dispraml*BLKN+1(8-k); /左移显示模式 keyscan(); /调用速度按键控制函数

38、 delay(speed_dat); /点阵显示帧延时时间 if(!k2) dis_flag=1; for(i=0;i32;i+) /清楚显示数据 disprami=0xff; /清除显示数据 break; else if(!k3) dis_flag=2; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k4) dis_flag=3; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k5) dis_flag=4; for(i=0;i32;i+) disprami=0xff

39、; /清除显示数据 break; if(!k2) dis_flag=1; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k3) dis_flag=2; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k4) dis_flag=3; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k5) dis_flag=4; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; if(!

40、k2) dis_flag=1; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k3) dis_flag=2; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k4) dis_flag=3; for(i=0;i32;i+) disprami=0xff; /清除显示数据 break; else if(!k5) /根据按下的按键,选择对应的点阵显示模式“左右上下移动与静止显示” dis_flag=4; for(i=0;i32;i+) disprami=0xff; /清除显示数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁