当前位置:文档之家› 基于单片机的键盘控制设计

基于单片机的键盘控制设计

基于单片机的键盘控制设计
基于单片机的键盘控制设计

摘要

单片机即单片微型计算机(Single-Chip Microcomputer),是集CPU,RAM,ROM,

定时,计数和多种接口于一体的微控制器,广泛应用于各个领域[1]。

本论文设计的单片机键盘主要由AT89C51单片机控制。该键盘控制系统是由单片机最小系统及LED显示电路组成。使用单片机C语言进行编程,实现可设定本论文主要介绍了键盘设计的软、硬件部分的设计,以及在设计、调试过程中遇到的问题及解决方案。

本设计包括硬件设计和软件设计,其中的硬件设计包括时钟电路,复位电路,4*4矩阵式键盘电路和LED数字显示电路。其中需要选择使用的扫描方式;为防键盘判断失误,导致实现多次按键按键的显示问题,需要去抖动的处理,其显示需要七段数码管显示。

本设计的与众不同之处在于其既能实现常规数字的显示,同时还能实现作为简单的电子琴,不同的键表示不同的音符;还能够实现简单计算功能。

本课题设计的键盘控制系统结构简单,造价成本低,功能齐全,具有很强的实用性。关键词:AT89C51单片机矩阵式键盘按键扫描

Abstract

The monolithic integrated circuit namely monolithic microcomputer (Single-Chip Microcomputer), is collection CPU, RAM, ROM, fixed time, counting and many kinds of connections in a body micro controller.Widely applies in each domain.

The present paper design monolithic integrated circuit keyboard mainly controls by at89C51 monolithic integrated circuit.This keyboard control system is composed by the monolithic integrated circuit smallest system and the LED display circuit. The use monolithic integrated circuit C language carried on the programming, the realization may establish the present paper mainly to introduce the keyboard designed the software and hardware part design, as well as the question and the solution which in the design, the debugging process met[13].

This design including the hardware design and the software design, hardware design including the clock electric circuit, repositions the electric circuit, the 4*4 matrix form keyboard electric circuit and the LED digita display circuit.

Need choice use scanning way; In order to guard against the keyboard judgment fault, causes the realization many times the pressed key demonstration question, needs to vibrate processing, its demonstration needs seven section of nixietube demonstrations.

This design out of the ordinary place lies in it already to be able to realize the conventional numeral demonstration, meanwhile can realize takes the electric piano, the different key expresses the different note; Also can realize the simple computation function[14].

This topic design keyboard control system structure is simple, the construction cost cost is low, the function is complete, has the very strong usability.

Key words: AT89C51list slice machine Matrix form keyboard Pressed key scanning

基于单片机的键盘控制设计

目录

摘要................................................................................................................ I 1绪论.. (1)

1.1AT89C51单片机设计意义和目的: (1)

1.2设计要求: (1)

1.3思路及步骤 (1)

1.3.1思路及成果: (1)

1.3.2 设计内容步骤安排: (2)

2 整体设计方案 (3)

2.1单片机的基本概念 (3)

2.2单片机的特点 (3)

2.3单片机的应用领域 (4)

2.4AT89C51的引脚封装概述 (4)

2.5AT89C51单片机工作的基本时序 (6)

2.6AT89C51单片机的内部结构及存储器配置: (6)

2.6.1 AT89C51单片机的内部结构 (6)

2.6.2 AT89C51单片机的存储器配置 (7)

2.7AT89C51单片机键盘设计方案论证 (8)

3 系统硬件设计与实现 (10)

3.1系统原理图 (10)

3.2AT89C51单片机的最小系统设计 (10)

3.2.1 最小系统设计 (10)

3.2.2 时钟频率电路的设计 (11)

3.2.3复位电路的设计 (11)

3.3数码管显示电路 (12)

3.3.1数码管的结构 (12)

3.3.2数码管的设计选择 (13)

3.4键盘扫描电路的设计 (13)

3.4.1键盘的作用 (13)

3.4.2 键盘系统设计 (14)

3.5喇叭控制电路的设计 (17)

4系统软件的设计 (18)

4.1程序流程框图 (18)

4.2系统工作原理 (18)

4.3系统程序设计 (19)

4.3.1程序设计 (19)

4.3.2键盘扫描程序的设计 (19)

5仿真及其调试 (21)

5.1键盘控制PROTENUS软件的仿真 (21)

5.2软件调试 (21)

结论 (22)

致谢 (23)

参考文献 (24)

附录 (25)

基于单片机的键盘控制设计

1绪论

1.1 AT89C51单片机设计意义和目的:

随着计算机及电子技术的飞跃发展,单片机也在不断更新换代,并成为电子系统中进行数据采集,信息处理,通信联络和实施控制的重要器件。单片机技术已渗入到了各个领域,在智能仪器仪表,工业监测控制,电力电子,汽车电子等方面得到了广泛的应用,并取得了巨大的成果。在今后若干年,MCS-51单片机的应用仍将占主要地位,仍然是我国单片机应用领域的主流机型。现今各个领域的工程技术人员都应掌握单片机应用技术。

单片机键盘是单片机系统设计中一种主要的信息输入接口,其合理的设计,不仅可以节省系统的设计成本,更可使仪器设备的操作变得更为简单、方便,很大程度上提高系统综合性能。

随着就业形势日趋严峻,我们大学生的动手能力、实践能力和综合素质越来越受到学校和用人单位的重视。在我们大学毕业时,必要的设计无疑是培养和锻炼动手能力、实践能力和综合素质的一个重要环节,这次关于单片机的键盘设计是对我们所学知识的一次综合实践,是对老师教学,我们学习成果的一次检验,也是我们即将毕业面临就业对自己就业信心的考验,对自己就业实力的测试。也使我们对MCS-51单片机的主要技术深入理解,更深入掌握其原理及接口技术的应用,真正自己动手实践,做到能灵活应用[2]。

1.2设计要求:

单片机具有集成度高,功能强,结构简单,应用灵活,可靠性高等特点。在工业控制,机电一体化,通信终端,智能仪器仪表等诸多领域中得到了广泛应用。本设计基于ATmel公司的89c51单片机,结合C语言控制的特点,实现键盘扫描的相关功能。通过原理图设计,实现基本功能模块的组合,从而验证设计的可行性与可靠性。

掌握用单片机制作的键盘的原理及应用,熟练的学习ATMEL公司所用的AT89C51系列。毕业设计的要求体现于整个工作的各个阶段中,可根据课题的特点有所侧重,但应该注意一下几点:

1.根据课题任务制定合理、可行的工作计划;

2.进行必要的调研和资料搜集、文献阅读;

3.制定适当的技术方案,并通过与其它方案的比较加以论证;

4.独立完成系统或模块的设计,软件设计要符合软件工程规范,硬件设计符合原理表示、线路图纸和工艺要求的各种规范;

5.制定系统(模块)的测试方法,并根据完整的测试数据对系统(模块)的性能指标做出分析和评价;

1.3思路及步骤

1.3.1思路及成果:

本设计包括硬件设计和软件设计,其中的硬件设计包括时钟电路,复位电路,4*4矩阵式键盘电路和LED数字显示电路。其中需要选择使用的扫描方式;为防键盘判断失误,导致实现多次按键按键的显示问题,需要去抖动的处理,其显示需要七段数码管显示。

本设计的与众不同之处在于其既能实现常规数字的显示,同时还能实现作为电子琴,不同的键表示不同的音符;还能够实现简单计算功能。

1.3.2 设计内容步骤安排:

1、大量查阅单片机资料,明确设计要求,确定设计方案。

2、进行硬件设计,绘制原理图。

3、进行软件设计,电路板实物的完成。

4、论文撰写、外文翻译,完成答辩。

2 整体设计方案

2.1单片机的基本概念

图2-1 单片机组成框图

单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统。单片机是将中央处理器,随机存储器。只读存储器,定时器芯片和I/O 接口电路集成于一个芯片上的微控制器[3]。

单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机是通过你编写的程序可以实现高智能,高效率,以及高可靠性[4]!

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

2.2单片机的特点

1、控制性能和可靠性高

实时控制功能特别强,其CPU可以对I/O端口直接进行操作,位操作能力更是其它计算机无法比拟的。另外,由于CPU、存储器及I/O接口集成在同一芯片内,各部件间的连接紧凑,数据在传送时受干扰的影响较小,且不易受环境条件的影响,所以单片机的可靠性非常高。

近期推出的单片机产品,内部集成有高速I/O口、ADC、PWM、WDT等部件,并

最新单片机硬件系统设计原则

单片机硬件系统设计 原则

●单片机硬件系统设计原则 ●一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单 元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。 ●系统的扩展和配置应遵循以下原则: ● 1、尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基 础。 ● 2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行 二次开发。 ● 3、硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则 是:软件能实现的功能尽可能由软件实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。 ● 4、系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统 中所有芯片都应尽可能选择低功耗产品。 ● 5、可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷 电路板布线、通道隔离等。 ● 6、单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增 设线驱动器增强驱动能力或减少芯片功耗来降低总线负载。 ● 7、尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大, 也不可避免地降低了系统的稳定性。随着单片机片内集成的功能越来越强,真正的片上系统SoC已经可以实现,如ST公司新近推出的μPSD32××系列产品在一块芯片上集成了80C32核、大容量FLASH 存储器、SRAM、A/D、I/O、两个串口、看门狗、上电复位电路等等。 ●单片机系统硬件抗干扰常用方法实践 ●影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结 构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。 ●形成干扰的基本要素有三个: ●(1)干扰源。指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt, di/dt大的地 方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。 ●(2)传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线 的传导和空间的辐射。 ●(3)敏感器件。指容易被干扰的对象。如:A/D、 D/A变换器,单片机,数字IC,弱信号放大器 等。 ● 1 干扰的分类 ● 1.1 干扰的分类 ●干扰的分类有好多种,通常可以按照噪声产生的原因、传导方式、波形特性等等进行不同的分 类。按产生的原因分: ●可分为放电噪声音、高频振荡噪声、浪涌噪声。 ●按传导方式分:可分为共模噪声和串模噪声。 ●按波形分:可分为持续正弦波、脉冲电压、脉冲序列等等。 ● 1.2 干扰的耦合方式

单片机键盘显示接口电路设计说明

中北大学 单片机及其接口技术 课程设计说明书 学生:学号: 学院: 专业: 题目:单片机键盘显示接口电路设计 指导教师:小林职称: 副教授 2012年6月17日

中北大学 单片机及其接口技术 课程设计任务书 11/12 学年第二学期 学院: 专业: 学生姓名:学号: 课程设计题目:单片机键盘显示接口电路设计 起迄日期:6月11日~6月17日 课程设计地点:中北大学 指导教师:小林 系主任:王忠庆

下达任务书日期: 2012年06月11日课程设计任务书

课程设计任务书

第一章、绪论89C51是一种带4KB闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。在本次课程设计中,便采用89C51单片机。 第二章、设计容 一、4×4键盘 原理:4 行 行 行 行

图1 电路原理图见附图一 本次设计为4×4的矩阵键盘,这样的设计可以有效的减少键盘与单片机接口时所占用的I/O接口。在这种非编码键盘的单片机系统中,键盘处理程序首先执行有无按键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下,对键的识别常采用逐行(逐列)扫描的方法。 首先判断有无按键按下。方法是:向行线输出全扫描字00H,把全部行线置为低电平,然后将列线的电平状态读入到累加器A中,如果有按键按下,会使列线电平被拉至低电平,是列输入不全为1。 判断键盘哪一个键被按下。方法是:一次给行线送低电平,然后查所有列线状态,称为行扫描,如果全为1,则所按下键不在此行,如果不全为1,则所按下键必在此行,而且是在与零电平列线相交的交点上的那个键。 在此,按键的位置码并不等于按键的实际定义键值,因此还必须进行转换,即键值译码,本次设计中采用软件实现键值的译码,译码方式如下: 第0行键值为:0行×4+列号(0~3)为0、1、2、3; 第1行键值为:1行×4+列号(0~3)为4、5、6、7; 第2行键值为:2行×4+列号(0~3)为8、9、A、B; 第3行键值为:3行×4+列号(0~3)为C、D、E、F; 译码程序如下:

根据C51单片机的键盘及LCD显示

基于C51单片机的键盘及LCD显示 一、实验目的 1.掌握矩阵式键盘的数字键和功能键的编程方法。 2.掌握LCD的接口技术和编程方法。 3.掌握仪器监控程序设计和调试方法。 二、预习与参考 1. 结合ST7920 控制器系列中文图形液晶模块有关资料手册,详细了解ST7920接口设计技术。 2. 参考资料 1)实验板说明书 2)ST7920 控制器系列中文图形液晶模块资料手册 三、设计指标 利用实验板上提供的键盘电路,LCD显示电路,设计一人机界面,能实现以下功能: 1.LCD上显示“重庆科技学院” 2.按键至少包括0-9的数字键 3.LCD显示按键值 4.电子钟显示:时,分,秒(选作) 四、实验要求 1.以单片机为核心,设计4*4非编码键盘及LCD的硬件电路,画出电路原理图。 2.设计4*4非编码键盘及LCD的控制软件,画出流程图,编写控制程序。

五、实验仪器设备和材料清单 单片机实验板、连接导线、ST7920图形液晶模块、PC机; Keil c51软件 六、实验设计及实施的指导 1.实验课前布置实验任务,提出实验要求,预习相关资料,完成硬件草图设计和软件流程图备查。 2.经指导教师检查,预习达到要求者进入实验室实验。 3.按照设计的电路连线,构建键盘及显示系统,经检查无误方可进入下一步。 4.在指导教师指导下调试LCD显示程序。 5.在指导教师指导下调试按键程序。 6.综合调试直到满足设计要求。 七、实验成绩评定方法 实验成绩包括预习、实验完成质量、实验报告质量4部分组成,各部分所占比例分别为30%、30%、40%。 八、实验报告要求 1.实验报告格式: 一.实验名称 二.实验目的 三.实验内容 四.设计思想 五.硬件设计 六.程序代码

基于51单片机的USB键盘设计与实现

三江学院 本科生毕业设计(论文)题目基于51单片机的USB键盘设计与实现高职院院(系)电气工程及其自动化专业 学生姓名梁邱一学号 G105071013 指导教师孙传峰职称讲师 指导教师工作单位三江学院 起讫日期 2013年12月10日至2014年4月12日

摘要 随着计算机技术的不断更新和多媒体技术的快速发展,传统的计算机外设接口因为存在许多缺点已经不能适应计算机的发展需要。比起传统的AT,PS/2,串口,通用串行总线USB,具有速度快,使用方便灵活,易于扩展,支持即插即用,成本低廉等一系列优点,得到了广泛的应用。 本论文阐述了51系列单片机和USB的相关内容,详细介绍了系统的一些功能设计,包括硬件设计和软件设计。在程序调试期间用简单的串口通信电路,通过串口调试助手掌握了USB指令的传输过程,这对整个方案的设计起到了很大的指导作用。论文以单片机最小系统配合模拟键盘组成的USB键盘硬件系统,通过对D12芯片的学习与探索,在其基本命令接口的支持下,结合硬件进行相应的固件程序设计,使其在USB协议下,实现USB模块与PC的数据通信,完成USB键盘的功能模拟。 总结论文研究工作有阐述USB总线的原理、对本设计的系统要求作出了分析、根据要求选定元件和具体编程方案、针对系统所要实现的功能对相关芯片作了详细介绍以及在硬件部分设计了原理图。 关键词:USB;D12;PC

Abstract With the rapid development of computer technology and multimedia technology constantly updated, traditional computer peripheral interface because there are many shortcomings have been unable to meet the development needs of the https://www.doczj.com/doc/0e8586033.html,pared to traditional AT, PS / 2, serial, Universal Serial Bus USB, with fast, flexible and easy to use, easy to expand, support Plug and Play, a series of advantages, such as low cost, has been widely used. This paper describes the 51 series and USB related content, detailing some of the features of the system design, including hardware and software design.During debugging a simple serial communication circuit, through the serial port debugging assistant master USB transfer instructions, which designed the entire program has played a significant role in guiding.Thesis smallest single-chip system consisting of analog keyboard with a USB keyboard hardware system, by learning and exploration D12 chips, with the support of its basic command interface, in conjunction with the corresponding hardware firmware design, making it in the USB protocol, USB module data communication with the PC, the USB keyboard to complete the functional simulation. This paper summarizes research work has elaborated the principle of the USB bus, the system is designed to require the analysis, components and solutions based on the specific requirements of the selected programming for the system to achieve the function of the relevant chips are described in detail in the hardware part of the design as well as the principle of Figure. Keywords:USB;D12;PC

单片机红绿灯电路设计

四川现代职业学院《单片机原理及应用》课程设计红绿灯实训报告 题目:红绿灯项目设计报告 系别:电子信息技术系 专业:电子信息工程技术 组员:贺淼、纪鹏、邵文稳 指导老师:陶薇薇 2014年7月12日

摘要 交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本系统采用STC89C52点单片机以及数码管为中心器件来设计交通灯控制器,实现了南北方向为主要干道,要求南北方向每次通行时间为30秒,东西方向每次通行时间为25秒。启动开关后,南北方向红灯亮25秒钟,而东西方向绿灯先亮20秒钟,然后闪烁3秒钟,转为黄灯亮2秒钟。接着,东西方向红灯亮30秒钟,而南北方向绿灯先亮25秒,然后闪烁3秒钟,转为黄灯亮2秒钟,如此周而复始。 软件上采用C语言编程,主要编写了主程序,中断程序延时程序等。经过整机调试,实现了对十字路口交通灯的模拟。

目录 (一)硬件部分--------------------------- 3 1.1 STC89C52芯片简介-----------------------3 1.2 主要功能特性---------------------------4 1.3 STC89C52芯片封装与引脚功能-------------5 1.4 基于STC89C52交通灯控制系统的硬件电路分析及设计-------------------------------------------10 (二)软件部分----------------------------14 2.1 交通灯的软件设计流程图-----------------14 2.2 控制器的软件设计-----------------------15 (三)电路原理图与PCB图的绘制-------------16 3.1 电路原理图的绘制(见附录二)----------16 3.2 PCB图的绘制(见附录三)---------------16 3.3 印刷电路板的注意事项------------------16 (四)调试及仿真---------------------------------------19 4.1 调试----------------------------------19 4.2 仿真结果------------------------------20 (五)实验总结及心得体会---------------------------21 5.1 实验总结-----------------------------------------------21 5.2 实验总结-----------------------------------------------22 附录程序清单---------------------------22

课程设计-制作单片机的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口作为低八位地址接收。

51单片机数码管显示矩阵键盘键入值

51单片机实现数码管显示矩阵键盘键入值 #include #define uchar unsigned char uchar code decode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; void delay(uchar); uchar temp,b,c,d,num; void display(uchar); void main() { while(1) { P0=0xfe; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp)

case 0xe0:num=0;break; case 0xd0:num=1;break; case 0xb0:num=2;break; case 0x70:num=3;break; } } } P0=0xfd; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp) { case 0xe0:num=4;break; case 0xd0:num=5;break; case 0xb0:num=6;break; case 0x70:num=7;break;

} } P0=0xfb; temp=P0; temp=temp&0xf0; if(temp!=0xf0) { delay(100); if(temp!=0xf0) { switch(temp) { case 0xe0:num=8;break; case 0xd0:num=9;break; case 0xb0:num=10;break; case 0x70:num=11;break; } } } P0=0xf7; temp=P0;

单片机实验报告——矩阵键盘数码管显示

单片机实验报告 信息处理实验 实验二矩阵键盘 专业:电气工程及其自动化 指导老师:高哲 组员:明洪开张鸿伟张谦赵智奇 学号:152703117 \152703115\152703118\152703114室温:18 ℃日期:2017 年10 月25日

矩阵键盘 一、实验内容 1、编写程序,做到在键盘上每按一个键(0-F)用数码管将该建对应的名字显示出来。按其它键没有结果。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 3、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。 4、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。 5、掌握利用Keil51软件对程序进行编译。 6、会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结果 能做出分析和解释,能写出符合规格的实验报告。 三、实验原理 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然

后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

单片机课程设计 模拟键盘输入及显示系统设计..

课程设计说明书课程名称:单片机应用基础 设计题目:模拟键盘输入及显示系统设计专业:机械设计制造及其自动化 指导教师: 设计者: 学号:

目录 第一章课程设计的目的和要求 (1) 1.1课程设计的目的和要求 (1) 1.2课程设计预备知识 (1) 1.3课题设计的任务 (2) 第二章总体设计 介绍对系统设计的总体认识及解决方案,并对采取的方案进行论证 第三章硬件设计 介绍本系统所选用的各种芯片的功能、引脚、相应的命令控制字格式等,画出系统工作原理图及实现方法 第四章软件设计 介绍本系统的主要功能模块程序的框图,以及总体程序框图和设计思路 第五章系统调试 介绍系统调试过程以及出现的问题、解决方法 第六章结束语 简述课程设计的收获、体会以及对本教学环节的意见和建议 参考文献

第一章、课程设计目的和要求 1.1 课程设计目的和要求 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 1.2课程设计预备知识 总的来说,设计者要具备Mcs-51单片机的有关硬件及软件知识,汇编语言编程或者C 语言编程的有关知识,I\O接口的有关知识,WAVE6000集成调试软件的应用,能利用PROTEUS 软件绘制系统工作原理,一定的设计经验等等。本次设计所要掌握的一些基本知识如下:(1)键盘工作原理 键盘是由若干按键组成的开关矩阵,是嵌入式控制系统的一种输入部件。键盘分两种:一种是独立式按键,另一种是矩阵式按键。如图所示。独立式按键用的比较少,可以直接与单片机的P1口某一位进行连接,通过判断这一位的状态知道是否有键输入。在应用中通常需要数量较多的按键,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 独立式键盘和4*4矩阵式键盘

51单片机矩阵键盘扫描程序

/*----------------------------------------------- 名称:矩阵键盘依次输入控制使用行列逐级扫描 论坛:https://www.doczj.com/doc/0e8586033.html, 编写:shifang 日期:2009.5 修改:无 内容:如计算器输入数据形式相同从右至左使用行列扫描方法 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换 #define KeyPort P1 sbit LATCH1=P2^2;//定义锁存使能端口段锁存 sbit LATCH2=P2^3;// 位锁存 unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码 unsigned char TempData[8]; //存储显示值的全局变量 void DelayUs2x(unsigned char t);//us级延时函数声明 void DelayMs(unsigned char t); //ms级延时 void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数 unsigned char KeyScan(void);//键盘扫描 unsigned char KeyPro(void); void Init_Timer0(void);//定时器初始化 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { unsigned char num,i,j; unsigned char temp[8]; Init_Timer0(); while (1) //主循环 { num=KeyPro();

51单片机按键控制数码管程序

#define uint unsigned int #define uchar unsigned char uchar c; sbit p10=P1^0; sbit p11=P1^1; sbit p12=P1^2; sbit p13=P1^3; sbit p14=P1^4; sbit p15=P1^5; sbit p16=P1^6; sbit p17=P1^7; void delay(uint z); int b[]={0,1,2,3,4,5,6,7};//设置每一位显示的数字 unsigned char code Tab[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳极数码管 int a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() { EA=1; EX0=1; IT0=1; P1=0xff; while(1) { for(c=0;c<8;c++)//数码管扫描显示

P2=a[c]; P0=Tab[b[c]]; delay (1); } } } void delay(uint z) { uint a,b; for(a=z;a>0;a--) for(b=110;b>0;b--); } int_0()interrupt 0 { EA=0; if(p10==0) b[0]=(b[0]+1)%10; if(p11==0) b[1]=(b[1]+1)%10; if(p12==0) b[2]=(b[2]+1)%10; if(p13==0) b[3]=(b[3]+1)%10; if(p14==0) b[4]=(b[4]+1)%10; if(p15==0) b[5]=(b[5]+1)%10; if(p16==0) b[6]=(b[6]+1)%10; if(p17==0) b[7]=(b[7]+1)%10;

51单片机按键控制花样灯

51单片机按键控制花样灯 时间:2018-09-10 13:50:11 来源:51hei 作者: /**************************************************** * 本程序实现用按键控制花样灯。 * * 当K1按下时,灯从0xfe向左跑一遍; * * 当K2按下时,LED灯从0x7f向右跑一遍到了0xfe右跑回到起始位置; * * 当K3键按下时,LED灯从0xfe开始作流水灯形式运行一次,然后再流回来。 * * 当K4键按下时,LED灯先亮前四个,接着再转向亮后四个。 * * 当K5键按下时,结束任意正在进行的程序,使LED灯全部熄灭。 * ******************************************************/ ************************************************* 连接方法:P0接独立按键JP5。P2接LED灯接口JP1 * ***********************************************************/ #include //头文件,函数声明 #include //定义按键所在位 sbit K1=P0^0。 sbit K2=P0^1。 sbit K3=P0^2。 sbit K4=P0^3。 sbit K5=P0^4。 unsigned char led。 unsigned char j。 void delayms(unsigned char ms> // 1ms标准延时 { while(ms--> { for(j=0。j<110。j++>。 //还是无法设置比较标准的延时,如1S等;所以应该用定时器延时才最准确 } } void main(> { //P2=led。 unsigned int i。

89C51单片机44键盘应用实例程序设计(含硬件仿真电路图)

89c51单片机4*4键盘应用实例硬件仿真电路图如下: 程序如下(编译成功): #include"reg51.h" #include"LCD1602.h" #include"hardware.h" char code tab[4][4]={ {'1','4','7','#'}, {'2','5','8','0'}, {'3','6','9','*'}, {'A','B','C','D'}}; //0到F的16个键植 void delay(unsigned char a) { unsigned char i; while(a--)

for(i=100;i>0;i--) ; } char kbscan() //键盘扫描 { unsigned char hang,lie,key; if(P3!=0x0f) delay(5); if(P3!=0x0f) { switch(P3&0x0f) { case 0x0e:lie=0;break; case 0x0d:lie=1;break; case 0x0b:lie=2;break; case 7:lie=3;break; } P3=0xf0; P3=0xf0; switch(P3&0xf0) { case 0xe0:hang=0;break; case 0xd0:hang=1;break; case 0xb0:hang=2;break; case 0x70:hang=3;break; } P3=0x0f; while(P3!=0x0f); key=tab[hang][lie]; } else key=0; return (key); } void main() { unsigned char temp; LCD_initial(); LCD_prints("piaoling"); P3=0x0f; P0=0xff; while(1)

矩阵键盘程序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;

单片机键盘显示实验报告

单片机得键盘与显示实验报告 ㈠实验目得 1.掌握单片机I/O得工作方式; 2.掌握单片机以串行口方式0工作得LED显示; 3.掌握键盘与LED显示得编程方法. ㈡实验器材 1.G6W仿真器?一台 2.MCS—51实验板?一台 3.PC机???一台 4.电源一台 ㈢实验内容及要求 实验硬件线路图见附图 从线路图可见,8051单片机得P1口作为8个按键得输入端,构成独立式键盘。四个LED显示器通过四个串/并移位寄存器74LS164接口至8051得串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示得段码数据,TXD则作为发送时钟来对显示数据进行移位操作。 编写一个计算器程序,当某一键按下时可执行相应得加、减、乘、除运算方式,在四个显示器上显示数学算式与最终计算结果。 注:①通过按键来选择加、减、乘、除四种运算方式。 ②输入两个数字均为一位十进制数,可预先放在内存中。 ㈣实验框图(见下页) ㈤思考题 1.当键盘采用中断方式时,硬件电路应怎样连接? P1、4~P1、7就是键输出线,P1、0~P1、3就是扫描输入线。输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5 V电源,输出端接至8051得外部中断输入端。 2、74LS164移位寄存器得移位速率就是多少? 实验中要求计算得式子与结果之间相差一秒,移位寄存器得移位速率应该就是每秒一位吧。其实这个问题确实不知道怎么回答。.。。。

?LED

实验代码: ORG0000H AJMPMAIN ORG 0030H MAIN:MOV 41H,#0BBH;对几个存放地址进行初始化MOV 42H,#0BBH MOV43H,#0BBH MOV44H,#0BBH MOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALLDISPLAY ;初始化显示 KEY:MOV R3,#08H;用来存放两个数据 MOV R4,#02H MOVP1,#0FFH ;初始化P1口 MOVA,P1 ;读取按键状态 CPL A ;取正逻辑,高电平表示有键按下 JZ KEY ;A=0时无键按下,重新扫描键盘 LCALL DELAY1 ;消抖 MOVA,P1;再次读取按键状态 CPL A JZ KEY;再次判别就是否有键按下 PUSH A KEY1:MOVA,P1 CPL A ANL A,#0FH ;判别按键释放 JNZKEY1;按键未释放,等待 LCALLDELAY1;释放,延时去抖动 POPA JB ACC、0,ADD1 ;K1按下转去ADD1 JBACC、1,SUB1 ;K1按下转去SUB1 JB ACC、2,MUL1 ;K1按下转去MUL1 JBACC、3,DIV1;K1按下转去DIV1 LJMP KEY ADD1:LCALL BUFFER ;显示加数与被加数MOV43H,#049H LCALL DISPLAY;显示加号 MOV A,R3 ADDA,R4 DA A MOV R3,A;相加结果放入R6

第13讲51单片机按键电路

标题:键盘接口电路 教学目标与要求: 1.键盘去抖动和连接、控制方式 2.独立式按键及其接口电路 3.矩阵式键盘及其接口电路 授课时数:2 教学重点:.矩阵式键盘及其接口电路 教学内容及过程: 一、键盘接口概述 1、按键开关去抖动问题 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图9-11所示,抖动时间的长短与开关的机械特性有关,一般为5 10 ms 在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加R-S触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图9-12是一种由R-S触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。 软件上采取的措施是:在检测到有按键按下时,执行一个10 ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态。同理,在检测到该键释放后,也应采用相同的步 骤进行确认,从而可消除抖动的影响。

2.编制键盘程序 一个完善的键盘控制程序应具备以下功能: (1) 检测有无按键按下,并采取硬件或软件措施,消除键盘按键机械触点抖动的影响。 (2) 有可靠的逻辑处理办法。每次只处理一个按键,其间对任何按键的操作对系统不产生影响,且无论一次按键时间有多长,系统仅执行一次按键功能程序。 (3) 准确输出按键值(或键号),以满足跳转指令要求。 二、独立式按键 单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。 1. 独立式按键结构 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如图7.4所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。 2.矩阵式键盘 I/O端线分为行线和列线,按键跨接在行线和列线上,按键按下时,行线与列线发生短路。特点: ①占用I/O端线较少; ②软件结构教复杂。 适用于按键较多的场合。 3.键盘扫描控制方式 ⑴程序控制扫描方式 键处理程序固定在主程序的某个程序段。 特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。 ⑵定时控制扫描方式 利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。 特点:与程序控制扫描方式的区别是,在扫描间隔时间内,前者用CPU工作程序填充,后者用定时/计数器定时控制。定时控制扫描方式也应考虑定时时间不能太长,否则会影响对键输入响应的及时性。 ⑶中断控制方式 中断控制方式是利用外部中断源,响应键输入信号。 特点:克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。 三、独立式按键及其接口电路 1、按键直接与I/O口连接

相关主题
文本预览
相关文档 最新文档