《2022年2022年键盘及LED显示实验 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年键盘及LED显示实验 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验三键盘及 LED显示实验一、实验内容利用 8255 可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求 (INT0,INT1) ,单片机扫描键盘, 并把按键输入的键码一位LED显示器显示出来。二、实验目的及要求(一)实验目的通过该综合性实验,使学生掌握8255 扩展键盘和显示器的接口方法及C51语言的编程方法, 进一步掌握键盘扫描和LED显示器的工作原理; 培养学生一定的动手能力。(二)实验要求1学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写 C51语言源程序,为实验做好充分准备。2该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分
2、发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。三、实验条件及要求计算机, C51语言编辑、调试仿真软件及实验箱50 台套。四、实验相关知识点1C51编程、调试。2扩展 8255 芯片的原理及应用。3键盘扫描原理及应用。4LED显示器原理及应用。5外部中断的应用。五、实验说明本实验仪提供了 8 位 8 段 LED显示器,学生可选用任一位LED显示器,只要按地址输出相应的数据,就可以显示所需数码。显示字形0 1 2 3 4 5 6 7 8 9 A b C d E F 段 码0 xfc 0 x60 0 xda 0 xf2 0 x66 0 xb6 0 xbe 0 xe0 0 xfe 0
3、 xf6 0 xee 0 x3e 0 x9c 0 x7a 0 x9e 0 x8e 六、实验原理图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 01e1d2dp3c4g56b789abcgddpf10abfcgdedpa11GND3abfcgdedp12GND4abfcgdedpGND1GND2DS29LG4041AH23456789ABCDEFe1d2dp3c4g56b789abcgddpf10abfcgdedpa11GND3
4、abfcgdedp12GND4abfcgdedpGND1GND2DS30LG4041AH12345678JP4112345678JP4712345678JP42SEGASEGBSEGCSEGDSEGESEGGSEGFSEGHSEGASEGBSEGCSEGDSEGESEGGSEGFSEGHACB12345678JP92D5.1KR1625.1KR163VCCVCCD034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115
5、PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS6U368255D0D1D2D3D4D5D6D7WRRDRSTA0A1PC5PC6PC7PC2PC3PC4PC0PC1CS12345678JP5612345678JP5312345678JP52PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7(8255 PB7)(8255 PB6)(8255 PB5)(8255 PB4)(8255 PB3)(8255 PB2)(8255 PB1)(8255 PB0)(8255 PC7)(8255 PC6)(82
6、55 PC5)(8255 PC4)(8255 PC3)(8255 PC2)(8255 PC1)(8255 PC0)(8255 PA0)(8255 PA1)(8255 PA2)(8255 PA3)(8255 PA4)(8255 PA5)(8255 PA6)(PA7)INT0(P3.2)INT0(P3.3)七、连线说明F4 区: CS、A0 、A1 A3 区:CS1、A0 、A1 B6 区: JP56(PA 口)F4 区: JP41(C) B6 区: JP53(PB 口)F4 区: JP42(B) B6 区: JP52(PC 口)F4 区: JP47(A) A3 区: JP51 F4 区: JP9
7、2(D) A3 区: P1.6、P1.7 A3 区: INT0 、INT1 注: F4 的 D 无法与 INT0(P3.2) 、INT1(P3.3) 直接连接,所以使用P1 口桥接。八、实验参考流程图1主程序流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - Y 按键标志 =1 开始0- 按键标志8255 初始化( PA, PB, PC 口作输出)0- 8255PC 口定时器 0:方式一允许定时器0 中断允许外部中断0(行线
8、0)允许外部中断1(行线 1)外部中断 0、1 边沿触发允许中断0- 按键标志显示缓冲区左移一次键值 - 最低位显示缓冲区调用显示N 0 x10 填充显示缓冲区(消隐)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 2外中断服务程序流程图外部中断 0 外部中断1 定时器 0 中断程序,用于消抖动:Y 1- 按键标志P3.2=0开始N 中断返回键值变量 =8N Y N N Y Y Y 清外部中断1 允许外部中断1 有键按下开始82
9、55PC口改为输入关外部中断1 0-P3.3 (键的行线1)读 8255PC口转化为 8.F的键值 - 变量 0 8255 的 PC口改为输出1-P3.3 0-8255PC 口设置定时器0 初值( 50ms定时)开定时器0 键值变量 =变量 0 N 中断返回Y 清外部中断0 允许外部中断0 有键按下开始8255PC口改为输入关外部中断0 0-P3.2 (键的行线0)读 8255PC口转化为 0.7的键值 - 变量 0 8255 的 PC口改为输出1-P3.2 0-8255PC 口设置定时器0 初值( 50ms定时)开定时器 0 键值变量 =变量 0 N 中断返回名师资料总结 - - -精品资料
10、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 3LED 显示程序流程图九、C51语言参考源程序#include reg52.h unsigned char KeyResult; / 存放键值unsigned char buffer8; / 显示缓冲区bit bKey; / 是否有键按下xdata unsigned char P_8255 _at_ 0 xf003; /8255的控制口xdata unsigned char PA_8255 _at_ 0 xf0
11、00; /8255的 PA口xdata unsigned char PB_8255 _at_ 0 xf001; /8255的 PB口xdata unsigned char PC_8255 _at_ 0 xf002; /8255的 PC口code unsigned char SEG_TAB = / 段码0 xfc,0 x60,0 xda,0 xf2,0 x66,0 xb6,0 xbe,0 xe0,0 xfe,0 xf6,0 xee,0 x3e,0 x9c,0 x7a,0 x9e,0 x8e,0 x0; sbit bLine0 = P32; sbit bLine1 = P33; / 延时 1ms
12、void Delay1ms() unsigned char i; 7FH-数码块选择变量8-计数器数码块选择变量-8255PA 口显示缓冲区中对应数据转化为段码段码 -8255PB 口数码块选择变量循环右移一次延时 1ms开始计数器 1 = 0 返回Y N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - i = 0; while (-i); / 显示void Display() unsigned char i = 0 x7f;
13、unsigned char j; for (j = 0; j 0; i-) bufferi = bufferi-1; buffer0 = KeyResult; void Int0Int() interrupt 0 unsigned char i = 0 x80; unsigned char KeyResult0 = 0 x0; EX0 = 0; / 关外部中断0 P_8255 = 0 x89; /PC 口输入bLine0 = 0; /P3.2作行输出while (i) if (PC_8255 & i) = 0) break; KeyResult0+; i = 1; P_8255 = 0 x80
14、; /8255的 PA 、PB 、PC口全作输出口PC_8255 = 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - bLine0 = 1; if (i) TH0 = 60; / 定时中断计数器初值TL0 = 176; / 定时 50ms TR0 = 1; KeyResult = KeyResult0; IE0 = 0; / 清除中断EX0 = 1; / 开外部中断0 void Int1Int() interrupt 2
15、unsigned char i = 0 x80; unsigned char KeyResult0 = 8; EX1 = 0; / 关外部中断0 P_8255 = 0 x89; /PC 口输入bLine1 = 0; /P3.2作行输出while (i) if (PC_8255 & i) = 0) break; KeyResult0+; i = 1; P_8255 = 0 x80; /8255的 PA 、PB 、PC口全作输出口PC_8255 = 0; bLine1 = 1; if (i) TH0 = 60; / 定时中断计数器初值TL0 = 176; / 定时 50ms TR0 = 1; Ke
16、yResult = KeyResult0; IE1 = 0; / 清除中断EX1 = 1; / 开外部中断0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - /50ms 中断服务程序void INT_Timer0(void) interrupt 1 if (KeyResult = 8) & !bLine1) bKey = 1; / 有键按下,键值在KeyResult 中 TR0 = 0; void main() char i;
17、bKey = 0; / 没有键按下TMOD = 1; / 定时器 0:方式一P_8255 = 0 x80; /8255的 PA 、PB 、PC口全作输出口PC_8255 = 0 x0; ET0 = 1; / 开定时器0 中断EX0 = 1; / 开外部中断0 EX1 = 1; / 开外部中断1 IT0 = 1; / 边沿触发IT1 = 1; / 边沿触发EA = 1; / 允许中断for (i = 0; i 8; i+) bufferi = 0 x10; / TR0 = 1; / 开定时器T0 / bRefurbish = 1; while (1) if (bKey) bKey = 0; Re
18、furbishData(); Display(); / 调用显示 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 十、实验实施步骤 1 仔细阅读实验内容及要求,编写C51源程序。2上机编辑、仿真调试源程序。3按要求接线。4在线调试源程序,观查运行结果。十一、实验心得此次实验要求我们利用8255 可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1) ,单片机扫描键盘,并把按键输入的键码一位 LED显示器显示出来。 通过实验我验证了这一实验内容,在按键的控制下实现 015 显示在 LED显示器。学到了新的知识,掌握了8255 扩展键盘和显示器的接口方法,丰富了我们的单片机知识,锻炼我们的动手实践能力。实验能让我们检验和巩固学到的理论知识,不断加深我们对知识的记忆。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -