收藏 分享(赏)

键盘及LED显示实验.doc

上传人:精品资料 文档编号:10338423 上传时间:2019-10-31 格式:DOC 页数:9 大小:102.72KB
下载 相关 举报
键盘及LED显示实验.doc_第1页
第1页 / 共9页
键盘及LED显示实验.doc_第2页
第2页 / 共9页
键盘及LED显示实验.doc_第3页
第3页 / 共9页
键盘及LED显示实验.doc_第4页
第4页 / 共9页
键盘及LED显示实验.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

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段 码 0xfc 0x60 0xda 0xf2 0x66 0xb6 0xbe 0xe0 0xfe

3、 0xf6 0xee 0x3e 0x9c 0x7a 0x9e 0x8e六、实验原理图01e1 d2dp3c4g56b789abcgd dpf10abfcgde dpa11GND3abfcgde dp12GND4abfcgde dpGND1GND2DS29 LG4041AH23456789ABCDEFe1 d2dp3c4g56b789abcgd dpf10abfcgde dpa11GND3abfcgde dp12GND4abfcgde dpGND1GND2DS30 LG4041AH12345678JP4112345678JP4712345678JP42SEGASEGBSEGCSEGDSEGESE

4、GGSEGFSEGHSEGASEGBSEGCSEGDSEGESEGGSEGFSEGHACB12345678JP92D5.1KR162 5.1KR163VCCVCCD034 D133D232 D331D430 D529D628 D727PA0 4PA1 3PA2 2PA3 1PA4 40PA5 39PA6 38PA7 37PB0 18PB1 19PB2 20PB3 21PB4 22PB5 23PB6 24PB7 25PC0 14PC1 15PC2 16PC3 17PC4 13PC5 12PC6 11PC7 10RD5 WR36A09 A18RESET35 CS6U368255D0D1D2D3D4

5、D5D6D7WRRDRSTA0A1PC5PC6PC7PC2PC3PC4PC0PC1CS12345678JP5612345678JP5312345678JP52PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7(8255 PB7)(8255 PB6)(8255 PB5)(8255 PB4)(8255 PB3)(8255 PB2)(8255 PB1)(8255 PB0)(8255 PC7)(8255 PC6)(8255 PC5)(8255 PC4)(8255 PC3)(8255 PC2)(8255 PC1)(8255 PC0)(8255 PA0)(82

6、55 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 、A1B6 区:JP56(PA 口) F4 区:JP41(C)B6 区:JP53(PB 口) F4 区:JP42(B)B6 区:JP52(PC 口) F4 区:JP47(A)A3 区:JP51 F4 区:JP92(D)A3 区:P1.6、 P1.7 A3 区:INT0、 INT1注:F4 的 D 无法与 INT0(P3.2)、INT1(P3.3)直接连接,所以使用 P1

7、 口桥接。八、实验参考流程图1主程序流程图Y按键标志=1开始0-按键标志8255 初始化(PA, PB, PC 口作输出)0-8255PC 口定时器 0:方式一允许定时器 0 中断允许外部中断 0(行线 0)允许外部中断 1(行线 1)外部中断 0、1 边沿触发允许中断0-按键标志显示缓冲区左移一次键值-最低位显示缓冲区调用显示N0x10 填充显示缓冲区(消隐)2外中断服务程序流程图外部中断 0 外部中断 1Y清外部中断 1允许外部中断 1有键按下开始8255PC 口改为输入关外部中断 10-P3.3(键的行线 1)读 8255PC 口转化为 8F 的键值-变量 08255 的 PC 口改为输

8、出1-P3.30-8255PC 口设置定时器 0 初值(50ms 定时)开定时器 0键值变量=变量 0N中断返回定时器 0 中断程序,用于消抖动:Y1-按键标志P3.2=0开始N中断返回键值变量=8 NYNNYYY清外部中断 0允许外部中断 0有键按下开始8255PC 口改为输入关外部中断 00-P3.2(键的行线 0)读 8255PC 口转化为 07 的键值-变量 08255 的 PC 口改为输出1-P3.20-8255PC 口设置定时器 0 初值(50ms 定时)开定时器 0键值变量=变量 0N中断返回3LED 显示程序流程图7FH-数码块选择变量8-计数器数码块选择变量-8255PA 口

9、显示缓冲区中对应数据转化为段码段码-8255PB 口数码块选择变量循环右移一次延时 1ms开始计数器 1 = 0返回YN九、C51 语言参考源程序#include “reg52.h“unsigned char KeyResult; /存放键值unsigned char buffer8; /显示缓冲区bit bKey; /是否有键按下xdata unsigned char P_8255 _at_ 0xf003; /8255 的控制口xdata unsigned char PA_8255 _at_ 0xf000; /8255 的 PA 口xdata unsigned char PB_8255 _a

10、t_ 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 = P32;sbit bLine1 = P33;/延时 1msvoid Delay1ms()unsigned char i;i = 0;while (-i);/显示void Display()

11、unsigned char i = 0x7f;unsigned char j;for (j = 0; j 0; i-)bufferi = bufferi-1;buffer0 = KeyResult;void Int0Int() interrupt 0unsigned char i = 0x80;unsigned char KeyResult0 = 0x0;EX0 = 0; /关外部中断 0P_8255 = 0x89; /PC 口输入bLine0 = 0; /P3.2 作行输出while (i)if (PC_8255 KeyResult0+;i = 1;P_8255 = 0x80; /8255

12、的 PA、PB、PC 口全作输出口PC_8255 = 0;bLine0 = 1;if (i)TH0 = 60; /定时中断计数器初值TL0 = 176; /定时 50msTR0 = 1;KeyResult = KeyResult0;IE0 = 0; /清除中断EX0 = 1; /开外部中断 0void Int1Int() interrupt 2unsigned char i = 0x80;unsigned char KeyResult0 = 8;EX1 = 0; /关外部中断 0P_8255 = 0x89; /PC 口输入bLine1 = 0; /P3.2 作行输出while (i)if (P

13、C_8255 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 1if (KeyResult = 8) /有键按下,键值在 KeyResult 中TR0 = 0;void main()cha

14、r 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+)bufferi = 0x10;/ TR0 = 1; /开定时器 T0/ bRefurbish = 1;while (1)if (bKey)bKey = 0;RefurbishData();

15、Display(); /调用显示十、实验实施步骤1仔细阅读实验内容及要求,编写 C51 源程序。2上机编辑、仿真调试源程序。3按要求接线。4在线调试源程序,观查运行结果。十一、实验心得此次实验要求我们利用 8255 可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1) ,单片机扫描键盘,并把按键输入的键码一位 LED 显示器显示出来。通过实验我验证了这一实验内容,在按键的控制下实现 015 显示在 LED 显示器。学到了新的知识,掌握了 8255 扩展键盘和显示器的接口方法,丰富了我们的单片机知识,锻炼我们的动手实践能力。实验能让我们检验和巩固学到的理论知识,不断加深我们对知识的记忆。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报