单片机原理及应用-借口与系统扩展.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7406 OC门 X 3 +5V (7FH) (7EH) (7DH) (7CH) (7BH) (7AH) 十万 万位 千位 百位 十位 个位 数据缓冲区 / 显示缓冲区 P0口送段代码,P1口送位选信号。 待显数据已经放在: 7FH—7AH单元(分别对应十万位→个位) 使用共阳译码表。 DIR: MOV DPTR, #DSEG ;数码管译码表首址 MOV R0,#7AH ;待显缓冲区个位地址 MOV R3,#01H ;个位的位选信号=01H LD1: MOV A, @R0 ;通过R0间接寻址 MOVC A, @A+DPTR ;查表 MOV P0, A ;字段码送到P0口 MOV P1,R3 ;字位选择送到P1口 LCALL DELY ;调延时1ms子程序 INC R0 ;R0 指向下一字节 MOV A,R3 JB ACC.5,LD2 ;判是否发完6个数? RL A ;R1指向下一个位 MOV R3,A ;位选信号存回R1 SJMP LD1 ;跳去再显示下一个数 LD2: RET ;发完6个数就返回 DSEG:DB 0C0H,0F9H,0A4H,0B0H,99H;共阳译码表 DB 92H, 82H, 0F8H, 80H,90H P0口送段代码,P1口送位选信号。 待显数据已经放在: 7FH—7AH单元(分别对应十万位→个位) 使用共阳译码表。 动态显示举例 (循环显示“8”的实验) 实验箱从P0口扩展了两个8位的简单I/O口: 一个送段代码(字形状),地址是0DCH; 一个送位选信号(字位置),地址是0DDH。 ORG 0000H ???? MOV R0,#0DCH ;指向字形口 MOV A, #80H ;送“8”的字形代码 MOVX @R0,A ;输出字形代码 ??? MOV R1,#0DDH ?;指向字位口 ?MOV A,#20H? ;从最高位开始 LEDO:?MOVX @R1,A ?;输出字位代码 ? ACALL DEYS? ;调延时子程序 RR A ?;右移一位 ? SJMP LEDO ??;循环显示“8” * PA,PB,PC口的三种工作方式示意图: RD WR D7——D0 A1 A0 地址总线 控制总线 数据总线 A B C PA0-7 PB0-7 PC4-7 PC0-3 A组 B组 8255的方式 0 A B PA0-7 PB0-7 控制线 控制线 A组 B组 A B PA0-7 PB0-7 控制线 I/O A组 B组 7 6 5 4 3 2 1 0 PC口 8255的方式 1 8255的方式 2 7 6 5 4 3 2 1 0 PC口 8255的端口选择表: 注意:对PA,PB,PC三个口的任何读/写操作,就是对 PA,PB,PC这三个寄存器进行I/O操作. 第4个寄存器是控制字寄存器(命令字寄存器) A1A0 RD WR CS 操 作 说 明 0 0 0 1 0 CPU读取PA口数据 从8255的I/O口读有效 0 1 CPU读取PB口数据 1 0 CPU读取PC口数据 0 0 1 0 CPU向PA口输出数据 向8255的I/O口写有效 0 1 CPU向PB口输出数据 1 0 CPU向PC口输出数据 1 1 1 0 0 对控制寄存器写控制字 初始化8255时必须做的工作 X X X X 1 没有选中,8255不工作 8255对系统总线呈高阻态 1 1 0 1 0 非法状态 控制寄存器只能写不能读 X X 1 1 0 非法状态 8255对系统总线呈高阻态 D7 D6 D5 D4 D3 D2 D1 D0 特征位 =1 A组方式选择 0 0:方式 0 0 1:方式 1 1 X:方式 2 A 口 B

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档