77范文网 - 专业文章范例文档资料分享平台

给初学单片机的40个实验0(8)

来源:网络收集 时间:2019-02-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

哈工大(威海)

unsigned char a,b; unsigned char temp;

void main(void) {

while(1) {

temp=0xfe;

for(i=0;i<5;i++) {

if(P1_7==1) {

P0=table1[i]; } else {

P0=table2[i]; }

P2=temp;

a=temp<<(i+1); b=temp>>(7-i); temp=a|b;

for(a=4;a>0;a--) for(b=248;b>0;b--); } }

14. 4×4矩阵式键盘识别技术

1. 实验任务

如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。对应的按键的序号排列如图4.14.1所示

36

哈工大(威海)

图4.14.1

2. 硬件电路原理图

图4.14.2

3. 系统板上硬件连线

(1. 把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”

区域中的C1-C4 R1-R4端口上; (2. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态

数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,??,P0.7/AD7对应着h。

37

哈工大(威海)

4. 程序设计内容

(1. 4×4矩阵键盘识别处理

(2. 每个按键有它的行值和列值 ,行值和列值的组合就是识别这个按键的编码。矩

阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 5. 程序框图

图4.14.3

38

哈工大(威海)

7. C语言源程序

#include

unsigned char code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; unsigned char temp; unsigned char key; unsigned char i,j;

void main(void) {

while(1) {

P3=0xff; P3_4=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break; }

39

哈工大(威海)

temp=P3; P1_0=~P1_0; P0=table[key]; temp=temp & 0x0f; while(temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; } } }

P3=0xff; P3_5=0; temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3;

temp=temp & 0x0f; if (temp!=0x0f) {

temp=P3;

temp=temp & 0x0f; switch(temp) {

case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=11; break; }

temp=P3; P1_0=~P1_0; P0=table[key];

40

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库给初学单片机的40个实验0(8)在线全文阅读。

给初学单片机的40个实验0(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/471664.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: