单片机基础(4)

2019-03-28 17:18

}

unsigned char GetKey2(void) {

P1=0xF0;

CheckValue=P1^0xF0; if(CheckValue==0x00) return 0x00;

else if(CheckValue==0x10) Row=CheckValue; else if(CheckValue==0x20) Row=CheckValue; else if(CheckValue==0x40) Row=CheckValue; else if(CheckValue==0x80) Row=CheckValue; delay1();

KeyTemp = P1^0xF0; if(KeyTemp==CheckValue) return 0x00; Key2=0xF0; return Key2; }

void main() {

unsigned char Key1,Key2; InitialCPU(); InitialTimer0(); while(1) {

Key1=GetKey1(); Key2=GetKey2();

if(Key1!=0x00&&Key2!=0x00) {

Dispose(); P3=0x00; } } }

一、实验目的

1.掌握4×4矩阵式键盘程序识别原理 2.掌握4×4矩阵式键盘按键的设计方法

二、设计原理

(1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键 “0-F”的序号 (2)键盘中对应按键的序号排列如图14.1所示 三、参考电路

740)this.width=740\

border=undefined>

图14.2 4×4矩阵式键盘识别电路原理图

740)this.width=74

border=undefined>

图14.1 4×4键盘0-F显示

740)this.width=74

border=undefined>

图14.3 4×4矩阵式键盘识别程序流程图 四、电路硬件说明

(1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键区域中的M1-M4,N1-N4端口上

(2)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h

五、程序设计内容

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

(2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码矩阵的行线和列线分别过两并行接口和CPU通信键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的键盘理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共形成键编码而识别按键,通过软件查表,查出该键的功能 六、程序流程图(如图14.3所示) 七、汇编源程序 ;;;;;;;;;;定义单元;;;;;;;;;; COUNT EQU 30H ;;;;;;;;;;入口地址;;;;;;;;;; ORG 0000H LJMP START ORG 0003H RETI

ORG 000BH RETI

ORG 0013H RETI

ORG 001BH RETI

ORG 0023H RETI

ORG 002BH RETI

;;;;;;;;;;主程序入口;;;;;;;;;; ORG 0100H

START: LCALL CHUSHIHUA

LCALL PANDUAN LCALL XIANSHI LJMP START

;;;;;;;;;;初始化程序;;;;;;;;;;

CHUSHIHUA: MOV COUNT#00H RET

;;;;;;;;;;判断哪个按键按下程序;;;;;;;;;; PANDUAN: MOV P3#0FFH CLR P3.4 MOV AP3 ANL A#0FH XRL A#0FH JZ SW1

LCALL DELAY10MS JZ SW1 MOV AP3 ANL A#0FH

CJNE A#0EHK1 MOV COUNT#0 LJMP DK

K1: CJNE A#0DHK2 MOV COUNT#4 LJMP DK

K2: CJNE A#0BHK3 MOV COUNT#8 LJMP DK

K3: CJNE A#07HK4 MOV COUNT#12 K4: NOP LJMP DK

SW1: MOV P3#0FFH CLR P3.5 MOV AP3 ANL A#0FH XRL A#0FH JZ SW2

LCALL DELAY10MS JZ SW2 MOV AP3 ANL A#0FH

CJNE A#0EHK5 MOV COUNT#1 LJMP DK

K5: CJNE A#0DHK6


单片机基础(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:梁希优秀学子奖奖励办法(林科)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: