微机系统与接口:第5章 数字量输入输出4(剩余部分)_第1页
微机系统与接口:第5章 数字量输入输出4(剩余部分)_第2页
微机系统与接口:第5章 数字量输入输出4(剩余部分)_第3页
微机系统与接口:第5章 数字量输入输出4(剩余部分)_第4页
微机系统与接口:第5章 数字量输入输出4(剩余部分)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第五章 数字量输入输出(4)*概念:总线、接口电路、接口芯片、端口地址 *中断及其处理 中断控制器8259 *定时器/计数器*并行I/O /串行I/O DMA电路与应用2resetD7D0A15A2A1A0IORIOW片选译码数据缓冲器读写控制片内译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口端口A端口C端口B +5VGNDD7D0外设8255A总线片内译码电路A1A0=数据端口A、B、C 每个端口8位,通过编程设定其为 输入口或输出口和外设传送信息 00 A口;01=B口; 10 C口;11 控制口8255内部结构与外部接线图3工作方式控制字 1D6D5D4D

2、3D2D1D0标识位A组:00-方式0;01-方式1;1X-方式2 A口:0-出1-入C上半口0-出1-入B组:0-方式 0;1-方式 1B口:0-出1-入C下半口:0-出1-入向控制端口写控制字两种控制字地址 280H(A口);281H(B口) ;282H(C口) ;283H(控制寄存器)4C口位控控制字0D6D5D4D3D2D1D0标识位XXX位选择: 000111-Bit0Bit71-置位;0-复位向控制端口写控制字两种控制字(续)58255A应用举例(二)D07BUSYSTB打印机数据选通触发脉冲,打印机在其下降沿锁存数据STBD07ACKBUSY应答脉冲,“低”表示数据已被打印机接收

3、“高”表示打印机正忙双向三态数据总线有效打印机时序68255A应用举例(二)打印机连接电路PA07PC7PC0D07BUSYSTB8255A打印机片选地址 280H(A口);281H(B口) ;282H(C口) ;283H(控制寄存器)A口数据输出,方式0;C口上半输入,C口下半输出D07A1A0系统总线 7BUFDBHELLO!, 0DH, 0AHNUMEQU$-BUFPRINTPROCFARMOV DX,283H;设定8255A控制端口地址MOV AL,10001000B ;8255A初始化,设置方式选择控制字OUT DX,AL ;A方式0输出,C上输入,C下输出 MOV AL,00000

4、001B ;C口位控,/STB=1MOV DX,AL ;MOV SI, OFFSET BUFMOV CX, NUMNEXT:MOV DX,282H;读C口IN AL, DXTEST AL, 80H;判断当PC7=1(BUSY?)JNZ NEXT;时跳转到NEXTMOV AL,SIINC SI88255编程举例MOV DX, 280HOUT DX, AL;从A口发出数据MOV DX, 283HMOV AL,00000000B;C口位控,PC0(/STB)=0OUT DX, ALNOP;低电平0.5usMOV AL, 00000001B;C口位控,PC0(/STB)=1OUT DX, ALLOOP

5、 NEXTRETPRINT ENDP/STB信号测试:假设一片8255的A口地址为288H,请以C口位控方式,在C0引脚输出一个正跳变脉冲(写出程序片段,无需初始化方式字)。98255A应用举例(三)108255A应用举例(三)掌握8段数码管的动态刷新显示控制118255A应用举例(三)七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮;位码输入端高电平选中。288H128255A应用举例(三)将8255 的A 口PA0PA6 分别与七段数码管的段码驱动输入端a相连,位码驱动输入端S1、S0 接8255 C 口的PC1、PC0。编程在两个数码管上显示“65”。(注意字符变换之

6、间应使段位全灭,避免显示“影子”)288H138255A应用举例(三)148255A应用举例(三)data segmentioport equ 0d400h-0280h ;tpc 卡中设备的I/O 地址io8255C equ ioport+28ah ;8255C 口地址io8255ctrl equ ioport+28bh ;8255 控制寄存器端口地址io8255A equ ioport+288h ;8255A 口地址led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码buffer1 db 6, 5;存放要显示的个位和十位bz dw ? ;位码d

7、ata endsstacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ss:stacksstart:mov ax,stacksmov ss,axmov ax,datamov ds,ax158255A应用举例(二)mov dx,io8255ctrl ;将8255 设为A 口输出mov al,80h;10000000out dx,al工作方式控制字 1D6D5D4D3D2D1D0标识位A组:00-方式0;01-方式1;1X-方式2 A口:0-出1-入C上半口0-出1-入B组:0-方式 0;1-方式 1B口:0

8、-出1-入168255A应用举例(三)mov di,offset buffer1 ;设di 为显示缓冲区loop2:mov bh,02;大循环lll: mov byte ptr bz,bh;小循环,bh=02或01push didec diadd di, bzmov bl,di ;bl 为要显示的数pop dimov bh,0mov si,offset led ;置LED 数码表偏移地址为SIadd si,bx ;求出对应的LED 数码mov al,byte ptr simov dx,io8255A ;自8255A 口输出out dx,almov al,byte ptr bz ;使相应的数码管亮mov dx,io8255Cout dx,al178255A应用举例(三)mov cx,3000delay:loop delay ;延时mov bh,byte ptr bzshr bh,1;逻辑右移,除以2jnz lllmov

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论