第4章80C51的并行口应用_第1页
第4章80C51的并行口应用_第2页
第4章80C51的并行口应用_第3页
第4章80C51的并行口应用_第4页
第4章80C51的并行口应用_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-3-71第第4 4章章 80C5180C51人机接口技术人机接口技术LEDLED、数码管及蜂鸣器接口技术、数码管及蜂鸣器接口技术 4.1按键及键盘接口技术按键及键盘接口技术 4.2字符型字符型LCDLCD显示器接口技术显示器接口技术 4.3单片机单片机最小系统最小系统AT89S52AT89S52LEDLED数码管数码管蜂鸣器蜂鸣器LCDLCD按键按键键盘键盘开关开关n 每根口线最大可吸收每根口线最大可吸收10mA10mA的(灌)电流的(灌)电流n P0P0口吸收电流的总和不能超过口吸收电流的总和不能超过26mA26mA n P1P1、P2P2和和P3P3每个口吸收电流的总和限制在每个

2、口吸收电流的总和限制在15mA15mA n 4 4个口所有口线的吸收电流总和限制在个口所有口线的吸收电流总和限制在71mA71mA 2022-3-734.1 LED、数码管及蜂鸣器接口技术、数码管及蜂鸣器接口技术4.1.1 4.1.1 LEDLED接口接口 v LED LED的特性及其灌电流驱动的特性及其灌电流驱动LEDLED典型工作点:典型工作点:1.75V1.75V, ,10mA10mA。单个单个LEDLED驱动特性如下图:驱动特性如下图:v 多个多个LEDLED并口直接驱动并口直接驱动 限流与上拉电阻共享驱动限流与上拉电阻共享驱动 2022-3-75【例例4-14-1】 uchar co

3、deuchar code ScanCode= ScanCode=0 x01;0 x02,0 x04,0 x08,0 x10,0 x20 x01;0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x800,0 x40,0 x80 ;void main(void)void main(void) uchar i; uchar i; P21 = 1; P21 = 1; while(1)while(1) for(i=0;i8;i+) for(i=0;i8;i+) DataPort= ScanCodei; DataPort= ScanCodei; DelayMs(500); De

4、layMs(500); 2022-3-762022-3-77v/ /* *将四个将四个I/OI/O口的灯点亮或点暗口的灯点亮或点暗* */ /v#include#include vmain()main() / / 主程序开始主程序开始 v P0=0X00; / P0=0X00; / 初值初值=0000 0000,=0000 0000,状态为将所有的灯全部点亮状态为将所有的灯全部点亮( (共阳共阳) )P1=0X00; / P1=0X00; / 初值初值=0000 0000,=0000 0000,状态为将所有的灯全部点亮状态为将所有的灯全部点亮( (共阳共阳) )v P2=0XFF; / P2=

5、0XFF; / 初值初值=1111 1111,=1111 1111,状态为将所有的灯全部点暗状态为将所有的灯全部点暗( (共阳共阳) )v P3=0XFF; / P3=0XFF; / 初值初值=1111 1111,=1111 1111,状态为将所有的灯全部点暗状态为将所有的灯全部点暗( (共阳共阳) ) 2022-3-78v 数码管数码管4.1.2 4.1.2 数码管接口数码管接口 2022-3-794.1.2 4.1.2 数码管接口数码管接口 静态显示静态显示动态扫描动态扫描2022-3-7104.1.2 4.1.2 数码管接口数码管接口 2022-3-7114.1.2 4.1.2 数码管接

6、口数码管接口 dpdpg gf fe ed dc cb ba a0 0000110共阴极共阴极字形字形“1 1”编码示例:编码示例:0606H H2022-3-712v常序相接时常序相接时 2022-3-713uchar code SegCode = uchar code SegCode = / / 段码段码0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90; 0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90; uchar code BitCode= 0 x

7、fe,0 xfd,0 xfb,0 xf7; uchar code BitCode= 0 xfe,0 xfd,0 xfb,0 xf7; / / 位码位码uchar DispBuf4;uchar DispBuf4; /显示数字要先送入此缓冲数组显示数字要先送入此缓冲数组 void BufToSeg(void)void BufToSeg(void) uchar i; uchar i; for(i = 0; i 4; i+) for(i = 0; i 0; j-) for (j = 400; j 0; j-) /发声发声250ms250ms BEEP = BEEP; BEEP = BEEP; /取反及

8、调用指令占用约取反及调用指令占用约3us3us d622us(); d622us(); /共延时共延时625us625us,周期,周期1250us1250us,频率频率800Hz800Hz for (j = 400 for (j = 400* *4; j 0; j-) 4; j 0; j-) /静音静音1000ms1000ms BEEP = 1; / BEEP = 1; /关闭蜂鸣器关闭蜂鸣器 d622us(); d622us(); 2022-3-717v弹性按键弹性按键v 自锁按键自锁按键v拨动开关拨动开关v拨码开关拨码开关v电源开关电源开关4.2 按键及键盘接口技术按键及键盘接口技术4.2

9、.1 4.2.1 独立按键接口独立按键接口v 按键及其消抖按键及其消抖v 简单开关及输入接口简单开关及输入接口4.2 按键及键盘接口技术按键及键盘接口技术2022-3-719v 开关闭合与断开时的抖动及去抖电路开关闭合与断开时的抖动及去抖电路 按键较少时:去抖电路按键较少时:去抖电路 按键较多时:软件延时按键较多时:软件延时, ,通常为通常为10ms10ms2022-3-7204.2 按键及键盘接口技术按键及键盘接口技术2022-3-721#includesbitP3_3=P33;void delay10ms(void) /延时10ms函数 unsigned char a,b; for(b=1

10、51;b0;b-); for(a=29;a0;a-); voidmain()unsignedcharcodetable16=0 xC0, 0 xF9, 0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E;/0-F译码表unsignedchartemp=1;/按键后初值1P1=0 xC0;/按键前显示02022-3-722while(1)while(P3_3=1);delay10ms();/保证10ms的非1if(P3_3=0)while(P3_3=0);delay10ms();

11、/保证10ms的非0if(P3_3=1)P1=tabletemp;/显示数值temp=temp+1;if(temp=16) temp=0; /到16清02022-3-723v 矩阵键盘接口电路矩阵键盘接口电路4.2.2 4.2.2 键盘接口键盘接口v 逐行扫描法逐行扫描法 n 判有无键按下。判有无键按下。将列线设置为输出口,输出全将列线设置为输出口,输出全0 0(所有列线为低电平),然后读行线状态,若行线状(所有列线为低电平),然后读行线状态,若行线状态不全为高电平,则可断定有键按下。态不全为高电平,则可断定有键按下。n 判按下哪个键。判按下哪个键。先置列线先置列线C0C0为低电平,其余列线为

12、为低电平,其余列线为高电平,读行线状态,如行线状态不全为高电平,读行线状态,如行线状态不全为“1 1”,则说,则说明所按键在该列;否则所按键不在该列,再使明所按键在该列;否则所按键不在该列,再使C1C1列线列线为低电平,其它列为高电平,判断为低电平,其它列为高电平,判断C1C1列有无按键按下。列有无按键按下。其余类推。其余类推。n 获得相应键号。获得相应键号。键号:键号:键号键号 = = 行首号行首号+ +列号列号。行首。行首号为行数乘以行号。根据键号就可以进入相应的键功号为行数乘以行号。根据键号就可以进入相应的键功能实现程序。能实现程序。2022-3-74.2.2 4.2.2 键盘接口键盘接

13、口v1. 扫描法扫描法v2. 反转法反转法每个按键得到时间不同每个按键得到时间不同1)P1口赋值0 x0F,即00001111,如0键按下了,则这时P1口的实际值为00001110(0 x0E);2)P1口赋值0 xF0,即11110000,如0键按下了,则这时P1口的实际值为11100000(0 xE0); 3)将两次P1口的实际值相加为11101110(0 xEE);4)4*4键盘键值表0 xee,0 xde,0 xbe,0 x7e,0 xed,0 xdd,0 xbd,0 x7d,0 xeb,0 xdb,0 xbb,0 x7b,0 xe7,0 xd7,0 xb7,0 x77;5)无键按下为

14、11111111(0 xFF)。v 线反转法线反转法 例如按下例如按下“2 2”号键,号键,先使列线输出全先使列线输出全“0 0”,读行线,结果为,读行线,结果为E0HE0H;再使行线输出全;再使行线输出全“0 0”,读列线,结果为,读列线,结果为0BH0BH。将。将2 2次读到的结果拼次读到的结果拼成一个字节,即成一个字节,即EBHEBH,该值称为键值。,该值称为键值。 2022-3-7272022-3-728#includevoidmain(void)unsignedcharh_code,l_code,key_code;while(1)P0=0 xF0;h_code=P0;h_code=h

15、_code&0 xF0;P0=0 x0F;l_code=P0;l_code=l_code&0 x0F;key_code=h_code|l_code;if(key_code!=0 xFF)2022-3-729switch(key_code)case0 xEE:P1=0 xC0;break;case0 xDE:P1=0 xF9;break;case0 xBE:P1=0 xA4;break;case0 x7E:P1=0 xB0;break;case0 xED:P1=0 x99;break;case0 xDD:P1=0 x92;break;case0 xBD:P1=0 x82;break;ca

温馨提示

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

最新文档

评论

0/150

提交评论