




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-2-121第第5 5章章 80C51 80C51人机接口技术人机接口技术LEDLED、数码管及蜂鸣器接口技术、数码管及蜂鸣器接口技术 5.1按键及键盘接口技术按键及键盘接口技术 5.2字符型字符型LCDLCD显示器接口技术显示器接口技术 5.3单片机单片机最小系统最小系统AT89S52AT89S52LEDLED数码管数码管蜂鸣器蜂鸣器LCDLCD按键按键键盘键盘开关开关n 每根口线最大可吸收每根口线最大可吸收10mA10mA的(灌)电流的(灌)电流n P0P0口吸收电流的总和不能超过口吸收电流的总和不能超过26mA26mA n P1P1、P2P2和和P3P3每个口吸收电流的总和限制在
2、每个口吸收电流的总和限制在15mA15mA n 4 4个口所有口线的吸收电流总和限制在个口所有口线的吸收电流总和限制在71mA71mA 2022-2-1235.1 LED、数码管及蜂鸣器接口技术、数码管及蜂鸣器接口技术5.1.1 5.1.1 LEDLED接口接口 v LED LED的特性及其灌电流驱动的特性及其灌电流驱动LEDLED典型工作点:典型工作点:1.75V1.75V, ,10mA10mA。单个单个LEDLED驱动特性如下图:驱动特性如下图:v 多个多个LEDLED并口直接驱动并口直接驱动 经缓冲器驱动经缓冲器驱动 (亮度不理想)(亮度不理想)(245(245:单根线:单根线25mA,
3、25mA,总和总和75mA)75mA)2022-2-125void 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); DelayMs(500); 【例例5-15-1】 2022-2-126v 数码管数码管5.1.2 5.1.2 数码管接口数码管接口 2022-2-127v 晶体三极管驱动晶体三极管驱动2022-2-12
4、8v 达林顿阵列驱动达林顿阵列驱动2022-2-129v常序相接时常序相接时 uchar code SegCode = / uchar code SegCode = / 段码段码0 x3F,0 x3F,0 x060 x06,0 x5B,0 x4F;,0 x5B,0 x4F;共阴极共阴极字形字形“1 1”编码示例:编码示例:0606H H2022-2-1210uchar 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 x
5、F9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90; uchar code BitCode= 0 xfe,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
6、; j-) for (j = 400; j 0; j-) /发声发声250ms250ms BEEP = BEEP; BEEP = BEEP; /取反及调用指令占用约取反及调用指令占用约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(); 5.2.1
7、5.2.1 独立按键接口独立按键接口v 按键及其消抖按键及其消抖v 简单开关及输入接口简单开关及输入接口5.2 按键及键盘接口技术按键及键盘接口技术2022-2-1215v 开关闭合与断开时的抖动及去抖电路开关闭合与断开时的抖动及去抖电路 按键较少时:去抖电路按键较少时:去抖电路 按键较多时:软件延时按键较多时:软件延时, ,通常为通常为10ms10ms2022-2-1216v 独立式按键接口电路独立式按键接口电路 uchar ScanKey()uchar ScanKey() uchar temp,i,keynum;uchar temp,i,keynum;if(ReadKey()!=0 xff
8、) /if(ReadKey()!=0 xff) /如果有键按下如果有键按下 DelayMs(10); DelayMs(10); temp = temp = ReadKey();ReadKey(); if(temp!=0 xff) / if(temp!=0 xff) /确实有键按下确实有键按下 for(i=0;i8;i+) for(i=0;i8;i+) if(temp=KeyValuei) if(temp=KeyValuei) keynum=i;break; keynum=i;break; /查到跳出查到跳出 return keynum; return keynum; return 0; ret
9、urn 0; uchar ReadKey()uchar ReadKey() uchar temp; uchar temp; P3 = 0 xff; / P3 = 0 xff; /置输入态置输入态 temp = P3; temp = P3; return temp; return temp; 2022-2-1218v 矩阵式按键接口电路矩阵式按键接口电路n 判有无键按下。判有无键按下。将列线设置为输出口,输出全将列线设置为输出口,输出全0 0(所有列线为低电平),然后读行线状态,若行线状(所有列线为低电平),然后读行线状态,若行线状态不全为高电平,则可断定有键按下。态不全为高电平,则可断定有键按
10、下。n 判按下哪个键。判按下哪个键。先置列线先置列线C0C0为低电平,其余列线为为低电平,其余列线为高电平,读行线状态,如行线状态不全为高电平,读行线状态,如行线状态不全为“1”1”,则,则说明所按键在该列;否则所按键不在该列,再使说明所按键在该列;否则所按键不在该列,再使C1C1列列线为低电平,其它列为高电平,判断线为低电平,其它列为高电平,判断C1C1列有无按键按列有无按键按下。其余类推。下。其余类推。n 获得相应键号。获得相应键号。键号:键号:键号键号 = = 行首号行首号+ +列号列号。行首。行首号为行数乘以行号。根据键号就可以进入相应的键功号为行数乘以行号。根据键号就可以进入相应的键
11、功能实现程序。能实现程序。v 线反转法线反转法 例如按下例如按下“2”2”号键,号键,先使列线输出全先使列线输出全“0”0”,读行线,结果为,读行线,结果为E0HE0H;再使行线输出全;再使行线输出全“0”0”,读列线,结果为,读列线,结果为0BH0BH。将。将2 2次读到的结次读到的结果拼成一个字节,即果拼成一个字节,即EBHEBH,该值称为键值。,该值称为键值。 5.3 字符型字符型LCD显示器接口技术显示器接口技术5.3.1 LCD16025.3.1 LCD1602模块的外形与引脚模块的外形与引脚 引脚引脚0101、0202:VSSVSS、VDDVDD,接地接地和和+5V+5V引脚引脚引
12、脚引脚0303:VLVL,对比度调整端,对比度调整端,接地接地时对比度最高时对比度最高引脚引脚0404:RSRS,1-1-数据寄存器数据寄存器/0-/0-命令寄存器命令寄存器引脚引脚0505:RWRW,1-1-读读/0-/0-写写引脚引脚0606:E E,使能端,使能端引脚引脚07071414:D0D0D7D7,8 8位双向数据线位双向数据线引脚引脚1515、1616:BLABLA、BLKBLK,背光,背光正、正、负负极极vLCD1602LCD1602模块组成模块组成 5.3.2 LCD16025.3.2 LCD1602模块的组成模块的组成 对于对于16x216x2字符的显示要增加字符的显示要
13、增加HD44100HD44100驱动器驱动器 HD44780HD44780本身可以驱动本身可以驱动16x116x1字符字符或或8x28x2字符字符 vHD44780 HD44780HD44780由三部分构成:由三部分构成: nCGRCGRO OM M 字符发生器,字符发生器,存储不同的点阵字符图形表,存储不同的点阵字符图形表,每个字符都有固定的代码。每个字符都有固定的代码。nCGRCGRA AM M 自定义字符发生器,自定义字符发生器,可定义可定义8 8个字符图形。个字符图形。nDDRAMDDRAM 显示缓冲区。显示缓冲区。 例:代码例:代码41H41H显示字符显示字符“A A”。 CGRCG
14、RO OM M CGRCGRA AM M 可以自定义可以自定义8 8个字符:个字符:n 07 07n 或或8-158-15 CGRAMCGRAM的内容:的内容: unsigned char code WeekWord= unsigned char code WeekWord= LoadCgram(WeekWord);LoadCgram(WeekWord);DispChar(0,1,0);DispChar(0,1,0);LoadCgramLoadCgram定义为:定义为: WCmd(0 x40); WCmd(0 x40); for(i=0;i64;i+) for(i=0;i64;i+) WDat
15、(ptcgrami); WDat(ptcgrami); vDDRAMDDRAM有有8080个单元,但个单元,但第第1 1行行仅用仅用00H00H0FH0FH单元,单元,第第2 2行行仅用仅用40H40H4FH4FH单元单元 5.3.3 LCD16025.3.3 LCD1602模块的命令模块的命令 5.3.4 LCD16025.3.4 LCD1602模块的命令模块的命令 v接口电路接口电路 v驱动程序驱动程序sbit RS = P2 0; sbit RS = P2 0; / /* *命令命令/ /数据选择数据选择* */ /sbit RW = P2 1; sbit RW = P2 1; / /*
16、 *读读/ /写选择写选择* */ /sbit EN = P2 2; sbit EN = P2 2; / /* *高到低使能高到低使能* */ /uchar code dis1= WELCOME TO;uchar code dis1= WELCOME TO;uchar code dis2= HUST ZDH; uchar code dis2= HUST ZDH; uchar code WeekWord= uchar code WeekWord= 0 x18,0 x18,0 x07,0 x08,0 x08,0 x08,0 x07,0 x00, /0 x18,0 x18,0 x07,0 x08,0
17、 x08,0 x08,0 x07,0 x00, /,代码,代码 0 x00 0 x00 0 x00,0 x00,0 x00,0 x00,0 xff,0 x00,0 x00,0 x00, /0 x00,0 x00,0 x00,0 x00,0 xff,0 x00,0 x00,0 x00, /一,代码一,代码 0 x010 x01- - ; ; void WCmd(uchar cmd)void WCmd(uchar cmd) Busy();Busy();RS = 0;RS = 0;RW = 0;RW = 0;EN = 1;EN = 1;P0= cmd;P0= cmd;D10us();D10us();
18、EN = 0;EN = 0; 写命令函数:写命令函数:写数据函数:写数据函数:void WDat(uchar dat)void WDat(uchar dat) Busy(); Busy(); RS = 1;RS = 1;RW = 0;RW = 0;EN = 1;EN = 1;P0= dat;P0= dat;D10us();D10us();EN = 0;EN = 0; void Init()void Init() DelayMs(10);DelayMs(10);WCmd(0 x38); /WCmd(0 x38); /功能设置功能设置:8 8位口,位口,2 2行,行,5 5* *7 7点阵点阵De
19、layMs(10);DelayMs(10);WCmd(0 x0c); /WCmd(0 x0c); /显示设置显示设置:开显示,关光标,无闪烁:开显示,关光标,无闪烁DelayMs(10);DelayMs(10);WCmd(0 x06); /WCmd(0 x06); /输入模式输入模式:右移一格,地址加:右移一格,地址加1 1DelayMs(10);DelayMs(10);WCmd(0 x01); /WCmd(0 x01); /清显示清显示DelayMs(10);DelayMs(10); 初始化函数:初始化函数:void Pos(uchar x,uchar y)void Pos(uchar x,uchar y) if(y=0 x01)if(y=0 x01)WCmd(x|0 x80);/WCmd(x|0 x80);/高位置高位置1 1if(y=0 x02)if(y=0 x02)WCmd(x|0 xc0);/WCmd(x|0 xc0);/高位置高位置1 1,再加,再加40H40H 位置设置及在指定位置显示字符函数:位置设置及在指定位置显示字符函数:void DispChar(ucha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025建造船舶所要用到的合同
- 中卫市烟草公司2025秋招配送管理岗位面试模拟题及答案
- 中国邮政集团2025沈阳市秋招面试结构化模拟30问及话术
- 中国邮政2025陇南市秋招平台产品经理岗位面试模拟题及答案
- 中国邮政集团2025鹤壁市秋招面试结构化模拟30问及话术
- 中国邮政2025衢州市秋招运输调度岗位面试模拟题及答案
- 咨询灭虫药方案
- 那曲市烟草公司2025秋招综合管理类岗位面试模拟题及答案
- 白酒市场细分报告:2025年高端白酒消费者饮酒偏好与品牌定位策略
- 驾驶员聘用合同书
- 合肥市肥东县大学生乡村医生专项计划招聘考试真题2024
- 2025年海上光伏产业技术创新与海洋能源市场前景报告
- 2025年河南省(安阳市)事业单位招聘联考内黄县(综合类)岗位考察考试参考试题及答案解析
- 2025年中组部机关公开遴选公务员面试模拟题集
- 研发中心资产管理办法
- 贵州省榕江县2025年上半年事业单位公开遴选试题含答案分析
- 第2课《中国人首次进入自己的空间站》课件
- 22S803 圆形钢筋混凝土蓄水池
- 《中华人民共和国职业分类大典》电子版
- 研发项目管理基础培训课件讲义
- 个人征信报告模板2020年word版可编辑带水印
评论
0/150
提交评论