8255键盘扫描与LED数码管显示
利用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位并行数据。
实验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口的指定位进行置位/复位的操作。
51单片机键盘数码管显示_利用8255和51单片机实现数码管显示按键数值的程序(带程序)

期中大作业学院:物理与电子信息工程学院课题:【利用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显示实验

实验三键盘及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 键盘显示实验一.实验目的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和51单片机实现数码管显示按键值的实验

三个附加的控制端、和。当、时,输出为高电平(S=1),译码器处 于工作状态。否则,译码器被禁止,所有的输出端被封锁在高电平, 如表 3.3.5 所示。这三个控制端也叫做“片选”输入端,利用片选的作 用可以将多篇连接起来以扩展译码器的功能。 带控制输入端的译码 器又是一个完整的数据分配器。在图 3.3.8 电路中如果把作为“数据” 输入端(同时),而将作为“地址”输入端,那么从送来的数据只能通 过所指定的一根输出线送出去。这就不难理解为什么把叫做地址输入 了。例如当=101 时,门的输入端除了接至输出端的一个以外全是高 电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个 输出端上。 【例 3.3.2】 试用两片 3 线-8 线译码器 74LS138 组成 4 线-16 线译码器,将输入的 4 位二进制代码译成 16 个独立的低电平 信号。 解:由图 3.3.8 可见,74LS138 仅有 3 个地址输入端。如果 想对 4 位二进制代码,只能利用一个附加控制端(当中的一个)作为 第四个地址输入端。 取第(1)片 74LS138 的和作为它的第四个地 址输入端(同时令),取第(2)片的作为它的第四个地址输入端(同 时令),取两片的、、,并将第(1)片的和接至,将第(2)片的接至, 如图 3.3.9 所示,于是得到两片 74LS138 的输出分别为 图 3.3.9 用 两片 74LS138 接成的 4 线-16 线译码器 式(3.3.8)表明时第(1) 片 74LS138 工作而第(2)片 74LS138 禁止,将的 0000~0111 这 8 个代码译成 8 个低电平信号。而式(3.3.9)表明时,第(2)片 74LS138 工作,第(1)片 74LS138 禁止,将的 1000~1111 这 8 个代码译成 8 个低电平信号。这样就用两个 3 线-8 线译码器扩展成一个 4 线-
键盘扫描与LED数码管显示课件

设计温度传感器模块,如 DS18B20,用于获取环境温
度。
编写程序读取温度传感器数 据,并进行处理和转换。
04
05
使用LED数码管显示当前温 度值,如“25℃”。
THANKS
感谢观看
特点
LED数码管具有高亮度、低功耗、寿命长、耐腐蚀等特点,且体积小、重量轻, 易于安装和携带。
LED数码管的应用场景与优势
应用场景
LED数码管广泛应用于各种需要数字 显示的场合,如仪表盘、计时器、遥 控器等。
优势
LED数码管具有高亮度、低功耗、寿 命长等特点,能够提供清晰、稳定的 数字显示,同时价格相对较低,易于 实现大规模生产。
联合应用的常见问题与解决方案
常见问题
键盘扫描可能会出现按键抖动、串扰等 问题;LED数码管显示可能会出现亮度不 均、闪烁等问题。
VS
解决方案
针对按键抖动问题,可以采用软件消抖或 硬件消抖的方法;针对串扰问题,可以增 加隔离电路或采用差分信号传输方式。针 对LED数码管亮度不均问题,可以调整各 段数码管的电流参数;针对闪烁问题,可 以增加刷新频率或采用动态扫描显示方式 。
放相应音符。
01
设计音符键区,包括 do-re-mi等音符按键。
03
使用LED数码管显示当 前播放的音符名称,如
“C”。
05
详细描述
02
编写程序识别按键并播 放相应音符,如播放C
大调音阶。
04
案例四:温度显示系统设计
详细描述
总结词:通过温度传感器获 取温度值,使用LED数码管
显示温度值。
01
02
03
键盘扫描原理
通过逐行或逐列扫描键盘的每个按键 ,检测是否有键被按下。当某个按键 被按下时,相应的行或列电平发生变 化,从而识别出被按下的按键。