欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    单片机与显示器.ppt

    • 资源ID:246741       资源大小:1.12MB        全文页数:128页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机与显示器.ppt

    第6章 单片机显示和键盘接口,实训6 简易秒表的制作 6.1 单片机与显示器接口 6.2 单片机与键盘接口 6.3 键盘与显示器综合应用 6.4 可编程键盘/显示器接口Intel 8279 本章小结 习题6,实训6 简易秒表的制作1实训目的(1)利用单片机的定时器中断实现秒定时,进一步掌握中断程序的编程技巧。(2)通过对LED显示程序的调试,熟悉8051与LED的接口技术,熟悉LED动态显示的控制过程。(3)熟悉独立式键盘的接口技术,熟悉键盘中断扫描原理。(4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。,2实训设备与器件(1)实训设备:单片机开发系统、微机。(2)实训器件:参见实训电路图6.1(或实训组合教具一套)。3实训步骤与要求(1)要求:利用实训电路板,以2位LED显示秒值,实现秒表计时显示。以3个独立式按键KE0、KE1、KE2分别实现启动、停止、清零等功能。(2)方法:用中断的编程思路使用定时器T0,定时器工作在定时方式,实现1秒定时,每50 ms溢出中断一次,中断20次后就到1秒钟;秒表计时显示用动态显示方式实现;通过键盘扫描方式取得KE0、KE1、KE2的键值,用键盘的中断处理程序实现秒表的启动、停止、清0等功能。,(3)实验线路分析:原理图参见图6.1。2位LED显示的位码由单片机的P2口输出,段码由P0口输出,P2口线与LED之间接有200限流电阻;LED为共阳极数码管,显示方式为动态显示方式;3个按键可以采用独立式键盘,其中两个按键分别连接到外部中断INT0、INT1,第3个按键连接到定时器1的T1端口,以中断方式实现键盘的扫描。(4)软件设计:软件整体设计思路是以动态显示作为主程序,按键查询采用中断方式;秒定时采用定时器T0中断方式进行,定时器T0定时时间为50 ms,定时器50 ms溢出一次,溢出20次后秒值加1;计时的开启与关闭受控于按键处理程序。由上述设计思路可设计出软件流程图如图6.2所示。,图6.1 简易秒表电路连接,图6.2 简易秒表软件流程图,(5)程序编制:编程时置KE0键为“启动”,置KE1键为“停止”,置KE2键为“清0”,因按键较少,所以采用独立式按键即可满足条件,其中两个按键分别连接到外部中断接口INT0、INT1,另外一个连接到外部引脚T1,编程时置T1为8位计数方式,初始值设定为0FFH。程序中,INT0、INT1和T1均允许中断,故按键的处理通过各相应中断子程序来完成。2位LED显示的数据由显示缓冲区30H31H单元中的数据决定,顺序是从左至右。动态显示时,每位显示持续时间为1 ms,1 ms延时由软件实现,2位显示约耗时2 ms。1秒定时采用定时器T0方式1中断,每50ms中断一次,用21H(MSEC)作50 ms计数单元,每20次为一个循环,计满20次,秒计数单元20H(SEC)加1。20H单元的数据采用十进制计数,该数据被拆成个位和十位两个数据后分别送至显示缓冲区的30H、31H单元。,按照上述思路可编制源程序如下:SECEQU20HMSECEQU21HORG0000H AJMPMAINORG0003HAJMPKE1ORG000BH AJMPCONT ORG0013H AJMPKE0ORG001BH AJMPKE2,;主程序;初始化部分MAIN:MOVTMOD,#61H;置T0方式1定时,T1方;式2计数 MOVTH0,#3CH;T0置初值 MOVTL0,#0B0H MOVTH1,#0FFH;T1置初值 MOVTL1,#0FFH MOVSEC,#00H;60 s计数单元置初值 MOVMSEC,#14H;50 ms计数单元置初值 MOVSP,#3FH;堆栈指针置初值 MOV30H,#00H;显示缓冲区清0 MOV31H,#00H,MOVIE,#8FH;打开中断源 SETBTR1;启动定时器1 CLRA;累加器清0;显示程序部分DISP:MOVR2,#02H;LED待显示位数送R2 MOVR1,#00H;设定显示时间 MOVR4,#01H;选中最右端LED MOVR0,#30H;显示缓冲区首址送R0 MOVA,R0;秒显示个位送ADISP1:MOVDPTR,#TAB;指向字形表首址 MOVCA,A+DPTR;查表取得字形码 MOVP0,A;字形码送P0口 MOVA,R4;取位选字,MOVP2,A;位码送P2口DJNZR1,$;延时0.5 msDJNZR1,$;延时0.5 msRLA;位选字移位MOVR4,A;移位后的位选字送R4INCR0;指向下一位缓冲区地址MOVA,R0;缓冲区数据送A DJNZR2,DISP1;未扫描完,继续循环 SJMP DISPTAB:DB0C0H,F9H,0A4H,0B0H,99H;共阳极LED字型表 DB92H,82H,0F8H,80H,90H,;按键0中断服务程序;功能:启动KE0:SETBTR0;启动定时器0,开始计时RETI;中断返回;按键1中断服务程序;功能:暂停KE1:CLRTR0;关闭定时器0,暂停计时RETI;中断返回;按键2中断服务程序;功能:清0KE2:MOVSEC,#00H;秒清0MOV30H,#00H;显示缓冲区清0MOV31H,#00H;显示缓冲区清0RETI,;定时器0中断服务程序;功能:秒值的刷新CONT:PUSHACC;保护现场 MOVTH0,#3CH;定时器T1重置初值 MOVTL0,#0B0H DJNZMSEC,EXIT;判断是否到1 s?MOVMSEC,#14H;若到1 s,则重置50 ms初始值INCSEC;秒单元加1CJNESEC,#60,CHAI;判断秒是否到60?MOVSEC,#00;到60后,清0CHAI:MOVA,SECMOVB,#10DIVAB;秒单元内容除以10,MOV30H,A;秒的十位送显示缓冲区30HMOV31H,B;秒的个位送显示缓冲区31HEXIT:POPACC;恢复现场RETI;中断返回 END,4实训总结与分析(1)例5.4与本实训相比,二者均是秒表,但差别较大。前者采用发光二极管显示,后者采用7段码LED(俗称数码管)显示,显示效果更直观;前者计时采用软件延时,后者采用定时器中断,后者更准确;前者功能单一,程序一旦开始运行,中间过程无法控制,后者功能齐全,可随时启动、停止、清0,智能化程度更高。综上所述,后者更实用。,(2)设计、调试大型程序时,需先根据要求划分模块,优化结构;再根据各模块的特点确定主程序、子程序、中断服务程序以及相互间的调用关系;再根据各模块的性质和功能将各模块细化,设计出程序流程图;最后才根据各模块的流程图编制具体程序。调试时应先调试主程序,实现最基本、最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。本实训将整个程序划分为键盘程序、动态显示程序、秒计时程序三大模块,根据各模块的特点确定动态显示程序为主程序,秒计时程序为定时器中断服务程序,键盘的扫描也用中断来实现。,三大模块之间的关系是:系统上电后,不断运行动态显示子程序,显示初始时间00;无键按下时,一直显示初始值,有键按下时,进入按键的中断服务程序;按键启动定时器后,开始计时,在定时器的中断程序中完成显示时间的刷新;回到主程序继续运行动态显示程序,显示内容不断更新。经上述处理后,三大模块的运行协调一致,既保持了动态显示的稳定性,又保持了键盘的可靠性,还保持了秒计时的准确性,较好地实现了全部功能。,(3)本实训只用到实验线路板的两位LED显示和3个独立式按键,当采用44矩阵式按键和8位动态显示时,其功能还有较大的扩展空间。只要将上述程序稍加改动即可实现秒、分、时、日显示,作为可全方位修改的实时时钟的程序使用。如增加LED显示位数或将显示改为LCD显示模块,可实现年、月、周、日、时、分、秒显示。,1数码管简介1)数码管结构数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可显示数字09、字符AF、H、L、P、R、U、Y、符号“”及小数点“”。数码管的外型结构如图6.4(a)所示。数码管又分为共阴极和共阳极两种结构,分别如图6.4(b)和图6.4(c)所示。,图6.4 数码管结构图(a)外型结构;(b)共阴极;(c)共阳极,2)数码管工作原理共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,通常接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。,例6.1采用共阳极数码管与单片机P1口直接连接,其电路连接如图6.3所示。数码管公共阳极接+5 V电源,其它管脚分别接P1口的8个端口,限流电阻为510,数码管字段导通电流约为6 mA(额定字段导通电流一般为520 mA)。,3)数码管字型编码要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字型编码。对照图6.3,字型码各位定义如下:数据线:D7 D6 D5 D4 D3 D2 D1 D0I/O口线:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0LED段:dp g f e d c b a 数据线D0与a字段对应,D1字段与b字段对应,依此类推。如使用共阳极数码管,则数据为0表示对应字段亮,数据为1表示对应字段暗;如使用共阴极数码管,则相反。,表6.1 数码管字型编码表,例如要显示“0”,共阳极数码管的字型编码应为:11000000B(即C0H);共阴极数码管的字型编码应为:00111111B(即3FH)。依此类推可求得数码管字型编码如表6.1所示。例6.1使用的是共阳极数码管,因此,应采用表6.1中的共阳极字型码。具体实施是通过编程将需要显示的字型码存放在程序存储器的固定区域中,构成显示字型码表。需要显示某字符时,通过查表指令获取该字符所对应的字型码。,6.1 单片机与显示器接口6.1.1 LED静态显示器例6.1 设计一个一位简单秒表的显示电路,显示内容从0开始,每隔1 s显示内容加1,秒值到9后自动清0,依次循环显示。系统采用12 MHz晶振。解:根据题意可设计出硬件电路如图6.3所示。,图6.3 简单秒表显示电路,其源程序可设计如下:ORG0000HALMPMAINORG0030HMAIN:MOVTMOD,#10H;定时器T1工作在方式1MOVTH1,#3CH;T1置50 ms计数初值MOVTL1,#0B0HSATRT:MOVR1,#00H;计数显示初始化 MOVDPTR,#TABDISP:MOVA,R1MOVCA,A+DPTR;查表得显示的字型码MOVP1,A;数码管显示0ACALLDELAY1S;延时1 sINCR1;计数值加1,CJNER1,#10,DISP;秒值不到10,继续;显示;否则清0MOVR1,#00H;计数值清0SJMPDISP TAB:DB 0C0H,0F9H,0A4H;0,1,2DB0B0H,99H,92H;3,4,5DB82H,0F8H,80H;6,7,8DB90H;9;1 s延时子程序DEALY1S:MOV R3,#14H;置50 ms计数循环初值SETBTR1;启动T1LP1:JBCTF1,LP2;查询计数溢出SJMPLP1;未到50 ms继续计数,LP2:MOVTH1,#3CH;重新置定时器初值MOVTL1,#0B0HDJNZR3,LP1;未到1 s继续循环RET;返回主程序 END,图6.5 两位的LED数码管静态显示示意图,2静态显示接口从图6.5可以看出,静态显示方式的特点是各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来并保持不变,直到I/O口输出新的段码。采用静态显示方式时,用较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,成本高,只适用于显示位数较少的场合。例6.1就是数码管静态显示方式的一种典型应用,其硬件及软件都非常简单。,6.1.2 LED动态显示器当需要显示的位数较多时,为了节省硬件接口,往往采用动态显示的方式。用8051单片机构建数码管动态显示系统时,其典型应用如图6.6所示。,图6.6 动态显示典型应用,1动态显示概念动态显示是指一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或公共阳极)由另外的I/O口线控制。以动态方式显示时,各数码管分时轮流选通。要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示的,但由于人眼存在视觉暂留效应,因此只要每位显示间隔足够短就可以给人以同时显示的感觉。,采用动态显示方式比较节省I/O口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,这会占用CPU较多的时间。在图6.6所表示的单片机动态显示连接图中,数码管采用共阳极LED,单片机的P0口接至数码管的各段,当P0口线输出“0”时,驱动数码管发光。单片机的P2口线经过限流电阻后接至数码管的公共端,当P2口线输出“1”时,选通相应位的数码管发光。,2多位动态显示接口应用采用8051的I/O口控制数码管的段码和位码,同时,采用动态扫描方式依次循环点亮各位数码管,即可构成多位动态数码管显示电路。例6.2 扩展例6.1的功能,用图6.6的电路实现六位显示的秒表,具体要求如下:(1)从左往右每两位LED分别显示小时、分钟和秒,并可正常计数、进位;(2)上电后首先显示00 00 00,表示从0点0分0秒开始计时,当时间显示到23 59 59后,六位显示都清0,从头开始。,解:整体设计思路如下:整体程序主要分为3个部分:主程序、显示子程序和定时器中断程序。主程序主要是初始化部分和不断调用动态显示子程序部分。动态显示子程序完成6位LED的轮流位扫描,它被主程序不断调用,以保证稳定可靠的显示。显示时间的刷新由定时器中断产生,定时器每50 ms中断一次,当中断20次后(即1 s后),对时间单元(秒计数单元、分计数单元、小时计数单元)进行更新,然后通过拆字子程序将时间单元里面的十六进制数拆开为两个BCD码,并送到显示缓冲区。返回主程序后显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。,根据硬件设计,由单片机的P2口控制位码输出,P0口控制段码输出。动态显示程序中,在单片机内部RAM中设置待显示数据缓冲区,由查表程序完成显示译码,将缓冲区内待显示数据转换成相应的段码,再将段码通过8051的P0口输出;位码数据由累加器循环左移指令产生,再通过P2口输出。该程序的流程图如图6.7所示。片内RAM的地址分配如表6.2所示。,图6.7 六位数码管动态显示程序流程图,源程序设计如下:MSECEQU20H;50 ms计数单元SECOND EQU21H;秒单元MIN EQU 22H;分单元HOUREQU23H;小时单元;各程序入口ORG0000HLJMPMAINORG 000BHLJMP CONT;主程序MAIN:MOVSP,#3FHMOV TMOD,#01H;设置定时器0工作方式 MOV TH0,#3CH;设置定时器初始值TH0,MOV TL0,#0B0H;设置定时器初始值TL0 MOV IE,#82H;定时器0中断允许MOV SECOND,#00H;秒单元初始值MOV MIN,#00H;分单元初始值 MOV HOUR,#00H;小时单元初始值 MOVMSEC,#14H;设置定时器溢出次数初始值20MOV 35H,#00H;显示缓冲区清0 MOV 34H,#00H MOV 33H,#00H MOV 32H,#00H MOV 31H,#00H MOV 30H,#00HSETB TR0;启动定时器,START:LCALL DISP;调显示子程序SJMPSTART;跳动START,不断调显示子程序;LED动态显示子程序;功能:动态扫描6个数码管;入口:显示缓冲区30H35H中待显示的6个数据DISP:MOV R0,#30H;显示缓冲区的首地址MOV R7,#00H;设定每位显示延时时间MOV R2,#06H;显示个数MOV R3,#20H;共阳管的位码初始值,从右端;先亮MOV A,R0;取显示缓冲区的一个数据DISP1:MOV DPTR,#TAB;查表首地址送DPTRMOVC A,A+DPTR;查表得到显示字符的字型码,MOVP0,A;将字型码送P0口MOVA,R3;位选码给AMOVP2,A;位码送P2口DJNZR7,$;延时DJNZR7,$;延时RRA;位选码右移,选中下一个LEDMOVR3,A;位选码送回R3INC R0;指向显示缓冲区的下一位MOV A,R0;取显示缓冲区的下一个数据DJNZ R2,DISP1;六个LED轮流显示一遍吗?若;没有则继续查表显示,否则返;回主程序RET;返回主程序TAB:DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,;定时器中断子程序;功能:50ms执行一次,完成秒、分、小时单元的刷新并拆开放到显示缓冲区;出口:显示缓冲区30H35H中存放的待显示的6个数据CONT:PUSH ACC;保护现场MOV TH0,#3CH;重置定时器初始值MOV TL0,#0B0HDJNZ MSEC,RN;判断到20次吗,若未到说明;没有到1 s,直接返回主程序;否则说明1 s到MOV MSEC,#14H;1 s到,重置50 ms定时器溢出;次数初始值为20次INC SECOND;秒单元内容加1MOVA,SECOND;秒单元给A累加器MOVR1,#31H;指向显示缓冲区的31H单元,LCALL BINBCD;调拆字子程序,将秒计数单元拆开为;十位、个位,分别放到缓冲区31H单元;和30H单元MOV A,SECOND;秒单元给ACJNE A,#60,RN;判断到60 s吗,若未到则返回主程序MOV A,#00;60 s到,则秒单元清0MOV SECOND,AMOVR1,#31H;指向显示缓冲区的31H单元LCALL BINBCD;调拆字子程序MOVA,MIN;分单元内容加1INCAMOV MIN,AMOVR1,#33H;R1指向显示缓冲区33H单元调拆字子LCALL BINBCD;程序,将分计数单元拆开为十位、;个位,分别放到缓冲区33H单元和;32H单元,MOVA,MIN;分单元给A CJNE A,#60,RN;判断到60分吗,若未到则返回;主程序 MOV A,#00H;60分到,分单元清0 MOV MIN,A MOVR1,#33H;指向显示缓冲区的33H单元 LCALL BINBCD;调拆字子程序 MOVA,HOUR;小时单元内容加1 INCA MOV HOUR,A MOVR1,#35H;R1指向显示缓冲区35H单元 LCALL BINBCD;调拆字子程序,将小时计数单元;拆开为十位、个位,分别放到;缓冲区35H单元和34H单元MOVA,HOUR;小时单元给A,CJNE A,#24,RN;判断到24小时吗,若未到则返回;主程序MOV A,#00H;24小时到,小时单元清0MOV HOUR,AMOV R1,#35H;指向显示缓冲区的33H单元LCALL BINBCD;调拆字子程序RN:POP ACCRETI;中断返回;*十六进制转BCD码拆字子程序*;入口参数:A累加器(待拆开的十六进制数);R1(拆开后BCD码所存放的末地址),;功能:将A累加器中的十六进制数拆开为两个BCD码,分别存放到R1指向的两个缓冲单元中BINBCD:MOV B,#10DIV AB;除以10,得到时间值的十位和个位 MOV R1,A;十位送相应的显示缓冲区DECR1;指向显示缓冲区中的个位MOV A,B;个位给ACCMOV R1,A;个位值送缓冲区的相应位置 RET END,比较例6.1与例6.2可知,二者功能基本相同。但前者为静态显示,数码管恒定点亮,所以显示亮度较高,但当显示位数增多时将使得硬件电路复杂,占用单片机口线多,成本高;后者为动态显示,且采用动态扫描方式,硬件电路相对简单,成本较低,但数码管显示亮度偏低,显示程序占用CPU的时间较多。具体应用时,应根据实际情况,选用合适的显示方式。,6.1.3 LED大屏幕显示器无论是单个LED(发光二极管)还是LED 7段显示器(数码管),都不能显示字符(含汉字)及更为复杂的图形信息,主要原因是它们没有足够的信息显示单位。LED点阵显示是把很多的LED按矩阵方式排列在一起,通过对各LED发光与不发光的控制来完成各种字符或图形的显示。最常见的LED点阵显示模块有57(5列7行)、79、88结构,前两种主要用于显示各种西文字符,后一种可作为大型电子显示屏的基本组建单元。本书将简略介绍LED大屏幕显示原理及接口。例6.3 编写程序,在如图6.8所示的88 LED大屏幕上显示雨伞图形。,图6.8 88 LED大屏幕的应用,解:根据题意分析,程序设计如下:ROWEQU 30H;行单元地址定义DOTEQU 31H;DOT地址定义ORG0000HAJMPMAINORG0030HMAIN:MOVDPTR,#TAB;定义表首地址MOVROW,#01H;行单元的初始内容MOVDOT,#00H;00H送DOTMOVR7,#08HNEXT_COL:MOVA,ROWMOVP2,A;行单元内容送P2口,选中某一行RLA;A的内容左移,MOVROW,A;更新行单元内容,以便选;中下一行MOVA,DOT;DOTA累加器MOVCA,A+DPTR;查表得到该行的显示码型MOVP0,A;将显示码型送P0口LCALLDELAY_1MS;延时,得到稳定显示INCDOT;DOT加1DJNZR7,NEXT_COL;8行未显示完,继续SJMP$TAB:DB0E7H,0C3H,81H,00H,0E7H,0E7H,0E7H,0E7H,DELAY_1MS:MOV R4,#250;延时子程序D0:NOP NOP DJNZ R4,D0 RET END从上述例题可以看出,88 LED点阵大屏幕可方便地显示一些简单的图形。下面对88 LED点阵大屏幕的结构进行介绍。,188 LED点阵简介88 LED点阵的外观及引脚图如图6.9所示,其等效电路图如图6.10所示。在图6.10中,只要各LED处于正偏(Y方向为1,X方向为0),则该LED发光。如Y7(0)=1,X7(H)=0,则其对应的右下角的LED会发光。各LED还需接上限流电阻,实际应用时,限流电阻既可接X轴,也可接Y轴。在例6.3中,Y轴的8根线连接到了P2口,X轴连接到了P0口,限流电阻连接在Y轴。如果要点亮“雨伞”形状的第一行,则P2.0为高电平,P1.7P1.0应分别是11100111,即E7H,此数据是程序中TAB表格中的第一个数值。,2LED大屏幕显示器接口电路LED大屏幕显示器不仅能显示文字,还可以显示图形、图像,而且能产生各种动画效果,是广告宣传、新闻传播的有力工具。LED大屏幕不仅有单色显示,还有彩色显示,其应用越来越广泛,已渗透到人们的日常生活之中。,图6.9 88点阵的外观及引脚图,图6.10 88点阵的等效电路图,1)LED大屏幕的显示方式LED大屏幕显示可分为静态显示方式和动态扫描显示方式两种。静态显示方式下,每一个像素需要一套驱动电路,如果显示屏为nm个像素,则需要nm套驱动电路;动态扫描显示方式则采用多路复用技术,如果是P路复用,则每P个像素需一套驱动电路,nm个像素仅需nm/P套驱动电路。对动态扫描显示而言,P越大,驱动电路就越少,成本也就越低,引线也大大减少,更有利于高密度显示屏的制造。在实际使用的LED大屏幕显示器中,很少采用静态显示方式。,2)8051与LED大屏幕显示器的接口例6.3的电路连接方法(见图6.8)是最简便的方法之一,88 LED的16个引脚直接由端口驱动,电路简单,编程采用动态显示方法,设计流程清晰明了。例6.4 修改例6.3程序,使该88 LED交替显示0、1、9。解:(1)题意分析。在例6.3中,显示的是一个固定的图形,程序设计的思路与数码管LED显示基本相同:首先选中88 LED的某一行,然后通过查表指令得到这一行要点亮的状态所对应的码型,并送到相应的端口,延时一定时间(1ms)后,再选中下一行、送该行的显示状态码型、延时如此循环直至8行均显示一遍,时间约为8ms,然后再从第一行开始循环,利用人眼的视觉暂留作用,在88大屏幕可看到稳定的图形。,本题目要求交替显示0、1、9,在进行程序设计时可以首先参照例6.3的方法,对8行轮流扫描多遍以稳定显示第一个字符“0”。假如一个字符轮流扫描255遍,那么一个字符显示的时间约为2 s;然后再进行下一个字符的显示,此时只需要更改显示的状态码即可,具体实现可通过修改查表地址来完成。如此循环,每个数字显示约2 s的时间,人眼可以看到清楚稳定的显示。根据此想法设计程序流程图如图6.11所示。,图6.11 例6.4的程序流程图,(2)程序设计如下:ROW EQU 30H;行单元地址定义DOT EQU 31HORG 0000H LJMP START ORG 0100HSTART:MOV DPTR,#TABLE;设置表格首地址 MOVR5,#10;设置显示字符数为;10个NEXT_CHAR:MOVR6,#255;设置每个字符显示;的次数为255次ONE_CHAR:MOVROW,#01H;指向第一行 MOVDOT,#00H;00DOT MOVR7,#8;设置扫描行的次数,DOT_CHAR:MOVA,ROW MOVP2,A;行单元的内容送P2口 RL A;A左移 MOV ROW,A;送给行单元,指向下一行 MOVA,DOT;DOTA MOVC A,A+DPTR;查表得该行的显示码型 MOVP0,A;将显示码型送到P0口 LCALL DELAY_1MS;调延时子程序 INC DOT;DOT加1,以便查表格的;下一个数值 DJNZR7,DOT_CHAR;8行扫描完了吗?若没;有完,则继续下一行 DJNZ R6,ONE_CHAR;显示次数到255次?若;未到则继续重复显示,MOV A,DPL;一个字符显示完则更新查表;首地址,DPLA ADDA,#8;A8A MOVDPL,A;ADPL MOV A,DPH;DPHA ADDC A,#0;ACYA MOVDPH,A;ADPH DJNZR5,NEXT_CHAR;10个字符显示完?未;完则开始下一个的扫描 LJMPSTART;全部显示完,则重新开始DELAY_1MS:略,参见例6.3,TABLE:DB 00H,1CH,36H,36H,36H,36H,36H,1CH;“0”的显示字符表格 DB 00H,18H,1CH,18H,18H,18H,18H,18H;“1”的显示字符表格 DB 00H,1EH,30H,30H,1CH,06H,06H,3EH;“2”的显示字符表格 DB 00H,1EH,30H,30H,1CH,30H,30H,1EH;“3”的显示字符表格 DB 00H,30H,38H,34H,32H,7EH,30H,30H;“4”的显示字符表格 DB 00H,1EH,02H,02H,1EH,10H,10H,1EH;“5”的显示字符表格 DB 00H,1CH,06H,1EH,36H,36H,36H,1CH;“6”的显示字符表格,DB 00H,3EH,30H,18H,18H,0CH,0CH,0CH;“7”的显示字符表格 DB 00H,1CH,36H,36H,1CH,36H,36H,1CH;“8”的显示字符表格 DB 00H,1CH,36H,36H,36H,3CH,30H,1CH;“9”的显示字符表格 END实际应用中,由于显示要求的内容丰富,所需显示器件复杂,同时显示屏体与计算机及控制器有一定的距离,因此应尽量减少两者之间控制信号线的数量。信号一般采用串行移动方式传送。由计算机控制器送出的信号只有5个,即时钟PCLK、显示数据DATA、行控制信号HS(串行传送时,仅需一根信号线)、场控制信号VS(串行传送时,仅需一根信号线)以及地线。,图6.12是8051与LED大屏幕显示器接口的一种具体应用。图中,LED显示器为864点阵,由8个88的点阵LED显示块拼装而成。8个块的行线相应地并接在一起,形成8路复用,行控制信号HS由Pl口经行驱动后形成行扫描信号输出(并行传送,8根信号线)。8个块的列控制信号分别经由各74LS164驱动后输出。74LS164为8位串入并出移位寄存器,8个74LS164串接在一起,形成8864位串入并出的移位寄存器,其输出对应64列。显示数据DATA由8051的RXD端输出,时钟PCLK由8051的TXD端输出。RXD发送串行数据,而TXD输出移位时钟,此时串行口工作于方式0,即同步串行移位寄存器状态。,显示屏体的工作以行扫描方式进行,扫描显示过程是每一次显示一行64个LED点,显示时间称为行周期。8行扫描显示完成后开始新一轮扫描,这段时间称为场周期。显示数据DATA与时钟PCLK配合传送某一行(64个点)的显示信息。在一行周期内有64个PCLK脉冲信号,它将一行的显示信息串行移入8个串入并出移位寄存器74LS164中。在行结束时,由行信号HS控制将显示信息存入对应锁存电路并开始新一行显示,直到下一行显示数据开始锁入为止,由此实现行扫描。因图6.12所示LED显示屏只有8行,所以无需采用场扫描控制信号VS,且行、场扫描的控制可通过单片机对P1口编程实现。图中的锁存与驱动电路可由74LS273、74LS373或74LS374等集成电路实现。,图6.12 8051与LED大屏幕显示器的接口,3)LED大屏幕显示的编程要点由上述内容可知,LED大屏幕显示一般都采用动态显示,所以要实现稳定显示,需遵循动态扫描的规律。现将编程要点叙述如下:(1)从串行口输出8字节共64位的数据到74LS 164中,形成64列的列驱动信号。(2)从P1口输出相应的行扫描信号,与列信号在一起,点亮行中有关的点。(3)延时l2 ms。此时间受50 Hz闪烁频率的限制,不能太大,应保证扫描所有8行(即一帧数据)所用时间之和在20 ms以内。,(4)从串行口输出下一组数据后,从P1口输出下一行扫描信号并延时l2 ms,完成下一行的显示。(5)重复上述操作,直到所有8行全扫描显示一次,即完成一帧数据的显示。(6)重新扫描显示的第一行,开始下一帧数据的扫描显示工作。如此不断地循环,即可完成相应的画面显示。(7)要更新画面时,只需将新画面的点阵数据输入到显示缓冲区中即可。(8)通过控制画面的显示,可以形成多种显示方式,如左平移、右平移、开幕式、合幕式、上移、下移及动画等。,4)LED大屏幕显示的扩展如将图6.12显示屏扩展为32032点阵的显示屏,则水平方向应有40个88 LED点阵,垂直方向应有4个88 LED点阵,整个显示屏由404=160个88 LED点阵组成。由于一行的 LED点数太多,可将行驱动分成 5组驱动,每一组驱动8864个LED点。由于每一场对应的行数达32行,因此如仍采用8路复用,则垂直方向应分成4组驱动,每一组驱动8行LED点。此时必须引入场扫描控制信号VS,如采用并行传送方式,则需占用单片机的4根I/O口线(加译码器只需2根)。场扫描控制信号VS与相应的行驱动电路配合,使行扫描信号分时送入垂直方向的4组LED点阵,以此实现场扫描。,上述大屏幕LED显示的行、场控制信号的传输均采用并行方式,扫描驱动电路相对简单,但其占用单片机的资源较多(需1012根I/O口线),且信号传输线多,成本高,抗干扰性能差,不适合远距离控制。因此在实用电路中,常采用串行传输方式。采用串行传输只需占用2根I/O口线,相应的信号传输线也减少,成本降低,抗干扰性能增强。不足之处是扫描驱动需增加8位移位寄存器(可采用74LS164),硬件电路相对复杂一些。以上简要地介绍了大屏幕LED显示器的工作原理,而实际的大屏幕显示器比这要复杂得多,要考虑很多问题,如采用多少路复用为好,选择什么样的驱动器,当显示像素很多时是否要采用DMA传输等。但不论LED大屏幕显示器的实际电路如何复杂,其显示原理是相同的,即用动态扫描显示。限于篇幅,本书不再赘述,读者如有兴趣,可参阅有关参考资料。,6.1.4 LCD液晶显示器和接口1LCD显示器简介LCD显示器由于类型、用途不同,因而其性能、结构也不可能完全相同,但其基本形态和结构却是大同小异的。1)LCD显示器的结构液晶显示器的结构图如图6.13所示。不同类型的液晶显示器的组成可能会有所不同,但是所有液晶显示器都可以认为是由两片光刻有透明导电电极的基板夹持一个液晶层,经封接而成的一个偏平盒(有时在外表面还可能贴装有偏振片)。,图6.13 液晶显示器的结构图,现将构成液晶显示器的三大基本部件和特点介绍如下:(1)玻璃基板。这是一种表面极其平整的浮法生产薄玻璃片。表面蒸镀有一层In2O3或SnO2透明导电层,即ITO膜层。经光刻加工制成透明导电图形。这些图形由像素图形和外引线图形组成。因此,外引线不能进行传统的锡焊,只能通过导电橡胶条或导电胶带等进行连接。如果划伤、割断或腐蚀,则会造成器件报废。(2)液晶。液晶材料是液晶显示器的主体,不同显示器件所用液晶材料不同。液晶材料大都是由几种乃至十几种单体液晶材料混合而成的。每种液晶材料都有自己固定的清亮点TL和结晶点TS,因此也要求每种液晶显示器必须使用和保存在TSTL之间的一定温度范围内。如果使用或保存温度过低,则结晶会破坏液晶显示器的定向层;而温度过高,液晶会失去液晶态,也就失去了液晶显示器的功能。,(3)偏振片。偏振片又称偏光片,由塑料膜材料制成,其表面涂有一层光学压敏胶,可以贴在液晶盒的表面。前偏振片表面还有一层保护膜,使用时应揭去。偏振片怕高温、高湿,在高温、高湿环境下会使其退偏振或起泡。2)LCD显示器的特点液晶显示器有以下几个显著特点:(1)低压微功耗。其工作电压只有35 V,工作电流只有几个微安每平方厘米。因此它成为便携式和手持式仪器仪表的显示屏幕。(2)平板型结构。LCD显示器内有由两片平行玻璃组成的夹层盒,面积可大可小,且适合于大批量生产,安装时占用体积小,减小了设备体积。,(3)被动显示。液晶本身不发光,而是靠调制外界光进行显示,因此适合人的视觉习惯,不会使人眼睛疲劳。(4)显示信息量大。LCD显示器的像素可以做到很小,相同面积上可容纳更多信息。(5)易于彩色化。(6)没有电磁辐射。LCD显示器在显示期间不会产生电磁辐射,对环境无污染,有利于人体健康。(7)寿命长。LCD器件本身无老化问题,寿命极长。,2LCD显示器分类 通常可将LCD分为笔段型、字符型和点阵图形型。(1)笔段型。笔段型以长条状显示像素组成一位显示。该类型主要用于数字显示,也可用于显示西文字母或某些字符。这种段型显示通常有6段、7段、8段、9段、14段和16段等,在形状上总是围绕数字“8”的结构而变化,其中以7段显示最常用,广泛用于电子表、数字仪表、笔记本计算机中。(2)字符型。字符型液晶显示模块是专门用来显示字母、数字、符号等的点阵型液晶显示模块。在电极图形设计上它是由若干个58或511点阵组成的,每一个点阵显示一个

    注意事项

    本文(单片机与显示器.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开