实验九 8255控制键盘与显示实验
利用8255和51单片机实现数码管显示按键值的实验

期中大作业姓名:性别:专业:学号:课题:【利用51单片机、8255实现数码管显示按键值的程序实验】要求:【4*4矩阵键盘,按0-15数码管上分别显示0-9、a-f】一、芯片资料;8255:8255的内部结构,由三部分电路组成:与CPU的接口电路、内部控制逻辑电路和与外设连接的输入/输出接口电路。
D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。
(chip select):片选信号线,低电平有效时,芯片被选中。
A1, A0(port address):地址线,用来选择内部端口。
(read):读出信号线,低电平有效时,允许数据读出。
(write):写入信号线,低电平有效时,允许数据写入。
RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0(port A):A口输入/输出信号线。
PB7~PB0(port B):B口输入/输出信号线。
PC7~PC0(port C):C口输入/输出信号线。
VCC:+5V电源。
GND:电源地线。
8255的工作方式方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路8255初始化编程8255的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。
8255由编程写入的控制字有两个:方式控制字和置位/复位控制字。
方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PC i(i=0~7)的电平。
两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。
(1)方式控制字的格式8255工作方式控制字的格式。
D0:设置PC3~PC0的数据传送方向。
利用8255和5单片机实现数码管显示按键值的实验21页word文档

物理与电子工程学院单片机原理及其应用期中大作姓名:专业:学号:课题:使用8255和51单片机实现对数码管显示案件数值控制要求:从0--15,数码管上分别显示0--9,A--F,4*4矩阵键盘芯片资料8255一、简介8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O 口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
二、内部结构8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分根据定义,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)与外设接口部分根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:(1)A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
8255并口控制器应用实验

8255并口控制器应用实验1.实验目的(1)掌握8255的工作方式及应用编程。
(2)掌握8255的典型应用电路接法。
2.实验设备PC微机一台、TD-PIT+ 实验系统一套。
3.实验内容(1)基本输入输出实验。
编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
(2)流水灯显示实验。
编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。
4.实验原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2所示。
图1 8255的内部结构及引脚(a)工作方式控制字(b)C口按位置位/复位控制字图2 8255控制字格式5.实验说明及步骤(1)基本输入输出实验本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
参考程序流程如图3所示。
图3 8255并口应用实验(1)参考程序流程图图4 8255并口应用实验(1)参考接线图实验步骤:a)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
b)参考图4所示连接实验线路。
c)首先运行CHECK程序,查看I/O空间始地址。
d)利用查出的地址编写程序,然后编译链接。
e)运行程序,拨动开关,看数据灯显示是否正确。
;8255基本输入输出实验代码;***********根据查看端口资源修改下列符号值**************** IOY0 EQU 9C00H ;片选IOY0对应的端口始地址;********************************************************* MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8255_MODE ;初始化8255工作方式MOV AL,82H ;工作方式0,A口输出,B口输入OUT DX,ALLOOP1: MOV DX,MY8255_B ;读B口IN AL,DXMOV DX,MY8255_A ;写A口OUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出INT 21HCODE ENDSEND START(2)流水灯显示实验首先分别向A口和B口写入80H和01H,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。
实验5(8255并行接口键盘及显示实验)

8255接口键盘及显示综合设计实验(曹建文2009年10月10日)一、实验目的1、掌握8255的工作方式及应用编程。
2、自行设计、制作和连接基于8255并行接口的键盘及显示实验电路。
3、实现扫描式矩阵键盘的功能和作用。
二、实验设备PC机1台,TD-PIT实验台1台,实验元器件若干。
三、实验内容1、使用8255实现键盘按键和七段LED数码显示管显示功能。
2、根据实验要求自行设计实验线路图,制作和焊接实验电路板和实验元器件。
3、按照实验要求和实验电路图编写实验程序,使得按下不同的数字按键后数码管显示相应的数字值(4位数码管)。
4、按照实验要求设计和编写实验程序,实现普通计算器的加/减法功能。
四、实验原理1、8255结构及原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图-2所示。
图-1:8255内部结构及引脚图(a)工作方式控制字(b)c口按位置位/复位控制字图-2:8255控制字格式(1)8255的内部结构如图-1所示,8255的内部结构由以下4个部分组成:(1)输入/输出端口A、B、C 。
这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。
A口和B口是一个独立的8位I/O口。
C口可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。
(2)A组和B组控制电路。
这是两组根据CPU命令控制8255工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255的工作方式,也可以根据编程命令来对C口的指定位进行置位/复位的操作。
8255并口控制器应用实验

实验一8255并口控制器应用实验一、实验目的1. 掌握8255 的工作方式及应用编程。
2. 掌握8255 典型应用电路接法。
二、实验内容1. 基本输入输出实验。
编写程序,使8255 的A 口为输出,B 口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
2.流水灯显示实验。
编写程序,使8255 的A 口和B 口均为输出,实现16 位数据灯的相对循环显示。
三、实验所用仪表及设备1. 要PC微机一台。
2. TD-PIT 实验系统一套。
四、实验原理与步骤1.8255简介并行接口是以字节或字为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。
Intel公司的可编程通用并行接口芯片8255具有A 、B 、C 三个并行接口。
提供以下三种工作方式:方式0—基本输入/出方式、方式1—选通输入/出方式、方式2—双向选通方式。
8255的引脚如图10-1 所示,8255的工作方式控制字和C 口按位置位/复位制字格式如图10-2(a)和(b)所示。
图10-1 8255的内部结构及引脚D7 D6 D5 D4 D3 D2 D1 D01 00:端口A方式001:端口A方式11X:端口A方式2 0:端口A输出1:端口A输入0:端口C高四位输出1:端口C高四位输出0:端口B方式01:端口B方式10:端口B输出1:端口B输入0:端口C低四位输出1:端口C低四位输出图10-2(a)工作方式控制字D7 D6 D5 D4 D3 D2 D1 D00 X X X PC0:000 PC1:001 PC2:010PC3:011 PC4:100 PC5:101PC6:110 PC7:111 0:复位1:置位图10-2(b)C口按位置位/复位控制字2.基本输入输出实验让8255的端口A作为输出口工作在方式0,端口 B 作为输入口工作在方式0。
用一组开关信号接入端口B ,端口A的输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
8255并口控制器应用实验报告

HUNAN UNIVERSITY 课程实验报告实验名称8255并口控制器应用实验学生姓名学生学号专业班级指导老师2014-12-10实验二8255并口控制器应用实验一、实验目的1.掌握8255的工作方式及应用编程;2.掌握8255的典型应用电路接法。
二、实验内容1.流水灯显示实验。
编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示;2.基本输入输出实验。
编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
三、实验原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
图1 8255内部结构及引脚图8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2所示。
图2 8255控制字四、实验步骤及结果1、流水灯显示实验图3 流水灯显示程序流程图首先分别向A口和B口写入80H和01H,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。
参考实验程序流程如图3所示。
图4 流水灯显示接线图a)实验接线图如图4所示,按图连接实验线路图,连接好的实物图如图5所示。
图5 8255连接实物图b)运行Tdpit集成操作软件,根据实验内容,编写实验程序,编译、链接,代码如下:IOY0 EQU 3000H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDA TA SEGMENTLA DB ? ;定义数据变量LB DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE ;定义8255工作方式MOV AL,89H ;工作方式0,A口和B口为输出OUT DX,ALMOV DX,MY8255_A ;写A口发出的起始数据MOV AL,01HOUT DX,ALMOV LA,ALMOV DX,MY8255_B ;写B口发出的起始数据MOV AL,80HOUT DX,ALMOV LB,ALLOOP1: CALL DALL YMOV AL,LA ;将A口起始数据右移再写入A口ROL AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LB ;将B口起始数据左移再写入B口ROR AL,1MOV LB,ALMOV DX,MY8255_BOUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出INT 21HDALL Y PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,0FFFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALL Y ENDPCODE ENDSEND STARTc)运行程序,观察LED灯的显示,验证程序功能程序结果。
键盘及LED显示实验

实验三键盘及LED显示实验一、实验内容利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED 显示器显示出来。
二、实验目的及要求(一)实验目的通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。
(二)实验要求1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。
2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。
三、实验条件及要求计算机,C51语言编辑、调试仿真软件及实验箱50台套。
四、实验相关知识点1.C51编程、调试。
2.扩展8255芯片的原理及应用。
3.键盘扫描原理及应用。
4.LED显示器原理及应用。
5.外部中断的应用。
五、实验说明本实验仪提供了8位8段LED显示器,学生可选用任一位LED显示器,只要按地址输出相应的数据,就可以显示所需数码。
六、实验原理图P1口桥接。
八、实验参考流程图1.主程序流程图2.外中断服务程序流程图外部中断0 外部中断1定时器0中断程序,用于消抖动:3.LED显示程序流程图九、C51语言参考源程序#include "reg52.h"unsigned char KeyResult; //存放键值unsigned char buffer[8]; //显示缓冲区bit bKey; //是否有键按下xdata unsigned char P_8255 _at_ 0xf003; //8255的控制口xdata unsigned char PA_8255 _at_ 0xf000; //8255的PA口xdata unsigned char PB_8255 _at_ 0xf001; //8255的PB口xdata unsigned char PC_8255 _at_ 0xf002; //8255的PC口code unsigned char SEG_TAB[] = { //段码0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x0};sbit bLine0 = P3^2;sbit bLine1 = P3^3;//延时1msvoid Delay1ms(){unsigned char i;i = 0;while (--i);}//显示void Display(){unsigned char i = 0x7f;unsigned char j;for (j = 0; j < 8; j++){PA_8255 = i; //扫描PB_8255 = SEG_TAB[buffer[j]]; //段数据i = i / 2 + 0x80;Delay1ms();}}//更新显示缓冲区数据void RefurbishData(){char i;for (i = 7; i >0; i--)buffer[i] = buffer[i-1];buffer[0] = KeyResult;}void Int0Int() interrupt 0{unsigned char i = 0x80;unsigned char KeyResult0 = 0x0;EX0 = 0; //关外部中断0P_8255 = 0x89; //PC口输入bLine0 = 0; //P3.2作行输出while (i){if ((PC_8255 & i) == 0)break;KeyResult0++;i >>= 1;}P_8255 = 0x80; //8255的PA、PB、PC口全作输出口PC_8255 = 0;bLine0 = 1;if (i){TH0 = 60; //定时中断计数器初值TL0 = 176; //定时50msTR0 = 1;KeyResult = KeyResult0;}IE0 = 0; //清除中断EX0 = 1; //开外部中断0}void Int1Int() interrupt 2{unsigned char i = 0x80;unsigned char KeyResult0 = 8;EX1 = 0; //关外部中断0P_8255 = 0x89; //PC口输入bLine1 = 0; //P3.2作行输出while (i){if ((PC_8255 & i) == 0)break;KeyResult0++;i >>= 1;}P_8255 = 0x80; //8255的PA、PB、PC口全作输出口PC_8255 = 0;bLine1 = 1;if (i){TH0 = 60; //定时中断计数器初值TL0 = 176; //定时50msTR0 = 1;KeyResult = KeyResult0;}IE1 = 0; //清除中断EX1 = 1; //开外部中断0}//50ms中断服务程序void INT_Timer0(void) interrupt 1{if (((KeyResult < 8) && !bLine0) ||((KeyResult >= 8) && !bLine1)){bKey = 1; //有键按下,键值在KeyResult中}TR0 = 0;}void main(){char i;bKey = 0; //没有键按下TMOD = 1; //定时器0:方式一P_8255 = 0x80; //8255的PA、PB、PC口全作输出口PC_8255 = 0x0;ET0 = 1; //开定时器0中断EX0 = 1; //开外部中断0EX1 = 1; //开外部中断1IT0 = 1; //边沿触发IT1 = 1; //边沿触发EA = 1; //允许中断for (i = 0; i < 8; i++)buffer[i] = 0x10;// TR0 = 1; //开定时器T0// bRefurbish = 1;while (1){if (bKey){bKey = 0;RefurbishData();}Display(); //调用显示}}十、实验实施步骤1.仔细阅读实验内容及要求,编写C51源程序。
微机接口实验报告8255并口控制器实验

微机接口实验报告8255并口控制器实验8255并口控制器实验一.实验目的:1,掌控8255的工作方式和应用领域编程;2,掌控8255的典型应用领域电路三相。
二.实验设备pc微机一台,td―pit+实验系统一套。
三.实验内容:编写程序,并使8255的a口味输入b口为输出,顺利完成敲击控制器至数据等的数据传输。
建议:只要敲击控制器,数据灯的现实就可以发生改变。
四.实验原理:并行接口就是以数据的字节为单位与i/o设备或被掌控对象之间传输信息。
cpu和USB之间的数据传输总是循序的。
8255并行控制器具有abc三个并行接口,用+5v但电源供电,能在一下三种方式下工作:方式一:基本输出|出来方式方式二:选道输出|出来方式方式三:双向选项工作方式五.实验步骤:1.证实从pc着急带出的两根扁平电缆已经相连接在实验平台上。
2.相连接实验先例参照右图:3.运行check成功内需,查看i/o空间始地址。
4.利用查出的地址编写程序,然后便于链接。
5.运行程序,拨动开关,看数据灯显示是否正确。
六.编程与调试:1.使用ckeck程序找到ioyo空间始址:dcooh2.编写程序:ioyoequodcoohaaequioyo+0*4bbequioyo+1*4ccequioyo+2*4modeequioyo+1*4stack1seqme ntstackdw256dup(?)stack1endscodeseqmentassumecs:code,ss:stack1stack:movbx,odcoohnext:movdx,bbinal,dxoutdx,almovah,1in t16hjznextmovah,40hint21hcodeendsendsstart3.编程,链接,运转程序七.实验结果:运转程序后,数据灯随着控制器的变化而变化,即为控制器拨打时,数据灯亮,控制器断裂时,数据灯攻灭。
八.实验总结:通过本次实验,对8255并口控制器存有了一定的介绍,掌控了掌控8255的工作方式和应用领域编程,掌控8255的典型应用领域电路三相。
微机原理实验报告(8255并口实验)

深圳大学实验报告课程名称:微型计算机技术实验项目名称:8255并行接口实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一,实验目的1,学习并掌握8255 的工作方式及其应用。
2,掌握8255 典型应用电路的接法。
3,掌握程序固化及脱机运行程序的方法。
二,实验设备PC机器一台,TD-PITE实验装置一套,导线若干,另外PC与TD-PITE实验装置连接线。
三,实验内容1,基本输入输出实验。
编写程序,使8255 的A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2,流水灯显示实验。
编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
四实验内容及步骤1. 基本输入输出实验本实验使8255 端口A 工作在方式0 并作为输入口,端口 B 工作在方式0并作为输出口。
实验接线图如图6 所示,按图连接实验线路图。
用一组开关信号接入端口A,端口 B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
2. 流水灯显示实验:使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如下图所示。
键盘输入与七段数码管显示实验

;查第 5 行无键按下,转查第 6 行 ;第 5 行有键按下,行首键码#05H 送(A) ;转求键码
;查第 6 行无键按下,转查第 7 行 ;第 6 行有键按下,行首键码#06H 送(A) ;转求键码
实 才知道原因,原来是我们那设备箱没有初始化好。后来在老师的指导下,我
验 们把设备箱设置好后,终于做出了结果。也达到了实验目的。①.学会利用
总 8255 扩展 I/O 口;
结
②.掌握行列式键盘、7 段数码显示器接口的设计方法,验证 7 段数码管
显示原理;
③.通过软硬件结合,了解单片机应用中软硬件的相依性。 总的来说,这次实验让我收获颇多啊,锻炼了我独自想考和动手的能力。
;查第 2 行无键按下,转查第 3 行
.
MOV A, #02H
AJMP LKP
LTHR: JB ACC.3, LFOU
MOV A, #03H
AJMP LKP
LFOU: JB
ACC.4, LFIV
MOV A, #04H
AJMP LKP
LFIV: JB
ACC.5, LSIX
MOV A, #05H
AJMP LKP
MOV A, #00H
;第 0 行有键按下,行首键码#00H 送(A)
AJMP LKP
;转求键码
LONE: JB
ACC.1, LTWO
;查第 1 行无键按下,转查第 2 行
MOV A, #01H
;第 1 行有键按下,行首键码#01H 送(A)
AJMP LKP
;转求键码
LTWO: JB
ACC.2, LTHR
8255扫描键盘、显示实验

实验九8255扫描键盘、显示实验一.实验要求利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在由8279控制的七段数码管上。
8255PA口做键盘输入线,PB口作扫描线。
二.实验目的1.掌握8255编程方法。
2.掌握扫描键盘和显示的编程方法。
三.实验电路及连线CS8255接8500H,则命令字地址为8506H,PA口地址为8500H,PB口地址为8502H,PC口地址为8504H。
CS8279接8700H,则8279的状态口地址为8701H; 8279的数据口地址为8700H;模块中的十个短路套都套在8255侧。
四.实验说明在PA口与PB口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用8×2的阵列,共可按16个键。
显示部分由8279控制,由7407驱动8位数码管显示。
五.实验程序框图主程序框图读键显示部分框图六.实验程序:D8255 EQU 8506H ;8255状态/数据口地址D8255A EQU 8500H ;8255 PA口地址D8255B EQU 8502H ;8255 PB口地址Z8279 EQU 8701H ;8279状态口地址D8279 EQU 8700H ;8279数据口地址DISPTR EQU 08H ;当前显示位置KEYVAL EQU 09H ;读到的键码ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL DELAY ;延时MOV DISPTR,#30H ;显示缓冲区头指针MOV DPTR,#D8255MOV A,#90H ;置8255状态;方式0,PB,PC口输出,PA口输入MOVX DPTR,AMOV DPTR,#Z8279 ;置8279命令字MOV A,#0D3HMOVX DPTR,A ;清LED显示MOV A,#00HMOVX DPTR,AMOV A,#38HMOVX DPTR,AMOV A,#0D1HKB_DIS:LCALL RD_KB ;读键盘MOV A,#0FFHCJNE A,KEYVAL,DISBUF ;判读到键SJMP KB_DIS ;没有则继续读键DISBUF:LCALL DISP ;把键移入显存LCALL DELAY ;延时消抖LCALL DELAYSJMP KB_DISDISP: ;显存依次前移MOV R1,#31H ;在最后加入新键值MOVE:MOV A,R1DEC R1MOV R1,AINC R1INC R1CJNE R1,#38H,MOVEMOV 37H,KEYVALMOV KEYVAL,#0FFHMOV DPTR,#Z8279MOV A,#90HMOVX DPTR,AMOV R0,#08HMOV R1,#30HMOV DPTR,#D8279LP: MOV A,R1MOVX DPTR,AINC R1DJNZ R0,LPRETRD_KB: ;键盘扫描MOV A,#02H ;扫描第一行MOV DPTR,#D8255BMOVX DPTR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#00HCJNE A,#0FFH,KEYCAL ;判键是否按下MOV A,#01H ;扫描第二行MOV DPTR,#D8255BMOVX DPTR,AMOV DPTR,#D8255AMOVX A,DPTRMOV R1,#08HCJNE A,#0FFH,KEYCALSJMP NOKEY ;无键按下KEYCAL: ;计算键码MOV R0,#08HSHIFT:RRC AJNC CALCINC R1DJNZ R0,SHIFTCALC: ;换算显示码MOV DPTR,#DL_DATMOV A,R1MOVC A,A+DPTRMOV KEYVAL,ARETNOKEY: MOV KEYVAL,#0FFH ;返回无键标志RETDELAY: MOV R0,#0H ;延时子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETDL_DAT: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FEND实验十8279显示实验一.实验要求编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。
汇编与接口键盘显示实验报告

《微机原理与接口技术》上机实验报告学院(部)专业班级学生姓名学号实验六键盘扫描及显示设计实验一、实验目的1.学习按键扫描的原理及电路接法;2.掌握利用8255完成按键扫描及显示。
二、实验内容1.按原理图1连接好电路。
2.编程: 编程使得在键盘阵列上每按一个键后,微机屏幕和最右端的数码管上有相应字符显示出来,按“E”退出程序。
3.实验提示(1)8255CS接地址译码输出的288h~28fh。
(2)8255的A口PA0~PA7接数码管的a~dp。
数码管位码S0接+5V,S3~S1接GND。
(3)延时程序可用BIOS功能程序INT 1AH的0号功能程序:其出口参数:CH:CL=时:分;DH:DL=秒:1/100秒。
图1 键盘显示连接图三、程序流程四、程序代码data segmentstring db 'the initialization is okay$',0ah,0dhkey db 0e7h, 0ebh, 0edh, 0eeh, 0d7h, 0dbh, 0ddh, 0deh, 0b7h, 0bbh, 0bdh, 0beh, 77h, 7bh, 7dh, 7eharray db 33h, 37h, 66, 70, 32h, 36h, 65, 69, 31h, 35h, 39h, 68, 30h, 34h, 38h, 67num db 16over db ?data endsstack1 segment stack 'stack'dw 50 dup(?)stack1 endscode segmentassume cs:code, ds:data, ss:stack1start:mov ax,datamov ds,axmov ax,seg string ;显示提示mov ds,axmov dx,offset stringmov ah,09hint 21h.while 1call exam.if over == 69mov ah,4chint 21h.endif.endwmov ah,4ch ;/////////////////////int 21hexam proc ;检测子程序//////////////////mov al,81h ;设置8255工作方式字mov dx,28bhout dx,allp1:mov al,00h ;向C端口高四位输出低电平mov dx,28ahout dx,alin al,dx ;C端口低四位cmp al,0fhjz lp1call delay ;延时子程序mov bl,al ;保存列值mov al,88h ;重置8255工作方式字mov dx,28bhout dx,almov al,blmov dx,28ahin al,dx ;读入行值mov ah,blmov cl,4rcr ax,cl.if al == 0b7h ;1 mov over,31hmov al,31hmov dl,almov ah,2hint 21hmov al,06hmov dx,288hout dx,al.endif.if al == 0d7h ;2 mov over,32hmov al,32hmov dl,almov ah,2hint 21hmov al,05bhmov dx,288hout dx,al.endif.if al == 0e7h ;3 mov over,33hmov al,33hmov dl,almov ah,2hint 21hmov al,4fhmov dx,288hout dx,al.endif.if al == 07bh ;4 mov over,34hmov al,34hmov dl,alint 21hmov al,66hmov dx,288hout dx,al.endif.if al == 0bbh ;5 mov over,35h mov al,35hmov dl,almov ah,2hint 21hmov al,6dhmov dx,288hout dx,al.endif.if al == 0dbh ;6 mov over,36h mov al,36hmov dl,almov ah,2hint 21hmov al,7dhmov dx,288hout dx,al.endif.if al == 0ebh ;7 mov over,37h mov al,37hmov dl,almov ah,2hint 21hmov al,07hmov dx,288hout dx,al.endif.if al == 07dh ;8 mov over,38h mov al,38hmov dl,alint 21hmov al,7fhmov dx,288hout dx,al.endif.if al == 0bdh ;9 mov over,39h mov al,39hmov dl,almov ah,2hint 21hmov al,67hmov dx,288hout dx,al.endif.if al == 0ddh ;a mov over,65 mov al,65mov dl,almov ah,2hint 21hmov al,77hmov dx,288hout dx,al.endif.if al == 0edh ;b mov over,66 mov al,66mov dl,almov ah,2hint 21hmov al,7chmov dx,288hout dx,al.endif.if al == 7eh ;c mov over,67 mov al,67mov dl,alint 21hmov al,39hmov dx,288hout dx,al.endif.if al == 0beh ;dmov over,68mov al,68mov dl,almov ah,2hint 21hmov al,5ehmov dx,288hout dx,al.endif.if al == 0deh ;emov over,69mov al,69mov dl,almov ah,2hint 21hmov al,79hmov dx,288hout dx,al.endif.if al == 0eeh ;fmov over,70mov al,70mov dl,almov ah,2hint 21hmov al,71hmov dx,288hout dx,al.endif;////////;////////mov al,81h ;重置8255工作方式字mov dx,28bhout dx,allp6:mov dx,28ahmov al,00hout dx,alin al,dxcmp al,0fhjnz lp6retexam endp ;/////////////////////delay proc near ;延时子程序push ax ;delay 50ms--100msmov ah,0int 1ahmov bx,dxdelay1:mov ah,0int 1ahcmp bx,dxjz delay1mov bx,dxdelay2:mov ah,0int 1ahcmp bx,dxjz delay2pop axretdelay endpcode endsend start。
8255LCD 动态显示4X4键盘

南京邮电大学通达学院课程设计实验报告实验名称基于8255的LCD显示的动态显示器设计班级 080061 学号 08006129 姓名 _ 卓晓寒 _ _ ______ 指导老师 ___ 林建中 _____ ______ 开课时间 2011/2012学年,第一学期 _基于8255的LCD动态显示器设计一、设计要求能够学会利用Proteus软件的MCS51单片机仿真学习,根据提供的参考工程,在Proteus平台自己重新设计实验电路所需要的电气原理图,并在此基础上编写相对应的程序,实现其功能,学习Proteus软件的使用,其中包括原理图器件的选取、原理图的电气连接、程序的编写编译以及运行,并能查出其错误等。
二、实验内容设计一基于8255的LCD动态显示器三、实验要求1.用数码管或LCD正常显示数字“12345678”。
2.通过按键可改变显示方式。
3.设计显示屏的动态效果,用10个按键,每键对应一种滚动技术。
另注,实验发挥部分:1.设计所有动作的联合效果。
2.设计二个变速按键,可多级改变滚动速度。
3.设计一台魔术电子种,采用自动变换,随机组合,数据每10秒变换一次。
动态显示格式:0.静止1.整体闪烁2.单字闪烁3.整体向前、向后滚动4.单字移动5.两边向中间压缩6.中间向两边扩张7.上下压缩8.文字上下滚动9.组合动作(每一字符执行上述一个动作,并同时运动)四、实验仪器及实验环境(1)586微型计算机系统(2)proteus仿真软件(3)MEDWIN软件(4)单片机开发系统五、设计思路根据实验给出的要求,我们选择了LM016LLCD进行动态显示。
并通过按键切换不同的功能,来达到分别显示各种要求的动态效果。
实验要求进行检控式LCD动态显示。
定时器T0作为每0.01秒加一的定时器;题目中的要求是用十种动态效果,由于本人对单片机研究肤浅加之有直接可以输入的p1端口。
故将监控调为八种功能,对应的分别为:0.静止1.整体闪烁2.单字闪烁3.整体向前、向后滚动4.单字移动5.两边向中间压缩6.中间向两边扩张7.上下压缩8.文字上下滚动9.组合动作(每一字符执行上述一个动作,并同时运动)六、实验过程本次课程设计是在理论课程的基础上,目的在于培养我们的动手能力,通过电路设计、理论计算、实际编程、调试、测试、分析查找故障,解决在实际设计中的问题,使设计好的电路能正常工作,并可能结合实际的实验板进行下载测试。
8255并行接口键盘实验

keybd_event('0',0x71, KEYEVENTF_KEYUP, 0);} } }
运行
结果
按键被弹起发送KEYEVENTF_KEYUP事件
调试
分析
和体
会
通过8255并行键盘接口实验,对课本上的知识有了更深刻的理解,掌握8255A的功能及方式0、1的实现,熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。通过现实中的操作,让我对现在所学的知识产生了更大的兴趣,为以后的进一步学习定下了良好的基础。
方式0是基本型输入/输出。这种方式和外设交换数据时,8255端口与外设之间不使用联络线。
方式1为选通型输入/输出。用这种方式和外界交换数据时,端口和外设之间要有联络信号。
方式2是双向数据传送,仅A口有这项功能。当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。2.、工作方式选择字
2、熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。
3、利用09H型中断设计一个自己的键盘中断服务程序,程序设计应考虑在
退出时不破坏原有的设置。
实验
内容
1、8255的工作方式
一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。
while(!(v_pGPIOReg﹥GPLR_x & GPIO_13)) {//扫描矩阵键盘,判断按键列位置
if(num==1)//第1次连发延时400 ms Sleep(400); else
课程设计(论文)-8255扫描键盘(4X4)显示设计

课程设计(论文)-8255扫描键盘(4X4)显示设计目录8255扫描键盘,4X4,显示:一、设计要求………………………………………… 1 二、设计目的………………………………………… 1 三、主要芯片及器件介绍…………………………… 1 四、电路原理图………………………………………5 五、编程方法................................................ 7 六、设计体会................................................ 10 七、参考文献 (10)1系别:电子电气工程系专业名称:电子信息工程班级:电子,3,班学生姓名:学号:20048602115指导教师:2006 年 8 月 29 日2一、设计要求利用可编程并行接口8255芯片与MCS-51单片机相连做一个有输入/输出的并行接口。
输入端口接4×4的键盘,输出端口接8个七段数码管,作为输出显示。
二、设计目的1(理解MCS-51单片机输入输出的原理及工作方式。
2(掌握8255的编程方法。
3(掌握利用8279实现编码式键盘的连接和编程方法。
4(掌握多个七段数码管按位显示的实现方法。
三、主要芯片及器件介绍1(可编程并行接口 82558255是8位通用可编程并行输入输出接口芯片,它具有很强的功能,在使用时可利用软件编程来指定完成它的功能。
1(8255的外部引线如图1:D0~D7:双向数据信号线。
用来传送数据和控制字。
RD:读信号线。
通常接系统总线的IOR。
:写信号线。
通常接系统总线的IOW。
WD:片选输入端,低电平有效。
CSA0 A1:口地址选择信号线。
8255内部有3个口(即A口,B口,C口)还有一个控制寄存器,他们即可由程序寻址。
A0 A1 上的不同编码可分别寻址上述3个口号一个控制寄存器,具体规定如下:A0 A1 选择0 0 A口0 1 B口1 0 C口1 1 控制寄存器图 1 8255管脚图A0 A1与一起决定8255的接口地址。
微机原理键盘扫描及显示完整实验报

实验9键盘扫描及显示实验
实验时间2019年12月18日
实验类型■验证性□设计性□综合性
1.实验目的
了解键盘扫描及数码显示的基本原理,熟悉8255的编程。
2.实验内容及过程(主要内容、操作步骤)
将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。
键盘采用4X4键盘,每个数码管显示值可为0~F 共16个数。
实验具体内容如下:将键盘进行编号,记作0~F,当按下其中-一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。
3.测试数据及实验结果
4.实验分析及总结(主要考察内容)
通过本次实验,我理解了键盘扫描及数码显示的基本原理,通过理解分析程序,自己对程序进行了一些总结和修改,并进行了验证,进一步掌握了微机接口的学习方法。
教师评阅
评价指标:实验目的、操作步骤、设计、算法、程序结构、实验结果、实验分析、实验总结
1/ 1。
基于8255的小键盘接口实验报告

课程:微机原理与接口技术实验实验名称:硬件仿真实验第一页共页系别:理学院实验日期2014年12月12号专业班号:组别:交报告日期2014年12月19号姓名:学号:报告退发(订正、重做)实验名称:基于8255的小键盘接口实验1、实验目的(1)了解8255可编程并行接口芯片的工作原理;(2)掌握8255的应用。
二、实验设备安装有proteus7.10pro的PC一台。
三、实验内容用8255设计一个4*4矩阵键盘的接口,将按键的键值显示在7段数码管上。
实验模拟电路图如下:上图为按下F键后的情形,7段共阴极数码管上显示出F。
程序代码为:程序代码为:POUT MACRO PORT_ADDR,CONTENTSMOV DX,PORT_ADDRMOV AL,CONTENTSOUT DX,ALENDMGETK MACRO PORT_ADDR,MASK,TARGET MOV DX,PORT_ADDRIN AL,DXAND AL,MASKCMP AL,MASKJZ TARGETENDM.model small.8086.stack.code.startupK0:pout 1006h,81hK1:pout 1000h,dcodepout 1004h,0getk 1004h,0fh,k1mov ah,alpout 1006h,88hpout 1004h,ahgetk 1004h,0f0h,k0or al, ahmov si,0mov cx,16K2:cmp al,kcode[si]jz k3inc siloop K2jmp K0K3:mov al,seg7[si]mov dcode,aljmp K0.datakcode db 07eh,07dh,07bh,077h,0beh,0bdh,0bbh,0b7hdb 0deh,0ddh,0dbh,0d7h,0eeh,0edh,0ebh,0e7hseg7 db 03fh,006h,05bh,04fh,066h,06dh,07dh,007hdb 07fh,06fh,077h,07ch,039h,05eh,079h,071h4、 实验小结通过实验对反转法键码识别原理和8255工作原理有了进一步了解,也对编程有了进一步熟悉。
实验九 8255控制键盘与显示实验

贵州大学实验报告纸实验九8255控制键盘与显示实验一、实验目的1.掌握8255输入、输出的编程方法。
2.掌握阵列键盘和数码管动态扫描显示的控制方法。
二、实验内容1、用8255可编程并行口会、做一个键盘、显示扫描实验,把按键输入的键值,显示在8255控制的七段数码管上。
8255PB口做键盘输入线,PC口做显示扫描线,PA口做显示数据线。
2、键入值后在数码管显示按键的ASCII.3、并且要求字母键可以实现大小写转换(用F键做切换)三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图本实验需要用到CPU模块(F3区)、8255模块(C6区)、8279键盘与显示模块(E7区)。
8255键盘与显示电路原理图参见图9-1A、图9-1B,及实验四的图4-1。
CS_8255接200H,则8255 状态/命令口地址为203H,PA口地址为8000H,PB口地址为201H、PC口地址为202H。
图9-1A 键盘显示电路1 图9-1B 键盘显示电路2五、实验程序;//********************************************************* ;文件名: 55KeyD for 8088;功能: 8255控制键盘显示实验;接线: 连接8279键盘显示模块的JD3E到8255模块的JD3C(PA口);; JD2E到8255模块的JD4C(PB口);; JD4E到8255模块的JD5C(PC口);; 用导线连接CPU模块的200H到8255模块的CS_8255。
;//********************************************************* D8255A EQU 200H ;8255 PA 口地址D8255B EQU 201H ;8255 PB 口地址D8255C EQU 202H ;8255 PC 口地址D8255 EQU 203H ;8255 状态/命令口地址DATA SEGMENTCOUNT DB ?DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATAstart:push cspop dsMOV AL,90H ;方式0,PB,PC口输出,PA口输入MOV DX,D8255OUT DX,AL ;点亮对应的LEDMOV AH,0FFHMOV BH,7DHKB_DIS:CALL KEY ;读键盘CALL DISPLAYJMP KB_DISMAIN ENDPKEY proc nearMOV AL,02H ;扫描第一行MOV DX,D8255COUT DX,ALMOV DX,D8255AIN AL,DXMOV AH,0CMP AL,0FFHJNZ KEYCALL ;判键是否按下MOV AL,01H ;扫描第二行MOV DX,D8255COUT DX,ALMOV DX,D8255AIN AL,DXMOV AH,8CMP AL,0FFHJNZ KEYCALL ;判键是否按下JMP FABH ;无键按下KEYCALL:MOV CX,08H ;计算键码SHIFT: SAR AL,1JNC TORETINC AHLOOP SHIFTJMP FABHTORET: MOV BL,AHFABH: RETKEY ENDPDISPLAY PROC NEARCMP AH,0FFHJE ABGMOV AL,11010011B ;显示位置第2个数码管 MOV DX,D8255COUT DX,ALCMP AH,0AHJB ABCSUB AH,09HCMP AH,06HJNE ABFADD CL,1MOV AL,CLSHR AL,1JC ABDMOV AL,66H ;显示4MOV BH,ALJMP ABEABD: MOV AL,7DH ;显示6MOV BH,ALJMP ABEABC: MOV AL,4FH ;显示3MOV BH,ALABF: MOV BL,AHMOV AL,BHABE: MOV DX,D8255BOUT DX,ALCALL SOFTDLYPUSH BXMOV AL,11001011B ;显示位置第1个数码管MOV DX,D8255COUT DX,AL ;点亮对应的LEDMOV AL,AH ;取键值LEA BX,LEDXLAT ;取显示段码MOV DX,D8255B ;将AL中内容写到数码管上 OUT DX,ALCALL SOFTDLYPOP BXABG: MOV AL,11000011B ;显示位置第0个数码管 MOV DX,D8255COUT DX,ALMOV AL,76HMOV DX,D8255BOUT DX,ALCALL SOFTDLYRETLED DB 3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B DB 39H,5EH,79H,71H,00H,40H;C,D,E,F, ,- Display endpSOFTDLY PROC NEARPUSH CXPUSH BXMOV BX,2DELAY: MOV CX,2801WAIT:LOOP WAITDEC BXJNZ DELAYPOP BXPOP CXRETSOFTDLY ENDPcode endsend start六、实验步骤1)系统各跳线器处在初始设置状态,S11E和S12E红开关全部打到下方(OFF)。
8255键盘及显示接口设计

班级:姓名:学号:日期: 2009年12月28日成绩:目录一、课程设计的意义 (3)二、课程设计的主要内容 (3)三、课程设计的组织与安排 (3)四、课程设计的要求 (4)五、课程设计正文 (5)1.设计原理 (5)2.设计电路原理图 (6)3.键盘及数码管显示电路接线图 (7)4.使用原器件 (7)5.课程设计总结 (7)6.论文参考资料 (7)六、附录一:程序流程图 (8)七、附录二:课程设计程序 (9)课程论文(设计)指导书一、课程论文(设计)的意义:1.通过《微型计算机原理与应用》课程设计,使学生能够进一步理解微型计算机工作原理, 微型计算机的硬件结构及微型计算机的应用软件编程。
2.要求学生能够根据功能要求初步进行硬件接口电路的设计,以及有关应用程序的设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。
3.课程设计是培养和锻炼学生在学习完本课程后综合应用所学理论知识解决实际工程设计和应用问题的能力、进行工程实训的重要教学环节,它具有动手、动脑,理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。
4.通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
培养学生事实求是和严肃认真的工作态度。
5.通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的系统方案论证设计、编程、软件硬件调试、查阅资料、绘图、编写说明书等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练的熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
贵州大学实验报告纸
实验九8255控制键盘与显示实验
一、实验目的
1.掌握8255输入、输出的编程方法。
2.掌握阵列键盘和数码管动态扫描显示的控制方法。
二、实验内容
1、用8255可编程并行口会、做一个键盘、显示扫描实验,把按键输入的键值,显示
在8255控制的七段数码管上。
8255PB口做键盘输入线,PC口做显示扫描线,PA
口做显示数据线。
2、键入值后在数码管显示按键的ASCII.
3、并且要求字母键可以实现大小写转换(用F键做切换)
三、实验要求
根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图
本实验需要用到CPU模块(F3区)、8255模块(C6区)、8279键盘与显示模块(E7区)。
8255键盘与显示电路原理图参见图9-1A、图9-1B,及实验四的图4-1。
CS_8255接200H,则8255 状态/命令口地址为203H,PA口地址为8000H,PB口地址为201H、PC口地址为202H。
图9-1A 键盘显示电路1 图9-1B 键盘显示电路2
五、实验程序
;//********************************************************* ;文件名: 55KeyD for 8088
;功能: 8255控制键盘显示实验
;接线: 连接8279键盘显示模块的JD3E到8255模块的JD3C(PA口);
; JD2E到8255模块的JD4C(PB口);
; JD4E到8255模块的JD5C(PC口);
; 用导线连接CPU模块的200H到8255模块的CS_8255。
;//********************************************************* D8255A EQU 200H ;8255 PA 口地址
D8255B EQU 201H ;8255 PB 口地址
D8255C EQU 202H ;8255 PC 口地址
D8255 EQU 203H ;8255 状态/命令口地址
DATA SEGMENT
COUNT DB ?
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
start:
push cs
pop ds
MOV AL,90H ;方式0,PB,PC口输出,PA口输入
MOV DX,D8255
OUT DX,AL ;点亮对应的LED
MOV AH,0FFH
MOV BH,7DH
KB_DIS:
CALL KEY ;读键盘
CALL DISPLAY
JMP KB_DIS
MAIN ENDP
KEY proc near
MOV AL,02H ;扫描第一行
MOV DX,D8255C
OUT DX,AL
MOV DX,D8255A
IN AL,DX
MOV AH,0
CMP AL,0FFH
JNZ KEYCALL ;判键是否按下
MOV AL,01H ;扫描第二行
MOV DX,D8255C
OUT DX,AL
MOV DX,D8255A
IN AL,DX
MOV AH,8
CMP AL,0FFH
JNZ KEYCALL ;判键是否按下
JMP FABH ;无键按下KEYCALL:MOV CX,08H ;计算键码
SHIFT: SAR AL,1
JNC TORET
INC AH
LOOP SHIFT
JMP FABH
TORET: MOV BL,AH
FABH: RET
KEY ENDP
DISPLAY PROC NEAR
CMP AH,0FFH
JE ABG
MOV AL,11010011B ;显示位置第2个数码管 MOV DX,D8255C
OUT DX,AL
CMP AH,0AH
JB ABC
SUB AH,09H
CMP AH,06H
JNE ABF
ADD CL,1
MOV AL,CL
SHR AL,1
JC ABD
MOV AL,66H ;显示4
MOV BH,AL
JMP ABE
ABD: MOV AL,7DH ;显示6
MOV BH,AL
JMP ABE
ABC: MOV AL,4FH ;显示3
MOV BH,AL
ABF: MOV BL,AH
MOV AL,BH
ABE: MOV DX,D8255B
OUT DX,AL
CALL SOFTDLY
PUSH BX
MOV AL,11001011B ;显示位置第1个数码管
MOV DX,D8255C
OUT DX,AL ;点亮对应的LED
MOV AL,AH ;取键值
LEA BX,LED
XLAT ;取显示段码
MOV DX,D8255B ;将AL中内容写到数码管上 OUT DX,AL
CALL SOFTDLY
POP BX
ABG: MOV AL,11000011B ;显示位置第0个数码管 MOV DX,D8255C
OUT DX,AL
MOV AL,76H
MOV DX,D8255B
OUT DX,AL
CALL SOFTDLY
RET
LED DB 3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5 DB 7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,B DB 39H,5EH,79H,71H,00H,40H;C,D,E,F, ,- Display endp
SOFTDLY PROC NEAR
PUSH CX
PUSH BX
MOV BX,2
DELAY: MOV CX,2801
WAIT:
LOOP WAIT
DEC BX
JNZ DELAY
POP BX
POP CX
RET
SOFTDLY ENDP
code ends
end start
六、实验步骤
1)系统各跳线器处在初始设置状态,S11E和S12E红开关全部打到下方(OFF)。
2)用8位数据线对应连接8255模块的JD3C(PA口)、JD4C(PB口)、JD5C(PC口)到8279模块的JD3E、JD2E、JD4E;
用导线连接CPU模块的200H到8255模块的CS_8255。
3)启动PC机,打开THGMW-88软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
4)在键盘上按任一单键,观察数码管的显示,数码管低位显示按键值。
七、实验现象与分析
运行程序后,在键盘上按任意键,可以看到数码管上显示了按键的ASIIC码,对于小于10的数,显示30-39,而对于字母,小写时为60-63,大写时为40-43,而在按下F时,不显示数字,在按下下一个字母时系一位的显示在4和6之间变化,实现大小写的转换。
程序通过对输入量的识别,跳转到不同的程序段执行来实现不同按键输出。
并且通过查表发来实现不同字符的显示。
实验通过8255芯片来对键盘的输入和显示,并采用行扫描法对键盘输入进行识别,并采用动态显示结果。
通过程序的编写和电路的连接基本上实现的实验的要求。
八、实验总结
通过实验基本上掌握了键盘输入和显示的方法,键盘显示可以用8255来实现,也可以用专门的键盘输入显示芯片来实现。
实验中采用8255的方法来实现,通过实验掌握了8255的使用方法,并且掌握了键盘按键识别的方法,在实验中采用行扫描法,我们还可以采用反转法实现。
实验还掌握了数码管的动态显示方法,和他的编程过程。
实验的中掌握了键盘输入和显示的方法,这为以后的电路设计提供了方法,我们可以在以后的电路设计中应用这个方法来实现输入输出。