《嵌入式接口技术》实验报告5-键盘阵列扫描1107012150陈晓霞

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(key != 0)
{
IO0CLR=col1|col2|col3|col4|col5|col6;//全清零
return key;
}
//--------------扫描第2列-------------------
IO0CLR=col2;
IO0SET=col1|col3|col4|col5|col6;
if((IO0PIN & row2)==0) key=26;
if((IO0PIN & row3)==0) key=27;
if((IO0PIN & row4)==0) key=28;
if((IO0PIN & row5)==0) key=29;
if((IO0PIN & row6)==0) key=30;
1搭建实验平台
2根据要求编写程序
3在仿真平台上,画图连接线路
4导入程序运行
四、实验结果与数据处理
1.运行结果
2.源程序
#include "config.h"
uint32 key;
//引脚定义
#define col1 (1<<0) //col1连接p0.0
#define col2 (1<<1)
#define col3 (1<<2)
if(key != 0)
{
IO0CLR=col1|col2|col3|col4|col5|col6;
return key;
}
//--------------扫描第5列-------------------
IO0CLR=col5;
IO0SET=col1|col2|col3|col4|col6;
if((IO0PIN & row1)==0) key=25;
if((IO0PIN & row1)==0) key=1;
if((IO0PIN & row2)==0) key=2;
if((IO0PIN & row3)==0) key=3;
if((IO0PIN & row4)==0) key=4;
if((IO0PIN & row5)==0) key=5;
if((IO0PIN & row6)==0) key=6;
硬件:PC机;
软件:PC机操作系统windows XP,Proteus软件,ADS1.2
三、实验内容与步骤
实验内容:画出6*6键盘阵列原理图,并使用扫描法或者行列反转法进行解码,对解码出来的按键编号用LED灯进行告示,如按下K10,则LED灯闪烁10次。
可以尝试解码的时候,配合中断来实现。
实验步骤:
if(key != 0)
{
IO0CLR=col1|col2|col3|col4|col5|col6;
return key;
}
//--------------扫描第4列-------------------
IO0CLR=col4;
IO0SET=col1|col2|col3|col5|col6;
if((IO0PIN & row1)==0) key=19;
if((IO0PIN & row2)==0) key=14;
if((IO0PIN & row3)==0) key=15;
if((IO0PIN & row4)==0) key=16;
if((IO0PIN & row5)==0) key=17;
if((IO0PIN & row6)==0) key=18;
if(key != 0)
{
IO0CLR=col1|col2|col3|col4|col5|col6;
return key;
}
//--------------扫描第6列-------------------
IO0CLR=col6;
IO0SET=col1|col2|col3|col4|col5;
if((IO0PIN & row1)==0) key=31;
if(key != 0)
{
IO0CLR=col1|col2|col3|col4|col5|col6;
return key;
}
//--------------扫描第3列-------------------
IO0CLR=col3;
IO0SET=col1|col2|col4|col5|col6;
if((IO0PIN & row1)==0) key=13;
if((IO0PIN & row1)==0) key=7;
if((IO0PIN & row2)==0) key=8;
if((IO0PIN & row3)==0) key=9;
if((IO0PIN & row4)==0) key=10;
if((IO0PIN & row5)==0) key=11;
if((IO0PIN & row6)==0) key=12;
#define col4 (1<<3)
#define col5 (1<<4)
#define col6 (1<<5)
#define row1 (1<<6) //row1连接p0.6
#define row2 (1<<7)
#define row3 (1<<8)
#define row4 (1<<9)
#define row5 (1<<10)
《嵌入式系统接口技术》实验报告
实验序号:05实验项目名称:键盘阵列实验
学 号
1XXXX
姓 名
XXX
专业、班
11计算机
实验地点
1实#318
指导教师
XX
实验时间
2013-11-29
一、实验目的
1.通过实验,理解键盘阵列的扫描原理,会编写键盘阵列的驱动程序。
2.掌握扫描法和行列反转法的原理和接口电路。
二、实验设备(环境)及要求
if((IO0PIN & row2)==0) key=20;
if((IO0PIN & row3)==0) key=21;
if((IO0PIN & row4)==0) key=22;
if((IO0PIN & row5)==0) key=23;
if((IO0PIN & row6)==0) key=24;
if((IO0PIN & row2)==0) key=32;
if((IO0PIN & row3)==0) key=33;
#define row6 (1<<11)
//延迟函数
void delay(int i){
int t;
for(t=0;t<i;nt key_scan(void){
uint8 key=0;
IO0CLR=col1;
IO0SET=col2|col3|col4|col5|col6;
相关文档
最新文档