8255键盘扫描与LED数码管显示
- 格式:pdf
- 大小:3.47 MB
- 文档页数:21
期中大作业姓名:性别:专业:学号:课题:【利用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和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接口键盘及显示综合设计实验(曹建文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和51单片机实现数码管显示按键数值的程序】要求:【4*4矩阵键盘,按0到15,数码管上分别显示0~9,A~F】芯片资料:8255:8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
8255特性:1.一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。
2.具有24个可编程设置的I/O口,即3组8位的I/O口,分别为PA口、PB口和PC 口。
它们又可分为两组12位的I/O口:A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。
A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O三种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.引脚说明RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。
RD:读信号线,当这个输入引脚为低电平时,即CS=0且RD=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即CS=0且WR=0时,允许CPU将数据或控制字写入8255。
实验三键盘及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 键盘显示实验一.实验目的1.掌握8255与单片机的接线和I/O编程方法;2.掌握8255扫描键盘与读取键值的编程;3.掌握数码管的显示原理与编程。
二、实验内容1.使用单片机、8255模块和数码管显示电路,编程实现在数码管上从右至左显示0-5;2. 使用单片机、8255模块和键盘显示电路,编程实现在数码管最右1位显示按键的键码。
三、实验设计1.硬件电路设计使用8255模块(E3区),PA口作为位扫描口(键扫描口),PB口输出字形码,PC口作为键值读入口,与数码管显示电路和矩阵键盘模块电路(F6区)相应接口连接, 8255的数据总线D0-D7、读(/RD)、写(/WR)、端口选择A0、A1和片选/CS已和单片机接好,各端口地址如下:PA口:0FF28H;PB口:0FF29H;PC口:0FF2AH;控制口:0FF2BH单片机与8255的接线原理图和8255与键盘显示模块接线原理图如下:2.程序设计主程序流程图和显示子程序、读键子程序流程图见图6-1,6-2,6-3.YN入口 数据存储区取数据数据表中取字形码 输出字形码 输出位扫描信号6位显示完否? 返回延时图6-2 显示子程序Y N 开始初始化 扫描键盘有键按下?延时消抖读键值 显示键码图6-1 主程序流程图显示数据程序设计要点:(1)数码管显示:数码管是共阴极的,但数码管的接口电路(74LS240,754510)决定了PB口应输出共阳码,PA口应输出低电平扫描信号,数码管才能正确显示数据;(2)每一位数码管选通时间应保持在1-5ms之内,PA口轮扫一遍的时间应保持在50ms之内;(3)扫描键盘:PA口输出00H, PC口读入,判断A的值不等于03H,有键按下;(4)延时消抖:检测到有按键后,延时10-20ms再读键值;(5)读键值:PA口分列输出0,PC口读入,根据A的值和扫描的列数值确定键值。
三、实验操作1.硬件连线:根据硬件电路原理图连接各模块,SW3、SW4、SW5拨向off。
课程设计(论文)-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的接口地址。