键盘及LED显示实验

键盘及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;

//延时1ms

void 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; //关外部中断0

P_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; //定时50ms

TR0 = 1;

KeyResult = KeyResult0;

}

IE0 = 0; //清除中断

EX0 = 1; //开外部中断0

}

void Int1Int() interrupt 2

{

unsigned char i = 0x80;

unsigned char KeyResult0 = 8;

EX1 = 0; //关外部中断0

P_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; //定时50ms

TR0 = 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; //开外部中断0

EX1 = 1; //开外部中断1

IT0 = 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源程序。

2.上机编辑、仿真调试源程序。

3.按要求接线。

4.在线调试源程序,观查运行结果。

十一、实验心得

此次实验要求我们利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED显示器显示出来。通过实验我验证了这一实验内容,在按键的控制下实现0~15显示在LED显示器。学到了新的知识,掌握了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 显示器,只要按地址输出相应的数据,就可以显示所需数码。 显示字形 1 2 3 4 5 6 7 8 9 A b C d E F 段 码 0xfc 0x60 0xda 0xf2 0x66 0xb6 0xbe 0xe0 0xfe 0xf6 0xee 0x3e 0x9c 0x7a 0x9e 0x8e 六、实验原理图 01e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1GND2DS29 LG4041AH 234 567 89A B C D E F e 1d 2dp 3 c 4g 56 b 78 9 a b c g d dp f 10a b f c g d e dp a 11GND3a b f c g d e dp 12 GND4 a b f c g d e dp GND1 GND2DS30 LG4041AH 1 2 3 4 5 6 7 8 JP4112345678 JP4712345678JP42 SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH SEGA SEGB SEGC SEGD SEGE SEGG SEGF SEGH A C B 12345678 JP92D 5.1K R162 5.1K R163VCC VCC D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7 10 RD 5WR 36A09A18RESET 35CS 6 U36 8255 D0D1D2D3D4D5D6D7WR RD RST A0A1PC5PC6PC7 PC2PC3PC4PC0PC1CS 12345678JP56 12345678JP53 12345678 JP52 PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7 (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) (8255 PA1) (8255 PA2) (8255 PA3) (8255 PA4) (8255 PA5) (8255 PA6) (PA7) I N T 0(P 3.2) I N T 0(P 3.3) 七、连线说明

键盘扫描显示实验原理及分析报告

键盘扫描显示实验原理及分析报告 一、实验目的-------------------------------------------------------------1 二、实验要求-------------------------------------------------------------1 三、实验器材-------------------------------------------------------------1 四、实验电路-------------------------------------------------------------2 五、实验说明-------------------------------------------------------------2 六、实验框图-------------------------------------------------------------2 七、实验程序-------------------------------------------------------------3 八、键盘及LED显示电路---------------------------------------------14 九、心得体会------------------------------------------------------------- 15 十、参考文献--------------------------------------------------------------15

实验五 键盘显示控制实验

实验五键盘显示控制实验 一、实验目的 1、掌握8255控制键盘及显示电路的基本功能及编程方法 2、2、掌握一般键盘和显示电路的工作原理 二、实验内容 8255单元与键盘及数码管显示单元连接,扫描键盘输入,并将结果送数码管显示。键盘采用4*4键盘,每个数码管显示值可为0~F共16个数。具体实验内容为:将键盘警醒编号,记作0~F,当按下一个键时,将该键对应的编号在下一个数码管上显示出来。再按下一个键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。键盘与显示的字符的对应关系如下: 接线: PC7~PC0/8255 接行3~列0/4x4键盘 PA7~PA0/8255 接dp~a/led数码管 CS/8255 接Y1/IO地址 +5v 接S0/LED数码管 GND 接S3~S1/LED数码管 三、实验过程 1、设置8255C口键盘输入、A口为数码管段码输出 2、实验流程图如下图所示

N Y Y N 未找到 找到 程序代码如下图所示: ;*********************; ;* 键盘显示 8255LED *; ;*********************; ;********************; ;* 8255薄膜按键实验 *; ;********************; a8255 equ 288H ;8255 A 口 c8255 equ 28aH ;8255 C 口 k8255 equ 28bH ;8255控制口 data segment table1 dw 0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0h dw 07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h ;键盘扫描码表 LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH DB 39h,5EH,79h,71h,0ffh ;LED 段码表, 开始 行线输出 是否有按键按下 列线输出 是否有按键按下 查找键码 查询键盘号 显示键盘号

汇编实验-显示与键盘实验

汇编语言与接口技术实验报告 开课实验室:实验中心微机原理与接口技术实验室2014年12月1 日 学院计算机科 学教育软 件学院 年级、专 业、班姓名成绩 课程名称汇编语言 与接口技 术 实验项目 名称显示与键盘实验 指导老师 签名古鹏 一、实验要求 1.硬件实验十六八段数码管显示 利用实验仪提供的显示电路,动态显示一行数据. 2.硬件实验十七键盘扫描显示实验 在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。 实验程序可分成三个模块。 ①键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。 ②显示模块:将显示单元的内容在显示器上动态显示。 ③主程序:调用键输入模块和显示模块。 二、实验目的 1. 硬件实验十六八段数码管显示 1.了解数码管动态显示的原理。 2.了解用总线方式控制数码管显示 2. 硬件实验十七键盘扫描显示实验 1、掌握键盘和显示器的接口方法和编程 方法。 2、掌握键盘扫描和LED八段码显示器的 工作原理。 三、实验电路及连线 1. 硬件实验十六八段数码管显示连线连接孔1 连接孔2 1 KEY/LED_CS CS0 位选通 信号 段码输 出 (0x004 数据总线

2. 硬件实验十七键盘扫描显示实验 连线连接孔1 连接孔2 1 KEY/LED_CS CS0 四、使用仪器、材料 计算机一台 Wave6000试验仪 五、实验程序、过程 1.硬件实验十六八段数码管显示 代码: OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 data segment LEDBuf db 6 dup(?) ; 显示缓冲 Num db 1 dup(?) ; 显示的数据 DelayT db 1 dup(?) LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h data ends code segment assume cs:code, ds:data Delay proc near push ax ; 延时子程序 push cx

按键及显示实验

一、实验原理及电路 1、LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。, 2、由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且还自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。 实验电路图 二、功能说明 设计并实现一4×4键盘的接口,键盘与1602显示单元连接,编写实验程序扫描键盘输入,并将扫描结果送1602显示,键盘采用4×4键盘。将键盘进行编号记作0—F当按下其中一个按键时将该按键对应的编号在一个1602显示出来,当按下下一个按键时便将这个按键的编号1602上显示出来 实验框图

四、实验代码 #include #define uchar unsigned char #define uint unsigned int #define lcd_data P3 sbit lcd_EN=P2^2; sbit lcd_RW=P2^1; sbit lcd_RS=P2^0; uchar key,a; uchar sys_time1[]="good"; uchar sys_time2[]="morning!"; uchar sys_time3[]="play"; uchar sys_time4[]="basketball!"; uchar sys_time5[]="study"; uchar sys_time6[]="hard!"; unsigned char code key_code[]={ 0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xB7,0x77 }; void delayms(uint ms) { uchar t; while(ms--) { for(t=0;t<120;t++); } } void delay_20ms(void) { uchar i,temp; for(i = 20;i > 0;i--) { temp = 248; while(--temp); temp = 248; while(--temp); } } void delay_38us(void) { uchar temp;

硬件实验三按键与显示实验

本科实验报告课程名称:微机原理与接口技术 姓 名:张开桓 学 院:信息学院 系 : 控制系 专 业:自动化 学 号 : 3080104703 指导教师:齐杭丽 2010 年12 月15 H

专业:自动化(控制系) 姓名: 张开桓 学号: 3080104703 日期:2010/12/15 地点: 东4-606 课程名称: 微机原理与接口技术 指导老师: 齐杭丽 成 绩:____ 实脸名称:按键与显示实验实验类型:设汁型同组学生姓名: ____________________________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 1. 实验目的 ① 熟练运用keil 环境对硬件接口进行调试。 ② 掌握IO 扩展键盘的软硬件设计方法; ③ 掌握数字转换成显示段码的软件译码方法: ④ 掌握静态显示的原理和相关程序的编写。 ⑤ 掌握动态显示的原理和相关程序的编写; 2. 预习要求 ① 理解51单片机IO 实现独立式键盘扩展的工作原理。 ② 理解8段数码管静态显示的电路工作原理,采用静态显示有何优缺点: ③ 理解8段数码管动态显示的电路工作原理,采用动态显示有何优缺点: ④ 理解8段数码管静态显示的10控制方式及同步串行口控制方式如何实现软件设 计; 3. 实验设备 计算机 1台: ZDGDTH-1型8OC51实验开发系统 1套: 2号导线、8P 数据线 若干条。 4. 基础型实验内容 ①査询式键盘和静态显示实验 8个独立式键盘的电路如图2-1所示,串口扩展的6个静态数码管电路如图2-2所示。 设将P0 口连接到键盘接口,则如果有键按下,相应的口线输岀为低,否则输出为髙。单片 机通过读取接口的状态,判断按下什么键。有键按下后,要有一泄的延时,防止由于键盘抖 动而引起误操作。 溯沪乂唆实验报告 件实验三 按键与显示实验

《单片机原理及应用》“实验五 按键及显示实验”任务书

单片机原理及应用 随堂实验报告 实验五按键与显示实验 学院计算机与电子信息学院 专业电子信息工程班级电信12 -1 班 姓名许锐佳学号 指导教师左敬龙 实验报告评分:_______

一、实验原理及电路 实验原理:单片机80c51的P2口接一矩阵键盘,P0和P3口接两个数码管,P1口通过接两个3-8译码器控制16个灯。刚开始时,电路处于扫描按键是否按下的状态,当有某个键按下时,在扫描函数作用下,会有一小段消抖时间,确定没抖动的情况下再次判断是否真的有按键按下,如果真的有按下,通过先检查行,再检查列的方法判断是哪个键按下,判断完后执行对应case后面的语句,即实现相应的功能。下图为实验原理电路图 (此时按下的是第10个按键): 二、功能说明 16个开关形成矩阵键盘,当按下第一个键时,数码管显示1,第一个led灯亮;当按下第二个键时,数码管显示2,第二个led灯亮;当按下第三个键时,数码管显

示3,第三个led灯亮···依次类推,按下第几号键,数码管显示对应号数,对应led灯亮。 三、实验框图: 四、实验代码 #include #define uchar unsigned char

#define uint unsigned int uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07 ,0x7f,0x6f,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d}; uchar num; void delay(uchar time) { uchar i,j; for(i=0;i

硬件实验三按键与显示实验

\ 本科实验报告 课程名称:微机原理与接口技术 张开桓 姓名: 信息学院 学院: 控制系 系: 专业:自动化 3080104703 学号: 指导教师:齐杭丽 2010年12 月15 日

实验报告 课程名称: 微机原理与接口技术 指导老师: 齐杭丽 成绩:____ ___ 实验名称: 按键与显示实验 实验类型: 设计型 同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 硬件实验三 按键与显示实验 1. 实验目的 ① 熟练运用keil 环境对硬件接口进行调试。 ② 掌握IO 扩展键盘的软硬件设计方法; ③ 掌握数字转换成显示段码的软件译码方法; ④ 掌握静态显示的原理和相关程序的编写。 ⑤ 掌握动态显示的原理和相关程序的编写; 2. 预习要求 ① 理解51单片机IO 实现独立式键盘扩展的工作原理。 ② 理解8段数码管静态显示的电路工作原理,采用静态显示有何优缺点; ③ 理解8段数码管动态显示的电路工作原理,采用动态显示有何优缺点; ④ 理解8段数码管静态显示的IO 控制方式及同步串行口控制方式如何实现软件设 计; 3. 实验设备 计算机 1台; ZDGDTH-1型80C51实验开发系统 1套; 2号导线 、8P 数据线 若干条。 4. 基础型实验内容 ① 查询式键盘和静态显示实验 8个独立式键盘的电路如图2-1所示,串口扩展的6个静态数码管电路如图2-2所示。设将P0口连接到键盘接口,则如果有键按下,相应的口线输出为低,否则输出为高。单片机通过读取接口的状态,判断按下什么键。有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。 专业:自动化(控制系) 姓名: 张开桓 学号: 3080104703 日期: 2010/12/15 地点: 东4-606

实验九 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 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 ;判键是否按下

键盘扫描及显示设计实验

【实验内容】 将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0~F 共16个数。实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示本次按键的按键编号。8255键盘及显示实验参考接线图如图1所示。 【实验步骤】 1. 按图1连接线路图; 2. 编写实验程序,检查无误后编译、连接并装入系统; 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 【程序代码】 MY8255_A EQU 0600H MY8255_B EQU 0602H MY8255_C EQU 0604H MY8255_CON EQU 0606H SSTACK SEGMENT STACK DW 16 DUP(?) SSTACK ENDS DA TA SEGMENT DTABLE DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H table1 db 0dfh,0efh,0f7h,0fbh,0fdh,0feh count db 0h DA TA END ODE SEGMENT ASSUME CS:CODE,DS:DA TA START: MOV AX,DA TA

MOV DS,AX MOV SI,3000H MOV AL,03H MOV [SI],AL ;清显示缓冲 MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV [SI+4],AL MOV [SI+5],AL MOV DI,3005H MOV DX,MY8255_CON ;写8255控制字 MOV AL,81H OUT DX,AL BEGIN: CALL DIS ;调用显示子程序 CALL CLEAR ;清屏 CALL CCSCAN ;扫描 JNZ INK1 JMP BEGIN INK1: CALL DIS CALL DALL Y CALL DALL Y CALL CLEAR CALL CCSCAN JNZ INK2 ;有键按下,转到INK2 JMP BEGIN ;======================================== ;确定按下键的位置 ;======================================== INK2: MOV CH,0FEH MOV CL,00H COLUM: MOV AL,CH MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX L1: TEST AL,01H ;is L1? JNZ L2 MOV AL,00H ;L1 JMP KCODE L2: TEST AL,02H ;is L2? JNZ L3 MOV AL,04H ;L2 JMP KCODE L3: TEST AL,04H ;is L3?

实验三、键盘及LCD显示实验(2015)

实验三、键盘及LCD显示实验 1、实验目的 熟悉Freescale 68HC08 MCU的程序设计和调试方法,掌握CodeWarrior ID E、ProEmulator、DP-01多MCU实验平台等开发工具的使用,理解行列式键盘和点阵字符型LCD显示的基本原理和实现方法。 2、实验环境 PC机 DP-01多MCU实验平台 CodeWarrior 集成开发环境 ProEmulator模拟软件 3、硬件接线 (1)PTA7-0接4x4行列键盘模块,即实验平台A2区的J61插口(B0~B7)与键盘模块用8位排线相连(注意键盘模块端的连接方向)。 (2)在实验平台B3区的J106插座插入TC1602A字符型液晶模块,完成电源、数据线等默认连接(LCD的DB0-7与MCU的PTB0-7连接)。 (3)LCD模块的RS、R/W、E与MCU的PTC0、PTC1、PTC2连接,即实验平台B3区的A0、A1、/CS分别连接到A2区的A11(PTC0)、A12(PTC1)、A13(PTC2)。(4)用A2区的C6(PTD1)、C7(PTD2)模拟WR、RD信号,只要C6、C7中任一引脚输出为低电平即可(在程序中设定、无需外接连线);也可把C6或C7 直接接地(外接连线)。 4、实验内容 根据硬件连线,利用汇编语言编写实现键盘(中断方式)和点阵字符型LCD 显示功能的程序,具体要求以下: (1)在LCD上排显示"TJ EIE12 xxxxxxx",其中xxxxxx表示学号;下排置中显示"Tongji2015",下排左端显示按键的键号。 (2)* 键对LCD下排右端显示的内容进行加1操作,# 键对下排右端显示的内容进行减1操作,数的初始值为5,变化范围在0~9之间。 5、实验要求 (1)通过CW IDE或ProEmulator调试程序并查看运行结果。(预习时完成)(2)利用CW IDE Mon08接口把程序下载到DP-01多MCU实验平台,通过单步、断点、全速等多种调试方式运行程序并查看运行结果。 (3)完成实验报告的撰写。 6、思考题(选做内容) (1)如何实现*和# 键按住不放时,对下排右端显示内容的连续加减操作?

实验四 8255键盘及显示接口实验

实验四 8255键盘及显示接口实验 一、实验目的 了解键盘扫描及数码显示的基本原理,熟悉8255的编程/ 二、实验设备 PC机一台,TD-PITE实验装置一套。 三、实验内容 将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0-F共16个数,。实验具体内容如下:将键盘进行编号,记作0—F,当按下一个键时,将该键对应的编号在下一个数码管上显示出来,再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。 实验内容: 将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用4×4键盘,每个数码管显示值可为0~F共16个数。实验具体内容如下:将键盘进行编号,记作0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。8255键盘及显示实验参考接线图如图1所示。 键盘及数码管显示单元电路图如图4-1 所示。

图4-2 8255 键盘扫描及数码管显示实验线路图 功能描述: 键盘及数码管显示实验,通过8255控制。 8255的B口控制数码管的段显示,A口控制键盘列扫描及数码管的位驱动,C口控制键盘的行扫描。按下按键,该按键对应的位置将按顺序显示在数码管上。 实验程序: MY8255_A EQU 0600H MY8255_B EQU 0602H MY8255_C EQU 0604H MY8255_CON EQU 0606H SSTACK SEGMENT STACK DW 16 DUP(?) SSTACK ENDS DATA SEGMENT DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,3000H MOV AL,00H MOV [SI],AL ;清显示缓冲 MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL

单片机键盘显示实验报告

单片机的键盘和显示实验报告 ㈠实验目的 1.掌握单片机I/O的工作方式; 2.掌握单片机以串行口方式0工作的LED显示; 3.掌握键盘和LED显示的编程方法。 ㈡实验器材 1.G6W仿真器一台 2.MCS—51实验板一台 3.PC机一台 4.电源一台 ㈢实验内容及要求 实验硬件线路图见附图 从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。 编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运算方式,在四个显示器上显示数学算式和最终计算结果。 注:①通过按键来选择加、减、乘、除四种运算方式。 ②输入两个数字均为一位十进制数,可预先放在内存中。 ㈣实验框图(见下页) ㈤思考题 1.当键盘采用中断方式时,硬件电路应怎样连接? P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。输入与门用于产生按键中断,其输

入端与各列线相连,再通过上拉电阻接至+5 V 电源,输出端接至8051的外部中断输入端。 2.74LS164移位寄存器的移位速率是多少? 实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。其实这个问题确实不知道怎么回答。。。。。 LED 显示用的段码与教科书所提供的不同,本实验采用如下段码: 显示数符 段码 显示数符 段码 0 BBH A DBH 否 有 否 P1口置输入 读P1口 开 始 显示“0000” 是否有键 按下? 延迟消抖 是否有键按下? 是 读键码 加法运算 减法运算 除运算

键盘显示实验

计算机科学与技术系 实验报告 专业名称计算机科学与技术专业 课程名称单片机应用设计 项目名称键盘显示实验 班级 学号 姓名 同组人员无 实验日期 2016年4月1日

一、实验目的与要求 掌握4*4矩阵键盘的驱动方法,掌握并理解通过74HC595串转并芯片如何驱动数码管的方法,以及在控制过程中如何实现数码管不同的显示方式。 二、实验内容 2.1 实验完成内容 1、编写程序:通过行列反转法驱动4*4矩阵键盘,并通过74HC595通过LED数码管,同时将键盘扫描键值显示在数码管上。 2、按图连线,运行程序,观察实验结果,熟练掌握键盘和数码管的驱动方法。 3、要求以汇编编写该程序,尝试采用C51编写。 2.2 芯片选型 C51 2.3 电路原理图

2.4 关键资源说明(所应用单片机内部资源及外围接口芯片的核心说明)MCS-51单片机内部资源主要有并行I/O口、中断系统、定时器/计数器、以及串行接口 连线说明:

2.5 程序流程图 三、实验程序 ; P1.0-P1.3为列线,P1.4-P1.7为行线 ;-------------定义变量-------------- DS_595 EQU P2.2 SHCP_595 EQU P2.1 STCP_595 EQU P2.0 DIS_DAT EQU 31H

DIS_ADDR EQU 32H KEY_NUM EQU 30H ;-------------定义地址-------------- ORG 0000H LJMP MAIN ORG 0030H ;-------------主函数--------------- MAIN: LCALL KEY_IN MOV DIS_DAT,KEY_NUM MOV DIS_ADDR,#00H LCALL SEND_LED CALL DELAY LJMP MAIN ;--------------固定位置送显示----------- ;32H: 位选地址 ;31H: 段选数据 SEND_LED: MOV A,DIS_ADDR MOV DPTR,#SEG_ADDR MOVC A,@A+DPTR LCALL OUT_595 MOV A,DIS_DAT MOV DPTR,#SEG_DAT MOVC A,@A+DPTR LCALL OUT_595 RET ;--------------595输出-------------- OUT_595: LCALL WR_595 ;写595 CLR STCP_595 ;存储寄存器输入 NOP NOP

实验报告七 键盘扫描及显示实验

信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间:2017.1.6 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管 显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行 编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一 个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编 号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所 示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图

图7-2 键盘及数码管显示单元 6 组数码管电路图 图7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图7-3 所示,按图连接实验线路图。

图7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。

8279控制键盘与显示实验

中国地质大学长城学院 电气工程及其自动化 课程设计 题目单片机原理与应用课程设计 (8279控制键盘与显示实验) 系别信息工程系 学生姓名 专业电气工程及其自动化 学号04309 指导教师 职称讲师 2012年6月19日

目录 摘要 (1) 1. 8279键盘显示 (1) 1.1实验准备 (1) 1.2实验内容 (1) 2.8279的内部功能模块 (1) 2.1公用模块 (2) 2.2键盘功能模块 (2) 2.3显示功能模块 (2) 3.8297芯片管脚引线功能及原理图 (2) 3.1引线管脚功能 (2) 3.2电路图 (3) 4. 流程图及源程序 (4) 4.1流程图 (4) 4.2源程序 (8) 5.工作过程及实验步骤 (9) 5.1工作过程 (9) 5.2实验步骤 (9) 6.个人总结 (10)

摘要 8279芯片是Intel公司生产的通用可编程键盘和显示器I/O接口芯片。利用8279.可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号,这样可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现错误操作。8279芯片还可以直接和单片机连接,使用它可简化系统的软件设计,提高CPU的工作效率,在工程设计中日益被设计者采用。本设计中需要掌握在51系统中扩展8279键盘显示接口方法,并且掌握8279的工作原理和编程方法。 关键词:8279芯片键盘控制八位逻辑数码管显示 1. 8279键盘显示 1.1实验准备 电子设计竞赛实训平台: (1)单片机核心板 (2)键盘和数码管显示模块 (3)通用转接板 (4)串口线(两端均为DB9母孔); 1.2实验内容 本实验的主要内容是实现用单片机控制6段数码管、4×4矩阵键盘。 程序功能如下: (1)实现单片机驱动键盘和数码管显示模块上的芯片8279,按下按键S1时,数码管循环显示“000000”到“999999”,每按一下加“111111”; (2)按下按键S2时,数码管循环显示“999999”到“00000000”,每按一下减“11111111”;按下按键S3时,数码管显示“012345” (3)按下按键S4时,数码管显示“543210”; 2.8279的内部功能模块

微机原理与接口技术硬件实验34——51单片机按键与显示实验,AD,DA实验

本科实验报告 课程名称:微机原理与接口技术姓名:陈肖苇 学院:信息与电子工程学院专业:电子科学与技术学号:3140104580 指导教师:黄凯 2016年12 月29 日

实验报告 课程名称: 微机原理与接口技术 指导老师: 黄凯 成绩:__________________ 实验名称: 单片机硬件实验三四 实验三 按键与显示实验 1.基础型实验内容 ① 数码管显示实验 6个数码管以及小键盘的电路如图2-1所示,将CS0与KEY/LED_CS 相连, 并使用内驱显示,在WAVE 环境下运行程序,观察实验现象。 电路图与代码:略(实在是太长了 —_—!) 代码分析: ● 功能:循环左移输出0~f 。 ● 实现:通过位控制器OUTBIT 与段控制器OUTSEG 控制,首先通过位控制器选择最右侧位,同 时查表得对应的LED 段的点亮码,写入OUTSEG ,点亮之后,调用延时程序,进行延时,延时之后,左移一位显示,通过不断循环,来实现循环左移功能。 实验现象: 观察到0,1,2,3,4,5,6,7,8,9,a ,b ,c ,d ,e ,f 十六个字符循环左移,图片如下: 图一:显示为 123456 图二:显示为 abcdef 图三:显示为cdef01开始循环

②键盘扫描显示实验 在上一个实验的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入在其中一个数码管上显示出来。实验仪连接方式不变,理解并运行下面的程序,查看实验结果。 实验代码:略 代码分析: ●功能:前面4个数码管显示8.8.8.8.,第五个数码管不点亮,第六个数码管显示输入的键值。 ●实现: 主程序控制六个数码管,前面四个显示8.8.8.8.,后面两个不亮。 子程序实现利用行扫描法确定输入的键值,同时通过查表法查的对应的显示输出,在最后一个数码管上显示所按键值。 实验现象:前面4个数码管显示8.8.8.8.,第五个数码管不点亮,第六个数码管显示输入所对应的按键。 图四:按键输入2的显示 图五:按键输入5的显示 2.设计型实验内容 在最后一个数码管上依次显示a、b、….f各段,每段显示时间为100ms,用T0定时器实现; 实验代码: OUTBIT EQU 08002h ; 位控制口 OUTSEG EQU 08004h ; 段控制口 DBUF EQU 30H ORG 0000H LJMP DISP ORG 0100H DISP: MOV DBUF,#01H ;移位中间变量 MOV R2,#06H ;计数,显示6段 DP: MOV A,DBUF MOV DPTR, #OUTSEG ;显示位 MOVX @DPTR,A ;将当前控制的位移入OUTSEG所在的段控制口进行输出显示 MOV DPTR, #OUTBIT

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 0000H LJMP START ORG 0040H START: MOV SP,#60H LCALL DELAY ;延时 MOV DISPTR,#30H ;显示缓冲区头指针 MOV DPTR,#D8255 MOV A,#90H ;置8255状态 ;方式0,PB,PC口输出,PA口输入 MOVX @DPTR,A MOV DPTR,#Z8279 ;置8279命令字 MOV A,#0D3H MOVX @DPTR,A ;清LED显示 MOV A,#00H MOVX @DPTR,A

相关文档
最新文档