欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机原理及接口技术(C51编程)第5章-与显示器、开关、键盘接口设计课件.ppt

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

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

    单片机原理及接口技术(C51编程)第5章-与显示器、开关、键盘接口设计课件.ppt

    第第5章章单片机的开关检测、键盘输入单片机的开关检测、键盘输入与显示的接口设计与显示的接口设计 1单片机系统显示及开关检测、键盘输入是其基本功能。本章介绍单片机单片机系统显示及开关检测、键盘输入是其基本功能。本章介绍单片机与显示器件、开关及键盘的接口设计与软件编程。与显示器件、开关及键盘的接口设计与软件编程。5.1单片机控制发光二极管显示单片机控制发光二极管显示发光二极管常用来指示系统工作状态,制作节日彩灯、广告牌匾等。发光二极管常用来指示系统工作状态,制作节日彩灯、广告牌匾等。大部分发光二极管大部分发光二极管工作电流工作电流15mA之间,其之间,其内阻为内阻为20100。电流越大,。电流越大,亮度也越高。亮度也越高。为保证发光二极管正常工作,同时减少功耗,为保证发光二极管正常工作,同时减少功耗,限流电阻选择十分重要限流电阻选择十分重要,若供电电压为若供电电压为+5V,则,则限流电阻可选限流电阻可选13k。25.1.1 5.1.1 单片机与发光二极管的连接单片机与发光二极管的连接 第第2 2章已介绍,章已介绍,P0P0口口作通用作通用I/OI/O用,由于漏极开路,需外接上拉电阻。而用,由于漏极开路,需外接上拉电阻。而P1P1P3P3口内部有口内部有30k30k左右上拉电阻左右上拉电阻。下面讨论下面讨论P1P1P3P3口如何与口如何与LEDLED发光二极管驱动连接问题。发光二极管驱动连接问题。单片机并行端口单片机并行端口P1P1P3P3直接驱动发光二极管,电路见直接驱动发光二极管,电路见图图5-15-1。与与P1、P2、P3口相比,口相比,P0口每位可驱动口每位可驱动8个个LSTTL输入输入,而,而P1P3口每一口每一位驱动能力,位驱动能力,只有只有P0口一半口一半。图图5-1发光二极管与单片机并行口的连接发光二极管与单片机并行口的连接5.1.2 I/O5.1.2 I/O端口的编程举例端口的编程举例 对对I/OI/O端口编程控制时,要对端口编程控制时,要对I/OI/O端口特殊功能寄存器声明,在端口特殊功能寄存器声明,在C51C51的编译的编译器中,这项声明器中,这项声明包含在头文件包含在头文件reg51.hreg51.h中,编程时,可通过中,编程时,可通过预处理命令预处理命令#include#include,把这个头文件包含进去。下面通过案例介绍如何编程,把这个头文件包含进去。下面通过案例介绍如何编程对发光二极管输出控制。对发光二极管输出控制。6 【例例5-1】制作流水灯,原理电路见制作流水灯,原理电路见图图5-2,8个发光二极管个发光二极管LED0LED7经限流电阻分别接至经限流电阻分别接至P1口的口的P1.0P1.7引脚上,阳极共同接高电平。引脚上,阳极共同接高电平。编写程序来控制发光二极管由上至下的反复循环流水点亮,每次点亮一个编写程序来控制发光二极管由上至下的反复循环流水点亮,每次点亮一个发光二极管。发光二极管。参考程序:参考程序:#include#include#include#include/包含包含移位函数移位函数_crol_()_crol_()的头文件的头文件#define uchar unsigned char#define uchar unsigned char#define uint unsigned int#define uint unsigned int void delay(uint i)void delay(uint i)/延时函数延时函数 uchar t;uchar t;while(i-)while(i-)78图图5-2单片机控制的流水灯单片机控制的流水灯程序说明:程序说明:(1 1)while(1)while(1)两种用法:两种用法:“while(1);”while(1);”:while(1)while(1)后有分号,是使程序停留在这指令上;后有分号,是使程序停留在这指令上;“while(1);”while(1);”:反复循环执行大括号内程序段,本例用法,即控反复循环执行大括号内程序段,本例用法,即控制流水灯反复循环显示。制流水灯反复循环显示。(2 2)C51C51函数库中的循环移位函数:循环移位函数包括:函数库中的循环移位函数:循环移位函数包括:n 循环左移函数循环左移函数“_crol_”_crol_”n 循环右移函数循环右移函数“_cror_”_cror_”。本例用循环左移本例用循环左移“_crol_(P1,1)”_crol_(P1,1)”,函数。括号第,函数。括号第1 1个参数为个参数为循环左移循环左移对象对象,即对,即对P1P1中的内容循环左移;第中的内容循环左移;第2 2个参数为个参数为左移位数左移位数,即左移,即左移1 1位。编位。编程中一定要把含有移位函数的头文件程中一定要把含有移位函数的头文件intrins.hintrins.h包含在内,例如第包含在内,例如第2 2行行“#include”#include”。10在在【例例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。基础上,编写控制发光二极管反复循环点亮的流水灯。【例例5-2】电路见电路见图图5-2,制作,制作由上至下由上至下再再由下至上由下至上反复循环点亮显示的反复循环点亮显示的流水灯,流水灯,3 3种方法种方法实现。实现。(1 1)数组的字节操作实现)数组的字节操作实现建立建立1 1个字符型数组个字符型数组,将控制,将控制8个个LED显示的显示的8位数据作为位数据作为数组元素数组元素,依,依次送次送P1口。参考程序:口。参考程序:#include#defineucharunsignedcharuchartab=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe;/*前前8个数据为个数据为左移点亮左移点亮数据数据,后,后8个为个为右移点亮数据右移点亮数据*/(2)移位运算符实现)移位运算符实现使用使用移位运算符移位运算符“”、“”,把送,把送P1口显示控制数据进行移位,口显示控制数据进行移位,从而实现发光二极管依次点亮。从而实现发光二极管依次点亮。参考程序:参考程序:#include#defineucharunsignedcharvoiddelay()uchari,j;for(i=0;i255;i+)for(j=0;j”、“”与使用循环左移函数与使用循环左移函数“_crol_”和循环右移函数和循环右移函数“_cror_”区别区别。左移移位运算。左移移位运算“”是将低位丢弃,高位补是将低位丢弃,高位补0。而循。而循环左移函数环左移函数“_crol_”是将移出的高位再补到低位,即循环移位;同理循是将移出的高位再补到低位,即循环移位;同理循环右移函数环右移函数“_cror_”是将移出的低位再补到高位。是将移出的低位再补到高位。(3)用循环左、右移位函数实现)用循环左、右移位函数实现使用使用C51提供的库函数,即循环左移提供的库函数,即循环左移n位函数和循环右移位函数和循环右移n位函数,控制位函数,控制发光二极管点亮。参考程序:发光二极管点亮。参考程序:#include#include/包含循环左、右移位函数的头文件包含循环左、右移位函数的头文件#defineucharunsignedchar15voiddelay()uchari,j;for(i=0;i255;i+)for(j=0;j255;j+);voidmain()/主函数主函数uchari,temp;while(1)temp=0 xfe;/初值为初值为for(i=0;i7;i+)5.2 5.2 开关状态检测开关状态检测读入读入I/O端口电平,即可检测开关处于端口电平,即可检测开关处于闭合状态闭合状态还是还是打开状态打开状态。5.2.1开关检测案例开关检测案例1用用I/O端口来进行开关状态检测,开关一端接到端口来进行开关状态检测,开关一端接到I/O端口引脚上,并通过上端口引脚上,并通过上拉电阻接拉电阻接+5V上,开关另一端接地,当开关打开时,上,开关另一端接地,当开关打开时,I/O引脚为高电平,当开引脚为高电平,当开关闭合时,关闭合时,I/O引脚为低电平。引脚为低电平。18【例例5-3】如如图图5-3,单片机的,单片机的P1.4P1.7接接4个开关个开关S0S3,P1.0P1.3接接4个发光二极管个发光二极管LED0LED3。编程将编程将P1.4P1.7上的上的4个开关状态反映在个开关状态反映在P1.0P1.3引脚控制的引脚控制的4个个发光二极管上,开关闭合,对应发光二极管点亮。例如发光二极管上,开关闭合,对应发光二极管点亮。例如P1.4引脚上开关引脚上开关S0状态,由状态,由P1.0脚上脚上LED0显示,显示,P1.6引脚上开关引脚上开关S2状态,由状态,由P1.2脚的脚的LED2显示。显示。1920图图5-3开关、开关、LED发光二极管与发光二极管与P1口的连接口的连接参考程序如下:参考程序如下:#include#include#define uchar unsigned char#define uchar unsigned charvoid delay()void delay()/延时函数延时函数 uchar i,j;uchar i,j;for(i=0;i255;i+)for(i=0;i255;i+)for(j=0;j255;j+);for(j=0;j4;temp=temp4;/temp /temp内容右移内容右移4 4位,位,P1P1口高口高4 4位移至低位移至低4 4位位 21P1=temp;P1=temp;/temp/temp中的数据送中的数据送P1P1口输出口输出delay(delay(););5.2.2开关检测案例开关检测案例2【例例5-4】如图如图5-4,P1.0和和P1.1引脚接有两只开关引脚接有两只开关S0和和S1,两引脚上的高,两引脚上的高低电平共低电平共4种组合,种组合,4种组合分别点亮种组合分别点亮P2.0P2.3引脚控制的引脚控制的4只只LED,即,即S0、S1均闭合,均闭合,LED0亮,其余灭;亮,其余灭;S1闭合、闭合、S0打开,打开,LED1亮,其余灭;亮,其余灭;S0闭合、闭合、S1打开,打开,LED2亮,其余灭;亮,其余灭;S0、S1均打开,均打开,LED3亮,其余灭。编程亮,其余灭。编程实现此功能。实现此功能。参考程序:参考程序:#include/包含头文件包含头文件reg51.h void main()/主函数主函数main()char state;do P1=0 xff;/P1口为输入口为输入 state=P1;/读入读入P1口的状态,送入口的状态,送入state state=state&0 x03;/屏蔽屏蔽P1口的高口的高6位位 switch(state)/判判P1口低口低2位开关状态位开关状态 case 0:P2=0 x01;break;/P1.1、P1.0=00,点亮点亮P2.0脚脚LED case 1:P2=0 x02;break;/P1.1、P1.0=01,点亮点亮P2.1脚脚LED case 2:P2=0 x04;break;/P1.1、P1.0=10,点亮点亮P2.2脚脚LED case 3:P2=0 x08;break;/P1.1、P1.0=11,点亮点亮P2.3脚脚LED while(1);24程序段中用到循环结构控制语句程序段中用到循环结构控制语句do-whiledo-while以及以及switch-caseswitch-case语句。语句。5.3单片机控制单片机控制LED数码管的显示数码管的显示5.3.1LED数码管显示原理数码管显示原理LED数码管:数码管:“8”字型,字型,7段段(不包括小数点)或(不包括小数点)或8段段(包括小数点),(包括小数点),每段对应一个发光二极管,共阳极和共阴极两种,见每段对应一个发光二极管,共阳极和共阴极两种,见图图5-5。共阳极共阳极数码管数码管的阳极连接在一起,接的阳极连接在一起,接+5V;共阴极共阴极数码管阴极连在一起接地。数码管阴极连在一起接地。对于对于共阴极共阴极数码管,当某发光二极管阳极为高电平时,发光二极管点亮,数码管,当某发光二极管阳极为高电平时,发光二极管点亮,相应段被显示。同样,相应段被显示。同样,共阳极共阳极数码管阳极连在一起,公共阳极接数码管阳极连在一起,公共阳极接+5V,当某,当某个发光二极管阴极接低电平时,该发光二极管被点亮,相应段被显示。个发光二极管阴极接低电平时,该发光二极管被点亮,相应段被显示。26图图5-58段段LED数码管结构及外形数码管结构及外形28 如要在数码管显示某字符,只需将该字符字型码加到各段上即可。如要在数码管显示某字符,只需将该字符字型码加到各段上即可。例如某存储单元中的数为例如某存储单元中的数为“02H”02H”,想在共阳极数码管上显示想在共阳极数码管上显示“2”2”,需,需要把要把“2”2”的字型码的字型码“A4H”A4H”加到数码管各段。加到数码管各段。将欲显示字符的字型码作成一将欲显示字符的字型码作成一个表(数组),个表(数组),根据显示字符从表中查找到相应字型码,然后把该字型码输根据显示字符从表中查找到相应字型码,然后把该字型码输出数码管各个段上,同时数码管的公共端接出数码管各个段上,同时数码管的公共端接+5V+5V,此时在数码管上显示字符,此时在数码管上显示字符“2”2”。下面介绍单片机如何控制下面介绍单片机如何控制LEDLED数码管显示字符。数码管显示字符。【例例5-55-5】利用单片机控制一个利用单片机控制一个8 8段段LEDLED数码管先循环显示数码管先循环显示单个偶数:单个偶数:0 0、2 2、4 4、6 6、8 8,再显示单个奇数再显示单个奇数:1 1、3 3、5 5、7 7、9 9,如此反复循环显示。如此反复循环显示。本例原理电路及仿真结果,见本例原理电路及仿真结果,见图图5-65-6。参考程序如下:参考程序如下:#includereg51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedint#defineoutP0ucharcodeseg=0 xc0,0 xa4,0 x99,0 x82,0 x80,0 xf9,0 xb0,0 x92,0 xf8,0 x90,0 x01;/共阳极段码表共阳极段码表voiddelayms(uint);voidmain(void)uchari;while(1)out=segi;delayms(900);i+;if(segi=0 x01)i=0;/如段码为如段码为0 x01,表明一个循环显示已结束,表明一个循环显示已结束31voiddelayms(uintj)/延时函数延时函数uchari;for(;j0;j-)i=250;while(-i);i=249;while(-i);说明:说明:语句语句“if(segi=0 x01)i=0;”含义:如果欲送出的数组元素含义:如果欲送出的数组元素为为0 x01(数字(数字“9”段码段码0 x90的下一个元素,即结束码),表明一个循环的下一个元素,即结束码),表明一个循环显示已结束,则显示已结束,则i=0,则重新开始循环显示,从段码数组表的第一个则重新开始循环显示,从段码数组表的第一个32元素元素seg0,即段码,即段码0 xc0(数字(数字0)重新开始显示。)重新开始显示。5.3.2 LED5.3.2 LED数码管的数码管的静态显示静态显示与与动态显示动态显示两种显示方式:两种显示方式:静态显示静态显示和和动态显示动态显示。1.静态显示方式静态显示方式无论多少位无论多少位LED数码管,都数码管,都同时处于显示状态同时处于显示状态。多位多位LED数码管工作于静态显示方式时,各位共阴极(或共阳极)连接在数码管工作于静态显示方式时,各位共阴极(或共阳极)连接在一起并接地(或接一起并接地(或接+5V);每位数码管段码线();每位数码管段码线(adp)分别与一个)分别与一个8位位I/O口锁存器输出相连。如果送往各个口锁存器输出相连。如果送往各个LED数码管所显示字符的段码一经确定,数码管所显示字符的段码一经确定,则相应则相应I/O口锁存器口锁存器锁存的段码输出将维持不变,直到送入下一个显示字符段码。静态显示方锁存的段码输出将维持不变,直到送入下一个显示字符段码。静态显示方式式显示无闪烁,亮度较高显示无闪烁,亮度较高,软件控制较易。,软件控制较易。图图5-7为为4位位LED数码管静态显示电路,各数码管可独立显示,只要向数码管静态显示电路,各数码管可独立显示,只要向控制各位控制各位I/O口锁存器送相应显示段码,该位就能保持相应的显示字符。口锁存器送相应显示段码,该位就能保持相应的显示字符。这样在同一时间,每一位显示的字符可各不相同。静态显示方式这样在同一时间,每一位显示的字符可各不相同。静态显示方式占用占用I/OI/O口端口线较多口端口线较多。图。图5-7电路,电路,要占用要占用4个个8位位I/O口(或锁存器)。口(或锁存器)。如数码如数码管数目增多,则需增加管数目增多,则需增加I/O口数目。口数目。34图图5-74位位LED静态显示的示意图静态显示的示意图【例例5-6】单片机控制单片机控制2只数码管,只数码管,静态显示静态显示2个数字个数字“27”。原理电原理电路见路见图图5-8。单片机用单片机用P0口与口与P1口口,分别控制加到两个数码管,分别控制加到两个数码管DS0与与DS1的的段码段码,而共阳极数码管而共阳极数码管DS0与与DS1的公共端(公共阳极端)直接接至的公共端(公共阳极端)直接接至+5V,因,因此数码管此数码管DS0与与DS1始终处于导通状态。利用始终处于导通状态。利用P0口与口与P1口带有的锁存功口带有的锁存功能,能,只需向单片机只需向单片机P0口与口与P1口分别写入相应的显示字符口分别写入相应的显示字符“2”和和“7”的的段码即可段码即可。由于一个数码管就占用一个由于一个数码管就占用一个I/O端口。如果数码管数目增多,则需增端口。如果数码管数目增多,则需增加加I/O口,但软件编程要简单的多。口,但软件编程要简单的多。36图图5-82位数码管静态显示的原理电路与仿真位数码管静态显示的原理电路与仿真参考程序如下:参考程序如下:#include#include /包含包含80518051单片机寄存器定义的头文件单片机寄存器定义的头文件void main(void)void main(void)P0=0 xa4P0=0 xa4;/将数字将数字22的段码的段码送送P0P0口口 P1=0 xf8;P1=0 xf8;/将数字将数字77的段码的段码送送P1P1口口 while(1)while(1)/无限循环无限循环 ;2.2.动态显示方式动态显示方式 显示位数较多时,静态显示所占的显示位数较多时,静态显示所占的I/OI/O口多,这时常采用动态显示。为节口多,这时常采用动态显示。为节省省I/OI/O口,通常将所有显示器口,通常将所有显示器段码线相应段并联段码线相应段并联在一起,由一个在一起,由一个8 8位位I/OI/O口控口控制,各显示位公共端分别由另一单独制,各显示位公共端分别由另一单独I/OI/O口线控制。口线控制。3839图图5-94位位LED数码管动态显示示意图数码管动态显示示意图图图5-9:4位位8段段LED动动态态显显示示器器电电路路示示意意图图。其其中中单单片片机机发发出出的的段段码码占用占用1个个8位位I/O(1)端口,而位选控制使用)端口,而位选控制使用I/O(2)端口中)端口中4位口线。位口线。动动态态显显示示就就是是单单片片机机向向段段码码线线输输出出欲欲显显示示字字符符的的段段码码。每每一一时时刻刻,只只有有1位位位位选选线线有有效效,即即选选中中某某一一位位显显示示,其其他他各各位位位位选选线线都都无无效效。每每隔隔一一定定时时间间逐逐位位轮轮流流点点亮亮各各数数码码管管(扫扫描描方方式式),由由于于数数码码管管余余辉辉和和人人眼眼的的“视视觉觉暂暂留留”作作用用,只只要要控控制制好好每每位位数数码码管管显显示示时时间间和和间间隔隔,则则可可造造成成“多多位同时亮位同时亮”的假象,达到同时显示效果。的假象,达到同时显示效果。各各位位数数码码管管轮轮流流点点亮亮的的时时间间间间隔隔(扫扫描描间间隔隔)应应根根据据实实际际情情况况定定。发发光二极管从导通到发光有一定的延时,如果点亮时间太短,发光太弱,光二极管从导通到发光有一定的延时,如果点亮时间太短,发光太弱,40人人眼眼无无法法看看清清;时时间间太太长长,产产生生闪闪烁烁现现象象,且且此此时时间间越越长长,占占用用单单片片机机时时间间也也越越多多。另另外外,显显示示位位数数增增多多,也也将将占占用用单单片片机机大大量量时时间间,因因此此动动态态显显示示实实质是以执行程序时间来质是以执行程序时间来换取换取I/O端口减少端口减少。下面是动态显示实例。下面是动态显示实例。【例例5-7】8只只数数码码管管,分分别别滚滚动动显显示示单单个个数数字字18。程程序序运运行行后后,单单片片机机控控制制左左边边第第1个个数数码码管管显显示示1,其其他他不不显显示示,延延时时之之后后,控控制制左左边边第第2个个数数码码管管显显示示1,其其他他不不显显示示,直直至至第第8个个数数码码管管显显示示8,其其他他不不显显示示,反反复复循循环环上上述述过过程。程。动动态态显显示示电电路路见见图图5-10,P0口口输输出出段段码码,P2口口输输出出扫扫描描的的位位控控码码,通通过过由由8个个NPN晶晶体体管管的的位位驱驱动动电电路路对对8个个数数码码管管位位控控扫扫描描。即即使使扫扫描描速速度度加加快快,由由于于是是虚虚拟拟仿仿真真,数数码码管管的的余余辉辉也也不不能能像像实实际际电电路路那那样样体体现现出出来来。如如对对本本例例实实际际硬硬件件显显示示电电路路进进行行快快速速扫扫描描,由由于于数数码码管管余余辉辉和和人人眼眼“视视觉觉暂暂留留”作作用用,只只要要控控制制好好每每位位数数码码管管显显示示的的时时间间和和间间隔隔,则则可可造造成成“多多位位同同时亮时亮”假象,达到同时显示效果。假象,达到同时显示效果。但但虚虚拟拟仿仿真真做做不不到到这这一一点点。仿仿真真运运行行下下,只只能能是是一一位位一一位位点点亮亮显显示示,不不能能看看到到同同时时显显示示效效果果,但但本本例例使使我我们们了了解解动动态态扫扫描描显显示示实实际际过过程程。如如采采用实际硬件电路,用软件控制快速扫描,可看到用实际硬件电路,用软件控制快速扫描,可看到“多位同时点亮多位同时点亮”效果。效果。42图图5-108只数码管分别滚动显示单个数字只数码管分别滚动显示单个数字18参考程序如下:参考程序如下:#include#include#defineucharunsignedchar#defineuintunsignedintucharcodedis_code=0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 xc0;/共阳数码管段码表共阳数码管段码表voiddelay(uintt)/延时函数延时函数uchari;while(t-)for(i=0;i200;i+);voidmain()uchari,j=0 x80;44while(1)for(i=0;i8;i+)j=_crol_(j,1);/_crol_(j,1)为将对象为将对象j循环左移循环左移1位位P0=dis_codei;/P0口输出段码口输出段码P2=j;/P2口输出位控码口输出位控码delay(180);/延时,控制每位显示的时间延时,控制每位显示的时间5.4 5.4 单片机控制单片机控制LEDLED点阵显示器显示点阵显示器显示LED点阵显示器应用非常广泛,在许多公共场合,如商场、银行、点阵显示器应用非常广泛,在许多公共场合,如商场、银行、45车站、机场、医院随处可见。不仅能显示文字、图形,还能播放动画、图像、车站、机场、医院随处可见。不仅能显示文字、图形,还能播放动画、图像、视频等信号。视频等信号。LED点阵显示器分为点阵显示器分为图文显示器图文显示器和和视频显示器视频显示器,有单色显示,还有彩色显,有单色显示,还有彩色显示。下面仅介绍单片机示。下面仅介绍单片机如何来控制单色如何来控制单色LED点阵显示器点阵显示器的显示。的显示。5.4.1 LED5.4.1 LED点阵显示器结构与显示原理点阵显示器结构与显示原理由若干个发光二极管按矩阵方式排列而成。阵列点数可分为由若干个发光二极管按矩阵方式排列而成。阵列点数可分为57、58、68、88点阵点阵;按发光颜色可分为;按发光颜色可分为单色、双色、三色单色、双色、三色;按极性排列可分为;按极性排列可分为共共阴极阴极和和共阳极共阳极。1.LED1.LED点阵结构点阵结构以以88LED点阵显示器为例,外形见点阵显示器为例,外形见图图5-11,内部结构见,内部结构见图图5-12,由,由64个发光二极管组成,且每个发光二极管是处于个发光二极管组成,且每个发光二极管是处于行线行线(R0R7)和和列线列线(C0C7)之间交叉点上。之间交叉点上。2.LED2.LED点阵显示原理点阵显示原理显示的字符显示的字符由一个个点亮的由一个个点亮的LED所构成。所构成。由由图图5-125-12点亮点阵中一个发光二极管条件点亮点阵中一个发光二极管条件:对应行为高电平,对应列为:对应行为高电平,对应列为低电平。如在很短时间内依次点亮很多个发光二极管,低电平。如在很短时间内依次点亮很多个发光二极管,LED点阵就可显示一点阵就可显示一个稳定字符、数字或其他图形。控制个稳定字符、数字或其他图形。控制LED点阵显示器显示,实质就是点阵显示器显示,实质就是图图5-115-11 88 LED 88 LED点阵显示器外形点阵显示器外形 图图5-125-12 88LED 88LED点阵显示器(共阴极)的结构点阵显示器(共阴极)的结构控制加到行线和列线上编码,控制点亮某些发光二极管(点),从而显示出控制加到行线和列线上编码,控制点亮某些发光二极管(点),从而显示出由不同发光点组成的各种字符。由不同发光点组成的各种字符。1616LED点阵显示器的结构与点阵显示器的结构与88LED点阵显示模块内部结构及显示点阵显示模块内部结构及显示原理是类似的,只不过行和列均为原理是类似的,只不过行和列均为16。1616是由是由4个个88LED点阵组成,点阵组成,且每个发光二极管也是放置在行线和列线的交叉点上,当对应某一列置且每个发光二极管也是放置在行线和列线的交叉点上,当对应某一列置0电电平,某一行置平,某一行置1电平时,该发光二极管点亮。电平时,该发光二极管点亮。下面以显示字符下面以显示字符“子子”为例,见为例,见图图5-13。图图5-131616LED点阵显示器显示字符点阵显示器显示字符“子子”显示过程如下:显示过程如下:先先给给LED点点阵阵的的第第1行行送送高高电电平平(行行线线高高电电平平有有效效),同同时时给给所所有有列列线线送送高电平(列线低电平有效),从而第高电平(列线低电平有效),从而第1行发光二极管全灭;行发光二极管全灭;延延时时一一段段时时间间后后,再再给给第第2行行送送高高电电平平,同同时时给给所所有有列列线线送送“1100000000001111”,列列线线为为0的的发发光光二二极极管管点点亮亮,从从而而点点亮亮10个个发发光光二二极极管管,显显示示出出汉字汉字“子子”的第一横;的第一横;延延时时一一段段时时间间后后,再再给给第第3行行送送高高电电平平,同同时时加加到到列列线线的的编编码码为为“1111111111011111”,点亮,点亮1个发光二极管;个发光二极管;延延时时一一段段时时间间后后,再再给给第第16行行送送高高电电平平,同同时时给给列列线线送送“1111110111111111”,显显示示出出汉汉字字“子子”的的最最下下面面的的一一行行,点点亮亮1个个发发光光二二极极管管。然然后后再再重重新循环上述操作,利用人眼视觉暂留效应,一个稳定字符新循环上述操作,利用人眼视觉暂留效应,一个稳定字符“子子”显示出显示出来,见来,见图图5-13。5.4.2控制控制1616LED点阵显示屏的案例点阵显示屏的案例单片机控制单片机控制1616点阵显示屏显示字符案例。点阵显示屏显示字符案例。【例例5-8】如如图图5-14,利用单片机及,利用单片机及74LS154(4-16译码器)、译码器)、74LS07、1616LED点阵显示屏来实现字符显示,编写程序,循环显示字符点阵显示屏来实现字符显示,编写程序,循环显示字符“电子电子技术技术”。图图中中1616LED点点阵阵显显示示屏屏16行行行行线线R0R15电电平平,由由P1口口低低4位位经经4-16译译码码器器74HC154的的16条条译译码码输输出出线线L0L15经经驱驱动动后后的的输输出出来来控控制制。16列列列列线线C0C15的的电电平平由由P0口口和和P2口口控控制制。剩剩下下问问题题是是如如何何确确定定显显示示字字符符的的点点阵阵编码编码,以及控制好每一屏逐行显示的扫描速度(刷新频率)。,以及控制好每一屏逐行显示的扫描速度(刷新频率)。图图5-145-14 控制控制1616LED1616LED点阵显示器(共阴极)显示字符点阵显示器(共阴极)显示字符 参考程序如下:参考程序如下:#include#defineucharunsignedchar#defineuintunsignedint#defineout0P0#defineout2P2#defineout1P1voiddelay(uintj)/延时函数延时函数uchari=250;for(;j0;j-)while(-i);i=100;ucharcodestring=/汉字汉字“电电”1616点阵列码点阵列码0 x7F,0 xFF,0 x7F,0 xFF,0 x7F,0 xFF,0 x03,0 xE0,0 x7B,0 xEF,0 x7B,0 xEF,0 x03,0 xE0,0 x7B,0 xEF,0 x7B,0 xEF,0 x7B,0 xEF,0 x03,0 xE0,0 x7B,0 xEF,0 x7F,0 xBF,0 x7F,0 xBF,0 xFF,0 x00,0 xFF,0 xFF/汉字汉字“子子”1616点阵列码点阵列码0 xFF,0 xFF,0 x03,0 xF0,0 xFF,0 xFB,0 xFF,0 xFD,0 xFF,0 xFE,0 x7F,0 xFF,0 x7F,0 xFF,0 x7F,0 xDF,0 x00,0 x80,0 x7F,0 xFF,0 x7F,0 xFF,0 x7F,0 xFF,0 x7F,0 xFF,0 x7F,0 xFF,0 x5F,0 xFF,0 xBF,0 xFF/汉字汉字“技技”1616点阵列码点阵列码0 xF7,0 xFB,0 xF7,0 xFB,0 xF7,0 xFB,0 x40,0 x80,0 xF7,0 xFB,0 xD7,0 xFB,0 x67,0 xC0,0 x73,0 xEF,0 xF4,0 xEE,0 xF7,0 xF6,0 xF7,0 xF9,0 xF7,0 xF9,0 xF7,0 xF6,0 x77,0 x8F,0 x95,0 xDF,0 xFB,0 xFF/汉字汉字“术术”的的1616点阵的列码点阵的列码0 x7F,0 xFF,0 x7F,0 xFB,0 x7F,0 xF7,0 x7F,0 xFF,0 x00,0 x80,0 x7F,0 xFF,0 x3F,0 xFE,0 x5F,0 xFD,0 x5F,0 xFB,0 x6F,0 xF7,0 x77,0 xE7,0 x7B,0 x8F,0 x7C,0 xDF,0 x7F,0 xFF,0 x7F,0 xFF,0 xFF,0 xFF,;voidmain()uchari,j,n;while(1)for(j=0;j4;j+)/共显示共显示4个汉字个汉字for(n=0;n40;n+)/每个汉字整屏扫描每个汉字整屏扫描40次次for(i=0;i16;i+)/逐行扫描逐行扫描16行行out1=i%16;/输出行码,输出行码,out0=stringi*2+j*32;/输出列码到输出列码到C0C7,逐行扫描,逐行扫描out2=stringi*2+1+j*32;/输出列码到输出列码到C8C15,逐行扫描,逐行扫描delay(4);/显示并延时一段时间显示并延时一段时间out0=0 xff;/列线列线C0C7为高电平,熄灭发光二极管为高电平,熄灭发光二极管out2=0 xff;/列线列线C8C15为高电平,熄灭发光二极管为高电平,熄灭发光二极管扫描显示时,单片机通过扫描显示时,单片机通过P1口低口低4位经位经4-16译码器译码器74HC154的的16条译码条译码输出线输出线L0L15经驱动后的输出来控制,经驱动后的输出来控制,逐行为高电平逐行为高电平,来进行扫描。由,来进行扫描。由P0口与口与P2口控制列码的输出,从而显示出某行应点亮的发光二极管。口控制列码的输出,从而显示出某行应点亮的发光二极管。以显示汉字以显示汉字“子子”为例,说明显示过程。由上面程序可看出,汉字为例,说明显示过程。由上面程序可看出,汉字“子子”的的前前3行发光二级管的行发光二级管的列码列码为为“0 xFF,0 xFF,0 x03,0 xF0,0 xFF,0 xFB,”第一行第一行列码为:列码为:“0 xff,0 xff”,由,由P0口与口与P2口输出,无点亮的发光二极管。口输出,无点亮的发光二极管。第二行第二行列码为:列码为:“0 x03,0 xf0”,通过,通过P0口与口与P2口输出后,由口输出后,由图图5-13看出,看出,0 x03加到列线加到列线C7C0的二进制编码为的二进制编码为“00000011”,这里要注意加到,这里要注意加到8个个发光二极管上的对应位置。发光二极管上的对应位置。按照按照图图5-12和和图图5-14连线关系,加到从左到右发光二极管应为连线关系,加到从左到右发光二极管应为C0C7的的二进制编码为二进制编码为“11000000”,即最左边的,即最左边的2个发光二极管不亮,其余的个发光二极管不亮,其余的6个发个发光二极管点亮。光二极管点亮。同理,同理,P2口输出的口输出的0 xF0加到列线加到列线C15C8的二进制编码为的二进制编码为“11110000”,即加到,即加到C8C15的二进制编码为的二进制编码为“00001111”,所以第二行的最右,所以第二行的最右边的边的4个发光二极管不亮,如个发光二极管不亮,如图图5-13所示。对应通过所示。对应通过P0口与口与P2口输出加到第口输出加到第3行行16个发光二极管的列码为个发光二极管的列码为“0 xFF,0 xFB,”,对应于从左到右的,对应于从左到右的C0C15的二进制编码为的二进制编码为“1111111111011111”,从而第,从而第3行左边数第行左边数第11个发光二个发光二极管被点亮,其余均熄灭,如极管被点亮,其余均熄灭,如图图5-13所示。其余各行点亮的发光二极管,也所示。其余各行点亮的发光二极管,也是由是由1616点阵的列码来决定。点阵的列码来决定。5.5 5.5 单片机控制液晶显示模块单片机控制液晶显示模块1602 LCD1602 LCD的显示的显示液晶显示器(液晶显示器(LiquidCrystalDisplay,LCD)具有省电、体积小、抗)具有省电、体积小、抗干扰能力强等优点,干扰能力强等优点,LCD显示器分为显示器分为字段型、字符型字段型、字符型和和点阵图形型点阵图形型。(1)字段型)字段型。以长条状组成字符显示,主要用于数字显示,也可用于。以长条状组成字符显示,主要用于数字显示,也可用于显示西文字母或某些字符,广泛用于

    注意事项

    本文(单片机原理及接口技术(C51编程)第5章-与显示器、开关、键盘接口设计课件.ppt)为本站会员(可****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开