版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“十二五”职业教育国家规划教材单片机原理及接口技术(第2版)本章内容SingleChipMicrocomputer4.1I/O口结构与负载能力4.1.1I/O口结构与工作原理4.1.2I/O口负载能力4.2实训4:I/O的简单应用4.2.1单片机控制数码管静态显示4.2.2单片机用开关控制的LED显示4.2.3单片机用开关控制数码管静态显示4.3单片机与矩阵式键盘的接口技术4.3.1.基础知识4.3.2接口电路设计4.3.3.接口程序设计与仿真4.3.4运行与思考4.4实训5:I/O口应用4.4.1单片机与LED数码管的动态显示4.4.2单片机与LED数码管的动态显示PROTEUS仿真4.4.3编程器的使用4.4.4制作实训及思考第
4章
I/O及其应用举例
4.1I/O口结构与负载能力
AT89C51单片机有4个并行双向8位输入/输出口,即I/O口P0~P3。每个口都有锁存器、输出驱动器和输入缓冲器,但结构有差异,功能与用途各有异同。每个I/O口可以进行“字节”输入/输出,也可单独进行“位”输入/输出。对各I/O进行读、写操作,即可实现输入、输出功能。每个I/O口8个位是相同的,所以每个I/O口的结构与工作原理均以位结构进行说明。每个口都有一定的负载能力,不能超过每个引脚的最大电流。4.1.1I/O口结构与工作原理1P0口逻辑结构
P0口地址为80H,位地址为80H-87H。 既可做一般I/O口,又可作地址/数据总线,某一位的内部结构如下图2P1口逻辑结构
P1口地址为90H,位地址为90H-97H。只能作为通用数据I/O口使用,电路逻辑如下图:3P2口逻辑结构
P2口地址为A0H,位地址为A0H-A7H。 既可做通用I/O口,又可作系统高位地址线,某一位的内部结构如下图4P3口逻辑结构P3口地址为B0H,位地址为B0H-B7H。 虽然可做通用I/O口,但在实际应用中,它的第二功能信号更为重要,某一位的内部结构如下图4.1.2I/O口负载能力P0口的每一位以吸收电流方式可驱动8个LSTTL输入(1个LSTTL输入:高电平时为20uA,低电平时为0.36mA)。P1~P3口的每一位以吸收或提供电流方式驱动4个LSTTL输入。在稳定状态的情况,IOL(引脚吸收电流)应严格限制如下。每个引脚上的最大电流IOL=10mA;P0端口8个引脚的最大电流∑IOL=26mA;P1、P2、P3端口8个引脚的最大电流∑IOL=15mA;所有输出引脚上的IOL总和最大电流为∑IOL=71mA。4.2实训4:I/O的简单应用
4.2.1单片机控制数码管静态显示数码管的使用与发光二极管相同,根据其材料不同,正向压降一般为1.5~2V,额定电流一般为10mA,最大电流一般为40mA。静态显示时取10mA为宜。动态扫描显示时,可加大脉冲电流,但一般不要超过40mA。图4-7数码管的外形和引脚图图4-8共阴极、共阳极数码管显示字符共阳段码共阴段码显示字符共阳段码共阴段码显示字符共阳段码共阴段码0C03F5926DA88771F966827DB837C2A45B7F87CC6393B04F8807FDA15E499669906FE8679D7D6D5D4D3D2D1D0dpgfedcba七段数码管静态显示
图4-9七段数码管静态显示原理图ORG 00HSJMPSTARORG 30HSTAR: MOVP1,#0FFH;数码管的8段LED全暗ST1:MOV R0,#0;显示初值ST2: MOVA,R0 ACALLSEG7;根据显示数字查显示码
MOVP1,A ;显示码送P1口显示
ACALLDELAY;延时500ms ACALL DELAY;延时500ms INCR0 ;显示数字加1 CJNER0,#10H,ST2;16个数没显示完转ST2 JMPST1 ;16个数显示完转ST1,循环显示DELAY:MOVR7,#250D1: MOVR6,#250;延时子程序,500msD2: NOP NOP NOP NOP NOP NOP DJNZR6,D2 DJNZR7,D1 RETSEG7: INCA;数字转换为显示码
MOVCA,@A+PC RET DB图4-10数码管静态显示流程图结束NOSTAR:关显示ST1:赋初值(R0)=0ST2:(R0)→(A)调显示码SEG7,段码→P1显示(R0)++=10H?调延时:DELAYYES开始0C0H,0F9H,0A4H,0B0H;0~3的共阳型显示码DB99H,92H,82H,0F8H;4~7的共阳型显示码DB80H,90H,88H,83H ;8~B的共阳型显示码DBC6H,0A1H,86H,8EH;C~F的共阳型显示码END4.2.2单片机用开关控制的LED显示将接在P1口的拨动开关输入状态通过单片机输出在P2口上,用LED发光管表示出来。P1.0~P1.7上的8个开关1~8输入对应于输出P2.0~P2.7。若开关1打开,LED0亮;开关2打开,LED1亮……开关8打开,LED7亮
图4-12单片机用开关控制LED显示的电路原理图将接在P1口的拨动开关输入状态通过单片机输出在P2口上,用LED发光管表示出来。P1.0~P1.7上的8个开关1~8输入对应于输出P2.0~P2.7。若开关1打开,LED0亮;开关2打开,LED1亮……开关8打开,LED7亮
ORG0000HSTAR:MOVP1,#0FFH;设置P1口为输入MOVP2,#0FFH;P2口上的LED全暗ST1:MOVA,P1;从P1口读入MOVP2,A ;送P2口显示SJMPST1 ;返回ST1,循环END图4-13开关控制LED显示流程图开始STAR:FFH→(P2),关LEDSt1:从P1读入数据:(P1)→(A)(A)送P2口输出(A)→P2FFH→(P1),设置P1口为输入4.2.3单片机用开关控制数码管静态显示例如只拨开关1、2、4接地,则数码管显4。图4-15开关控制数码管显示电路原理图(1)程序设计ORG0000HSJMPSTARORG 30HSTAR:MOVP1,#0FFH;设置P1口为输入MOV P2,#0FFH ;P2口上数码管暗ST1: MOV A,P1 ;读入P1口状态ANL A,#0FH ;屏蔽P1口高四位ACALLSEG7 ;调数码管显示码MOVP2,A ;显示码送P2口显示SJMPST1 ;转ST1循环SEG7:INC A;数字转换为显示码MOVCA,@A+PCRETDB0C0H,0F9H,0A4H,0B0H;0~3的共阳型显示码DB99H,92H,82H,0F8H;4~7的共阳型显示码DB80H,90H,88H,83H ;8~B的共阳型显示码DB0C6H,0A1H,86H,8EH;C~F的共阳型显示码ENDSTAR:FFH→(P2),关显示St1:从P1读入数据:(P1)→(A)(A)&0FHFFH→(P1),设置P1口为输入调用显示段码开始段码送P2口显示(A)→(P2)图4-16开关控制数码管流程图4.3单片机与矩阵式键盘的接口技术按键的特点及输入原理独立式按键矩阵式按键按键的特点及输入原理按键的分类:触点式:机械;无触点式:电气键输入原理:
通过按键的接通与断开,产生两种相反的逻辑状态低电平“0”与高电平“1”。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。
键盘接口需要解决的问题是否有键按下按键识别:键抖动及消除:机械按键抖动时间在5ms~10ms之间硬件方案——双稳态去抖电路软件方案——延时10ms~20ms后再次判断消除方法:求键号独立式按键接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。例1:用P1口检测三个按键的状态并完成相应的功能解:资源分配:用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。流程图:ORG0000HKB:MOVP1,#0FFHMOVA,P1CPLAANLA,#0FHJZKBLCALLD10MSMOVA,P1CPLAANLA,#0FHJZKBCJNEA,#01H,KB01LCALLPGM1SJMPKBKB01:CJNEA,#02H,KB02LCALLPGM2SJMPKBKB02:CJNEA,#04H,KBLCALLPGM3SJMPKBEND编程:按三个按键中的任一键都对应一个特定功能。若判断键释放应如何修改?矩阵式按键关键:如何判断键号?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口电路:特点:按键识别应采用扫描法或线路反转法编程较为复杂,节省口资源,8键以上使用当点击矩阵式键盘上某键时,数码管将显示该按键值,直到有新的不同的按键输入才更新显示。
图4-20矩阵式键盘接口电路原理图(1)反转读键法 采用反转读键盘法,行、列轮流作为输入线。其电路原理如图4-20中所示。第一步:先置行线p2.0~P2.3为输入线,列线P2.4~P2.7为输出线,且输出为0。相应的I/O口的编程数据为0FH。若读入低四位的数据不等于F,则表明有键按下,保存低四位数据。其中为电平“0”的位对应的是被按下键的行位置。第二步:设置输入、输出口对换,行线p2.0~P2.3为输出线,且输出为0,列线P2.4~P2.7为输入线,I/O口编程数据为F0H。若读入高四位数据不等于F,即可确认按下的键。读入高四位数据中为0的位为列位置。保存高四位数据。将两次读数值组合,便得按键码。(2)扫描读键法1)先送1110到行线:P2.3~P2.0=1110B,再从列线P2.7~P2.4读入数据。若有按键,则中必有一位=0,如按“3”键,则读入P2.7~P2.4=0111B;同理按“1”键,读入数据为1101B。2)第一行,接着送出P2.3~P2.0=1101B扫描第二行,以此类推。P2.3~P2.0变化为1110B→1101B→1011B→0111B→1110B循环进行。各按键的扫描码列表如表4-4所示。3)由于扫描码不易让人联想按键,因此须将扫描码用程序转换成按键码。4)显示按键情况。图4-20中设计了数码显示管。使得按“0”显示0,按“1”显示1……。输入输出按键P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0011101110111011110210111110301111110411101101511011101610111101701111101811101011911011011A10111011B01111011C11100111D11010111E10110111F01110111按键识别——扫描法
流程:
当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。
键号=行首键号(0、4、8、12)+列号(0、1、2、3)
原理:
在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。例2:键盘扫描程序ORG 0SJMP STARORG 30HSTAR: ACALL DE100;调用延时KEY:MOVP2,#0FH;查键开始,行定义输入,列定义输出为0 MOV A,P2 ;读入P2的值 CPL A ANL A,#0FH ;确保低四位 JZ KEY ;无键按下返回 MOV R5,A ;有键按下,暂存 MOV P2,#0F0H ;列定义输入,行定义输出为0
MOV A,P2 CPL A ANL A,#0F0H JZ KEY MOV R4,A ;暂存高四位输入
LCALL DE10 ;消抖动
KEY1: MOV A,P2 ;等待键松开CPL A ANL A,#0F0H JNZ KEY1 ;按键没松开,等待 LCALL DE10 MOV A,R4 ;取列值 ORL A,R5 ;与行值相或为组合键值 MOV B,A ;结果暂存于B中 MOV R1,#0 ;键值寄存器R3赋初值=0 MOV DPTR,#TAB ;取键码表首址到DPTRVAL0: MOV A,R1 MOVC A,@A+DPTR ;查键码表 CJNE A,B,VAL ;非当前按键码,继续查找 ACALL KEYV ;以按键码查显示码 MOV P1,A ;查找到显示码送P1二极管显示 SJMP KEY ;下一次按键输入,循环VAL: INC R1 SJMP VAL0 TAB: DB 11H,21H,41H,81H ;组合键码
DB 12H,22H,42H,82H DB 14H,24H,44H,84H DB 18H,28H,48H,88H KEYV:MOV A,R1 INC A MOVC A,@A+PC ;取显示码(即共阳段码) RET DB0C0H,0F9H,0A4H,0B0H;共阳段码0,1,2,3 DB99H,92H,82H,0F8H ;4,5,6,7 DB80H,90H,88H,83H ;8,9,A,B DB0C6H,0A1H,86H,8EH ;C,D,E,FDE100:MOV R6,#200 ;延时100msD1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RETDE10:MOV R6,#20;延时10msD2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 RET END定时扫描方式定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。中断扫描方式为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。4.4实训5:I/O口应用
4.4.1单片机与LED数码管的动态显示图4-22
数码管动态显示典型电路原理图1.延时时间的估算延时可由人眼视觉暂留时间来估算。一般来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025民权县职业技术教育中心工作人员招聘考试试题
- 2025景德镇市昌江区职业教育中心工作人员招聘考试试题
- 浙江金华市义乌市2026届高三5月适应性考试语文试题及参考答案
- 基坑监测专项施工方案
- 高中生利用历史GIS技术研究新航路开辟中洋流对航海海洋资源的影响课题报告教学研究课题报告
- 2026年江苏省南京市中考化学模拟预测试卷
- 集成自然语言理解的智能英语同声传译系统在高中跨文化电影节中的应用课题报告教学研究课题报告
- 初中化学实验现象预测模型在实验教学中的个性化应用研究课题报告教学研究课题报告
- 当前经济与政策思考:看多中国经济的核心理由商品净出口(基于全球主要出口竞争者的测算)
- 北交所策略氨纶价格月涨11%行业拐点临近关注北交所四氢呋喃标的美邦科技
- 2025年检察院书记员考试真题(附答案)
- 新闻编辑实践作业汇报
- 前庭大腺脓肿切开护理查房
- 电力拖动自动控制系统-运动控制系统(第5版)习题答案
- JG/T 355-2012天然石材用水泥基胶粘剂
- 合伙贷款合同协议书
- 2025年高考英语复习难题速递之语法填空(2025年4月)
- GB/T 2878.1-2025液压传动连接普通螺纹斜油口和螺柱端第1部分:斜油口
- 水库溃坝分析报告范文
- 中成药处方大全-仅作参考
- 【MOOC】3D工程图学-华中科技大学 中国大学慕课MOOC答案
评论
0/150
提交评论