基于单片机的Led点阵广告牌设计课程设计_第1页
基于单片机的Led点阵广告牌设计课程设计_第2页
基于单片机的Led点阵广告牌设计课程设计_第3页
基于单片机的Led点阵广告牌设计课程设计_第4页
基于单片机的Led点阵广告牌设计课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机原理与应用课程设计报告课程设计名称: led点阵广告牌的设计 专业班级: 学生姓名: 学 号: 指导教师: 设计时间: 成 绩: 信 电 工 程 学 院 摘要led的特色之处一是节能(直接功耗,间接耗能),二是基本无电离辐射,三提高空间利用率。而这些特色又恰好解决了上述的三种问题。led点阵显示屏之所以受到广泛重视而得到迅速发展,是与led显示屏本身所具有的优点分不开的。组合型led点阵显示器以发光二极体为图素,它用高亮度led晶粒进行阵列组合后,再透过环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。led点阵显示系统中各模组的显示方式有

2、静态和动态显示两种。静态显示原理简单、控制方便,但硬体接线复杂,在实际应用中一般採用动态显示方式,动态显示採用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示幕的各行进行选通,同时又向各列送出表示图形或文字资讯的脉冲信号,反復迴圈以上操作,就可显示各种图形或文字资讯。led点阵显示屏的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。关键词 单片机 led 点阵目 录1绪论.11.1 led点阵显示屏的设计背景及意义.11.2显示原理及控制方式分析.31.2.1 led点阵模块结构.3 1.2.2 led 动态显示原理

3、.41.2.3 led常见的控制方式.41.3 设计目标及采取的方案.51.3.1 本设计的目标.51.3.2 本设计采取的方案.52系统硬件设计.52.1 at89c51芯片的介绍.62.2 74ls154芯片的介绍.62.3 点阵式汉字led显示屏设计.72.3.1 16*16点阵led原理及应用.72.3.2 led点阵的显示文字图形原理.83.字模生成.103.1 字模简介.103.2 led显示屏领域字模实现技术.103.3 字模存储技术简介.114 系统软件设.114.1 程序设计.115 调试与仿真.125.1 仿真效果.125.2 调试中出现的问题.12结论.12参考文献.14

4、附录.14附录1 16*16的点阵图文显示屏的硬件原理图.14附录2 完整程序.141 绪论1.1 led点阵显示屏的设计背景及意义led电子显示屏(light emitting diode panel)是由几百-几十万个半导体发光二极管构成的像素点,按矩阵均匀排列组成。利用不同的半导体材料可以制造不同色彩的led像素点。目前应用最广的是红色、绿色、黄色。而蓝色和纯绿色led的开发已经达到了实用阶段。 led显示屏是一种通过控制半导体发光二极管的亮度的方式,来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。 led显示屏分为图文显示屏和条幅显示屏,均由led矩阵块组成。图

5、文显示屏可与计算机同步显示汉字、英文文本和图形;而条幅显示屏则适用于小容量的字符信息显示。led显示屏因为其像素单元是主动发光的,具有亮度高,视角广、工作电压低、功耗小、寿命长、耐冲击和性能稳定等优点。因而被广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。 led显示屏的发展前景极为广阔,目前正朝着更高亮度、更高气候耐受性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。led点阵设计主要应用于led点阵显示屏,它是利用发光二极管点阵模块组成的平面式显示屏幕。由于它具有发光效率高、使用寿命长、节能、组态灵活、色彩丰富、显示方

6、式变化多样以及无电离辐射等优点,在国内外得到了极为广泛的应用。led的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性、可靠性、全色化方向发展。1.2显示原理及控制方式分析1.2.1 led点阵模块结构八十年代以来出现了组合型led点阵显示器模块,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。这种一体化封装的点阵led模块,具有高亮度、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。led点阵规模常见的有44、48、57、58、88、1616等等。根据像素颜色的数目可分为单色、双基色、三基色等。像素颜色不同,所显示的文字、

7、图象等内容的颜色也不同。单色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。led点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号如5x7点阵显示器用于显示西文字母58点阵显示器用于显示中西文,8x8点阵可以用于显示简单的中文文字,也可用于简单图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过pc机或单片机控制驱动。1.2.2 led 动态显示原理led点阵显示系统中各

8、模块的显示方式: 有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。点阵式led汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在led显示技术

9、中被广泛使用。以88点阵模块为例,说明一下其使用方法及控制过程。图2.1中,红色水平线y0、y1y7叫做行线,接内部发光二极管的阳极,每一行8个led的阳极都接在本行的行线上。相邻两行线间绝缘。同样,蓝色竖直线x0、x1x7叫做列线,接内部每列8个led的阴极,相邻两列线间绝缘。在这种形式的led点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。则行线和列线的交叉点处的led就会有电流流过而发光。比如,y7为1,x0为0,则右下角的led点亮。再如y0为1,x0到x7均为0,则最上面一行8个led全点亮。1.2.3 led常见的控制方式目前常见的是并行传

10、输方式(见附录1.1),通过8位锁存器将8位总线上的列数据进行锁存显示,各8位锁存器的片选信号由译码器提供。此种方式的优点是传输速度快,对微控制器(mcu)的通信速度要求较低。但是这种方案最大的缺点是不便于随意扩展显示单元的数目。每增加一个1616点阵的全角汉字显示单元,就需要在之前的电路上多增加两根地址线,这就要求在pcb布线的时候要留有充足的地址线冗余量。再一个缺点是,每个单元的pcb随着安放位置的不同,布线结构也不相同,不利于厂家批量生产。并行传输需要的芯片较多,因此市场上已经出现用fpga,cpld等高密度可编程逻辑器件(pld)来取代传统锁存器ic的方案。成本有所下降,但可扩展性仍旧

11、较差。因此,并行传输方式适用于显示单元数目确定的条屏。一以传统8051单片机为控制器的led显示屏。因受到单片机运算速度及通信速率的限制,led动态显示的刷新率不可能做得太高。对显示效果和移动算法的处理也比较吃力,在实际显示效果上有比较明显的闪烁感。除此之外,传统8051单片机的内部资源贫乏,仅128字节的数据存储器,几k字节的程序存储器,无e2prom,spi。这就需要对单片机扩展外设,无疑增加了硬件成本。因此,8051控制的条屏只能用于显示内容及其简单,不需要经常更改显示内容的场合。二以pic单片机为控制器的led显示屏。因pic单片机是risc架构的工业专用单片机,处理指令的速度有所增加

12、,抗干扰能力优秀,型号种类繁多。作为条屏的控制器,可以明显的改善显示效果,同时pic单片机内部的资源较丰富,可节省外部电路设计难度,同时降低了硬件成本。因此,以pic单片机为控制器的条屏目前仍是单色条屏市场的主流。三以fpga(复杂可编程逻辑门阵列)为控制器的led显示屏。fpga以高速、并行著称。是近年来新兴的可编程逻辑器件。用他作为led显示屏的控制器,能够高速的处理色阶pwm信号、高速的完成动态扫描逻辑、高速的完成字符移动算法。因此被运用于双基色、三基色的显示系统。但是其成本较高,开发难度较大。1.3 设计目标及采取的方案1.3.1 本设计的目标本设计的理论基础是单片机原理与应用,模电和

13、数电。比如at89c51芯片的一些工作原理是在mcs51的基础上通过改进完成的。74ls154的工作原理数电里也学习过。本设计完成了16*16led点阵动态显示两个以上汉字,并可以利用按键控制其左右移动。通过本设计不仅可以复习之前学过的知识,而且可以通过查阅课外资料学到书本上没有的知识,还锻炼了我们的动手能力。通过这次课程设计把我们在学校学习的理论知识和实际应用有机地结合起来,把理论跟实践相结合,培养了我们的专研精神。 1.3.2 本设计采取的方案(1)根据实验指导书的要求确定系统应该具有的功能(2)按照系统功能将系统分模块组合起来(3)根据系统功能与结构编写实验程序,并通过keil软件进行编

14、译并找出程序中的错误,改正这些错误(4)确定所需的元器件,然后利用proteus软件画出系统电路图并进行仿真(5)仿真成功后根据仿真图制作实际硬件图(6)最终能在led电路板上显示实验指导书上所要求的汉字显示形式。2 系统硬件设计本设计采用以at89c51单片机为核心芯片的电路来实现,主要由at89c52芯片、时钟电路、列扫描驱动电路(74ls154)、16*16 led点阵5部分组成。2.1 at89c52芯片的介绍因为在程序中,所使用的内部存储器的空间较大,对于51系列单片机,高128b被特殊功能寄存器占用,对于52系列单片机,高128b与特殊功能寄存器有相同的地址,而物理上是分开的,故使

15、用了at891c52芯片。 at89c52是一种带8kb闪烁可编程可擦除只读存储器(falsh programmable and erasable read onlymemory,fperom)的低电压、高性能cmos型8位微处理器,俗称单片机。该器件采用atmel公司高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,能够进行1 000次写擦循环,数据保留时间为10年。它是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,在智能化电子设计与制作过程中经常用到at89c52芯片。 at89

16、c52是一个低功耗高性能的单片机,共有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,2个16位可编程定时计数器和1个全双工串行通信口,at89c52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。2.2 74ls154芯片的介绍(1)54/74154 为 4 线16 线译码器,当选通端(g1、g2)均为低电平时,可将地址端(abcd)的二进制编码在一个对应的输出端,以低电平译出。 如果将g1和g2中的一个作为数据输入端,由abcd对输出寻址,74ls154还可作1线-1

17、6线数据分配器,见图2-1。图2-1 74ls154芯片(2) 引脚功能介绍a、b、c、d 译码地址输入端(低电平有效)g1、g2 选通端(低电平有效) 015 输出端(低电平有效)(3)74ls154真值表,见表2-1表2-1 74ls154真值表inputs输入outputs输出g1g2dcba0123456789101112131415lllllllhhhhhhhhhhhhhhhlllllhhlhhhhhhhhhhhhhhllllhlhhlhhhhhhhhhhhhhllllhhhhhlhhhhhhhhhhhhlllhllhhhhlhhhhhhhhhhhlllhlhhhhhhlhhhhhh

18、hhhhlllhhlhhhhhhlhhhhhhhhhlllhhhhhhhhhhlhhhhhhhhllhlllhhhhhhhhlhhhhhhhllhllhhhhhhhhhhlhhhhhhllhlhlhhhhhhhhhhlhhhhhllhlhhhhhhhhhhhhhlhhhhllhhllhhhhhhhhhhhhlhhhllhhlhhhhhhhhhhhhhhlhhllhhhlhhhhhhhhhhhhhhlhllhhhhhhhhhhhhhhhhhhhllhxxxxhhhhhhhhhhhhhhhhhlxxxxhhhhhhhhhhhhhhhhhhxxxxhhhhhhhhhhhhhhhh表中l表示低电平;表

19、中h表示高电平。(4) 与单片机引脚的连接地址输入端a、b、c、d分别接单片机的p0.0、p0.1、p0.2、p0.3口来控制选择第几列显示。选通端g1接p1.4口,g2接地。(5) 与点阵引脚的连接 74ls154芯片的1-8脚对应接上面两个点阵引脚的列线,9-17脚(12脚接地)对应接下面两个点阵引脚的列线。点阵引脚图见下图2-1。2.3 点阵式汉字led显示屏设计2.3.1 16*16点阵led原理及应用设计led点阵显示屏时必须掌握点阵工作原理才能进行更深层设计。16*16led点阵实质上就是4块8*8点阵led级联而成的,因此特给出 8*8 点阵led的工作原理。图2-1为8*8点阵

20、led的等效电路图,只要其对应的x、y轴顺向偏压,即可使led发亮。例如如果想使左上角led点亮,则y0=1,x0=0即可。应用时限流电阻可以放在x轴或y轴。而16*16就是在8*8原理的基础上将四块8*8级联而成,见图2-2。 图2-1 8*8点阵led等效电路图图2-2 四块8x8点阵led级联成16x16点阵2.3.2 led点阵的显示文字图形原理led驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以1616点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管

21、亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;以此类推,第16列之后,又重新燃亮第1列,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上的汉字的每一笔都是同时出现的。该方法能驱动较多的led,控制方式较灵活,而且节省单片机的资源。显示数据可通过单片机的p0,p2口传输到点阵行引脚。led点阵显示模块进行的方法有两种:(1)水平方向(x方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个p口输出列码决定哪一列能亮(相当于位码),用另一个p口输出行码(列数据),决

22、定该列上哪个led亮(相当于段码)。能亮的列从左到右扫描完16列(相当于位码循环移动16次)即显示出一个完整的图像。(2)竖直方向(y方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个p口输出决定哪一行能亮(相当于位码),另一个p口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据)决定该行上哪些led灯亮(相当于段码)。能亮的行从上向下扫描完16行(相当于位码循环移位16次)即显示一帧完整的图像。本设计应用的是第一种的扫描方法,即水平方向(x方向)扫描。每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的16*16

23、的点阵宋体字库是每一个汉字在纵横各16点的区域内显示的。汉字库从该位置起的32字节信息记录了该字的字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。我们以水平方向(x方向)扫描显示汉字的“杨”为例来说明其扫描原理,每一个字由16行16列的点阵组成显示,如下图,如果用8位的at89s51的单片机来控制,由于单片机的总线为8位,一个字需要拆分成两个部分。一般我们把它分解成上部分和下部分,上部分由8*16的点阵组成,下部分也由8*16的点阵组成。在本例中单片机首先显示的是左上角的第一列的部分,即第0列的p0.0p0.7口。方向为p0.7到p0.0,显示汉字“杨”的时

24、候,p0.0到p0.2都是灭的,p0.3亮,因为行接阴极,即二进制11110111,转换为16进制为f7h,如图所示。上半部分第一列完成之后,继续扫描下半部分的第一列,即从p2.7向p2.0方向扫描,从上图可以看到,这一列p2.2亮,其余全部灭,所以代码为11111011,16进制为fbh,然后单片机转向上半部的第二列,除了p0.3亮,其他的都不亮,即为11110111,16进制为f7h,这一列扫描完成之后继续进行下半部分的扫描,除了p2.0和p2.1亮,其他的为不亮,为二进制11111100,即16进制fch。按照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“杨”的扫描代码

25、为 :f7h,fbh ,f7h ,fch ,37h ,ffh,00h,00h,b7h,ffh,77h,feh,f5h,f7h,bdh,dbh,9dh ,ech,2dh,f7h,b5h, f9h,39h,beh,bdh,7fh,3fh,80h,ffh,ffh,ffh,ffh。3 字模生成3.1 字模简介 文字的字模是一组数字,但它的意义却与数字的意义有着根本的变化,它是用数字的各位信息来记载英文或汉字的形状1。在电脑硬件中,根本没有汉字这个概念,也没有英文的概念,其认识的概念只有内码(将ascii表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使

26、用,即英文的内码)。如果你用启动盘启动系统后用dir命令可能得到一串串莫名其妙的字符,但那确确实实是汉字,如果你启动ucdos或其他的汉字系统后,就会看到那是一个个熟悉的汉字。在硬件系统内,英文的字模信息一般固化在rom里,即使在没有进入系统的cmos里,也可以让你看到英文字符。而在dos下,中文的字模信息一般记录在汉字库文件里(将制作好的字模放到一个个标准的库中,这就是点阵字库文件)。字模生成3.2 led显示屏领域字模实现技术在通过软件实现的技术中,目前有许多字模生成软件,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到我们的程序中即可。在通

27、过硬件实现字模提取的技术中,有在单片机系统中增加硬汉字库的方法,主控器发送的汉字是其机内码,用两个字节来表示一个汉字。根据机内码,显示单元控制模块从汉字库中查取显示字模,实现汉字显示。由于带有硬汉字库,进行动态文字显示时,通用智能显示单元仅接受汉字的机内码即可,这样数据通讯量大大减少。因此,“动态文字显示速度快”。3.3 字模存储技术目前使用最广泛的技术是,通过上位机软件将待显示的字符串转换为对应的点阵字模数据,通过烧写的方式将这些字模数据按一定的顺序编址后存储在e2prom中。在条屏显示的过程中按规定的方式取出e2prom中的字模数据进行处理。对于一个1616点阵的汉字字模数据,需要连续32

28、字节的e2prom空间来存储。照此计算,若有256个需要显示的字符,则至少需要32b256=8192字节(8kb)的e2prom存储空间。通常的单片机内部没有集成这么大容量的e2prom。因此这种方案,需要在单片机外部扩展大容量的e2prom,增加硬件成本。上位机程序设计由于涉及到汉字取模,取模算法的难度较大。在多字下载的时候传输时间也较长。诸多弊端使本设计放弃了传统方案。而本设计创新使用了专用的点阵字库芯片,成本仅为8元,内含各种点阵规格的gb2312、ascii等标准字库。专用字库芯片采用微型so-8封装,使用高速同步串行spi接口进行读写操作,节省了控制器的i/o。在本设计中,单片机内部

29、的小容量e2prom,用于存储待显示汉字的gb2312标准机内码,每个全角字符的内码占2字节,则在同样需要显示256个汉字的情况下,这种方案仅占用512字节的e2prom空间。4 系统软件设计4.1 程序设计系统软件采用汇编语言编写,按照模块化的设计思路设计。首先分析程序所要实现的功能,程序要实现动态显示并能左右移动的功能。程序分为主程序和中断程序。4.1.1 程序设计总体思路用简短的汇编程序设计,实现led点阵显示内容,并使显示的内容在屏幕上从左到右的滚动显示。系统采用模块化结构,包括主程序、延时程序、显示子程序和串行口中断程序。用at89c51、74ls373、74ls138、74hc15

30、4芯片和4个1616led点阵显示器构成一个完整的16位点阵led显示系统。5.1.2 程序流程图程序主要由开始、初始化、主程序、字库组成。其中主程序和子程序的流程图如图5.1所示。图5-15 调试与仿真proteus仿真时,单片机需要加载程序,加载程序为.hex文件。本设计利用keil软件,在新建项目时选择at89c52单片机作为cpu,将相应程序导入,在“options for target”对话窗口中,选中“output”选项中的“create hex file ”,编译链接后就可以生成.hex文件。在proteus isis中,选中at89c52并单击鼠标左键,对at89c52进行设置

31、,设置单片机时钟频率为12mhz,按照正确的文件路径加载.hex文件。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在proteus isis中直接修改,如有软件问题可在keil中直接修改,通过keil与proteus的联合调试就可以得到预期的结果。proteus软件目前版本中没有16*16点阵模块,本设计中采用proteus软件中现有的4个8*8点阵模块组合成一个16*16点阵模块,利用proteus软件设计点阵式led滚动汉字显示屏硬件电路原理图如附录图。5.1 仿真效果5.2 调试中出现的问题延时问题:在显示子程序中需要调用延时子程序,如果延时过短,虽然能提高显示屏的亮度,

32、但是将无法达到预定的效果,每行还没有显示完全就进入了下一行的扫描,甚至锁存器还没有输出到显示屏,便进入到下一个扫描周期,如果时间过长,不但显示屏的亮度会降低,而且扫描的过程变为间断的,人眼看到的不是完整的汉字,这两种情况都是不成功的,要想达到最佳的显示效果,就得根据锁存器的锁存时间,得出扫描一行的最短时间,再结合实践,便能得出延时的最佳时间,这样显示屏才能显示稳定的汉字。结论在本设计中我用简短的汇编程序在led显示屏实现了汉字的左移右移滚动显示。在设计中采用的芯片有at89c51、74ls373、74ls138、74hc154和4个88led点阵显示器。其特点:1.内容能从右向左,从左向右浮动

33、显示,有不同的动态效果。2.硬件结构简单,应用广泛。3.led数码管动态扫描显示,工作效率高,价格低廉等。通过本次(1616位点阵led)的设计,理论知识学习和实际设计的结合锻炼了我的综合运用所学的专业基础知识解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。为后继的学习和工作奠定的基础。参考文献1 高玉芹.单片机原理与应用及c51编程技术m.北京:机械工业出版社,2011.6 2 严天峰.单片机应用系统设计与仿真调试m.北京:北京航空航天大学出版

34、社,2005 3李光飞等.单片机课程设计实例指导m.北京:北京航空航天大学出版社,2005 4 苏平.单片机原理与接口技术m.北京:电子工业出版社,2003.85 赵长德,雷田玉.微型计算机原理与接口技术m.北京:机械工业出版社,1999.10附录附录1整体电路原理图附录2完整程序org 0000hajmp readyorg 000bhajmp int_0;只需更改点阵数据和要显示的总字数ready:mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh mov sp,#70h mov 36h,#2d ;控制移动的速度 mov 37h,#00h

35、mov 3ah,#9d ;设置要显示的总字数 lcall data_chushi setb ea ;中断初始化 setb et0 mov tmod,#01h mov th0,#0a6h mov tl0,#00h setb tr0;主程序main:acall disp_ready ;调用显示子程序 acall key ;调用按键子程序 ajmp main ;循环调用子程序data_chushi:mov 35h,#00h mov 38h,#00h mov 39h,#01h ;初始化时已显示第一个字 mov 3bh,#0a0h ;暂存r0指向地址 mov dptr,#data1 mov r0,#0a

36、0h;点阵数据存放地址 mov 30h,#32d;数据字节数 send_data0:mov a,#00h;将表中第一个数据地址存入r0 movc a,a+dptr mov r0,a inc r0 inc dptr djnz 30h,send_data0 ;共32字节 mov r0,#0c0h;点阵数据存放地址 mov 30h,#32d;数据字节数send_data1:mov a,#00h;将左移时所需存储的数据地址存入r0 movc a,a+dptr mov r0,a inc r0 inc dptr djnz 30h,send_data1 mov dptr,#data1+32 mov r0,#

37、80h;点阵数据存放地址 mov 30h,#32d;数据字节数send_data2:mov a,#00h;将右移时所需存储的数据地址存入r0 movc a,a+dptr mov r0,a inc r0 inc dptr djnz 30h,send_data2 ret key:mov p3,#0ffh mov a,p3 anl a,#00000001b ;由一个按键控制(对应单片机p3.0口) cjne a,#00000001b,key_panduan retkey_panduan:mov 34h,a ;判断是否确实有键按下 acall key_delay mov a,p3 anl a,#000

38、00001b cjne a,34h,key_exit acall key_chulikey_exit: retkey_chuli:jb acc.0,key_chuli_exit ;有键按下后做相应处理 mov a,37h ;移动方式的切换 add a,#40h ;a加除00h以外的任何值都可 mov 37h,a lcall data_chushi retkey_chuli_exit:retkey_delay: ;按键延时dly_lp1: mov r1,#20 mov r6,#50dly_lp2: nop nop nop djnz r6,dly_lp2 djnz r7,dly_lp1end_dl

39、yms:ret ;显示程序disp_ready:mov r0,3bh mov 30h,#16d mov 31h,#00h disp:mov a,r0 ;行列扫描显示 mov p0,a inc r0 mov a,r0 mov p2,a mov p1,31h acall disp_delay mov p0,#00h mov p1,#0ffh mov p2,#00h inc 31h inc r0 djnz 30h,dispdisp_exit: ret;显示延时 disp_delay:mov 32h,#2d1:mov 33h,#150 djnz 33h,$ djnz 32h,d1 ret;中断处理程序

40、int_0:push acc mov th0,#0a6h ;重装初值 mov tl0,#00h inc 35h mov a,35h cjne a,36h,int0_exit mov 35h,#00h acall which_wayint0_exit:pop acc retiwhich_way:mov a,37h ;选择左移还是右移 cjne a,#00h,way2 acall zuoyi retway2: acall youyi retzuoyi: mov 50h,#0a1h ;初始化时已显示第一个字 mov 51h,#0c1h mov 3ch,#16d inc 38h mov a,38h cjne a,#16d,zuoyi_then1 mov 38h,#00h inc 39h mov a,39h cjne a,3ah,zuoyi_then mov 39h,#00h mov dptr,#data1zuoyi_then: mov 3ch,#32d mov r1,#0c0hzuoyi_send_data: mov a,#00h ;左移将字送入r1 movc a,

温馨提示

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

评论

0/150

提交评论