实验七 8255 并行IO扩展实验
单片机可编程并行接口芯片8255的应用实验
单片机可编程并行接口芯片8255的应用实验一:实验目的和要求1、掌握中断系统外部中断源的使用方法。
2、掌握延时程序的编程及使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二:设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。
2、在8255PA口或PB口的某一口线上产生周期500μS的连续方波,接示波器观察波形。
3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态三:电路原理四:流程框图五:实验结果六:实验总结通过本次试验,掌握了如何在单片机外部扩展I/O口,并且如何在程序中使用这些扩展出来的I/O口,为以后的学习和使用打下了一定的基础,存在的问题是在编写程序时不够熟练,需要多练习七:思考题1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化四:流程框图开始工作方式初始化开定时器定时器初始化查询计数标志位溢出否取反输出口A中内容送DPTR设置C口命令DPTR指向控制位是否开始DPTR指向C口C口内容送累加器DPTR指向控制位交换累加器内容高低位累加器中内容送C开始DPTR指向控制位A中内容送DPTR 定义查表执行次数查表数据送C口调用延时子程序查询次数完否否是修改变量值1秒延时程序子程序返回程序清单ORG 0000H MOV DPTR, #0003H MOV A, #80H MOVX @DPTR, AMOV DPTR, #0000H MOV A, #0FFH MOVX @DPTR, AMOV IE, #00H MOV TMOD, #20H SETB TR1MOV TL1, #06H MOV TH1, #06H LOOP0:JBC TF1, LOOP1 AJMP LOOP0 LOOP1:CPL ACC.0 MOVX @DPTR, A AJMP LOOP0 END#include<reg52.h>#include<absacc.h>#define uchar unsingned char #define uint unsingned int #define COM8255 XBYTE[0X0003] #define PA8255 XBYTE[0X0000] #define PB8255 XBYTE[0X0001] char A;void main(){TMOD=0X11;IE=0;TH1=0XFF;TL1=0X06;PA8255=0XFF;TR1=1;A=1;for( ; ;){do {} while(!TF1);A=!A;if(A==0){PA8255=0XFE;TL1=0X06;TH1=0XFF;TF1=0;}if(A==1){PA8255=0XFF;TL1=0X06;TH1=0XFF;TF1=0;}}}ORG 0000HMOV DPTR, #0003HMOV A, #81HMOVX @DPTR, AMOV DPTR, #0002H LOOP: MOVX A, @DPTRSWAP AMOVX @DPTR, ALJMP LOOPEND#include<reg52.h>#include<absacc.h>#define uchar unsingned char#define uint unsingned int#define COM8255 XBYTE[0X0003]#define PA8255 XBYTE[0X0000]#define PB8255 XBYTE[0X0001]#define PC8255 XBYTE[0X0002]void main(){COM8255=0X81;PC8255=0XFF;while(1){PC8255=PC8255/16+PC8255%16*16;}}ORG 0000HLOOP2: MOV DPTR, #0003HMOVX @DPTR, AMOV R0, #00HMOV R1, #10HLOOP:MOV DPTR, #TABLEMOV A, R0MOVC A, @A+DPTRMOVX @DPTR, ALCALL DELAY1SINC R0DJNZ R1, LOOPLJMP LOOP2TABLE:DB 00H,01H,02H,03H,04H,05H,06H,07H08H,09H,0AH,0BH,0CH,0DH,0EH,0FH DELAY1S:MOV R7, #0A7HDL1:MOV R6, #0ABHDL0:MOV R5, #10HDJNZ R5, $DJNZ R6, DL0DJNZ R7, DL1NOPRETEND#include <reg52.h>#include <absacc.h>#include <intrins.h>#define uchar unsigned char#define PROTECT XBYTE[0X0003]#define PA8255 XBYTE[0X0000]#define PB8255 XBYTE[0X0001] #define PC8255 XBYTE[0X0002] void delay1s();main(){uchar n=16;uchar h=0xfe;PROTECT=0x80;while(1){PC8255=h;delay1s();h=_crol_(h,1);}}void delay1s(void){unsigned char a,b,c;for(c=167;c>0;c--)for(b=171;b>0;b--)for(a=16;a>0;a--);_nop_(); }五:实验结果。
微机原理与汇编语言_实验7_8255并行接口实验
微机原理与汇编语言实验报告姓名x x x学号xxxxxx专业班级计科x班课程名称微机原理与汇编语言实验日期实验名称8255并行接口实验成绩一、实验目的掌握8255A的编程原理。
二、实验内容1、实验原理本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。
8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。
8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。
实验中,8255A工作于基本输入输出方式(方式0)。
2、实验步骤1)实验接线CS0CS8255;PA0~PA7平推开关的输出K1~K8;PB0~PB7发光二极管的输入LED1~LED8。
2)编程并全速或单步运行。
3)全速运行时拨动开关,观察发光二极管的变化。
当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。
3、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。
例如:K2置于L位置,则对应的LED2应该点亮。
三、实验源码及框图assume cs:codecode segment publicorg 100hstart: mov dx,04a6h ;控制寄存器地址mov ax,90h ;设置为A口输入,B口输出out dx,axstart1: mov dx,04a0h ;A口地址in ax,dx ;输入mov dx,04a2h ;B口地址out dx,ax ;输出jmp start1code endsend start四、练习键盘接口实验。
请阅读实验指导手册,根据实验台键盘电路结构,设计实验,编制程序实现键盘的按键识别,并将其代码通过Led指示灯显示。
练习键盘框图:实验源码:assume cs:codecode segment publicorg 100hTimer = 10;延时常量;设置行线接输出端口,列线接输入端口start:mov dx,04a6h;控制端写控制字,设置为A口输入,B口输出mov al,90hout dx,alWait:mov al,00hmov dx,04a2hout dx,al ; 往所有行线上输出低电平movin al,dx ; 读取列值cmp al,0ffh ;是否有列线为低电平jz wait ;否,则循环等待done: call delay ;是,则延迟去抖动mov cx,8 ;行数送CXkey2:mov al,0mov dx,04a2h ;B口作为输出out dx,al ;设置行线全为低mov dx,04a0h ;A口作为输入in al,dx ;读取列值cmp al,0ffhjz key2 ;无闭合键,循环等待push ax ;有闭合键,保存列值push ax;设置行线接输入端口,列线接输出端,A口输出,B口输入mov dx,04a6hmov al,82hout dx,almov dx,04a0h ;A口输出pop axout dx,al;输出列值mov dx,04a2h ;B口输入in al,dx ;读取行值pop bx ;组合行列值mov ah,bl ;此时,al=行值,ah=列值mov si,offset table ;table保存键盘行列值mov di,offset char ;char保存键代码值mov cx,24 ;cx=键的个数key3:cmp ax,[si];与键值比较jz key4 ;相同,说明查到inc si ;不相同,继续比较inc siinc diloop key3jmp start ;全部比较完无相同则再进行扫描一遍jmp wait ;全部比较完,仍无相同,说明是重键key4:mov al,[di];获取键代码送ALpush ax;判断按键是否释放,没有则等待call delay ;按键释放,延时消除抖动;后续处理;将代码值输给小灯mov dx,04a6h;控制寄存器地址mov ax,0080h ;设置C口输出out dx,axmov dx,04a4h ;将键代码从C口输出送给小灯pop axout dx,aldelay procpush bxpush cxmov bx,timer;外循环次数由timer确定delay1: xor cx,cxdelay2: loop delay2 ;内循环dec bxjnz delay1pop cxpop bxretdelay endp;键盘的行列值表table dw 0fefeh ;键1的行列值(键值)dw 0fefdh ;键2的行列值dw 0fefbh ;键3的行列值dw 0fe07h ;键4的行列值dw 0fedfh ;键6的行列值dw 0febfh ;键7的行列值dw 0fe7fh ;键8的行列值dw 0fdfeh ;键9的行列值dw 0fdfdh ;键10的行列值dw 0fdfbh ;键11的行列值dw 0fd07h ;键12的行列值dw 0fdefh ;键13的行列值dw 0fddfh ;键14的行列值dw 0fdbfh ;键15的行列值dw 0fd7fh ;键16的行列值dw 0fbfeh ;键17的行列值dw 0fbfdh ;键18的行列值dw 0fbfbh ;键19的行列值dw 0fb07h ;键20的行列值dw 0fbefh ;键21的行列值dw 0fbdfh ;键22的行列值dw 0fbbfh ;键23的行列值dw 0fb7fh ;键24的行列值……;S25、S26其他键的行列值;键盘的键代码表char db 30h ;键1的代码值db 31h ;键2的代码值db 32h ;键2的代码值db 33h ;键3的代码值db 35h ;键5的代码值db 36h ;键6的代码值db 37h ;键7的代码值db 38h ;键8的代码值db 39h ;键9的代码值db 41h ;键A的代码值db 42h ;键B的代码值db 43h ;键C的代码值db 44h ;键D的代码值db 45h ;键E的代码值db 46h ;键F的代码值db 61h ;键a的代码值db 62h ;键b的代码值db 63h ;键c的代码值db 64h ;键d的代码值db 65h ;键e的代码值db 66h ;键f的代码值db 67h ;键g的代码值db 68h ;键h的代码值……;S25、S26其他键的代码值code endsend start实验现象:按相应的键,LED灯会显示相应的代码。
综合实验七 8255并口扩展实验
实验七 8255并口扩展实验一、实验目的1.理解单片机并口编程方法; 2.掌握8255编程方法; 二、实验原理及内容1.实验原理8255资料读者可以参考微机原理相关内容或者参考光盘中的器件资料中的相关文档。
下图是8255在该实验系统的应用。
如图8-9所示,读写信号与单片机的接口如图所示。
A11通过跳线J408作为8255A 的片选信号。
实验系统工作原理:任意按下PA 口的键,对应的PB 发光二极管会亮,直到放下按键,PC 口在该实验系统中没有使用。
RESTRD WR A0A1D0D1D2D3D4D5D6D7A11PB0PB1PB2PB3PB4PB5PB6PB7PA0PA1PA2PA3PA4PA5PA6PA7PC0PC1PC2PC3PC4PC5PC6PC711223344556677Vss 899101011111212131314141515Vdd 16s w 8K401SW8AD0AD1AD2AD3AD4AD5AD6AD7D0D1D2D3D4D5D6D7D03D14D27D38D413D514D617D718OE 1CP 11Q02Q15Q26Q39Q412Q515Q616Q719VCC 20GND 10U40874LS373R4081K R4091K R4101K R4111K R4121K R4131K R4141K R4151KR4161K R4171K R4181K R4191K R4201K R4211K R4221K R4231KVCCPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7D0D1A0A1GND ALE V401LED V402LED V403LED V404LED V405LED V406LED V407LED V408LED VCCC404104C405104+C40610u R42410KVCCGND D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD 5WR 36A09A18RESET 35CS6GND 7VCC26U4078255AS405SW-PB S406SW-PB S407SW-PB S408SW-PB S409SW-PB S410SW-PB S411SW-PB S412SW-PB GNDGND VCCVCCGNDGND612J408CON2R4274.7KVCC图8-9 8255应用原理图2.实验内容1)将扩展板的电源J501与主板的电源接口J2或J14连接起来;将扩展板的信号接口J500与主板的信号接口J15或J13连接起来。
实验七 8255并行IO接口
实验七8255并行I/O口一、实验目的8255可编程并行I/O接口有三个通道和三种工作方式.其中A,B通道和外设交换数据,C 通道和外设交换状态信息。
8255并行I/O接口与外设交换的方式由软件预先设置,该过程称为初始化.1.学会正确使用8255和CPU及外设的接口方法,2.掌握8255的编程原理,3.熟悉外设的信息通过8255和CPU的交换过程二、实验内容1.用8255的A端口控制8个LED发光二极管的循环亮灭.其硬件线路连接如图4.2所示2.编程:要求通过软件延时程序控制8个指示灯周而复始的循环点亮.3.编程提示8255的控制字如下:Array三、程序框图略四、程序清单;FILENAME:8255.ASM;THIS PROGRAM IS USED FOR TEST OUTPUT OF 8255'S A PORT;NOTICE:;CHIP:8255;CS--Y2(74LS138):210H--217H;PA0--PA7==LEDPORT_8255_A EQU 210HPORT_8255_B EQU 211HPORT_8255_C EQU 212HCONTROL_PORT_8255 EQU 213HDA TA SEGMENT PARA 'DATA'BUFFER DB 100 DUP(?)DA TA ENDSSTACK SEGMENT PARA STACK 'STACK'STA DB 1024 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT PARA 'CODE'ASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DATA MAIN PROC FARBEGIN:MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV DX,CONTROL_PORT_8255MOV AL,10000000B ;A PORT:MODE 0,OUTPUTOUT DX,ALMOV DX,PORT_8255_AMOV AL,0FFHOUT DX,ALMOV AL,0FEHMOV CX,0A0HAGAIN3:OUT DX,ALMOV BX,0A0H ;DELAY TIMEAGAIN2:MOV SI,2FFFHAGAIN1:NOPNOPDEC SIJNZ AGAIN1DEC BXJNZ AGAIN2 ;DELAY TIME ENDSROL AL,1DEC CXJNZ AGAIN3MOV DX,PORT_8255_AMOV AL,0FFH ;CLOSE LEDOUT DX,ALMOV AX,4C00H ;RETURNINT 21H MAIN ENDP CODE ENDSEND BEGIN。
实验七 8255A 并行口实验
实验七8255A 并行口实验(二)一、实验目的掌握通过8255A 并行口传输数据的方法,以控制发光二极管的亮与灭。
二、实验内容用8255 做输出口,控制十二个发光管亮灭,模拟交通灯管理。
三、实验程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BH;8255控制口IOAPT EQU 0FF28H;PA口IOBPT EQU 0FF29H;PB口IOCPT EQU 0FF2AH;PC口ORG 11E0HSTART: MOV AL,82H;PB输入,PA,PC输出MOV DX,IOCONPTOUT DX,AL;写命令字MOV DX,IOBPT;读PB口IN AL,DXMOV BYTE PTR DS:[0601H],AL;保存PBMOV DX,IOCONPT;8255控制口MOV AL,80HOUT DX,AL;写命令字,PA,PB,PC输出MOV DX,IOBPTMOV AL,DS:[0601H]OR AL,0F0HOUT DX,AL;将读入的PB状态重新置到PB上MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮CALL DELAY1;延时IOLED0:MOV AL,10100101BMOV DX,IOCPTOUT DX,AL;南北绿灯亮,东西红灯亮;-----------------------------------------------CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时;------------------------此处为南北绿灯亮的时间-------------OR AL,0F0HOUT DX,AL;南北绿灯灭,东西红灯亮MOV CX,8IOLED1:MOV DX,IOBPTMOV AL,DS:[0601H]AND AL,10101111BOUT DX,AL;南北黄灯亮,东西黄灯亮CALL DELAY2;延时 --------------南北黄灯闪烁时间OR AL,01010000BOUT DX,AL;南北黄灯灭,东西黄灯灭CALL DELAY2;延时LOOP IOLED1;南北黄灯闪烁8次MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮;----------------------------------------------------------CALL DELAY2;延时;----------------------此处为四路口红灯全亮时间---------------- MOV AL,01011010BOUT DX,AL;东西绿灯亮,南北红灯亮;---------------------------------------------------------CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时;----------------------此处为东西绿灯亮的时间-----------------------------------OR AL,0F0HOUT DX,AL;东西绿灯灭MOV CX,8IOLED2:MOV DX,IOBPTMOV AL,DS:[0601H]AND AL,01011111BOUT DX,AL;东西黄灯亮,CALL DELAY2;延时 --------------东西黄灯闪烁时间OR AL,10100000BOUT DX,AL;东西黄灯灭,CALL DELAY2;延时LOOP IOLED2;东西黄灯闪烁8次,南北黄灯亦然MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮;---------------------------------------------------------- CALL DELAY2;延时;----------------------此处为四路口红灯全亮时间------------ JMP IOLED0;循环继续DELAY1:PUSH AXPUSH CXMOV CX,0030HDELY2:CALL DELAY2;延时,DELAY1延时是DELAY2的48倍LOOP DELY2POP CXPOP AXRETDELAY2:PUSH CXMOV CX,8000HDELA1:LOOP DELA1POP CXRETCODE ENDSEND START四、实验结果本实验实现了双路口的,交通灯循环。
微机实验 可编程并行接口8255
微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。
2、掌握8255的典型应用电路接法。
二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。
2、用PC端口位控制法控制LED灯,依次点亮LED灯。
四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。
微机原理与接口实验-4.1-IO端口扩展-8255-赖晓铮
选PB口:A1A0=01
初始化PB口,LED全灭
(M地址:机器指令) 00H:00110000 01H:10000110 02H:01010010 03H:00110000 04H:10010001 05H:01010000 06H:00110000 07H:10000010 08H:01010010 09H:00110000 0AH:11111111 0BH:01010000
keyboard
汇编助记符
注释
(M地址:机器指令)
HLT XOR R0, R1
JZ 33H
按键要保持到此断点后才能松开! 无键按下,R0是,R0=R1
有键按下,R0低四位1110/1101/1011/0111
行输出1001无键按下,跳转 L2:
23H:00000001 24H:10110001 25H:00011000 26H:00110011
重启过程(跳出“断点”)
1) 时钟信号CLK接开关MANUAL,手 动令复位信号端#RESET的状态 “101”变化,即重启完成, 跳出“断点”继续执行 。
注:跳出“断点”后,CPU进入HLT指令的 后续下一条指令的取指周期。
8255应用电路图
可编程并行IO接口芯片8255A结构图
#CS #RD #WR A1 A0 0 0 1 00 0 0 1 01 0 0 1 10 0 1 0 00 0 1 0 01 0 1 0 10 0 1 0 11 1 X X XX
微程序版“CPU+8255”电路图
初始化过程
1) 时钟信号CLK接手动开关MANUAL,启动仿真,使能复位信号 #RESET=0;
2) 手动按钮MANUAL开关“010”,然后令信号#RESET=1.
微机原理实验 可编程并行接口 8255 实验
2、8255A的工作方式:
方式0—基本输入输出方式;方式1—选通输入输出方式;方式2—双向选通输入输出方式
3、8255A的状态字:
图1可编程并行接口8255电路
五、实验电路及连线
1、流水灯实验:
(1)实验连线
该模块的WR、RD分别连到MCU主模块的WR、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255模块选通线CS连到MCU主模块的地址A15。
8255的PA0~PA7连到发光二极管的L0~L7。
(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部
(2) I/O输入输出实验:利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示
四、实验原理
1、8255A的内部结构:
(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
实验 并行IO口8255扩展
}
}
//刷新显示一段时间后递增1,形成滚动效果,最大索引为14
i= (i+1)%15;
}
}
0xff, 0xff, 0xff,0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
//共阳极的7段集成式数码管对应编码
// 0:0xc0
// 1:0xcf
// 2:0xa4
// 3:0xb0
// 4:0x99
// 5:0x92
// 6:0x82
// 7:0xf8
// 8:0x80
#define PC XBYTE[0x0002] //定义8255B地址
#define COM XBYTE[0x0003] //定义8255B控制寄存器地址
//待显示字符队列编码
uchar code DSY_CODE_Queue[ ]=
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
// 9:0x90
// A:0x88
// B:0x83
// C:0xc6
// D:0xa1
// E:0x86
// F:0x8e
// DOT:0x7f
// -:0xaf
//数码管选通
uchar DSY_Index[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
实验三并行I/O口8255扩展
一、实验目的
1、了解8255A芯片的结构以及编程方法
2、掌握通过8255A并行口读取开关数据的方法
二、实验说明
本次实验用通过8255扩展接口,仅通过P0端口控制8只集成式7段数码管的显示控制。8255A的PA、PB端口分别连接8位数码管的段码和位码,程序控制数码管滚动显示一串数字。
8255扩展实验
1、实验目的
了解8255的基本结构和工作原理; 掌握8255的工作方式及应用编程;
2.实验内容 2.实验内容
2 1
D1
D2
D3
D4
D5
D6
D7
D8
LED-YELLOW
10
12
4
6
8
2
4
U4:B
7407 11 13 3 5 9 1 3 L7
U2
D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 RESET CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 8255A PACKAGE=DIL40 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 L0 L1 L2 L3 L4 L5 L6 L7 K0 K1 K2 K3 K4 K5 K6 K7 K0 K1 K2 K3 K4 K5 K6 K[0..7] K7
D 7 D 6 D 5 D4 D 3 D 2 D1 D 0
B组 C 口 (下 半 部 ) 1=输 入 0=输 出 B口 1=输 入 0=输 出 模式选择 1=模 式 1 0=模 式 0 A组 C 口 (上 半 部 ) 1=输 入 0=输 出 A口 1=输 入 0=输 出 模式选择 00=模 式 0 01=模 式 1 1×=模 式 2 控制选择 1=工 作 方 式 控制
3、参考例程 5.参考例程 参考例程
;端口地址送DPTR ;8255控制字送A ;置8255为工作方Hale Waihona Puke 0,;扫描模式送8255的B
8255并行IO口 实验报告
大理大学
实验报告
课程名称:微机原理与接口技术
学院:工程学院
专业:
年级:班级:
姓名:羽卒兰cl 学号:
指导教师:
2016 年 6 月2 日
大理大学教务处制
图 3-2
源代码:
L8255_CMD EQU 2A3H ;8255A的控制器的地址
L8255_PA EQU 2A0H ;8255A的A端口的地址
L8255_PB EQU 2A1H ;8255A的B端口的地址
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:CODE
START:MOV DX,L8255_CMD ;8255A初始化
MOV AL,90H ;8255A方式0,A端口输入,B端口输出,根据条件在8255A的控制字找出对
3.8255A的基本性能:
可编程通用并行输入/输出接口电路
通用性强,使用灵活,通过它CPU可直接与外设相连
具有三个相互独立的输入/输出端口
A端口、B端口、C端口
三个端口可联合使用,构成具有握手联络信号的并行接口
端口有多种工作方式可供选择
A口有三种工作方式:方式0、1、2
B口有二种工作方式:方式0、方式1
C口有一种工作方式:方式0
A口和B口工作方式是由写入控制寄存器的工作方式控制字决定的;
A口和B口的工作方式的设置是相互独立的。
8255并行输入输出实验报告
东南大学《微机实验及课程设计》实验报告实验六8255并行输入输出姓名:学号:专业:实验室:计算机硬件技术实验时间:2012年05月18日报告时间:2012年05月20日评定成绩:审阅教师:一. 实验目的与内容1)掌握8255 方式0 的工作原理及使用方法,利用直接输入输出进行控制显示;2)掌握8 段数码管的动态刷新显示控制;3)分析掌握8255 工作方式1时的使用及编程,进一步掌握中断处理程序的编写。
二. 基本实验原理(一)、8255 方式0:简单输入输出实验电路如下图所示,8255C 口输入接逻辑电平开关K0~K7,编程A 口输出接LED 显示电路L0~L7;用指令从 C 口输入数据,再从A 口输出。
实验电路及程序流程图如下:/CS为片选信号,由系统地址线译码产生,低电平有效;此方式为简单输入输出,A口、B口、C口的高4位和低4位都可以分别设置成输入或输出,在此实验中设置C口为数据输入端,A口为数据输出端。
(二)、数码管显示原理实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
七段数码管的字型代码如下表所示: 数码管对应断码为:(三)、8 段数码管静态显示按下图所示连接好电路,将8255 的A 口PA0~PA6 分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1 接+5V(选中),S0、dp 接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
单管静态显示电路如下图所示:输入数据经8255芯片并行输出,将信息反映在8段数码管s1上。
实验结果显示:(四)、 8 段数码管动态显示按下图所示连接好电路,七段数码管段码连接不变,位码驱动输入端S1、S0 接8255 C 口的PC1、PC0。
编程在两个数码管上显示“56”。
(注意字符变换之间应使段位全灭,避免显示“影子”)双管动态电路设计及程序流程图如下:送位码02H至C口,使PC0为0,PC1为1,即选中S1,关闭S0,在S1的数码管上显示“5”;送位码01H至C口,使PC0为1,PC1为0,即选中S0,关闭S1,在S0的数码管上显示“6”。
8255可编程并行接口实验实验报告
微机原理实验报告实验名称8255可编程并行接口实验一、实验目的1、掌握8255芯片结构及工作方式,2、熟悉8255并行口扩展的编程。
二、实验设备1、Lab6000p实验教学系统;2、IBM-PC机三、系统中的8255模块Lab6000p实验箱中的8255模块连线如下图所示:图1 8255模块的连线AD0~AD7、A0、A1、RESET、/WR、/RD已分别连至系统总线DB0~DB7、AB0、AB1、RESET、/IOW、/IOR;8255_CS、PA口、PB口、PC口引出留给用户连接。
三、实验内容和实验步骤1、8255基本输入输出方式――开关控制LED显示1)实验要求开关拨上LED亮,开关拨下LED灭。
2)电路连接图2 电路连接图8255_CS连至地址译码/CS0,PA口连至LED电平显示模块,PB口连至开关电路。
3)程序框图图4 程序框图4)程序代码见附录程序2.15)实验步骤1、在Lab6000p实验箱上完成连接电路;2、开启计算机电源,开启Lab6000p实验箱电源;3、启动WAVE6000软件;4、确认WAVE6000与Lab6000p连接;5、输入源代码;6、编译源代码(F9);7、单步运行源代码(F8),观察每条指令执行结果;8、连续运行程序,上下拨动开关观察LED显示情况。
2、8255选通输入方式――开关控制LED显示1)实验要求开关上的逻辑信号在选通信号有效时读入微处理器,并送到LED显示。
2)电路连接将选通信号(单脉冲)接到PC2,其余连线和实验1中的相同。
3)程序框图图5 程序框图4)程序代码见附录程序2.25)实验步骤1、在Lab6000p实验箱上完成连接电路;2、开启计算机电源,开启Lab6000p实验箱电源;3、启动WAVE6000软件;4、确认WAVE6000与Lab6000p连接;5、输入源代码;6、编译源代码(F9);7、单步运行源代码(F8),观察每条指令执行结果;8、连续运行程序,上下拨动开关观察LED显示情况。
扩展8255并行口实验(组成与结构实验)
南京晓庄学院信息与技术学院计算机组成原理与结构课题实验报告实验名称:扩展8255并行口实验年级专业班级:级专业班级学号:姓名:学号:姓名:学号:姓名:时间:2013 年11 月23 日一、实验目的、要求:1)在构成一台完整的模型机的基础上,控制真实的外围接口芯片,进行基本的8255并行口实验。
2)熟悉用微过程控制模型机的数据通路,使学生掌握系统各功能模块的基本工作原理3)培养学生单片机应用系统的设计能力;4)使学生较熟练地应用电子线路CAD工具完成单片机系统的硬件设计任务5)学习设计与调试计算机的基本步骤及方法。
6)将预习时编写的五条机器指令的微程序上机调试,通过执行机器指令,掌握各部联机运行情况,进一步建立整机概念。
二、实验仪器设备、器件及环境:仪器设备名称规格型号编号备注DVCC-C8J20112037 计算器组成原理实验系统H20110598PC00112E42三、实验方法、原理:实验模型机CPU结构[1] 运算器单元(ALU UINT)运算器单元由以下部分构成:两片74LS181构成了并-串型8位ALU;两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运算结果。
ALU的S0~S3为运算控制端,Cn 为最低进位输入,M为状态控制端。
ALU的输出通过三态门74LS245连到数据总线上,由ALU-B控制该三态门。
[2] 寄存器堆单元(REG UNIT)该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数用中间运算结构等。
三个寄存器的输入输出均以连入数据总线,由LDRi和RS-B根据机器指令进行选通。
[3] 指令寄存器单元(INS UNIT)指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由LDIR控制其选通。
[4] 时序电路单元(STA TE UNIT)用于输出连续或单个方波信号,来控制机器的运行。
[5] 微控器电路单元(MICRO-CONTROLLER UNIT)微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。
单片机并行IO口8255扩展实验
实验一并行I/O口8255扩展实验
一、实验目的
了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。
二、实验内容
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
三、实验说明
因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西绿灯通车,南北红灯。
过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。
再转状态3,南北绿灯通车,东西红灯。
过一段时间转状态4,南北绿灯灭,黄灯闪烁几次,东西仍然红灯,最后循环至状态1。
四、实验原理图
五、实验程序框图(8255.ASM)
六、实验步骤
①8255 PC0-PC7、
PB0-PB3分别接L0~L11
红、黄、绿发光二极管;
②8255CS接Y0(在仿
真插头所在扩展总线区);
③打开8255接口区中的
电源开关S1;
④调试、运行程序(内
程序,外数据);
⑤初始态为四个路
口的红灯全亮之后,东西
路口的绿灯亮南北路口的
红灯亮,东西路口方向通
车。
延时一段时间后东西
路口的绿灯熄灭,黄灯开
始闪烁。
闪烁若干次后,
东西路口红灯亮,而同时
南北路口的绿灯亮,南北
路口方向开始通车,延时
一段时间后,南北路口的
绿灯熄灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,之后重复以上过程。
.。
8255扩展并口芯片
8255扩展并口芯片8255并口扩展实验一、实验目的熟悉并口扩展芯片8255的内部结构,学会使用8255扩展并口。
二、实验设备及器件IBMPC机一台DP-51PROC单片机综合仿真实验仪一台8255PACK 模块(选配件)一套三、实验内容通过片外总线方式访问并口扩展芯片8255,并使它的PA口闪烁点亮8个LED。
四、实验要求理解掌握并口扩展芯片8255的原理和该芯片的编程方法,学会使用并口扩展芯片8255进行8位并行接口的扩展。
五、实验步骤1.将8255PACK模块(选配件)插入PARK2区;2.使用导线连接A7区的P2_IO1、P2_IO2、P2_IO5和P2_CS分别至A2区的A8、A9、P10和A15;3.使用排线连接8255PACK模块上的J1接口(PA口)至D1区的J52接口;4.运行编写好的程序,观察8个LED的点亮情况。
六、实验预习要求认真预习本节实验内容,按照实验的要求提前做好实验准备工作,认真阅读8255的数据手册。
七、实验参考程序2.C51程序://---------------------------------------------------------//网站://---------------------------------------------------------#include#include#include#define_Nop()_nop_()#definePACXBYTE[0x7fff]#definePAXBYTE[0x7cff]typedefunsignedcharbyte;sbitRST=P1^0;voidini_cpu(void) {RST=1;_nop_();_nop_();_nop_();_nop_();_nop_();RST=0;PAC=0x80;}voiddelay(void){bytem,n;for(m=0;m<255;m++)for(n=0;n<255;n++);}voidmain(void){ini_cpu();while(1){PA=0x00;delay();PA=0xff;delay();}}//---------------------------------------------------------//网站://---------------------------------------------------------#include#include#defineucharunsignedchar#defineuintunsignedint#definePAXBYTE[0X0000]#definePBXBYTE[0x0001]#definePCXBYTE[0X0002]#defineCOMXBYTE[0X0003]ucharcodeDSY_CODE[]={0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XA4,0XC0,0XC0,0X80,0XC0,0X80,0XF9,0X80,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};ucharcodeDSY_index[]={0x10,0x02,0x04,0x08,0x10,0x20,0x40,0x80};voiddelayms(uintms){uchari;while(ms--)for(i=0;i<120;i++);}voidmain(){uchari,j,k;COM=0x80;while(1){{for(j=0;j<40;j++){for(k=0;k<8;k++){PB=DSY_index[k]; PA=DSY_CODE[k+i]; delayms(5);}}i=(i+1)%15;}}。
并行IO接口的扩展实验报告
并行IO接口的扩展实验报告一、实验目的1、了解并行IO接口的扩展方法2、掌握可编程接口芯片8255A的工作原理、编程方式和使用方法二、实验条件1、DOS操作系统平台2、8255A接口芯片三、实验原理1、并行IO口的扩展方法:(1)通过通用的IO扩展芯片实现(2)通过TTL、CMOS 锁存器、缓冲器芯片实现。
如74LS377、74LS273、74LS244、74LS245 等。
(3)通过串行通信口扩展并行I/O 口。
2、8255A 扩展I/O 端口:(1)8255A 具有三种基本工作方式,即方式0、方式1、方式2。
各端口的工作方式及输入输出方向都由方式控制字设定(通过写入控制寄存器)。
8255A 的控制字有方式控制字和C 口置位/复位控制字两种。
3、8255A 的工作方式:(1)方式0 是一种基本I/O 方式。
在这种工作方式下,三个端口都可由程序设定为输入或输出,这种方式不使用联络信号,其基本功能为:a. 两个8 位端口(A、B) 和两个4 位端口(C)。
b. 任一个端口可以作为输入或输出。
c. 输出锁存,输入不锁存。
d. 在方式0 时,各端口都可以作为数据端口,CPU 用简单的输入或输出指令来进行读或写。
(2)方式1 是一种选通I/O 方式。
在这种方式下,端口A 和B 可作为数据端口,但C 口的某口的其它位仍可工作于方式0。
方式1 的基本功能为:a. 用作一个或两个选通端口。
b. 每个选通端口包含有:8 位数据瑞口,3 条控制线,提供中断逻辑。
c. 任一端口可输入或输出。
d. 若只有一个端口工作于方式1,余下的13 位可以工作于方式0。
e. 若两个端口工作于方式1,C 口余下2 位可以工作于方式0。
(3)方式2 是一种双向I/O 方式,只有端口 A 具有这种工作方式,其基本功能为:a. 一个8 位双向数据端口(A)和一个5 位控制端口(C)。
b. 输入和输出锁存。
c. 5 位控制端口用作端口A 的状态和控制信息。
实验7 并行IO接口82C55应用
上海电力学院单片机实验报告实验名称:并行I/O接口82C55应用试验日期:2012年12月13日专业:电子科学与技术专业姓名:李名扬班级:2010142学号:20102466(一)基本实验一、实验目的了解8255芯片的结构及编程方法。
二、实验内容用8255的PA口做输入口,PB口做输出口,控制PA口状态从PB口输出显示。
三、实验说明通过PA口接8个开关K1~K8,PB口接8个发光二极管,从PA口读入8位开关的状态送PB口显示,拨动K1~K8,PB口上接的8个发光二极管L0~L7对应显示K1~K8的状态。
图(7-1)五、实验程序框图六、实验步骤1、8255 芯片的PA(PA0~PA7)插座用8芯线连接开关JK(K1~K8)。
2、8255 芯片的PB(PB0~PB7)连接发光二极管JL(L0~L7)。
3、8255芯片的片选8255CS插孔接译码输出Y0。
4、调试、运行程序test3中8255.ASM。
拨动开关,相对应的发光二极管显示其状态。
七、试验程序(二)提高实验一、实验内容用82C55控制LED显示器。
82C55的PA口以静态方式控制8个数码管显示器的显示内容,PB口控制数码管显示器的选通输端口。
通过PC口读入按键控制信息。
K1按下,数码管LED0显示数字:0K2按下,数码管LED1显示数字:1K3按下,数码管LED2显示数字:2K4按下,数码管LED3显示数字:3K5按下,数码管LED4显示数字:4K6按下,数码管LED5显示数字:5K7按下,数码管LED6显示数字:6K8按下,数码管LED7显示数字:7二、LED显示器的线路图三、实验步骤1、82C55芯片的PC0~PC7插孔依次接在开关K1~K8。
2、82C55芯片的PB0~PB7连接LED显示区BIT。
3、82C55芯片的PA0~PA7连接LED显示区CODE。
4、82C55芯片的片选82C55CS插孔接译码输出Y0。
5、调试运行程序,拨动开关,相对应的LED显示器显示其状态。
实验报告_IO口扩展实验
学院:职业技术学院专业:电子信息科学与技术班级:电信职081
姓名
学号
实验组
实验时间
指导教师
李国良
成绩
实验项目名称
IO口扩展实验
实验目的
实验目的:
1.熟悉IO口扩展的方法;
2.掌握8255或74LS373扩展并行输出口的方法
3.熟悉PROTEUS及KEIL 51软件的使用方法
实验要求
利用8255或74LS373扩展输出口,用LED指示输出数据的状态变化.
实验要求
1.要求设计电路实现一定的功能,并说明其功能;
2.实现功能应能体现并行接口扩展特点
实验仪器
实验仪器:
计算机、Keil编程环境、PROTEUS仿真环境
实验步骤
利用PROTEUS软件提供的仿真元件画出仿真电路图,功能自定。
实验内容
实பைடு நூலகம்电路:
实验数据
程序清单:
实验总结
指导教师意见
签名:年月日
注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七8255 并行I/O扩展实验
一、实验要求
利用8255 可编程并行口芯片,实现输入、输出实验,实验中用8255PA 口作读取开关状态输入,8255PB 口作控制发光二极管输出。
二、实验目的
1、了解8255 芯片结构及编程方法。
2、了解8255 输入、输出实验方法。
三、实验电路及连线
1、Proteus 实验电路
2、硬件验证实验
硬件连接表
四、实验说明
1、8255A 芯片简介:8255A 可编程外围接口芯片是INTEL 公司生产的通用并行接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:
方式0:基本输入/ 输出方式
方式l:选通输入/ 输出方式
方式2:双向选通工作方式
2、使8255A 端口A 工作在方式0 并作为输入口,读取Kl-K8 个开关量,PB 口工作在方式0作为输出口。
五、实验程序流程图
六、实验步骤
1、Proteus 仿真
a.在Proteus 中打开设计文档8255_STM.DSN;
b.建立实验程序并编译,仿真;
c.如不能正常工作,打开调试窗口进行调试。
参考程序:
CODE SEGMENT
ASSUME CS:CODE
IOCON EQU 8006H
IOA EQU 8000H
IOB EQU 8002H
IOC EQU 8004H START:
MOV AL,90H
MOV DX,IOCON
OUT DX,AL
NOP
START1:
NOP
NOP
MOV AL,0
MOV DX,IOA
IN AL,DX
NOP
NOP
MOV DX,IOB
OUT DX,AL
JMP START1 CODE ENDS
END START
2、实验板验证
a.通过USB 线连接实验箱
b.按连接表连接电路
c.运行PROTEUS 仿真,检查验证结果。