单片机4×4矩阵键盘设计方案教学文案

单片机4×4矩阵键盘设计方案教学文案
单片机4×4矩阵键盘设计方案教学文案

1、设计原理

(1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。

(2)键盘中对应按键的序号排列如图14.1所示。

2、参考电路

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

3、电路硬件说明

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

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

4、程序设计内容

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

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

5、程序流程图(如图14.3所示)

6、汇编源程序

;;;;;;;;;;定义单元;;;;;;;;;;

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 A,P3

ANL A,#0FH

XRL A,#0FH

JZ SW1

LCALL DELAY10MS

JZ SW1

MOV A,P3

ANL A,#0FH

CJNE A,#0EH,K1 MOV COUNT,#0

LJMP DK

K1: CJNE A,#0DH,K2 MOV COUNT,#4

LJMP DK

K2: CJNE A,#0BH,K3 MOV COUNT,#8

LJMP DK

K3: CJNE A,#07H,K4 MOV COUNT,#12

K4: NOP

LJMP DK

SW1: MOV P3,#0FFH CLR P3.5

MOV A,P3

ANL A,#0FH

XRL A,#0FH

JZ SW2

LCALL DELAY10MS

JZ SW2

MOV A,P3

ANL A,#0FH

CJNE A,#0EH,K5 MOV COUNT,#1

LJMP DK

K5: CJNE A,#0DH,K6 MOV COUNT,#5

LJMP DK

K6: CJNE A,#0BH,K7 MOV COUNT,#9

LJMP DK

K7: CJNE A,#07H,K8 MOV COUNT,#13

K8: NOP

LJMP DK

SW2: MOV P3,#0FFH CLR P3.6

MOV A,P3

ANL A,#0FH

XRL A,#0FH

JZ SW3

LCALL DELAY10MS

JZ SW3

MOV A,P3

ANL A,#0FH

CJNE A,#0EH,K9 MOV COUNT,#2

LJMP DK

K9: CJNE A,#0DH,KA MOV COUNT,#6

LJMP DK

KA: CJNE A,#0BH,KB MOV COUNT,#10 LJMP DK

KB: CJNE A,#07H,KC MOV COUNT,#14 KC: NOP

LJMP DK

SW3: MOV P3,#0FFH CLR P3.7

MOV A,P3

ANL A,#0FH

XRL A,#0FH

JZ SW4

LCALL DELAY10MS

JZ SW4

MOV A,P3

ANL A,#0FH

CJNE A,#0EH,KD MOV COUNT,#3

LJMP DK

KD: CJNE A,#0DH,KE MOV COUNT,#7

LJMP DK

KE: CJNE A,#0BH,KF

LJMP DK

KF: CJNE A,#07H,KG

MOV COUNT,#15

KG: NOP

LJMP DK

SW4: LJMP PANDUAN

DK: RET

;;;;;;;;;;显示程序;;;;;;;;;; XIANSHI: MOV A,COUNT

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

LCALL DELAY

SK: MOV A,P3

ANL A,#0FH

XRL A,#0FH

JNZ SK

RET

;;;;;;;;;;10ms延时程序;;;;;;;;;; DELAY10MS: MOV R6,#20

DJNZ R7,$

DJNZ R6,D1

RET

;;;;;;;;;;200ms延时程序;;;;;;;;;;

DELAY: MOV R5,#20

LOOP: LCALL DELAY10MS

DJNZ R5,LOOP

RET

;;;;;;;;;;共阴码表;;;;;;;;;;

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

;;;;;;;;;;结束标志;;;;;;;;;;

END

7、C语言源程序

#include

unsigned char code table[]={0x3f,0x66,0x7f,0x39, 0x06,0x6d,0x6f,0x5e,

0x5b,0x7d,0x77,0x79,

0x4f,0x07,0x7c,0x71};

void main(void)

{ unsigned char i,j,k,key;

while(1)

{ P3=0xff; //给P3口置1//

P3_4=0; //给P3.4这条线送入0//

i=P3;

i=i&0x0f; //屏蔽低四位//

if(i!=0x0f) //看是否有按键按下//

{ for(j=50;j>0;j--) //延时//

for(k=200;k>0;k--);

if(i!=0x0f) //再次判断按键是否按下//

{ switch(i) //看是和P3.4相连的四个按键中的哪个// { case 0x0e:

key=0;

break;

case 0x0d:

key=1;

break;

case 0x0b:

key=2;

break;

case 0x07:

break;

}

P0=table[key]; //送数到P0口显示//

}

}

P3=0xff;

P3_5=0; //读P3.5这条线//

i=P3;

i=i&0x0f; //屏蔽P3口的低四位//

if(i!=0x0f) //读P3.5这条线上看是否有按键按下// { for(j=50;j>0;j--) //延时//

for(k=200;k>0;k--);

i=P3; //再看是否有按键真的按下//

i=i&0x0f;

if(i!=0x0f)

{ switch(i) //如果有,显示相应的按键//

{ case 0x0e:

key=4;

break;

case 0x0d:

break;

case 0x0b:

key=6;

break;

case 0x07:

key=7;

break;

}

P0=table[key]; //送入P0口显示//

}

}

P3=0xff;

P3_6=0; //读P3.6这条线上是否有按键按下// i=P3;

i=i&0x0f;

if(i!=0x0f)

{ for(j=50;j>0;j--)

for(k=200;k>0;k--);

i=P3;

i=i&0x0f;

{ switch(i)

{ case 0x0e:

key=8;

break;

case 0x0d:

key=9;

break;

case 0x0b:

key=10;

break;

case 0x07:

key=11;

break;

}

P0=table[key];

}

}

P3=0xff;

P3_7=0; //读P3.7这条线上是否有按键按下// i=P3;

if(i!=0x0f)

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

i=i&0x0f;

if(i!=0x0f)

{ switch(i)

{ case 0x0e:

key=12;

break;

case 0x0d:

key=13;

break;

case 0x0b:

key=14;

break;

case 0x07:

key=15;

break;

}

P0=table[key];

}

}

}

}

8、注意事项

在硬件电路中,要把8联拨动拨码开关JP2拨下,把8联拨动拨码开关JP3拨上去。

4X4扫描式矩阵键盘课程设计

4X4扫描式矩阵键盘课程设计 课程设计名称: 4_4扫描式矩阵键盘设计 姓名:DUKE 班级:电子1008班 学号:10086 成绩: 日期:2014年1月6日

摘要 随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。 矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。 矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,显示在LED数码管上。单片机控制依据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。 4*4矩阵式键盘采用AT89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程。单片机将检测到的按键信号转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。

目录 第一章:系统功能要求-------------------------------------------------------- 1.1 4*4 矩阵式键盘系统概述------------------------------------------------ 1.2 本设计任务和主要内容--------------------------------------------------- 第二章:方案论证--------------------------------------------------------------- 第三章:系统硬件电路的设计------------------------------------------------ 3.1 单片机控制系统原理----------------------------------------------------- 3.2 原理图绘制说明---------------------------------------------------------- 3.3 画出流程图---------------------------------------------------------------- 3.4 原理图绘制--------------------------------------------------------------- 第四章:系统程序的设计------------------------------------------------------ 4.1 程序的编写步骤----------------------------------------------------------- 4.2 编写的源程序-------------------------------------------------------------- 第五章:调试及性能分析------------------------------------------------------ 第六章:心得体会--------------------------------------------------------------- 参考文献----------------------------------------------------------------------------

51单片机矩阵键盘设计

湖南工业大学 课程设计 资料袋 电气与信息工程学院(系、部)2009--2010 学年第 1 学期课程名称单片机应用系统指导教师贺正芸 学生姓名专业班级电子信息科学与技术学号 题目4*4矩阵键盘 成绩起止日期2009 年11 月23 日~2009 年12 月04 日 目录清单 序号材料名称资料数量备注 1 课程设计任务书 2 课程设计说明书 3 课程设计图纸张 4 5 6

湖南工业大学 课程设计任务书 2009 —2010 学年第 1 学期 电气与信息工程学院(系、部)电子信息科学与技术专业班级 课程名称:单片机应用系统 设计题目:4*4矩阵键盘 完成期限:自2009 年11 月9 日至2009 年11 月20 日共 2 周 内容及任务 由P1.0—P1.3(列)和P1.4—P1.7(行)组成4*4矩阵键盘,P0口接LED静态显示电路。由于P0口内部无上拉电阻,因此必须外部接上上拉电阻,其阻值的选择可以根据LED 数码管发光电流及其亮度来决定,参考值为560欧姆。编写4*4键盘的驱动程序。 编写主程序,当按键按下时,能够在数码管显示器与按键的键值对应的数字。 进度安排 起止日期工作内容2009.11.23-2009.11.24 设计内容及基本原理 2009.11.25-2009.11.27 进行系统的软件设计,2009.11.28-2009.12.04 进行系统的硬件设计 主 要 参 考 资 料 [1] 欧伟明.单片机原理与应用. 电子工业出版社,2009年 指导教师(签字):年月日系(教研室)主任(签字):年月日

单片机应用系统 4*4矩阵键盘设计说明书 学生姓名 班级电科072 学号 成绩 指导教师(签字) 起止日期:2009 年11 月23 日至2009 年12 月4 日 电气与信息工程学院(部)

监控矩阵键盘说明书

.. 主控键盘 (SYSTEM KEYBOARD) 使用说明书 (中文版第二版)

Copyright 2009-2012. All Rights Reserved. 注意事项: 1.安装场所 远离高温的热源和环境,避免直接照射。 为确保本机的正常散热,应避开通风不良的场所。 为了防止电击和失火,请勿将本机放置于易燃、易爆的场所。 小心轻放本机避免强烈碰撞、振动等,避免安装在会剧烈震动的场所。避免在过冷、过热的场所间相互搬动本机,以免机器部产生结露,影响机器的使用寿命。 2.避免电击和失火 切记勿用湿手触摸电源开关和本机。 勿将液体溅落在本机上,以免造成机器部短路或失火。 勿将其它设备直接放置于本机上部。 安装过程中进行接线或改线时,都应将电源断开,预防触电。 重要提示: 为了避免损坏,请勿自动拆开机壳,必须委托有资格有专业维修人员在指定的维修单位进行维修。 清洁装置时,请勿使用强力清洗剂,当有灰尘时用干布擦拭装置。 不得在电源电压过高和过低的场合下使用该本机。 务请通读本使用说明书,以便您掌握如正确使用本机。当您读本说明书后,请把它妥善保存好,以备日后参考。如果需要维修,请在当地与经本公司授权的维修站联系。 环境防护: 本机符合电磁辐射标准,对人体无电磁辐射伤害。 申明:

产品的发行和销售由原始购买者在可协议条款下使用; 未经允,任单位和个人不得将该产品全部或部分复制、再生或翻译成其它机器可读形式的电子媒介; 本手册若有任修改恕不另行通知; 因软件版本升级而造成的与本手册不符,以软件为准。 目录 设备概述 (3) 第一部分控制矩阵切换系统 (4) 1.1键盘通电 (4) 1.2键盘操作加锁 (4) 1.3键盘操作解锁 (4) 1.4键盘密码设置 (4) 1.5选择监视器 (5) 1.6选择摄像机 (5) 1.7控制解码器 (5) 1.8控制智能高速球 (6) 1.9操作辅助功能 (7) 1.10系统自由切换 (8) 1.11系统程序切换 (9) 1.12系统同步切换 (10) 1.13系统群组切换 (10) 1.14报警联动 (10) 1.15防区警点 (11) 1.16警点状态 (11) 1.17声音开关 (11) 第二部分控制数字录像机、画面处理器 (11) 2.1进入数字录像机、画面处理器模式 (11) 2.2退出数字录像机、画面处理器模式 (11) 2.3选择数字录像机、画面处理器 (11) 2.4控制数字录像机、画面处理器 (12) 第三部分设置连接 (12) 3.1键盘工作模式 (12)

矩阵键盘设计实验报告

南京林业大学 实验报告 基于AT89C51 单片机4x4矩阵键盘接口电路设计 课程机电一体化设计基础 院系机械电子工程学院 班级 学号 姓名

指导老师杨雨图 2013年9月26日

一、实验目的 1、掌握键盘接口的基本特点,了解独立键盘和矩 阵键盘的应用方法。 2、掌握键盘接口的硬件设计方法,软件程序设计 和贴士排错能力。 3、掌握利用Keil51软件对程序进行编译。 4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿真。 5、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 二、实验要求 通过实训,学生应达到以下几方面的要求: 素质要求 1.以积极认真的态度对待本次实训,遵章守纪、团结协作。 2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养独立 工作能力。 能力要求 1.模拟电路的理论知识 2.脉冲与数字电路的理念知识 3.通过模拟、数字电路实验有一定的动手能力 4.能熟练的编写8951单片机汇编程序 5.能够熟练的运用仿真软件进行仿真 三、实验工具 1、软件:Proteus软件、keil51。 2、硬件:PC机,串口线,并口线,单片机开发板 四、实验内容

1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参数及格 元器件的作用。 2、用keil51测试软件编写AT89C51单片机汇编程序 3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。 4、运用仿真软件对电路进行仿真。 五.实验基本步骤 1、用Proteus绘制“矩阵键盘扫描”电路原理图。 2、编写程序使数码管显示当前闭合按键的键值。 3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状 态和按键开关的对应关系。 4、用keil51软件编写程序,并生成HEX文件。 5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。 6、用通用编程器或ISP下载HEX程序到MCU。 7、检查验证结果。 六、实验具体内容 使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。 1、电路图

扫描式矩阵键盘课程设计

扫描式矩阵键盘课程设 计 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

4X4扫描式矩阵键盘课程设计课程设计名称: 4_4扫描式矩阵键盘设计 姓名: DUKE 班级:电子1008班 学号: 10086 成绩: 日期: 2014年1月6日 摘要 随着21世纪的到来,电子信息行业将是人类社会的高科技行业之一,式设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。 矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准时、实时、高效地显示按键信息,以提高工作效率和资源利用率。 矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,显示在LED数码管上。单片机控制依据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。 4*4矩阵式键盘采用AT89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程。单片机将检测到的按键信号

转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。 目录 第一章:系统功能要求-------------------------------------------------------- 1.1 4*4 矩阵式键盘系统概述------------------------------------------------ 1.2 本设计任务和主要内容--------------------------------------------------- 第二章:方案论证--------------------------------------------------------------- 第三章:系统硬件电路的设计------------------------------------------------ 3.1 单片机控制系统原理----------------------------------------------------- 3.2 原理图绘制说明---------------------------------------------------------- 3.3 画出流程图---------------------------------------------------------------- 3.4 原理图绘制---------------------------------------------------------------

单片机设计矩阵键盘电子琴

课程设计任务书 课程名称单片机原理及应用课程设计 1.课程设计应达到的目的 本课程是继《单片机原理及应用B》课程之后,训练学生综合运用上述课程知识,进行单片机软件、硬件系统设计与调试,使学生加深对单片机结构、工作原理的理解,提高学生综合应用知识的能力、分析解决问题的能力和单片机最小应用系统的设计技能。通过课程设计,达到理论与实际应用相结合,增强学生对综合电子系统设计的理解,掌握单片机原理就应用的设计方法以及C51编程的能力,并能够在这个基础上进行实际项目的程序设计及软硬件调试,增强学生的工程实践能力。 2.课程设计题目及要求

带存储播放功能的简易电子琴设计 要求:利用行列式键盘和数码管,来控制并显示和产生不同频率的声音。其他扩展功能学生可自己添加,功能不限定与此。 3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕(1)了解相关理论知识,掌握基本的原理,理解相关特殊功能寄存器的设置。 (2)完成电路板的组装 (3)完成硬件电路的测试、以及软件的编程 (4)最终完成具体的课设任务。 4.主要参考文献 1.张洪润等.单片机应用设计200例.北京:北京航空航天大学出版社,2006 2. 胡汉才.单片机原理及其接口技术. 北京:清华大学出版社,2010 3.夏继强等.单片机实验与实践教程.北京:北京航空航天大学出版社,2006 4. 倪晓军等.单片机原理与接口技术教程.北京:清华大学出版社,2007 5(1)硬件方面:单片机。4*4行列式键盘,蜂鸣器,独立数码管,独立建。硬件部分采用逐列扫描,16个键位对应16个音,不断检测16键位,当某个键位被按下,先检测哪一列再检测哪个按键被按下,同时设置四个功能键,p1.0,p1.1播放歌曲,p1.2暂停,p1.3复位,可控制歌曲的播放。 插入图片 (2)音乐频率 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。单片机12MHZ晶振,高中低音符与单片机计数T0相关的计数值如下表所示: 音符频率简码值(T值) 低3 M 330 64021 低4 FA 349 64103 低5 SO 392 64260 低6 LA 440 64400 低7 SI 494 64524 中 1 DO 523 64580 中 2 RE 587 64684 中 3 M 659 64777 中 4 FA 698 64820 中 5 SO 784 64898 中 6 LA 880 64968

矩阵键盘的工作原理和扫描确认方式

9.3.1 矩阵键盘的工作原理和扫描确认方式 来源:《AVR单片机嵌入式系统原理与应用实践》M16华东师范大学电子系马潮 当键盘中按键数量较多时,为了减少对I/O 口的占用,通常将按键排列成矩阵形式,也称为行列键盘,这是一种常见的连接方式。矩阵式键盘接口见图9-7 所示,它由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,MCU 通过检测行或列线上的电平变化可以确定哪个按键被按下。 图9-7 为一个 4 x 3 的行列结构,可以构成12 个键的键盘。如果使用 4 x 4 的行列结构,就能组成一个16 键的键盘。很明显,在按键数量多的场合,矩阵键盘与独立式按键键盘相比可以节省很多的I/O 口线。 矩阵键盘不仅在连接上比单独式按键复杂,它的按键识别方法也比单独式按键复杂。在矩阵键盘的软件接口程序中,常使用的按键识别方法有行扫描法和线反转法。这两种方法的基本思路是采用循环查循的方法,反复查询按键的状态,因此会大量占用MCU 的时间,所以较好的方式也是采用状态机的方法来设计,尽量减少键盘查询过程对MCU 的占用时间。 下面以图9-7 为例,介绍采用行扫描法对矩阵键盘进行判别的思路。图9-7 中,PD0、PD1、PD2 为3 根列线,作为键盘的输入口(工作于输入方式)。PD3、PD4、PD5、PD6 为4根行线,工作于输出方式,由MCU(扫描)控制其输出的电平值。行扫描法也称为逐行扫描查询法,其按键识别的过程如下。 √将全部行线PD3-PD6 置低电平输出,然后读PD0-PD2 三根输入列线中有无低电平出现。只要有低电平出现,则说明有键按下(实际编程时,还要考虑按键的消抖)。如读到的都是高电平,则表示无键按下。 √在确认有键按下后,需要进入确定具体哪一个键闭合的过程。其思路是:依

课程设计-制作单片机的4X4矩阵键盘

课程设计-制作单片机的4X4矩阵键盘

目录 摘要.............................................. 错误!未定义书签。第一章硬件部分 (5) 第一节AT89C51 (5) 第二节4*4矩阵式键盘 (8) 第三节LED数码管 (11) 第四节硬件电路连接 (13) 第二章软件部分 (15) 第一节所用软件简介 (15) 第二节程序流程图 (18) 第三节程序 (20) 第三章仿真结果 (23) 心得体会 (26) 参考文献 (27)

第一章硬件部分 第一节AT89C51 AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚如图所示 AT89C5 图1 AT89C51管脚 图 AT89C51其具有以下特性: 与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年

全静态工作:0Hz-24MHz 三级程序存储器锁定 128×8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 特性概述: AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 接口,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。

三维矩阵键盘操作手册

矩阵控制键盘操作说明 键盘概述 控制器是智能电视监控系统中的控制键盘,也是个监控系统中人机对话的主要设备。可作为主控键盘,也可作为分控键盘使用。对整个监控系统中的每个单机进行控制。 键盘功能 1.中文/英文液晶屏显示 2.比例操纵杆(二维、三维可选)可全方位控制云台,三维比例操纵杆可控制摄像机的变倍 3.摄像机可控制光圈开光、聚集远近、变倍大小 4.室外云台的防护罩可除尘和除霜 5.控制矩阵的切换、序切、群组切换、菜单操作等 6.控制高速球的各种功能,如预置点参数、巡视组、看守卫设置、菜单操作等 7.对报警设备进行布/撤防及报警联动控制 8.控制各种协议的云台、解码器、辅助开头设置、自动扫描、 自动面扫及角度设定 9.在菜单中设置各项功能 10.键盘锁定可避免各种误操作,安全性高 11.内置蜂鸣器桌面上直接听到声音,可判断操作是否有效 技术参数 1.控制模式主控、分控 2.可接入分控数16个 3.可接入报警模块数239个 4.最大报警器地址1024个 5.最大可控制摄像机数量1024个 6.最大可控制监视器数量 64个 7.最大可控制解码器数量 1024个 8.电源 AC/DC9V(最低500mA的电源) 9.功率 5W 10.通讯协议Matri、PEL-D、PEL-P、VinPD 11.通讯波特率1200 Bit/S,2400 Bit/S,4800 Bit/S ,9600Bit/S, Start bit1,Data bit8,Stop bit1

接线盒的脚定义 控制线连接图 键盘按键说明 lris Focus Far 聚焦远 Focus Near 聚焦近 Zoom Tele 变倍大 Zoom Wide 变倍小 DVR 设备操作 DVR 功能键 Shift 用户登入 Login 退出键 Exit 报警记录查询 List 进入键盘主菜单 MENU 启动功能 F1/ON 关闭功能 F2/OFF 液晶显示区

矩阵键盘简易计算器要点

《微处理器系统与接口技术》课程实践报告 计算器 班级: 学号: 学生姓名: 指导老师: 日期: 2014.7.5 ******电子与信息工程学院

目录 1、设计题目:计算器 (3) 2、设计目的 (3) 3、计算器总体设计框图 (3) 4、计算器详细设计过程 (4) 4.1输入模块 (4) 4.2键盘输入电路 (5) 4.3主程序模块 (6) 5、分析与调试 (6) 7、运行结果 (8) 8、结束语 (8) 8、参考文献 (8) 9、源程序附录 (9) 9.1主程序 (9) 9.2延时函数delay (12) 9.3显示函数display (12) 9.4键盘扫描函数 (14) 9.5预定义函数 (15)

1、设计题目:计算器 2、设计目的 此次课程实践题目是基于单片机简单计数器的设计,本此设计使用的是Intel公司MCS-51系列的8051AH单片机。设计的计算器可以实现2位小数的加、减、乘、除运算以及整数的乘方运算,其中用4*4矩阵键盘来输入待参与运算的数据和运算符;八位数码管动态显示输入待参与运算的数据以及运算后产生的结果,每个硬件模块的调用过程中涉及到了函数入口及出口参数说明,函数调用关系描述等。 3、计算器总体设计框图 计算器以MCS-51系列的8051AH单片机作为整个系统的控制核心,应用其强大的I/O功能和计算速度,构成整个计算器。通过矩阵键盘输入运算数据和符号,送入单片机进行数据处理。经单片机运算后控制LED数码管的输出。整体框图如图1所示: 图3 整体框图 本系统硬件主要由矩阵键盘、独立键盘I/O输入输出、数码管显示等主要部分组成。各模块的主要功能如下: (1)矩阵键盘将十六进制编码的数字送到单片机。 (2) 单片机扫描键盘信号并接收,对输入的键盘信号进行处理 (3) LED以动态扫描的方式移位显示每次输入的数据和最后的运算结果。实践设计的具体流程图如下图2所示:

51单片机矩阵键盘与8051连接设计

51单片机矩阵键盘与8051连接设计 众所周知,51单片机一般的键盘检测原理为非编码键盘检测,没有专门用来产生键编码号或键值的电路芯片;而我们使用的电脑键盘为编码键盘,通过编码电路芯片为每个按键产生一个编码号,可以通过串行总线把键值传输给电脑。在进行矩阵键盘检测时,书本或老师一般教的都是扫描检测,即一行一行地检测或者一列一列地检测,代码繁琐复杂,且缺点很多(例如执行效率较低)。 举例电路: 矩阵键盘与8051连接如上图所示,首先,令P3=0x0f,

检测P30、P31、P32、P33哪一行被按下,将此时P3的值存入寄存器1。然后,令P3=0xf0 | 寄存器1,检测P34、P35、P36、P37哪一列被按下,将此时P3的值存入寄存器2。最后,把寄存器1的值和寄存器2的值组合起来即可得到矩阵键盘的编码。 代码如下: #include《reg52.h》 unsigned char NUM=1; /*----------------------------- 特殊功能位定义 -----------------------------*/ sbit L1=P0 ; sbit L2=P0 ; sbit L3=P0 ; sbit L4=P0 ; sbit L5=P0 ; sbit L6=P0 ; sbit L7=P0 ; sbit L8=P0 ; sbit DUAN=P2 ; sbit WEI=P2 ; /*-----------------------------

定时器0初始化函数 -----------------------------*/ void init() { EA=1; ET0=1; TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; } /*----------------------------- 中断服务函数 -----------------------------*/ void TImer0()interrupt 1 { TR0=0; //定时终止 TH0=(65536-10000)/256; //定时器0初值重装TL0=(65536-10000)%256; NUM--; } /*-------------------------------------------------- 矩阵键盘检测兼编码函数

矩阵键盘操作说明

矩阵键盘操作说明 一、系统复位 1按数字键0后,按MON键 2输入99后,按NEXT键 二、键盘视频选择 首先是监视器选择然后是摄像机选择 1、按键盘上的CLEAR键,清除键盘数字输入ENTER区中的数字显示 2、输入所选择的监视器号,该数字在键盘数字输入ENTER区中显示 3、按MON键,该监视器号在键盘监视器MONITOR区中显示 4、同时系统主机将返回该监视器对应的图像号,在键盘的摄像机CAMERA区中显示。 5、输入选择的摄像机号,该数字在键盘数字输入ENTER区中显示 6、按CAM键 7、系统主机将返回该图像号,在键盘的摄像机CAMERA区中显示则选择的图像再选择的 监视器上显示 三、图像区域切换 在指定的监视器上运行一个指定区域的图像切换,该功能可以在任何一个监视上浏览切换所有的图像操作步骤如下: 1、按键盘上CLERA键,清除数字输入ENTER区中的数字显示 2、输入所选择的监视器号,该数字在键盘数字输入ENTER区中显示 3、按MON键,该监视器号在键盘监视器MONITOR区中显示 4、输入区域切换中的开始图像号 5、按ON键,确认开始区域的开始图像 6、输入区域切换中的结束图像号 7按OFF键确定区域切换的结束图像 完成后则该监视器开始区域切换依次按照设定的图像号进行切换如要添加一个图像到切换序列中则: 1和设置区域切换的步骤一样重复1-3步,选择一个监视器,该监视必须已存在一个切换队列 2、输入所希望添加的摄像机图像好,该摄像机图像号必须在系统的最大允许摄像机图像号的范围内 3、按组合键ENTER-ON,ENTER键必须在前面,确定添加的图像。 如要在切换队列中删除一个图像: 1、和设置区域切换的步骤一样重复1-3步,选择一个监视器,该监视必须已存在一个切换队列 2输入所希望添加的摄像机图像好,该摄像机图像号必须在这个序列切换范围内。 3、按组合键ENTER-OFF,ENTER必须在前面,确认删除图像。 四、报警设置 单布防 针对需要布防的防区一个一个的布防,防区布防后,根据监视器与防区触点权限表,自动将该防区分配到与之对应的监视器上。一旦报警,则与之相关的报警监视器就可以对这个报警防区进行响应。具体操作如下1、输入防区号 2、按组合键ARM-ON,ARM键必须先按,对该报警防区进行确认。 全布防。撤防即按ARM-OFF键 1、输入数字键0

单片机课程设计4X4矩阵键盘显示要点

长沙学院 《单片机原理及应用》 课程设计说明书 题目液晶显示4*4矩阵键盘按键号 程序设计 系(部) 电子与通信工程系 专业(班级) 电气1班 姓名龙程 学号2011024109 指导教师刘辉、谢明华、王新辉、马凌 云 起止日期2014.5.19—2014.5.30

长沙学院课程设计鉴定表

《单片机技术及应用》课程设计任务书系(部):电子与电气工程系专业:11级电子一班指导教师:谢明华、刘辉

目录 前言 (5) 一、课程设计目的 (6) 二、设计内容及原理 (6) 2.1 单片机控制系统原理 (6) 2.2阵键盘识别显示系统概述 (6) 2.3键盘电路 (7) 2.4 12864显示器 (8) 2.5整体电路图 (9) 2.6仿真结果 (9) 三、实验心得与体会 (10) 四、实验程序 (10) 参考文献 (18)

前言 单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器 应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。 是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗低,因此倍受工程师青睐,适用于使用电池的电子设备。英国科学家在上世纪制造了第一块液晶显示器即LCD。而第一台可操作的LCD基于动态散射模式(Dynamic Scattering Mode,DSM),是RCA公司乔治·海尔曼带领的小组开发的。 LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。 交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键, 键盘是合理的。

单片机矩阵键盘毕业设计

单片机矩阵键盘毕业设计 摘要 矩阵式键盘乃是目前使用较为广泛的一种键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用89C51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用C语言编程,单片机将检测到的按键信号转换成数字量,显示于数码管显示器,系统灵活性强,易于操作,可靠性能好。单片机简介及主系统电路 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换444器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。单片机在工业控制领域广泛应用,它由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中,本次课程设计我们采用的是AT89C51型号的单片机。 AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,提高了系统的性价比。其最小系统电路图如下:

键盘操作说明

用户手册 1 版权 Copyright ? 2010, GE Security , Inc. 版权所有 未经 GE Security 事先书面同意,除非美国版权法特别许可,否则不得全部或部分拷贝本文件或对其进行复制。 文件编号/修订本:0226-2010LPT (2010年 2 月) 免责声明 若该文件中所包含的信息有任何更改,恕不另行通知。GE Security 公司不对所出现不准确或疏漏承担任何责任;尤其要声明的是,对于因直接或间接使用或应用本文件内容而导致的个人或其它方面的损失或风险,我们也不会承担任何责任。最新的文件请联系您的本地供应商或访问 https://www.360docs.net/doc/695200838.html, 。 本发行版本中包含屏幕捕获示例和日常操作中使用的报告。可能内含虚构的个人和公司名的示例。任何名称(姓名)和地址如与企业或个人的名称(姓名)和地址雷同,纯属巧合。 商标和专利 GE 和 GE 标志是通用电气公司的注册商标。SCR-M409为GE 安防产品型号。 本文件中使用的其它商标名为相应产品制造商或厂商的商标或注册商标。 预定用途 按照产品原本的设计用途来使用;请参阅产品数据表和用户文档。最新的文件请联系您的本地供应商或访问 https://www.360docs.net/doc/695200838.html, 。

目录 第一章产品介绍———————————————————————————————3 第二章安装说明———————————————————————————————3 第三章操作必读———————————————————————————————6 第四章矩阵控制操作指南———————————————————————————8 第五章云台控制操作指南———————————————————————————16 说明: 本用户手册适用于GE 公司的SCR-M409矩阵控制键盘。本手册包括产品概述、详细说 明以及连接和安装方式。如果您有疑问或关心的问题,此文件也提供如何与技术支持 部门取得联系的信息。 若要有效使用该文档,您至少应具备以下资质条件:CCTV 系 统和元件的基础知识;电气配线和低压电气连接的基础知识。在安装或操作此产品之前,请完全阅读这些说明及所有附属文件。 注意:合格的服务人员应遵守所有适用的规程,以执行所需的硬件安装工作。

矩阵键盘程序c程序,51单片机.

/*编译环境:Keil 7.50A c51 */ /*******************************************************/ /*********************************包含头文件********************************/ #include /*********************************数码管表格********************************/ unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x 8E}; /**************************************************************************** 函数功能:延时子程序 入口参数: 出口参数: ****************************************************************************/ void delay(void) { unsigned char i,j; for(i=0;i<20;i++) for(j=0;j<250;j++); } /**************************************************************************** 函数功能:LED显示子程序 入口参数:i 出口参数: ****************************************************************************/ void display(unsigned char i) { P2=0xfe; P0=table[i]; } /**************************************************************************** 函数功能:键盘扫描子程序 入口参数: 出口参数: ****************************************************************************/ void keyscan(void) { unsigned char n; //扫描第一行 P1=0xfe;

FPGA矩阵键盘课程设计

FPGA课程设计报告 项目名称基于FPGA的4*4矩阵键盘的设计 专业班级通信1 学生姓名张 指导教师 2016年7 月10 日

摘要 本课程设计提出了基于FPGA的4*4矩阵键盘的设计,主要是在软件Quartus II 9.0这个环境中,以硬件描述语言Verilog进行编写程序,从而完成矩阵键盘的相关设计。主要由矩阵式键盘电路、显示电路等组成,实现过程是通过行扫描输入随机信号,列扫描判断哪一个键被按下,并最后由数码管显示该按键。此次课程设计完成了4*4矩阵键盘控制LED数码管显示系统的设计,该设计具有灵活性强,易于操作,可靠性高,广泛应用于各种场合的特点,是进行按键操作管理的有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身的要求,并能正确、实时、高效地显示按键信息,以提高工作效率和资源换利用率的意义。 关键词:数码管;矩阵键盘;按键;显示电路

Abstract This course is designed based on FPGA is proposed 4 * 4 matrix keyboard design, mainly in the Quartus II software 9.0 this environment, with the Verilog hardware description language program, so as to complete the related design of matrix keyboard. Main matrix keyboard circuit, display circuit and so on, complete the 4 * 4 matrix keyboard control LED digital tube display system design, the design has strong flexibility, easy operation, high reliability, widely used in various occasions. Into 4 * 4 matrix keyboard control LED digital tube display system design, design flexibility is strong, easy to operate, high reliability, widely used in various occasions. Matrix keyboard control system, can improve efficiency, and is an effective method to manage the keystrokes, it can improve the system accuracy, and is conducive to resource saving and reduce the requirement of the operator itself, and correctly, real-time and efficient to show the key information, in order to improve the work efficiency and the utilization ratio of resources in meaning. Keywords: Digital tube; Matrix keyboard; The key; Disply circuit

51单片机矩阵键盘程序

/*风清云扬*/ # include #define uchar unsigned char #define uint unsigned int void delay(uint i) { uchar x,j; for(j=0;j

} else if(temp0==0x0b) { switch (temp1) { case 0xe0: num=12;break; case 0xd0: num=11;break; case 0xb0: num=10;break; case 0x70: num=9;break; default:num=0;break; } } else if(temp0==0x07) { switch (temp1) { case 0xe0: num=16;break; case 0xd0: num=15;break; case 0xb0: num=14;break; case 0x70: num=13;break; default:num=0;break; } } } } return num; } void main() { char num; while(1) { num=key_scan(); P2=num/10; P3=num%10; } }

相关文档
最新文档