[芯片] 3、接口技术·实验三·可编程并行接口8255A
2014-12-20 01:04
309 查看
目录
一、实验目的和要求
二、实验原理与背景
2-1、8255A简介
2-2、8255A编程
三、实验具体的内容
3-1、8255方式0实验1
3-2、8255方式0实验2
3-3、8255方式1输出实验
3-4、8255方式1输入实验
四、实验的代码说明
4-1、8255方式0实验1代码及说明
4-2、8255方式0实验2代码及说明
4-3、8255方式1输出实验代码及说明
4-4、8255方式1输入实验代码及说明
五、实验结果的分析
5-1、8255方式0实验1实验分析
5-1、8255方式0实验2实验分析
5-1、8255方式1输出实验实验分析
5-1、8255方式1输入实验实验分析
附录资料
一、 实验目的和要求
学会8255A芯片和微机接口原理和方法。掌握8255A并行接口芯片的基本工作原理、工作方式和编程原理。
二、 实验原理与背景
2-1、8255A简介
8255A是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255A可作为单片机与多种外设连接时的中间接口电路。图2.1 8255A内部结构
2-2、8255A编程
8255能并行传送8位数据,所以其数据线为8根D0~D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1)数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
图2-2 8255A控制方式字
三、 实验具体的内容
3-1、8255方式0实验1
从8255端口C输入数据,再从端口A输出。步骤如下:
1)连接实验电路如图3.1,8255端口C接逻辑电平开关K0~K7,端口A接LED显示电路L0~L7。
图3.1 TPC-USB平台8255方式0实验一连线
2)根据流程图3.2,编程并运行,观察实验结果。
图3.2 TPC-USB平台8255方式0实验1:程序流程
3-2、8255方式0实验2
用8255测试3-8译码器74LS138输出结果。要求人机交互界面设计按照集成电路74LS138芯片的引脚图显示在屏幕上,如图3.3所示。图3.3 TPC-USB平台8255方式0实验二:人机交互界面图
步骤如下:
1)按图3.4连接硬件电路。
图3.4 TPC-USB平台8255方式0实验二连线图
2)根据流程图3.5,编程并运行,观察实验结果。
图3.5 TPC-USB平台8255方式0实验二流程图
3-3、8255方式1输出实验
编程实现每按一次单脉冲按钮产生一个正脉冲,使8255产生一次中断请求,让CPU进行一次中断服务:依次输出01H、02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。步骤如下:
1)按图3.6连好线路。
图3.6 TPC-USB平台8255方式1输出实验连线图
2)根据流程图3.7,编程并运行,观察实验结果。
图3.7 TPC-USB平台8255方式1输出实验流程图
3-4、8255方式1输入实验
编程实现:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。步骤如下:
1)按图3.8连好线路。
图3.8 TPC-USB平台8255方式1输入实验连线图
2)根据流程图3.9,编程并运行,观察实验结果。
图3.9 TPC-USB平台8255方式1输入实验流程图
四、
实验的代码说明
4-1、8255方式0实验1代码及说明
ASSUME CS:CODE CODE SEGMENT PUBLIC start: mov dx,28bh ;C口输入,A口输出 mov al,89h out dx,al inout: mov dx,28ah ;从C口输入一数据 in al,dx ;and al,00001111b mov dx,288h ;从A口输出刚才自C口的数据 out dx,al ;所输入的数据 mov dl,0ffh ;判断开关是否按下 mov ah,06h ;dos中断服务功能号06h int 21h jz inout ;若无则继续自c输入,a输出 mov ah,4ch ;否则,返回 int 21h END START code ends
4-2、8255方式0实验2代码及说明
data segment chip db 13,10 db 13,10 db ' Program to test the chip of 74LS138',13,10 db 13,10 db 13,10 db ' +------------------------------+',13,10 db ' |Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7|',13,10 db ' | |',13,10 db ' | 74LS138 |',13,10 db ' | |',13,10 db ' | A B C G1 G2A+G2B |',13,10 db ' +------------------------------+',13,10,'$' mess db 'After you have ready,Please press any key !','$' mes2 db 'Test Again ?(Y/N)','$' InA db 0 OutC db 0 cll db ' ','$' data ends code segment assume cs:code,ds:data ;------------------------------------ start: mov ax,data mov ds,ax again: call cls call InputB mov dx,28bh mov al,10001011b out dx,al mov dx,288h mov al,InA out dx,al call OutputC jmp1: mov ah,2 mov dh,15 mov dl,20 int 10h mov ah,09 lea dx,mes2 int 21h mov ah,1 int 21h cmp al,'y' je again cmp al,'n' je exit mov ah,2 mov dh,15 mov dl,0 int 10h lea dx,cll mov ah,9 int 21h jmp jmp1 exit: mov ah,4ch int 21h ;------------------------------------ InputB proc near mov ah,2 mov bh,0 mov dx,0 int 10h mov ah,09 lea dx,chip int 21h mov ah,2 mov bh,0 mov dh,15 mov dl,10 int 10h mov ah,09h lea dx,mess int 21h mov ah,0ch mov al,08h int 21h wait1: mov ah,0Bh int 21h cmp al,0 jne wait1 mov ah,2 mov bh,0 mov dh,15 mov dl,10 int 10h lea dx,cll mov ah,09h int 21h mov dh,12 mov dl,18 jmp3: push dx mov ah,2 mov bh,0 int 10h jmp4: mov ah,7 int 21h cmp al,'1' jne jmp2 mov ah,2 xchg al,dl int 21h mov cl,1 mov bl,InA sal bl,cl add bl,1 mov InA,bl jmp jmp5 jmp2: cmp al,'0' jne jmp4 mov ah,2 xchg al,dl int 21h mov cl,1 mov bl,InA sal bl,cl mov InA,bl jmp5: pop dx add dl,5 cmp dl,43 jb jmp3 mov cl,3 mov bl,InA sal bl,cl mov InA,bl ret ;------------------------------------ InputB endp cls proc near mov ah,6 mov al,0 mov ch,0 mov cl,0 mov dh,24 mov dl,79 mov bh,7 int 10h ret cls endp ;------------------------------------ OutputC proc near mov dx,28ah in al,dx mov OutC,al mov dh,4 mov dl,16 j: push dx mov ah,2 mov bh,0 int 10h mov al,OutC mov bl,01h and bl,al mov cl,1 shr al,cl mov OutC,al add bl,30h xchg bl,dl mov ah,2 int 21h pop dx add dl,4 cmp dl,46 jb j ret OutputC endp end start code ends
4-3、8255方式1输出实验代码及说明
code segment assume cs:code start: mov ax,cs ;设置中断向量IRQ3 mov ds,ax mov dx,offset int_proc mov ax,250bh int 21h mov dx,21h ;开放IRQ3 in al,dx and al,0f7h out dx,al mov dx,28bh ;A口方式1输出 mov al,0a0h out dx,al mov al,0dh ;PC6置位 out dx,al mov bl,1 ll: jmp ll int_proc: mov al,bl ;将bl输出到灯控制灯 mov dx,288h out dx,al mov al,20h out 20h,al shl bl,1 ;右移一位 jnc next ;cf==2,NO返回中断 in al,21h ;关闭IRQ3 or al,08h out 21h,al sti ;恢复中断 mov ah,4ch int 21h next: iret ;中断返回 code ends end start
4-4、8255方式1输入实验代码及说明
code segment assume cs:code start: mov ax,cs ;设置中断向量IRQ3 mov ds,ax mov dx,offset int_proc mov ax,250bh int 21h in al,21h ;开放IRQ3 and al,0f7h out 21h,al mov dx,28bh ;A方式1输入 mov al,0b8h out dx,al mov al,09h ;C4置位 mov dx,28bh out dx,al mov bl,8 ;循环 ll: jmp ll int_proc: mov dx,288h ;从A端口输入数据 in al,dx add al,'0' mov dl,al mov ah,02h ;屏幕上显示 int 21h mov dl,0dh ;换行 int 21h mov dl,0ah int 21h mov al,20h ;关中断 out 20h,al dec bl ;循环减一 jnz next in al,21h ;关闭IRQ3 or al,08h out 21h,al sti mov ah,4ch int 21h next: iret code ends end start
五、 实验结果的分析
5-1、8255方式0实验1实验分析:在上位机DOS窗口下输入一个字符,上位机将数据送至端口C,然后再从端口A获得数据,并显示出来,结果完成了从C口输入A口输出。5-1、8255方式0实验2实验分析:利用上位机模拟了用8255测74LS138的功能。实验了138译码器的功能验证。
5-1、8255方式1输出实验实验分析:编程实现了每按一次单脉冲按钮产生一个正脉冲,使8255产生一次中断请求,让CPU进行一次中断服务:依次输出01H、02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。
5-1、8255方式1输入实验实验分析:编程实现了:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:读取逻辑电平开关预置的ASCII码,这里我们利用8个逻辑电平对应一个八位二进制的数,当利用开关拨出某一个二进制的时候,上位机能获得其值并转换为相应的ASCALL在屏幕上显示,中断8次结束。
附录资料
本文链接:/article/5083899.html
更多精彩:/article/5083891.html
文档下载:http://pan.baidu.com/s/1mg3eCzQ
相关文章推荐
- [芯片] 1、接口技术·实验一·中断8259
- [芯片] 4、接口技术·实验四·串行接口8251A
- [芯片] 2、接口技术·实验二·定时/计数器8253
- 可编程串行通信接口芯片8251A
- 实验驱动开发与响应式编程 ---- File Watcher的技术实现
- .NET简谈面“.NET技术”向接口编程
- delphi技术专题---获取网卡物理地址之NetBios网络编程接口LANA介绍
- MS Active Accessibility 接口技术编程尝试
- 射频识别技术漫谈(29)——射频接口芯片TRF7960
- 基于MATLAB 进行混合编程的接口技术实现
- CC2538之TinyOS例程实验:3/4-timer nesC编程最难理解部分参数化接口讲解
- 【Spark大数据处理技术】RDD及编程接口:(一)
- [技术讨论]关于针对接口编程的建筑模式比喻
- Android网络编程核心技术(一)Apache接口
- Android网络编程核心技术(二)Java接口和Android接口
- BlockChain技术系列(六)- 应用编程接口
- 可编程串行接口芯片Intel8251A
- 【操作系统】linux--编程技术--嵌入式实验
- 微机原理课程设计-接口芯片编程记录
- 跟着百度学PHP[4]OOP面对对象编程-12-对象接口技术(interface)