通用 IO 使用——矩阵式键盘.doc

上传人:飞****9 文档编号:133760739 上传时间:2020-05-30 格式:DOC 页数:8 大小:111.28KB
返回 下载 相关 举报
通用 IO 使用——矩阵式键盘.doc_第1页
第1页 / 共8页
通用 IO 使用——矩阵式键盘.doc_第2页
第2页 / 共8页
通用 IO 使用——矩阵式键盘.doc_第3页
第3页 / 共8页
通用 IO 使用——矩阵式键盘.doc_第4页
第4页 / 共8页
通用 IO 使用——矩阵式键盘.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《通用 IO 使用——矩阵式键盘.doc》由会员分享,可在线阅读,更多相关《通用 IO 使用——矩阵式键盘.doc(8页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统实验报告院(系)别 信息科学与电气工程学院班 级 学 号 姓 名 指导教师 时 间 2014-06-21 实验三 通用 I/O 使用矩阵式键盘1 实验目的S3C44B0 具有 71 个通用多功能 I/O,这些 I/O 的应用是 S3C44B0 处理器的基础。本 实验我们就以矩阵式键盘的接口设计为例,学习怎样设置 I/O 口并对它进行操作。(1) 掌握 S3C44B0 的 I/O 口的功能特点;(2) 掌握对 I/O 口的基本编程操作。2 实验要求44 矩阵键盘的每个键的对应字符如下:7, 8, 9, /,4, 5, 6, *,1, 2, 3, -,0, ., +, n编写 44 矩阵

2、式键盘的驱动程序,使得当某个键被按下时,超级终端上显示出该键对应的字符。3 实验内容与步骤本实验需要进行连接电路。学生按照下面的指导说明和程序流程图,自行编写符合实验 要求的源程序。并按照实验一中说明的步骤,进行:建立工程、编译除错、下载仿真等步骤, 最终调试出符合要求的源程序。观察超级终端上的显示,看是否输出满足实验要求的结果。 在本实验中,根据键盘的循环扫描检测法进行程序编写。根据该方法,设定 GPF0-3 为输出口(列线),GPF4-7 为输入口(行线)。用导线连接起这些 I/O 口和键盘的接口。在程 序中,我们首先通过设置 PCONF 寄存器,来实现端口功能配置。31 电路连接在 AR

3、MSys 上用导线连接扩展 I/O 口和键盘接口。如下图所示: 采用键盘的循环扫描检测法编写程序。程序中,我们首先通过设置 PCONF 寄存器,来 实现端口功能配置。32 寄存器设置设置 PCONF 寄存器:如下表所示,由于我们需要设定 PF0-3 为输出口(列线),PF4-7为输入口,因此,在端口工作之前设置 PCONF=000 000 000 000 00 01 01 01 01B=055;PF0-3 输出扫描码时,可采用以下语句:rPDATF=0f0;PF0-3 写入全 0; PF4-7 读入键值时,采用以下语句: Keyvalue=(PDATF&0f0)4;z内部上拉电阻的设置:rPU

4、PF=000;使能 PF0-7 的内部上拉33 编写键盘扫描程序分为主程序和读键子程序两个部分。主程序以一定的时间间隔反复调用读键子程序,以 实时响应用户的键入。在进行编程之前,阅读 44b.h 头文件,其中定义了 S3C44B0 所具有 的所有功能寄存器。331 主程序332 读键子程序键值表格:const char Keyboard44 = 7,8,9,/,4,5,6,*,1,2,3,-,0,.,+,=;扫描码数组:scanvalue4 =0fe,0fd,0fb,0f7;子程序流程图:由于按键可能出现抖动,因此,可以采用下述方法来消除抖动、确认键真正被按下了:如果测到有键并确定了键值后,延

5、时一段时间再次测键,如果两次得到的键值相同,说明该 键确实被按下了。按照上述流程图编写程序,并进行仿真调试(或下载到 ARMSys 上运行),完成实验要 求。4 程序清单#include #include #include Target44b.h#include Target44blib.hconst char Keyboard44 = 7,8,9,/,4,5,6,*,1,2,3,-,0,.,+,n;char ReadKeybd(void) unsigned int PCONFback=0;unsigned int PUPFback=0;unsigned char scanvalue4 =0f

6、e,0fd,0fb,0f7;unsigned char i,j,temp;char keyvalue=0;PCONFback = rPCONF;rPCONF = 055;/pf0-pf3:output, pf4-pf7:inputPUPFback=rPUPG;rPUPF=0ff;/disable pull-uprPDATF=0f0;/pf0-pf3:0if(temp=(rPDATF&0f0)!=0f0)for(i=0;i4;i+)rPDATF=scanvaluei;for(=0;4)&00f;for(j=0;j1;rPCONF=PCONFback;rPUPF=PUPFback;return k

7、eyvalue;void Main(void)char aa,ch1=0,ch2=0;unsigned char keyflg=0; Port_Init();Led_Display(0f);Beep(01);Uart_Printf(n*);Beep(00);Uart_Printf(n* 立宇泰电子 *);Uart_Printf(n* -S3C44B0功能部件:I/O测试(4*4矩阵键盘)- *);Uart_Printf(n* Version 1.21 *); Uart_Printf(n* Email:S *);Uart_Printf(n* UART Config-COM:115.2kbps,8

8、Bit,NP,UART0 *);Uart_Printf(n*-Begin to Start IO test,OK? (Y/N)-*);Led_Display(00); aa= Uart_Getch();if(aa=Y)|(aa=y) Uart_Printf(nBegin Keyboard Scan.); while(1) ch1=ReadKeybd();if(ch1!=0)if(keyflg=1)&(ch1=ch2)/CoUart_SendByte(ch1);while(rPDATF&0f0)!=0f0);/等待按键释放elsekeyflg=1;ch2=ch1;elsekeyflg=0;ch2=0;Delay(1000); 7

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号