课件:ICIO端口A.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课件:ICIO端口A.ppt

* * * * * 例 PORTB口“电平变化中断”初始化子程序 PORTBINT BSF INTCON,RBIE ;电平变化中断允许 BANKSEL OPTION_REG BCF OPTION_REG,7 ;弱上拉有效,RBPU=0 BCF TRISB,1 BCF TRISB,2 BSF TRISB,4 BSF TRISB,5 ;设置与键盘有关的各口的输入输出方式 BANKSEL PORTB MOVF PORTB,W ;读PORTB口bit4、bit5的初值(为高电平), ;为“电平变化中断”的产生创造初始条件 ;(电平由高到低时产生中断) BSF INTCON,GIE ;总中断允许 RETURN RB5 RB4 RB2 RB1 V 利用“电平变化中断”,在中断服务程序中要逐行逐列地扫 描,即通过RB1和RB2分别输出低电平,这样有键按下, RB4和RB5就由高电平变成低电平产生电平变化中断。 PEIE RBIF RBIE INTF INTE T0IF T0IE GIE + 全局中断允许位 GIE=0时 唤醒中断 外围中断源 内部中断 中 断 上升沿 产生中 断 下降沿 引起假 中断 T 当脉冲T时间比中断服务程序执行的时间小时: ①进入中断服务程序即执行读RBX。 中断服务程序执行时间 窄脉冲上升沿中断处理 若进入中断服务程 序就执行读RBX操 作,则即将RBIF置 “0”,这样在执行中 断服务程序时,若 发生由高电平变低 电平,此时又将 RBIF置“1”,当中 断服务程序执行完 返回主程序时,便 产生了错误的中断。 MOVF PORTB,1 ②中断服务程序执行完,在返回主程序时执行读RBX,这 样就避免了下降沿所产生的错误中断。 D Q CK D Q CK Q Q D EN VDD DATA BUS WR PORT WR TRIS RD PORT RD TRIS U1 U2 U3 I/O位 方向寄存器 输入 数据 锁存 器 输出数据锁存器 3。PORTB RB7~RB4 I/O电路结构 ∧ RBPU 施密特触发器 TTL input Buffer 弱上拉 Q D U4 EN 异 或 : RD PORT Q3 Q1 RB7:RB6串行编程模式 设置RBIF 状 态 锁 存 器 A B 电平变化中断 此时U3和U4 均为低电平 中断服务程序 MOVF PORTB,1 U3=1 U4=1 RBIF=0 U3=1 U4=0 RBIF=1 U3=0 U4=1 RBIF=1 U3=0 U4=0 RBIF=0 上升沿 产生中 断 下降沿 引起假 中断 中断服务程 序执行结束 读RBX 假中断 产生的 中断服 务程序 中断服务程序执行时间 中断服务程序 主程序 宽脉冲上升沿中断处理 解决的办法是,进入中断服务程序后必须读端口的 电平状态,若为高电平就执行中断服务程序,否则返回 主程序。 INT_SER : ;保护现场 BTFSS INTCON,RBIE GOTO OTHER- INT BTFSS INTCON,RBIF ;是RB中断?是间跳 GOTO OTHER_INT ;否,执行其他中断 BTFSS PORTB,RBX ;是上升沿中断,RBX为“1”间跳 执行中断服 ;务程序 GOTO CLR_RBIF ;RBX不是“1”,置RBI

文档评论(0)

iuad + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档