




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年威海荣成市教育和体育局公开招聘教师(53人)模拟试卷及答案详解(网校专用)
- 2025年甘肃省武威市凉州区清源镇选聘专业化管理的大学生村文书考前自测高频考点模拟试题附答案详解
- 2025广西贵港市公安局港北分局招聘警务辅助人员62人模拟试卷含答案详解
- 班组安全培训表格课件
- 2025内蒙古工业大学百名博士高层次人才引进197人模拟试卷及答案详解一套
- 2025广东深圳市九洲电器有限公司招聘产品经理考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年甘肃省酒泉市市直事业单位选调工作人员部分岗位核销或核减选调计划模拟试卷及1套参考答案详解
- 2025年烟台市蓬莱区卫健系统事业单位公开招聘工作人员(23人)模拟试卷及一套参考答案详解
- 2025年华中师范大学黎安滨海学校招聘16名教师考前自测高频考点模拟试题及答案详解1套
- 2025国有四大银行远程银行中心诚聘客服代表招聘模拟试卷附答案详解
- 华中科技大学教学课件-工程传热学1王晓墨
- 项目经理(总监)解锁申请表
- 物业管理存在的问题与对策
- 前列腺等离子电切术护理查房
- 儿童神经心理行为发育
- GB/T 4074.8-2009绕组线试验方法第8部分:测定漆包绕组线温度指数的试验方法快速法
- GB/T 19812.3-2017塑料节水灌溉器材第3部分:内镶式滴灌管及滴灌带
- GB/T 1682-1994硫化橡胶低温脆性的测定单试样法
- 企业消防安全基础知识培训讲义课件
- 商务英语翻译实务完整版教学ppt课件全套教程
- 第五章-中药指纹图谱课件
评论
0/150
提交评论