IC07输入输出端口的基本功能.ppt

上传人:max****ui 文档编号:10970393 上传时间:2020-04-16 格式:PPT 页数:14 大小:325KB
返回 下载 相关 举报
IC07输入输出端口的基本功能.ppt_第1页
第1页 / 共14页
IC07输入输出端口的基本功能.ppt_第2页
第2页 / 共14页
IC07输入输出端口的基本功能.ppt_第3页
第3页 / 共14页
点击查看更多>>
资源描述
第六章输入输出端口的基本功能 在PIC16F87X单片机中 28引脚型号的单片机有3个I O端口 分别是RA RB和RC 40引脚型号单片机有5个I O端口 分别是RA RB RC RD和RE 其中RA有6条口线 RE有3条口线 其余都有8条口线 PIC16F87X端口口线既可作普通I O引脚 又可作某些部件或外围模块的外接引脚 比如端口引脚RC 4既可用作普通I O脚 又可以作为SPI串行通信的数据输入引脚 本章只介绍端口的基本功能和基本用法 端口的其他复合功能 在以后章节中介绍 6 1与输入 输出端口相关的2个寄存器PIC单片机中各个I O端口都具备两个基本的专用寄存器 端口数据寄存器和端口方向寄存器 如下所示 这些寄存器在RAM中都有统一的编址 即PIC单片机的端口都可以当作RAM单元来访问 而无需专门的指令来访问 6 2输入 输出端口的基本结构PIC16F87X的5个端口不但结构上存在差异 而且同一端口的各口线的内部结构也略有差别 但是他们的基本结构模型 如下图所示 图中有三个D触发器 也称为锁存器 其中DataLatch代表了端口数据寄存器 例如PORTA PORTB PORTC TRISLatch端口方向寄存器 例如TRISA TRISB TRISC 而InputLatch是端口设置为输入时作为缓冲器 基本输入 输出端口的工作原理下面对端口口线进行的基本操作说明如下 写I O方向寄存器TRISLatch当方向寄存器中的内容为1时 则对应口线被设置为输入 当其内容为0时 则对应引脚设置为输出 经端口引脚输出数据要把端口口线作为输出 必须要把该口线预先设定为输出态 即相应的TRISLatch的内容必须为0 从端口引脚输入数据要把端口口线作为输入 必须要把该口线预先设定为输出态 即相应的TRISLatch的内容必须为1 6 3输入 输出端口基本功能的应用举例下面的实例是单键触发8位二进制累加计数器 是针对端口功能和ICD在线调试器上的硬件为基础而设计的 该实例中要用到的演示板上的部分硬件电路如下图所示 图中端口RC外接8条支路 这8条支路构成了端口RC的输出电路 其中8只电阻起限流作用 保护端口引脚和发光二极管LED LED在高电平时发光 图中还使用了端口RB的RB0口线作为外接输入引脚 电阻R4为限流电阻 对RB0引脚起 保护作用 电阻R21为上拉电阻 将RB0电平拉高 开关SW1用来人工输入低电平脉冲信号 程序设计思路本实例是把演示板当做一个计数器 刚接通电源时 8只发光二极管都不亮 表示计数器初始值为0 按下开关SW1时 计数器值加l D0点亮 表示二进制数00000001B 然后松开按钮 再次按下SW1时 计数器值又加1 D1点亮 表示二进制数00000010B 然后再松开按钮 依次类推 直到按了255次按钮时 D7 D0全部点亮 假如再次按动按钮将使计数器回0 如此循环往复 设计按钮输入程序时 有一点需要注意 就是必须处理按钮在按下或松开时存在抖动现象 以免产生误判 按钮的去抖动一般都是调用延迟程序来消除抖动的 即在程序设计中 当查询到RB0上的首次电平变化后 马上延迟 例如10ms 待RB0上的状态稳定后 再次查询确认 果真是按键动作 按下或者松开 方认定为有效 否则 判为干扰脉冲 程序清单如下 STATUSEQU03HPORTBEQU06HTRISBEQU86H PORTCEQU07HTRISCEQU87HDATA1EQU20H DATA1为延时变量DATA2EQU21H DATA2为延时变量N1EQUD 13 外层循环延时常数N2EQU0FFH 内层循环延时常数RP0EQU5H 体选位RP0ORG000HBSFSTATUS RP0 切换到RAM的体1MOVLW00H 将端口C设为输出MOVWFTRISCMOVLW0FFH 将端口B设置为输入MOVWFTRISBBCFSTATUS RP0 恢复到RAM的体0 MOVLW00H 初始化端口CMOVWFPORTCLPBTFSCPORTB 0 测试SW1按下否 GOTOLP 否 则循环检测CALLDELAY 调用延时程序去抖动BTFSCPORTB 0 再次测试SW1按下否 GOTOLP 否 则循环检测INCFPORTC 1 PORTC 1 PORTCLP1BTFSSPORTB 0 测试SW1断开否GOTOLP1 否 则循环检测CALLDELAY 消除断开抖动BTFSSPORTB 0 再次测试SW1断开否GOTOLP1 否 则循环检测GOTOLP 返回 DELAYMOVLWN1 N1 DATA1MOVWFDATA1LOOP0MOVLWN2 N2 DATA2MOVWFDATA2LOOP1DECFSZDATA2 1 DATA2 1 DATA2 若为0则跳转GOTOLOOP1DECFSZDATA1 1 DATA1 1 DATA1 若为0跳转GOTOLOOP0RETURNEND 源程序结束以下是用C语言编写的程序 include defineN113 defineN20 xffstaticvolatilebitPORTB0 unsigned voidDELAY DATA1 N1 LP0 DATA2 N2 LP1 ifDATA2 0gotoLP1 ifDATA1 0gotoLP0 return
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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