用8255A 设计2 位静态LED 显示接口电路

合集下载

利用8255A实现LED的流水点亮实验

利用8255A实现LED的流水点亮实验
moval,00000100b
outdx,al
;-
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,40h
outdx,al
movdx,211h
moval,00000010b
outdx,al
;A
movdx,211h
moval,00000000b
outdx,al
moval,7fh
outdx,al
movdx,211h
moval,00100000b
outdx,al
;2
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,5bh
outdx,al
movdx,211h
moval,00010000b
outdx,al
;5
movdx,211h
movdx,210h
moval,77h
outdx,al
movdx,211h
moval,00000001b
outdx,al
loop lp ;转至lp
jmplop ;跳至lop
hlt ;使处理器处于暂时停机状态.
codeends
end start
在数码管上显示“8255-A”。
三、实验分析
实验要求利用8255芯片8个开关来控制8个LED灯的开关。我们在课堂上学过8255有ABC三个口,可以输入和输入。因此首先可以想到的就是,把PA口A0-A7接8个波动开关K1-K7,并将A口调整为读入。同时将A口读入的信号用B口输出,这样就可以通过拨动开关来控制LED灯的明灭。为了让灯亮的时间足够人眼分辨出来,需要在程序里加入延时语句,其中加零语句就可以实现延时。

运用8255设计的键盘及显示接口-实验报告(含接线图+源程序)

运用8255设计的键盘及显示接口-实验报告(含接线图+源程序)

运用8255设计的键盘及显示接口图中用并行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键。

将键盘中的列与PA0—PA3相连,A口为输出;将行与C口的PC0—PC1相连,C 口为输入口; PB0—PB7与七段代码显示器连接B口为输出。

程序执行过程如下:识别是否有键按下,方法是使PA0一PA3输出全0,读C 口(行值) 中只要有一位为0,就说明有键按下,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行显示七段代码显示器的程序,这时七段代码显示器就显示与该键相同的数值。

实验步骤8255接口的应用键盘及显示接线图注:圆圈处是要求接的连线。

(1)按图4接线。

(2)输入源程序,汇编、连接后装入系统。

(3)执行程序后,按一下键盘,7段代码就会显示相应的数字。

程序STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000HMOV AL,00HMOV [SI],AL ;清空存放数据的缓冲区MOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV DI,3003HMOV AL,81H ;8255方式字定义选择0方式,A口为输出;OUT 63H,AL;B口为输出;C口为输入BEGIN: CALL DIS ;显示七段代码管数据的子程序CALL CLEAR ;七段代码管清0子程序CALL CCSCAN ;检测是否有键按下子程序JNZ INK1 ;JMP BEGININK1: CALL DISCALL DALLY ;子程序为延时,消抖动CALL DALLYCALL CLEARCALL CCSCANJNZ INK2JMP BEGININK2: MOV CH,0FEHMOV CL,00HCOLUM: MOV AL,CHOUT 60H,ALIN AL,62HTEST AL,01HJNZ LONEMOV AL,00HJMP KCODELONE: TEST AL,02HJNZ NEXTMOV AL,04HKCODE: ADD AL,CLCALL PUTBUFPUSH AXKON: CALL DISCALL CLEARCALL CCSCANJNZ KONPOP AX NEXT: INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUM KERR: JMP BEGIN CCSCAN: MOV AL,00HOUT 60H,ALIN AL,62HNOT ALAND AL,03HRET CLEAR: MOV AL,00HOUT 61H,ALRETDIS: PUSH AXMOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN: OUT 60H,ALMOV AL,[SI]MOV BX,OFFSET TABLE ;取七段代码首址AND AX,00FFHADD BX,AXMOV AL,[BX]OUT 61H,ALCALL DALLYINC SIMOV AL,DLTEST AL,01HJZ OUTROR AL,1MOV DL,ALJMP AGAINOUT: POP AXRETDALLY: PUSH CXMOV CX,0010HT1: MOV AX,0010HT2: DEC AXJNZ T2LOOP T1POP CXRETPUTBUF: MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3003H GOBACK: RETCODE ENDSEND START。

实验七 8255A 并行口实验

实验七  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四、实验结果本实验实现了双路口的,交通灯循环。

微机原理课后答案

微机原理课后答案

课后练习题一、填空题1.将二进制数变换为十六进制数为。

2.将十进制数199 变换为二进制数为____ ____B 。

3.BCD码表示的数 , 加减时逢 __10____进一,ASCII 码用来表示数值时,是一种非压缩的BCD 码。

4.十进制数变换成二进制是。

5.以 _微型计算机 ____为主体,配上系统软件和外设以后,就构成了__微型计算机系统6.十进制数变换成二进制为、八进制、十六进制。

(精准到小数点后 4 位)____。

二、选择题1.货仓的工作方式是__B_________。

A )先进先出B)后进先出C)随机读写2.八位定点补码整数的范围是____D_________。

A ) -128-+128 B)-127-+127C)-127-+128D)只好读出不可以写入D) -128-+1273.字长为16 位的数可表示有符号数的范围是A) -32767-+32768 B)-32768-+32767___B___。

C ) 0-65535D) -32768-+32768三、简答题1.微型计算机系统的基本构成?微型计算机,系统软件,应用软件,输入输出设施2.简述冯 . 诺依曼型计算机基本思想?将计算过程描绘为由很多条指令按必定次序构成的程序,并放入储存器保留指令按其在储存器中寄存的次序履行;由控制器控制整个程序和数据的存取以及程序的履行;以运算器为中心,全部的履行都经过运算器。

3.什么是微型计算机?微型计算机由CPU、储存器、输入/ 输出接口电路和系统总线构成。

4.什么是溢出?运算结果高出了计算机所能表示的范围。

2. 2一、填空题1.8086/8088 的基本总线周期由 ___4____个时钟周期构成,若 CPU主频为 10MHz,则一个时钟周期的时间为μ s_____。

2.在 8086CPU的时序中,为知足慢速外头芯片的需要,CPU采样 ___READY信号,若未准备好,插入 ___TW__________时钟周期。

用8255设计LED显示器接口实验

用8255设计LED显示器接口实验

用8255设计LED显示器接口实验本文结合实验教学需要,介绍了用8255设计LED显示器接口实验的过程。

关键词:微机原理及应用;8255;LED;接口“微机原理及应用”是工科类专业的基础课,该课程比较抽象,因此实验教学起着至关重要的作用。

通过实验学生可以对比较抽象的命令、程序、输入输出接口电路加深理解。

现在仍有许多高校使用北京理工达盛科技有限公司的8086实验箱,但由于受到实验条件的限制,往常的做法是在有限的课堂时间内安排一些旨在验证理论知识的实验内容,较少涉及运用理论知识去解决实际问题。

这样的实验教学不利于发挥学生的学习主动性,不利于培养学生解决实际问题的能力。

如何改革传统的实验教学,如何培养学生的实际应用能力,本文举一个实例,需要教师利用现有的条件设计一些综合实验,让学生独立地去解决这些问题,从中培养能力。

希望本文能起到穿针引线的作用。

1设计LED显示器接口实验8086实验指导书显示器接口实验使用的是8279的显示输出功能,实验内容是在6位LED上循环显示8。

8086实验指导书8255并行口实验使用的是8255芯片,读开关量、输出、LED灯显示,实验讲义上都给出了电路原理图以及参考程序,学生往往是照着实验指导书上连接好线路,输入参考程序,进行程序调试。

大部分时间花在了实验的验证上,这样缺乏主动性和创新性,什么都是现成的。

能否在此基础上拓展一下,用8255芯片来实现显示器接口实验,这样既可取代8279,又可加深对8255的理解和使用。

实验任务:使用8255芯片的PA口作为段寄存器,PB口做为位寄存器,使用6位数码管从右向左逐位显示0~G,即显示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、G。

连线编程:由学生自己独立连接并独立编程实现,在编程过程中加深对硬件的理解、命令以及涉及的技巧。

2LED 显示器接口实验程序代码code segmentorg 100haa1: mov dx,04a6h ‘8255控制端口地址,大于255用dx做桥梁,小于255直接由端口地址传值mov al,80h ‘8255工作方式控制字out dx,allea bx,data ‘取偏移地址与bx相加aa3: mov ch,0‘显示数字0-------9 ,其中ch内容在变aa4: mov ah,0feh‘即1111 1110 为0时亮,须注意PB0与led接法,灯旋转方向mov si,6‘6个ledaa2: mov al,chxlat ‘查表地址转换指令:=MOV AL,[BX+AL]mov dx,04a0h ‘A口送字形,注意其端口地址out dx,almov al,ahmov dx,04a2h‘B口控制哪一位亮out dx,alrol ah,1 ‘1111 1110 循环左移mov di,0ffffhaa5: dec dijnz aa5 ‘延时,不为0,则decdi ,为0,则dec sidec sijnz aa2 ‘si不为0,则aa2——decsi ,为0,则inc chinc chcmp c h,12‘ch的值从0-18jnz aa4 ‘循环jmp aa3‘又从0开始到Fdata db 3fh,06h,5bh,4fh,66h,6dhdb 7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h,73h,88h,00hcode endsend aa1说明:在实验教学中如何培养能力?首先设计出较好的题目。

用汇编语言编写8255a控制一组发光二极管的亮灭

用汇编语言编写8255a控制一组发光二极管的亮灭

用汇编语言编写8255a控制一组发光二极管的亮灭用8255a 开关控制二极管以及在显示器上的显示1.实验原理利用8255a 实验对外接输出以及对微机的控制,利用外置开关模拟二进制数字的输入,发光二极管显示,微机显示屏显示2.实物连接图K0K1K2K3K4K5 K6K73.实物接线:K1~K8接PC0~PC7CS 连接218~21FPB0~PB7接D0~D74.流程图:YNPB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 CS PC0 PC1 PC2 8255A PC3 PC4 PC5 PC6 PC7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 开始选择控制字是否跳出A,B口输出,C口输入输入控制结束4.程序清单:DA TA SEGMENTDA TA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DA TA,SS:STACK START: MOV AX,DA TAMOV DS,AXTS:MOV AH,01HINT 21HCMP AL,’Y’JE PCCMP AL,’N’JE JSPC:MOV AH,21BHMOV AL,10001001BOUT DX,ALMOV DX,21AHPUSH DXMOV DX,219H OUT DX,ALMOV DX,218H OUT DX,ALPOP DXMOV DX,218H MOV BL,ALMOV CX.0008H BBB:MOV DL,BL CALL DISPSHR BL,1LOOP BBBJMP TSJS:MOV AX,4C00H INT 21HDISP PROC NEAR PUSH AXAND DL,01H ADD DL,30H MOV AH,02HINT 21HMOV DL,20HINT 21HINT 21HPOP AXRETDISP ENDP CODE ENDS。

微机接口与技术利用8255并行接口控制LED发光二极管的亮灭来模拟十字路口..

微机接口与技术利用8255并行接口控制LED发光二极管的亮灭来模拟十字路口..

目录一.内容 (2)二、技术资料 (2)三.原理 (7)四、电路图 (8)五、详细设计 (9)六.流程图 (11)七.代码 (11)八.调试过程及结果 (16)九.总结: (19)十、答辩 (20)十一、参考资料 (22)一.内容利用8255并行接口控制LED发光二极管的亮灭来模拟十字路口交通灯直行和转向的控制。

设计要求如下:设有一个十字路口,东西南北方向,初始态为4个路口的红灯全亮。

之后,直行车道东西路口的绿灯亮,南北路口的红灯亮,转向灯东西路口的红灯亮,南北路口的绿灯亮。

延迟一段时间后,直行道东西路口黄灯亮,南北路口红灯亮,转向灯保持不变。

闪烁一段时间后,直行车道东西路口的红灯亮,南北路口的绿灯亮,转向灯东西路口的绿灯亮,南北路口的红灯亮。

延迟一段时间后,东西路口绿灯亮,南北路口黄灯亮,转向灯保持不变,之后,重复上述过程。

二、技术资料1、74LS1381)、74138译码器在本实验中的作用:由于在对8255A写控制字时只有C口可以实现高四位输入,低四位输出,然而集成箱中的接口不够多,因此通过74138译码器实现动态的设置到计时2)、74138译码器的功能分析:Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7S3二进制译码器74138 S2S1A2 A1 A0图一、74138译码器的引脚排列图和逻辑符号表1-3:74138译码器真值表输入输出S1 S1+S3 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 11 0 0 1 1 1 1 1 0 1 1 1 11 0 1 0 0 1 1 1 1 0 1 1 11 0 1 0 1 1 1 1 1 1 0 1 11 0 1 1 0 1 1 1 1 1 1 0 11 0 1 1 1 0 1 1 1 1 1 1 00 d d d d 1 1 1 1 1 1 1 1d 1 0 d d 1 1 1 1 1 1 1 12、8255A1)简介8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

8255控制led灯和汇编语言控制主板发声

8255控制led灯和汇编语言控制主板发声

实验一8255a控制LED灯输出实验要求1.识别仪器上的键盘输入,在LED灯上输出相应字符(0~F)2.将仪器上原来一行4个键,共4列16个键的键盘,对应固定的LED 灯,6个一组(共6个LED灯),第七个控制第一个灯,如此循环3.按住相应键后,显示相应键值在灯上,并且松开后依然不变,直到摁到其他键,6个灯只能亮一个,并且多次按一个键,灯会从左向右循环亮。

8255A引脚图sstack segment stackdb 1024 dup(0)sstack endsdata segmentLEDtb db 0C0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8hdb 80h,90h,88h,83h,0c6h,0a1h,86h,8ehlq db ?data endscode segment 'code'assume cs:code,ds:data,ss:sstackstart:mov ax,datamov ds,axmov dx,06c6h ;初始化控制字81hmov al,10000001bout dx,all1: mov ah,11111110B ;操作灯亮的位置mov dx,06c0h ;通过端口A实现mov al,00000000B ;初始化数码管out dx,almov cx,4 ;循环计数l2:mov dx,06c2h ;通过B端口初始化mov al,ahout dx,almov dx,06c0hmov al,00000000Bout dx,alshl ah,1 ;移位,使亮灯移位or ah,1 ;使只有一个灯亮mov dx,06c4h ;C端口操作in al,dx ;读入行,看是否是哪行为0 and al,00001111b ;高4位清零cmp al,0Fhjnz l3loop l2cmp cl,0jz l1l3: mov bx,0not aland al,00001111bl4:inc blshr al,1cmp al,0jnz l4mov al,bldec alshl al,2mov ah,4sub ah,cladd al,ahinc almov lq,aldec lqs1: cmp al,6jg s2jmp l3s2:sub al,6jmp s1s3: ;输出字符dec almov cl,almov bl,01hshl bl,clmov al,blnot almov dx,06c2hout dx,almov dx,06c0hmov si,offset LEDtbmov bl,lqmov bh,0add si,bxmov al,[si]not alout dx,aljmp s1mov ax,4c00hint 21hcode endsend start实验二汇编 8255/8253 操作主板扬声器实验要求通过汇编语言程序操作8255/8253控制主板扬声器,演奏一段乐谱(真心英雄)。

使用8255A控制led

使用8255A控制led

单片机第五周任务一.实验要求8255A的A口作为输出功能,连接8盏LED灯。

8255A的B口作为输入功能,连接8个按钮。

当B口的某一按钮按下,对应的LED灯就点亮同时。

同时,数码管上显示对应的按键号。

如B口按钮1按下,1号LED灯就点亮,8段数码管显示1.二.硬件分析三.代码分析#include<reg52.h> //单片机头文件#include<absacc.h> //扩展地址解析头文件#define PAC XBYTE[0x7FFF] //控制地址定义#define PA XBYTE[0x7CFF] //A口地址定义#define PB XBYTE[0x7DFF] //B口地址定义#define PC XBYTE[0x7EFF] //C口地址定义#define uint unsigned int#define uchar unsigned charsbit RST=P1^0; //复位引脚定义sbit RD1=P3^7; //读引脚定义sbit RW=P3^6; //写引脚定义unsigned char codeTab[]={0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80};//共阳数码管码表void main(void) //主函数{RST=1; //复位置1RST=0; //复位置0PAC=0x82; //设控制字PB=0xff;PA=0xff;P1=0xff;while(1){switch(PB){case 0xfe:{P1=Tab[0];PA=0xfe;break;}case 0xfd:{P1=Tab[1];PA=0xfd;break;}case 0xfb:{P1=Tab[2];PA=0xfb;break;}case 0xf7:{P1=Tab[3];PA=0xf7;break;case 0xef:{P1=Tab[4];PA=0xef;break;}case 0xdf:{P1=Tab[5];PA=0xdf;break;}case 0xbf:{P1=Tab[6];PA=0xbf;break;}case 0x7f:{P1=Tab[7];PA=0x7f;break;}case 0xff:{P1=0xff;PA=0xff;break;}}}}四.我对8255A的理解8255A是一种可编程的I/O接口芯片,可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。

8255A可编程并行口实验(二)

8255A可编程并行口实验(二)

微机原理实验报告实验一:8255A可编程并行口实验(二)学院:专业:班级:学号:姓名:指导老师:实验一 8255A可编程并行口实验(二)1.实验目的进一步掌握8255A可编程并行口使用方法。

2.试验设备及主要器件原理简介实验设备:8255A实验原理:8255A中PB4~PB7和PC0~PC7分别与发光二极管电路L1~L12相连,并且PB4~PB7对应黄灯,PC0~PC3对应红灯,PC4~PC7对应绿灯。

8255A工作于模式0,并置为输出。

由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。

3.实验内容及程序CODE SEGMENT ASSUME CS:CODE IOCONPT EQU 0073H IOAPT EQU 0070H IOBPT EQU 0071H IOCPT EQU 0072H IOBDATA EQU 0500H CONTPORT EQU 00DFH DATAPORT EQU 00DEH DATA1 EQU 0640H START: JMP IOLED IOLED: CALL FORMAT CALL LEDDISPMOV AX,0H MOV DS,AXMOV AL,82HMOV DX,IOCONPTOUT DX,ALMOV DX,IOBPTIN AL,DXMOV BYTE PTR DS:[0501H],AL MOV DX,IOCONPTMOV AL,80HOUT DX,ALMOV DX,IOBPTMOV AL,DS:[0501H]OR AL,0F0HOUT DX,ALMOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY1IOLED0: MOV AL,10100101B MOV DX,IOCPTOUT DX,ALCALL DELAY1CALL DELAY1OR AL,0F0HOUT DX,ALMOV CX,8HIOLED1: MOV DX,IOBPTMOV AL,DS:[0501H]AND AL,10101111BOUT DX,ALCALL DELAY2OR AL,01010000BOUT DX,ALCALL DELAY2LOOP IOLED1MOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY2MOV AL,01011010BOUT DX,ALCALL DELAY1CALL DELAY1OR AL,0F0HOUT DX,ALMOV CX,8HIOLED2: MOV DX,IOBPT MOV AL,DS:[0501H]AND AL,01011111BOUT DX,ALCALL DELAY2OR AL,10100000BOUT DX,ALCALL DELAY2LOOP IOLED2MOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY2JMP IOLED0 DELAY1: PUSH AXPUSH CXMOV CX,0030HDELY2: CALL DELAY2LOOP DELY2POP CXPOP AXRETDELAY2: PUSH CXMOV CX,8000HDELA1: L OOP DELA1POP CXRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00 LED1: CMP BYTE PTR DS:[0600H],07H JA LED24.实验分析及结论:A口地址:0070HB口地址:0071HC口地址:0072H起始地址:0073HMOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0640H],405BHADD BX,2MOV WORD PTR DS:[BX+0640H],4040HADD BX,2MOV WORD PTR DS:[BX+0640H],6D6DH ADD BX,2MOV WORD PTR DS:[BX+0640H],7F5BH RETCODE ENDSEND START。

8255A 并行接口实验

8255A 并行接口实验

8255 并行接口实验学院:计算机学院专业:网络工程年级:2012级班级:120615姓名:梁国栋学号:1206151091 实验目的1. 学习并掌握8255 的工作方式及其应用。

2. 掌握8255 典型应用电路的接法。

3. 掌握程序固化及脱机运行程序的方法。

2 实验设备PC 机一台,TD-PITE 实验装臵一套。

3 实验内容1. 基本输入输出实验。

编写程序,使8255 的A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就发生相应改变。

2. 流水灯显示实验。

编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。

4 实验原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。

CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。

8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。

8255 的内部结构及引脚如图 4.31 所示,8255工作方式控制字和C 口按位臵位/复位控制字格式如图 4.32 所示。

8255 实验单元电路图如图4.33 所示:5 实验步骤1. 基本输入输出实验本实验使8255 端口 A 工作在方式0 并作为输入口,端口 B 工作在方式0 并作为输出口。

用一组开关信号接入端口A,端口 B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。

具体实验步骤如下述:(1)实验接线图如图 4.34 所示,按图连接实验线路图。

(2)编写实验程序,经编译、连接无误后装入系统。

(3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。

8255和LED数码管显示实验

8255和LED数码管显示实验

实验八 8255和LED数码管显示实验二、实验电路实验电路如图2及图3所示。

图2 静态显示电路图3 动态显示电路五、实验项目1.静态显示:按图2连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。

编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

程序框图、源代码(含注释)及实验结果如下:1、静态显示;0-9程序:data segmentioport equ2400h-280hio8255a equ ioport+288hio8255ctr equ ioport+28bhled db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db0dh,0ah,'Input a num (0--9),other key is exit:',0dh,0ah,'$' data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255ctr ;使8255的A口为输出方式mov ax,80hout dx,alsss: mov dx,offset mesg1 ;显示提示信息mov ah,9int21hmov ah,1;从键盘接收字符int21hcmp al,'0' ;是否小于0jb exit ;若是则退出cmp al,'9' ;是否大于9ja exit ;若是则退出sub al,30h;将所得字符的ASCII码减30Hmov bx,offset led ;bx为数码表的起始地址xlat ;求出相应的段码mov dx,io8255a ;从8255的A口输出out dx,aljmp sss ;转SSSexit: mov ax,4c00h;返回int21hcode endsend start2.动态显示(选做):按图3连接好电路,七段数码管段码连接不变,位码驱动输入端S1S0接8255C口的PC1、PC0。

8255a实验报告

8255a实验报告

8255a实验报告8255A实验报告引言:8255A是一种常用的并行接口芯片,广泛应用于各种数字系统中。

本实验旨在通过对8255A的实际应用,深入了解并行接口的原理和操作方法。

一、实验目的本实验旨在通过使用8255A并行接口芯片,实现数字输入输出功能,掌握并行接口的基本原理和操作方法。

二、实验器材1. 8255A并行接口芯片2. 电脑主板3. 逻辑分析仪4. 电压源5. 连接线等三、实验步骤1. 连接实验器材:将8255A芯片与电脑主板通过连接线连接,将逻辑分析仪连接到芯片的相应引脚上。

2. 编写程序:使用汇编语言编写程序,通过控制8255A芯片的寄存器,实现数字输入输出功能。

3. 调试程序:在编写完成后,通过逻辑分析仪对程序进行调试,确保程序的正确性。

4. 运行程序:将程序下载到芯片中,通过逻辑分析仪观察输入输出的结果。

四、实验结果经过调试和运行,实验结果如下:1. 输入功能:通过设置8255A芯片的相应寄存器,实现了数字输入功能。

当外部输入信号变化时,芯片将信号转换为二进制数据,并传输给电脑主板。

2. 输出功能:通过设置8255A芯片的相应寄存器,实现了数字输出功能。

电脑主板将二进制数据传输给芯片,芯片将数据转换为相应的电信号输出到外部设备。

五、实验分析通过本次实验,我们深入了解了8255A并行接口芯片的原理和操作方法。

并行接口芯片是数字系统中重要的组成部分,广泛应用于各种设备和系统中。

掌握并行接口的原理和操作方法对于设计和开发数字系统具有重要意义。

六、实验总结本次实验通过使用8255A并行接口芯片,实现了数字输入输出功能。

通过编写程序、调试和运行,我们深入了解了并行接口的原理和操作方法。

并行接口芯片在数字系统中起着重要的作用,掌握并行接口的原理和操作方法对于设计和开发数字系统具有重要意义。

七、参考文献1. 《8255A并行接口芯片使用手册》2. 《数字系统设计与开发实践》结语:通过本次实验,我们对8255A并行接口芯片有了更深入的了解。

微机实验三 8255A接口实验

微机实验三 8255A接口实验

实验三 8255A接口实验一、实验目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。

二、实验内容用8255作输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

三、程序框图四、实验电路五、编程提示①通过8255A控制发光二极管PB3、PB0、PA5、PA2对应黄灯,PB1、PA6、PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯,以模拟交通路灯的管理。

②要完成本实验,必须先了解交通路灯的亮灭规律,没有一个十字路口1、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全亮。

之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后,重复上述过程。

③程序中设定好8255A的工作模式,及三个端口均工作在方式0,并处于输出状态。

④各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。

六、实验步骤(1)按实验电路图连接线路:8255A PAO—L15 PA1—L14 PA2—L13 PA3—L11PA4—L10 PA5—L9 PA6—L7 PA7—L6PBO—L5 PB1—L3 PB2—L2 PB3—L1(2)运行实验程序L1~L12发光二极管模拟交通灯显示。

七、实验程序;----------------8255A并行口实验(3) 控制交通灯----------------CODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 32F0HPA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHH3: MOV AL,88HMOV DX,PCTLOUT DX,AL ;MOD:0,MOV DX,PAMOV AL,0B6HOUT DX,ALINC DXMOV AL,0DHOUT DX,ALCALL DELAY1P30: MOV AL,75HMOV DX,PAOUT DX,ALINC DXMOV AL,0DHOUT DX,ALCALL DELAY1CALL DELAY1MOV CX,08HP31: MOV DX,PAMOV AL,0F3HOUT DX,ALINC DXMOV AL,0CHOUT DX,ALCALL DELAY2MOV DX,PAMOV AL,0F7HOUT DX,ALINC DXMOV AL,0DHOUT DX,ALCALL DELAY2LOOP P31MOV DX,PAMOV AL,0AEHOUT DX,ALINC DXMOV AL,0BHOUT DX,ALCALL DELAY1CALL DELAY1MOV CX,08H P32: MOV DX,PAMOV AL,9EHOUT DX,ALINC DXMOV AL,07HOUT DX,ALCALL DELAY2MOV DX,PAMOV AL,0BEHOUT DX,ALINC DXMOV AL,0FHOUT DX,ALCALL DELAY2LOOP P32JMP P30 DELAY1: PUSH AXPUSH CXMOV CX,0030H DELY2: CALL DELAY2LOOP DEL Y2POP CXPOP AXRETDELAY2: PUSH CXMOV CX,8000HLOOP $POP CXRETCODE ENDSEND H3运行实验程序:在系统“P.”状态时,输入32F0,按EXEC键,L1~L12发光二极管模拟交通灯显示。

8255与多位LED数码管的显示

8255与多位LED数码管的显示

实验2 8255与多位LED数码管的显示实验一、实验目的掌握8255A的编程原理与多位LED数码管的显示方法。

二、实验设备MUT—Ⅲ型实验箱、8086CPU模块。

三、实验内容把待显示字符的LED代码组成一个七段代码表,存放在存储器中。

通过对8255编写程序在多位LED 数码管上显示输出。

1、设计出8255与8086接口对应硬件电路,并完成相应的连接2、设计出8255与LED数码管的对应硬件接口电路,并完成相应的连接3、编写程序,在数码管上显示相应字符或数字4、写出习题部分要求的程序四、实验原理介绍本实验用到两部分电路:8255可编程并口电路和LED数码管的显示电路。

实验箱数码管采用共阴极形式。

五、实验步骤1、实验接线CS0↔CS8255(输出)PA0~PA7↔ LED-A~LED-DP(段控)(输出)PB0~PB5↔ LED-1~LED-6(位控)2、编程并全速或单步运行。

3、全速运行时观察数码管的变化。

六、实验提示1.8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。

本实验中用到8255A的A口和B口两个端口,A口和B口均作为输出口。

实验中,8255A工作于基本输入输出方式(方式0)。

2.用8255A端口B的PB0~PB5,控制LED的显示位,即8255A的端口B为LED数码显示器的位控制端口。

当B口中一位输出为“0”时,便在相应数码管的阴极加上了低电平,这个数码管就可以显示数据。

但具体显示什么数码,则由另一个端口,即段控制端口决定。

段控制端口由6个数码管共用,因此当CPU送出一个显示代码时,各数码管的阳极都收到了此代码。

但是,只有位控制码中低位对应的数码管才会导通而显示数字,其他管子并不发光。

3.对显示器采用动态扫描法控制显示。

所谓动态扫描,就是逐个接通6位LED,把端口A送出的代码送到相应的位上去显示。

此时,8255A的端口A送出的一个七段码,虽然各位LED都能接收到,但由于端口B只有一位输出低电平,所以只有一个LED的相应段导通显示数字,其他LED不亮。

实验四 8255与LED数码管的显示

实验四 8255与LED数码管的显示

实验四8255a与LED数码管的显示一. 实验目的掌握8255A的编程原理与LED数码管的显示方法。

二. 实验环境硬件环境:奔3以上处理器,512MB以上内存空间软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7.5sp3。

三.实验内容与完成情况1.仿真电路图2.实验原理(1)8255A可编程I/O接口芯片具有三种工作方式:方式0(简单的输入输出方式)、方式1(选通式输入/输出方式)和方式2(双向数据传送方式)。

它分别能够控制把CPU的控制命令或输出数据送至相应的端口,也可以控制把外设的状态信息或输入的数据通过相应端口送至CPU。

(2)8255芯片具有三个数据端口A、B和C。

每个端口都为8位,可以由编程来选择作为输入端口或输出端口。

在一般情况下,常利用A、B两个端口来完成与外设之间的数据交换过程,而利用C端口来完成与外设的状态控制信息的交换过程。

3.实验过程首先打开电源,由8086向8255a发出指令,选定8255的工作方式,然后,读A口数据,高四位清零,取LED灯偏移地址。

当4个按钮的开关情况发生变化时,电信号的变化被读入8255a,经一系列的信号处理,从B口输出到LED灯显示数字。

4.编程调试程序data segment; add your data here!PORTD EQU 66H ;CPU-8255控制寄存器PORTA EQU 60H ;8086 A1接8255 A0;A2 接8255A1PORTB EQU 62HPORTC EQU 64HREGIS EQU 10010000B ;A IN, B OUT,AB口工作方式0LED DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,77H,7cH,39H,5eH,79H,71H data endsstack segmentdw 128 dup(0)stack endscode segmentASSUME CS:code, DS:dataBEGIN:MOV DX,PORTD ;设置8255工作方式MOV AL,REGIS ;control byteOUT DX,ALG1: MOV DX,PORTAIN AL,DX ;读A口数据AND AL,00001111B ;高四位清零;数码管译码MOV BX,OFFSET LEDXLAT ;取LED表;-------------PUSH CXMOV CX,40H ;延时DELAY:LOOP DELAYPOP CX;-------------MOV DX,PORTBOUT DX,ALJMP G1code endsend BEGIN ; set entry point and stop the assembler.四.出现的问题1.不知道如何选定8255a的A,B,C三个端口的工作状态;2.对74ls183的电信号处理机制不清楚。

8255A做LED汉字静态显示

8255A做LED汉字静态显示

烟台大学文经学院课程设计《单片机原理与接口技术》课程设计报告题目:LED16*16点阵的汉字显示系:电子系专业:通信工程班级:文通094-1姓名:申景帝学号: 200990513120指导老师:荆蕾2012年5月28日设计任务书1、实验题目LED16*16点阵的汉字显示2、设计内容(1)、设计目的通过课程设计时学生更近一步掌握单片机原理与接口技术课程的相关知识,提高学生动手能力和解决实际问题的能力,掌握8255A与74LS273芯片的使用方法,掌握LED点阵汉字显示原理与方法,加深对单片机应用的理解。

(2)设计主要内容与要求利用单片机原理试验箱上8255单元和16*16发光二极管点阵显示汉字或图形。

二、硬件设计1、实验原理16*16点阵共由256个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮。

连线:8255CS 接 Y0,273CS 接 Y2,WR 接 XWR,RD 接 XRD,A0 接 XA0, A1接 XA1,RESET接 RST,D0...D7接XD0...XD7如上图,使用8255的A口和C口控制16列,B口和273控制16行。

A口和C口为高电平,B口和273为低电平时,相应行列对应得二极管发光。

整个程序的实现:首先对芯片进行初始化,对LED显示屏进行清屏,然后通过取字模软件获得一个汉字的16进制字符编码。

讲字符表加入到程序里。

使用C口和273从上到下依次选通每一行(即每次使16行其中一个口为0其余全为1),在选通一行时,通过查表将字符表中的相应字节赋值给A口和C口。

每次扫描一行,16行扫描完毕后继续循环整个程序。

因为各行扫描时间延时很小,人眼看起来是显示的整个汉字。

实验原理图:2、核心芯片的介绍8255A:8255A是一种可编程的I/O接口芯片,可以与MCS-51系统单片机以及外设直接相连,广泛用作外部并行I/O扩展接口。

实验28255七段数码管静动态显示

实验28255七段数码管静动态显示

微机实验报告书同组名单:实验日期:2012.12.21实验题目:七段数码管的静态显示实验目标:掌握数码管显示数字的原理(功能:键盘输入一位十进制数字(0~9),用七段数码管显示。

)解题思路:1.静态显示:按图10 (a)连接好电路,将8255的A口 PAO-PA鲂别与七段数码管的断码驱动输入端a-g项链,位码驱动输入端S1接+5V, SO dp2.动态显示:按图10 (b)连接好电路,七段数码管段码连接不变,位码驱动输入端S1, S0接8255C口的PC1, PCQ编程在两个数码管上显示“56” 程序框图:静态显示见图11( a),动态显示见图11 (b)。

学号:_______ 姓名: 班级:________S 10琵接电路图图11流程图关键问题分析(静态显示):1、按键判断和程序结束判断按键来说,由于程序中必须输入数字,所以没有必要对是否按键进行判断, 只需要判断按键是否在0-9之间即可。

用以下程序即可:条件转移指令,即在小于时转移 条件转移指令,即在大于时转移程序中还要用到“ cmp'即比较指令,用来比较输入数与0、9的大小关系 程序结束:如若输入的数字小于0或者大于9,必须直接跳出程序,即结束指令必 须单独占用一个程序段,这样,程序顺序执行完毕也可以顺利返回DOS 2、七段码显示。

始丿将所得字符的 ASCII 码减如H1查表求出对应的盅码将段码自8药5A 口输出(b)cmp al,'0'jl exit; jl,cmp al,'9' 从键盘接收字符实验指导书中给出了七段码的字型代码。

这样一来, 七段码的显示只需要用换码 指令“XLAT 便可以轻松实现。

前提是必须将七段码字型编成数码表以字符串的 形式写进程序中。

3、数字键ASCII 码与数值间的转换。

因为0的ASCII 码为30H,所以数字键ASCII 码与数值间的转换时只需减去30F 即可, 可用下列语句实现:sub al,30h 程序清单:静态显示:data segmentioport equ 0c800h-0280hio8255aequ ioport+288h io8255b equ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db dataends codesegment0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$' assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255b从键盘接收字符 是否小于 0 如若小于 0,则跳转到 exit 退岀程序 是否大于 9 如若大于 9,则跳转到 exit 退岀程序 将所得字符的ASCII 码减30H,数字键ascii 码同数值转换 为数码表的起始地址 求岀相应的段码 从8255的A 口输岀 转 zbymov al,80hout dx,al ;10000000B ,控制字PA 以方式0输岀 使8255的A 口为输岀方式zby: mov dx,offset mesg1 ;mov ah,09h int 21h movah,01 ;int 21h cmp al,'0' ;jl exit ;cmp al,'9'; jg exit ;sub al,30h ; movbx,offset led ;bxxlat ;mov dx,io8255a ; outdx,al jmp zby ;exit: mov ah,4ch ; 显示提示信息 返回 DOSint 21h code ends end start动态显示:data segmentioport equ 0c800h-0280hio8255a equ ioport+28ahio8255b equ ioport+28bhio8255c equ ioport+288hled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ; 段码buffer1 db 5,6 ; 存放要显示的个位和十位bz dw ? ; 位码data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255bmov al,80h ;10000000B out dx,almov di,offset buffer1 ;loop2: mov bh,02 zby: mov byte ptr bz,bhpush di dec di add di, bz movbl,[di] ;bl pop di mov al,0 movdx,io8255a out dx,al mov bh,0mov si,offset led ; add si,bx ;mov al,byte ptr [si] movdx,io8255c ;out dx,al mov al,byte ptr bz ;mov dx,io8255a out dx,al movcx,3000delay: loop delay ;,控制字PA以方式0输岀设di 为显示缓冲区为要显示的数置led 数码表偏移地址为SI 求岀对应的led 数码自8255A的口输岀使相应的数码管亮延时将8255设为A口输岀mov bh,byte ptr bzshr bh,1jnz zbymov dx,0ffhmov ah,06int 21hje loop2 ; 有键按下则退出mov dx,io8255amov al,0 ; 关掉数码管显示out dx,almov ah,4ch ; 返回int 21hcode endsend start运行结果:静态显示:在键盘上输入一个 0-9 的任意数字,会显示在数码管上。

8255A与多位数码管的显示

8255A与多位数码管的显示

微机原理课程设计8255A与多位数码管的显示姓名:曹诗凤学号:12010240520学院:物理电气信息学院专业:通信工程年级:2010级指导老师:李萍完成日期:2012年12月9日基于VHDL语言的16路彩灯控制器[摘要]分析多路彩灯控制器设计原理,采用硬件描述语言VHDL实现多路彩灯控制器的设计,具有可编程性、线路简单、可靠性高等特点,并通过仿真对结果进行了验证。

[关键字]VHDL,彩灯,仿真,控制随着科技的发展,在现代生活中,彩灯作为一种装饰既可以增强人们的感观,起到广告宣传作用,又可以增添节日气氛,为人们的生活增添亮丽。

而EDA技术的应用及VHDL语言作为可编程逻辑器件的标准语言描述能力强,覆盖面广,抽象能力强。

在这个阶段,人们开始追求贯彻整个系统设计的自动化,进而从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。

整个过程通过EDA工具自动完成,大大减轻了设计人员的工作强度,提高了设计质量,减少了出错的机会。

本文介绍应用美国ALTERA公司的CycloneII平台,使用VHDL硬件描述语言实现的多路彩灯控制器。

一、多路彩灯控制器设计原理设计一个彩灯控制程序器,可以实现十六路彩灯6种花型循环变化,有清零开关,并且可以选择快慢两种节拍。

整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED[15..0],分别用于控制十六路彩灯。

硬件电路的设计要求在彩灯的前端加74373锁存器。

用来对彩灯进行锁存控制。

此彩灯控制系统设定有六种花样变化,这六种花样可以循环切换,设有两种快慢节拍,这两种节拍可以自由选择。

二、多路彩灯控制器的结构框图本控制电路采用VHDL语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化设计。

根据多路彩灯控制器的设计原理,将整个控制器分为两个部分,据此,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ和显示控制电路XSKZ,整个系统的组成原理图如图1所示。

利用8255A实现拨动开关和LED流水点亮实验

利用8255A实现拨动开关和LED流水点亮实验

实验二:利用8255A实现拨动开关和LED流水点亮实验安全0901 王宇航 09283020实验报告1.实验目的:该实验的目的在于掌握8255A和微机接口的连接方法,了解8255A的基本的工作原理和编程方法。

掌握使用8255并行接口连接拨动开关,控制LED显示输出的技术。

2.实验步骤:按图3-2将8255端口A与8位拨动开关连接,8255端口B与8位LED连接,选择8255 为方式0工作,编程序完成LED实时显示开关状态的功能,即每位LED对应一位开关状态。

开关往下拨动,对应LED灭,开关往上拨动,对应LED点亮。

当执行程序后LED按K1-K8初始设定的值点亮,并向右流动(8255A工作在方式0)。

同时在6位数码管显示:8255-1编程涉及8255端口地址有四个,由于8255片选信号线与地址译码区的200~2FH连接,即8255的I/O偏移地址为0~3,加上前一个实验所获知的I/O基址,两者相加之后才是最终访问8255的I/O地址。

注意,该地址一定是一个16位数,所以I/O操作要使用IN AL,DX 和OUT DX, AL指令。

3.实验代码:code segment ;定义代码段assume cs:codestart:;初始化,设置A口B口的工作方式mov dx,203h ;8255命令口地址mov al,10010000b ;控制字out dx,al;让数码管显示8255-A;显示A口输入的数并循环移位xor ax,ax ;将ax清零mov bl,0lop:;自定义的标号mov dx,200h ;给dx赋值(送到寄存器中)in al,dx ;将200h送给寄存器al;m ov dx,201h;o ut dx,al ;把al的值送给dx端口;j mp lop ;段内转移cmp al,ah ;al和ah进行比较jz next ;跳转到nextmov ah,almov bl,ahrol bl,1 ;不带进位循环左移1位next:ror bl,1 ;不带进位循环右移1位mov al,blmov dx,201hout dx,almov cx,3fffhlp: ; 从lp到最后都是表示显示8255-A这个字,它的作用是实现灯的延时,即保证灯的闪烁时间不至于过快,如果去除的话在人眼的视觉暂留情况下将可能产生连续不断的灯光闪烁,使得间隔时间太短。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档