您的当前位置:首页正文

键盘扫描显示实验报告

2022-06-30 来源:步旅网
______________________________________________________________________________________________________________

实验六 键盘扫描显示实验

一、 实验目的

1 、掌握键盘和显示器的接口方法和编程方法。

2 、掌握键盘扫描和LED八段码显示器的工作原理。

二、 实验连线

将JP4和JP8通过8PIN排线连接,JP10和JP3通过8PIN排线连接

三、 实验内容

把矩阵键盘上的按键输入的键码在静态数码管上显示出来。

四、 实验步骤

实验采用线反转法

①打开keil软件---新建工程---新建文件 ②编写程序:

#include

#define uint unsigned int #define uchar unsigned char uchar

shuzu[3][4]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83} ; uint i; uint j;

void delay(uint n){ while(--n); }

void keyscan(){ uchar temp; P3=0x0f; delay(1000); temp=P3^0x0f; switch(temp)

{case 0x02 : i=0;break; case 0x04 : i=1;break; case 0x08 : i=2;break; default :break; }

P3=0xf0; delay(1000); temp=P3^0xf0; switch(temp)

精品资料

______________________________________________________________________________________________________________

{case 0x10 : j=0;break; case 0x20 : j=1;break; case 0x40 : j=2;break; case 0x80 : j=3;break; default : break; } }

main() {P2=0x00; while(1) { P3=0x00; if(P3!=0xf0) keyscan();

P2=shuzu[i][j]; delay(1000); }

}保存、编译---生成hex文件

③连接线,使用下载软件将编好程序载入单片机中。 ④实验现象:(定义按键矩阵中由第一行第一列到第三行第四列(s1-s12)为数值0到11。)按下键盘中任意按键,则八段数码管上显示出其对应的数值。

五、 实验心得及过程遇到问题

实验可以使用扫描法和线反转法两种实现,因扫描法法较为麻烦,故实验采用的是线反转法。在实验室一直无法实现实验。回宿舍后,起初使用的是在一序列中定义好0到11的码值,但结果不稳定,出现了一个按键要按好多次才会显示出正确的码,后改为使用一个三行四列的矩阵,结果就稳定了。具体原因还未了解。

精品资料

______________________________________________________________________________________________________________

Welcome To Download !!!

欢迎您的下载,资料仅供参考!

精品资料

因篇幅问题不能全部显示,请点此查看更多更全内容