单片机c语言程序设计---矩阵式键盘实验报告

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机c语言程序设计---矩阵式键盘实验报告

课程名称:单片机c语言设计实验类型:设计型实验

实验项目名称:矩阵式键盘实验

一、实验目的和要求

1.掌握矩阵式键盘结构

2.掌握矩阵式键盘工作原理

3.掌握矩阵式键盘的两种常用编程方法,即扫描法和反转法

二、实验内容和原理

实验1.矩阵式键盘实验

功能:用数码管显示4*4矩阵式键盘的按键值,当K1按下后,数码管显示数字0,当K2按下后,显示为1,以此类推,当按下K16,显示F。

(1)硬件设计

电路原理图如下

仿真所需元器件

(2)proteus仿真

通过Keil编译后,利用protues软件进行仿真。在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。启动仿真,观察仿真结果。

操作方完成矩阵式键盘实验。具体包括绘制仿真电路图、编写c源程序(反转法和扫描法)、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。完成思考题。

三、实验方法与实验步骤

1.按照硬件设计在protues上按照所给硬件设计绘制电路图。

2.在keil上进行编译后生成“xxx.hex”文件。

3.编译好的“xxx.hex”文件加入AT89C51。启动仿真,观察仿真结果。

四、实验结果与分析

void Scan_line()//扫描行

{

Delay(10);//消抖

switch ( P1 )

{

case 0x0e: i=1;

break;

case 0x0d: i=2;

break;

case 0x0b: i=3;

break;

case 0x07: i=4;

break;

default: i=0;//未按下

break;

}

}

void Scan_list()//扫描列

{

Delay(10);//消抖

switch ( P1 )

{

case 0x70: j=1;

break;

case 0xb0: j=2;

break;

case 0xd0: j=3;

break;

case 0xe0: j=4;

break;

default: j=0;//未按下

break;

}

}

void Show_Key()

{

if( i != 0 && j != 0 ) P0=table[ ( i - 1 ) * 4 + j - 1 ];

else P0=0xff;

}

五、讨论和心得

相关文档
最新文档