当前位置:文档之家› 基于单片机的模拟手机键盘

基于单片机的模拟手机键盘

基于单片机的模拟手机键盘
基于单片机的模拟手机键盘

信息工程学院课程设计报告书题目: 基于单片机的模拟手机键盘

专业:电子信息科学与技术

班级: _

学号:

学生姓名: _

指导教师:

2013年 10月 18日

信息工程学院课程设计任务书

信息工程学院课程设计成绩评定表

摘要

本文是做基于89C52单片机的手机键盘的设计;利用P0端3*4的键值来模拟手机键盘中的数字,将采用编程的方法来实现使用12个键来做到0到9的数字输出和退位清零,并在液晶屏上显示。手机作为现代移动通信的载体,其技术也得到了很大的发展,手机的键盘布局已经成了各大厂商门竞争的主要方面,本次设计提高了我们对单片机的操作能力,让我们更加认识到单片机的广阔前景,对于我们更加深入学习和了解单片机提供了极大的帮助。关键词:矩阵键盘,LCD液晶屏,89C52单片机。

目录

1 任务提出与方案论证.............................................................................................................. -

2 -

1.1方案一...................................................................................................................... - 2 -

1.2 方案二.......................................................................................................................... - 2 -

1.3方案对比与选择............................................................................................................ - 2 -

2. 系统硬件电路的设计............................................................................................................. - 4 -

2.1 微处理器的选择........................................................................................................... - 4 -

2.2单片机的基本机构........................................................................................................ - 4 -

2.3键盘接口电路................................................................................................................ - 5 -

2.4消除抖动........................................................................................................................ - 6 -

3 详细设计.................................................................................................................................. - 7 -

3.1程序流程设计............................................................................................................... - 7 -

3.2硬件电路设计............................................................................................................... - 8 -

4 总结 ......................................................................................................................................... - 9 -参考文献.................................................................................................................................... - 10 -附录 ........................................................................................................................................... - 11 -

1 任务提出与方案论证

1.1方案一

采用8255芯片,通过PA,PB口输出;PC的高四位输出,低四位输入;定时器测量两次按键的间隔,进行手机键盘的模拟;此种方法思路简单,能够实现0到9的数值在数码管上的显示。方框图如图1.1。

图1.1

方案一方框图

1.2

方案二

采用易购的AT89C52系列。

该方法采用静态显示法来控制LED的数值显示,P0口接锁存器防止总线间的冲突,P0口输出段码数据,P1.0口到P1.8口接9个按键,用于1到26的数值设置;在硬件电路不变的情况下,通过改变信号来实现数码管的显示。方框图如图1.2所示。

图1.2 方案二方框图

1.3方案对比与选择

由于方案2需要数据锁存器等硬件,且接口较复杂,又考虑到数码管显示只

有6位,而且系统没有其他复杂的处理任务;所以在综合比较之下,方案1显的更加简单明了,可行性更高;我们一致决定采用方案1来实现a到z对应的1到26的数值显示。

2. 系统硬件电路的设计

2.1 微处理器的选择

1)控制中心使用MCS-51来实现 2)驱动用8255芯片来实现

3)显示用6个三级数码显示管来实现 4)使用+5V 电源

2.2单片机的基本机构

1)MCS-51单片机内部结构

MCS-51单片机内部包含中央处理器(CPU )、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行I/O 接口、串行I/O 接口和中断系统等几大单元。 其内部结构图如图2.1所示。

图2.1 单片机8051内部结构图

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL 的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。

1)中央处理器

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

2)数据存储器

8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

3)程序存储器

8051共有4KB 8位掩膜ROM,用于存放用户程序,原始数据或表格。

4)定时/计数器

单片机8051内有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

5)并行输入输出(I/O)口

单片机8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

6)全双工串行口

单片机8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

7)中断系统

单片机8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

8)时钟电路

单片机8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但单片机8051需外置振荡电容。

2.3键盘接口电路

图2.2为键盘接口电路的原理图,图中矩阵式键盘和8255的PA口相连,

AT89C52的PB和8255的D0口相连,AT89C52不断的扫描键盘,看是否有键按下,如有,则根据相应程序对按键作出相应的反应。

图2.2 矩阵式键盘接口图

2.4消除抖动

使用键盘时,由于键的闭合和断开,此过程中会产生一个抖动期。抖动时间的长短与开关机械特性有关,一般为10~20ms。为了保证CPU对键的闭合的正确判定,必须去除抖动,在键的稳定闭合和断开期间读取键的状态。去除抖动可以采用硬件和软件两种方法。硬件方法就是在案件输入通道添加去抖动电路,从根本上避免电压抖动的产生。软件方法则采用延迟10~20ms的时间,待电压稳定后,在进行状态输入。由于软件延时方法经济实惠且技术上完全可行,所以此设计采用软件方法去抖。

3 详细设计

3.1程序流程设计

利用KEIL软件编程,使用单片机P0口接上拉电阻驱动液晶屏,使用P3口连接矩阵键盘扫描按键,在程序开始运行之后,首先是对数据进行初始化之后判断按键值,通过键值判断该键值是否设置了相应数值,有则转入相应的的程序输出数值,若没有则返回继续判断。

图3.1 主程序流程图

3.2硬件电路设计

硬件电路使用PROTEUS软件连线,主要使用AT89C52单片机芯片和LM016L液晶芯片,LI 利用P0口驱动液晶,用P3口连接矩阵键盘。

图3.2 硬件连接图

4 总结

本系统分硬件与软件两部分,硬件以单片机STC89C52为核心,以3*4矩阵键盘为输入端,并结合LCD液晶显示模块模拟手机显示屏,构成整个硬件系统。软件部分是整个控制器的重要组成部分,设计的好坏关系到系统性能的稳定程度。在控制器的软件中,采用C语言设计程序,程序可读性强。回顾起此次单片机课程设计,我仍感慨颇多,在这两个个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自去试着实践,遇到困难,永远不要沮丧气馁。两周的设计完满结束了,经过自己的努力和同学的帮忙终于有了成果,特别离不开指导老师的悉心教导,方师的精心指导和解说使我受益匪浅,相信他的工作作风和知识筑成都是我们学习榜样,给我很大的启迪。感谢这些老师不畏辛劳,热心精心的指导。在这里向他们说声谢谢,你们辛苦了。在这里,我们真诚地感谢在本次设计中给予我们许多帮助和支持的指导老师和各位同学们,真心地祝愿你们身体健康,工作顺利。

参考文献

[1]康华光,陈大钦. 电子技术基础—模拟部分(第五版)[M]. 北京:高等教育出版社,2005

[2]郭天祥.51单片机C语言教程[M]. 北京:电子工业出版,2012

附录

程序清单:

#include

#define uchar unsigned char

#define uint unsigned int

sbit EN=P2^0;

sbit RS=P2^1;

sbit ring=P2^2;

uchar code table[]="0123456789";

uchar code table2[]="FISH LEONG";

uchar temp,num,num2;

char x;

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void con(uchar con)

{

RS=0;

EN=0;

P0=con;

delay(1);

EN=1;

delay(1);

EN=0;

}

void date(uchar date)

{

RS=1;

EN=0;

P0=date;

delay(1);

EN=1;

delay(1);

EN=0;

}

void init()

{

x=-1;

ring=0;

con(0x38);

con(0x0e);

con(0x06);

con(0x01);

con(0x80);

for(num2=0;num2<10;num2++)

{

date(table2[num2]);

}

con(0x80+0x40);

}

void RING()

{

ring=1;

delay(100);

ring=0;

}

void key_scan()

{

P3=0xfe;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(5);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

x++;

RING();

switch(temp)

{

case 0xe0:num=1;break;

case 0xd0:num=2;break;

case 0xb0:num=3;break;

}

date(table[num]);

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

P3=0xfd;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(5);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

x++;

RING();

switch(temp)

{

case 0xe0:num=4;break;

case 0xd0:num=5;break;

case 0xb0:num=6;break;

}

date(table[num]);

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

P3=0xfb;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(5);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

x++;

RING();

switch(temp)

{

case 0xe0:num=7;break;

case 0xd0:num=8;break;

case 0xb0:num=9;break;

}

date(table[num]);

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

P3=0xf7;

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

delay(5);

temp=P3;

temp=temp&0xf0;

if(temp!=0xf0)

{

RING();

switch(temp)

{

case 0xe0:

con(0x80+0x40+x);

date(' ');

con(0x80+0x40+x);

x--;

if(x==-2)

{

init();

x=-1;

}

break;

case 0xd0:

num=0;

x++;

date(table[num]);

break;

case 0xb0:

init();

break;

}

}

while(temp!=0xf0)

{

temp=P3;

temp=temp&0xf0;

}

}

if(x==16)

init();

}

void main()

{

init();

while(1)

{

key_scan();

}

}

基于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/1a16287378.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

最新单片机与键盘接口

单片机与键盘接口

MCS-51单片机与键盘的接口 键盘接口和数码管接口是构成单片机人机界面的主要方法。键盘是单片机应用系统中最常用的输入设备,操作人员一般都是通过键盘向单片机系统输入指令、数据,实现简单的人机通信。所以学习单片机与键盘接口的原理和编程方法就显得十分的重要。 一.键盘的工作原理 1.1 按键的分类 按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,单片机应用系统中最常见的是触点式开关按键。 按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。 全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多键、窜键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作均由软件完成。由于其经济实用,较多地应用于单片机系统中。下面将重点介绍非编码键盘接口。 1.2 键输入原理 在单片机应用系统中,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能,键信息输入是与软件结构密切相关的过程。

对于一组键或一个键盘,总有一个接口电路与单片机相连。单片机可以采用查 询或中断方式了解有无将键输入,并检查是哪一个键按下,将该键号送入累加 器 ACC ,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程 序。. 1.3 按键结构与特点 微机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转 换成为电气上的逻辑关系。也就是说,它能提供标准的 TTL 逻辑电平,以便与 通用数字系统的逻辑电平相容。 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时 间的触点机械抖动,然后其触点才稳定下来。其抖动过程如下图所示,抖动时 间的长短与开关的机械特性有关,一般为 5 ~ 10 ms 。 按键触点的机械抖动 在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可用硬件去抖,而当键数较多时,采用软件去抖。 在硬件上可采用在键输出端加 R-S 触发器 ( 双稳态触发器 ) 或单稳态触发器构成去抖动电路。下图是一种由 R-S 触发器构成的去抖动电路,当触发器一旦翻转,触点抖动不会对其产生任何影响。

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

中北大学 单片机及其接口技术 课程设计说明书 学生:学号: 学院: 专业: 题目:单片机键盘显示接口电路设计 指导教师:小林职称: 副教授 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.实验报告格式: 一.实验名称 二.实验目的 三.实验内容 四.设计思想 五.硬件设计 六.程序代码

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

摘要 单片机即单片微型计算机(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

基于51单片机的PS2键盘的单片机编程

PS2键盘的单片机编程 在单片机系统中,经常使用的键盘都是专用键盘.此类键盘为单独设计制作的,成本高、使用硬件连接线多,且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出.与此相比,在PC系统中广泛使用PS/2键盘具有价格低、通用可靠,且使用连接线少(仅使用2根信号线)的特点,并可满足多种系统的要求.因此在单片机系统中应用PS/2键盘是一种很好的选择. 文中在介绍PS/2协议和PS/2键盘工作原理与特点的基础上,给出了一个在单片机上实现对PS/2键盘支持的硬件连接与驱动程序设计实现.该设计实现了在单 片机系统中对PS/2标准104键盘按键输入的支持.使用Keil C51开发的驱动程序接口和库函数可以方便地移植到其他单片机或嵌入式系统中.所有程序在 Keil uVision2上编译通过,在单片机AT89C51上测试通过. 1 PS/2协议 目前,PC机广泛采用的PS/2接口为mini-DIN 6pin的连接器,如图1所示. PS/2设备有主从之分,主设备采用Female插座,从设备采用Male插头.现在广泛使用的PS/2键盘鼠标均在从设备方式下工作.PS/2接口的时钟 与数据线都是集电极开路结构,必须外接上拉电阻(一般上拉电阻设置在主设备中).主从设备之间数据通信采用双向同步串行方式传输,时钟信号由从设备产生. 1.1 从设备到主设备的通信 当从设备向主设备发送数据时,首先检查时钟线,以确认时钟线是否为高电平.如果是高电平,从设备就可以开始传输数据;反之,从设备要等待获得总线的控制权,才能开始传输数据.传输的每一帧由11位组成,发送时序及每一位的含义如图2 所示. 每一帧数据中开始位总是为0,数据校验采用奇校验方式,停止位始终为1.从设 备到主设备通信时,从设备总是在时钟线为高时改变数据线状态,主设备在时钟 下降沿读人数据线状态.

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;

基于单片机的模拟手机键盘

信息工程学院课程设计报告书题目 :基于单片机的模拟手机键盘 专业:电子信息科学与技术 班级:_ 学号: 学生姓名:_ 指导教师: 2013年10月18日

信息工程学院课程设计任务书 学号学生姓名专业(班级)电子信息 设计题目基于单片机的模拟手机键盘 单片机晶振频率:12MHz; 电源电压: +5v 设 计 技 术 参 数 编程控制单片机端口实现按键输出0~9 十个数字并在液晶上显示出来。 设 计 要 求 两天 工 作 量 注:可填写课程设计报告的字数要求或要完成的图纸数量。 工 作 计 划 [1]康华光,陈大钦 . 电子技术基础—模拟部分(第五版)[M]. 北京:高等教育出版社, 2005 参 考[2] 郭天祥 .51 单片机 C 语言教程[ M]. 北京:电子工业出版, 2012 资 料 指导教师签字教研室主任签字

信息工程学院课程设计成绩评定表 学生姓名:学号:专业(班级):电子信息 课程设计题目:基于单片机的模拟手机键盘 指导教师评语: 成绩: 指导教师: 年月日

摘要 本文是做基于89C52 单片机的手机键盘的设计;利用P0 端 3*4 的键值来模拟手机键盘 中的数字,将采用编程的方法来实现使用12 个键来做到0 到 9 的数字输出和退位清零,并 在液晶屏上显示。手机作为现代移动通信的载体,其技术也得到了很大的发展,手机的键盘布局已经成了各大厂商门竞争的主要方面,本次设计提高了我们对单片机的操作能力,让我们更加认识到单片机的广阔前景,对于我们更加深入学习和了解单片机提供了极大的帮助。 关键词:矩阵键盘,LCD液晶屏, 89C52 单片机。

单片机 键盘接口实验

实验六键盘接口实验 一、实验目的 1、掌握Keil C51软件与Protues软件联合仿真调试的方法; 2、掌握单片机的键盘接口电路; 3、掌握单片机的键盘扫描原理; 4、掌握键盘的去抖原理及处理方法。 二、实验仪器与设备 1、微机一台 2、Keil C51集成开发环境 3、Protues仿真软件 三、实验内容 1、用Protues设计一矩阵键盘接口电路。要求利用P1口接一4×4矩阵键盘。串行口通过一74LS164接一共阴极数码管。用线反转法编写矩阵键盘识别程序,用中断方式,并将按键的键值0-F通过串行口输出,显示在数码管上。 2、将P1口矩阵键盘改成8个独立按键,重新编写识别和显示程序。 四、实验说明 矩阵键盘识别一般包括以下内容: ⑴判别有无键按下。 ⑵键盘扫描取得闭合键的行、列号。 ⑶用计算法或查表发的到键值; ⑷判断闭合键是否释放,如没释放则继续等待。 ⑸将闭合键的键值保存,同时转去执行该闭合键的功能。 五、实验步骤 1、用Protues设计键盘接口电路; 2、在Keil C51中编写键盘识别程序,编译通过后,与Protues联合调试; 3、按动任意键,观察键值是否能正确显示。 六、实验电路仿真图 矩阵键盘电路图见附录1。 独立按键电路图见附录2。 七、实验程序 实验程序见附录3、4。 八、实验总结 1、矩阵键盘常用的检测方法有线反转法、逐行扫描法。线反转法较简单且高效。在矩阵键盘的列线上接一与门,利用中断方式查询按键,可提高CPU的运行效率。 2、注意用线反转法扫描按键时,得到的键值不要再赋给temp,最好再设一新变量接收键值,否则再按下按键显示数字的过程中,再按按键会出现乱码。 3、学会常用与门、与非门的使用方法。 附录1:矩阵键盘实验电路图

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

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

目录 第一章课程设计的目的和要求 (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矩阵式键盘

单片机按键的解决方法

单片机按键的解决解决方案 1、单片机上的按键控制一般采用两种控制方法:中断和查询。中断必须借助中断引脚,而 查询按键可用任何IO端口。按键较少时,一个按键占用一个端口,而按键较多时,多采用矩阵形式(如:经常用4个端口作为输出,4个端口作为输入的4X4矩阵来获得16个按键);还可以用单片机的AD转换功能一个引脚接多个按键,根据电阻分压原理判断是哪个按键按下。 2、中断形式 STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n(8位,但是STM32中只使用4位,高4位有效),每4个通道的8位中断优先级控制字构成一个32位的优先级寄存器。68个通道的优先级控制字至少构成17个32位的优先级寄存器. 4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级。按照这种分组,4bit一共可以分成5组 第0组:所有4bit用于指定响应优先级; 第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级; 第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级; 第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级; 第4组:所有4位用于指定抢占式优先级。 所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套。 当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。每一个中断源都必须定义2个优先级。 有几点需要注意的是: 1)如果指定的抢占式优先级别或响应优先级别超出了选定的优先级分组所限定的范围,将可能得到意想不到的结果; 2)抢占式优先级别相同的中断源之间没有嵌套关系; 3)如果某个中断源被指定为某个抢占式优先级别,又没有其它中断源处于同一个抢占式优先级别,则可以为这个中断源指定任意有效的响应优先级别。 GPIO外部中断: STM32中,每一个GPIO都可以触发一个外部中断,但是,GPIO的中断是以组为一个单位的,同组间的外部中断同一时间智能使用一个,如:PA0,PB0,PC0,PD0,PE0,PF0这些为1组,如果我们使用PA0作为外部中断源,那么别的就不能使用了,在此情况下我们使用类似于PB1,PC2这种末端序号不同的外部中断源,每一组使用一个中断标志EXTI x.EXTI0~EXTI4这5个外部中断有着自己单独的中断响应函数。EXTI5~EXTI9共用一个中断响应函数,EXTI10~EXTI15共使用一个中断响应函数。 对于中断的控制,STM32有一个专用的管理机构NVIC.中断的使能,挂起,优先级,活动等等都是由NVIC在管理的。 编写IO口外部中断步骤及其注意事项:

51单片机键盘设置

\\\§8.3 键盘接口技术 一、键盘输入应解决的问题 键盘是一组按键的集合,它是最常用的单片机输入设备. 操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。 键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。 键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘, 如:ASCⅡ码键盘、BCD码键盘等; 靠软件识别的称为非编码键盘。 在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。 本节着重讨论非编码键盘的原理、接口技术和程序设计。 键盘中每个按键都是—个常开关电路,如图所示。

1.按键的确认:P1.7=1 无按键; P1.7=0 有按键; 2.去抖动 去抖动的方法: ①硬件去抖动采用RS触发器: 优点: 速度快,实时, 缺点: 增加了硬件成本 ②软件去抖动采用延时方法 延时5—10ms 延时5—10ms P1.7=0 确认P1.7=0 P1.7=1 (去前沿抖动) (去后沿抖动) 二、独立式键盘

每个I/O口连接一个按,S1 P1.0 S2 P1.1 ………………………. S8 P1.7 软件: START:MOV P1,#0FFH ;置P1口为高电平 JNB P1.0, RS1 ; S1按下,程序去执行RS1 JNB P1.1, RS2 ; S2按下,程序去执行RS2

JNB P1.2, RS3 ; S3按下,程序去执行RS3 JNB P1.3, RS4 ; S4按下,程序去执行RS4 JNB P1.4, RS5 ; S5按下,程序去执行RS5 JNB P1.5, RS6 ; S6按下,程序去执行RS6 JNB P1.6, RS7 ; S7按下,程序去执行RS7 JNB P1.7, RS8 ; S8按下,程序去执行RS8 AJMP START ; 继续扫描按键 …………. RS1: AJMP PK1 ; RS2: AJMP PK2 ; RS3: AJMP PK3 ; RS4: AJMP PK4 ; RS5: AJMP PK5 ; RS6: AJMP PK6 ; RS7: AJMP PK7 ; RS8: AJMP PK8 ; AJMP START ; 无键按下,继续扫描………………… PK1: ……….. ;按键S1功能处理程序 AJMP START ;处理S1按键后, 继续扫描PK2: ……….. ;按键S2功能处理程序

单片机按键连接方法

单片机按键连接方法总结(五种按键扩展方案详细介绍) 单片机在各种领域运用相当广泛,而作为人机交流的按键设计也有很多种。不同的设计方法,有着不同的优缺点。而又由于单片机I/O资源有限,如何用最少的I/O口扩展更多的按键是我所研究的问题。接下来我给大家展示几种自己觉得比较好的按键扩展方案,大家可以在以后的单片机电路设计中灵活运用。 1)、第一种是最为常见的,也就是一个I/O口对应一个按钮开关。 这种方案是一对一的,一个I/O口对应一个按键。这里P00到P04,都外接了一个上拉电阻,在没有开关按下的时候,是高电平,一旦有按键按下,就被拉成低电平。这种方案优点是电路简单可靠,程序设计也很简单。缺点是占用I/O资源多。如果单片机资源够多,不紧缺,推荐使用这种方案。 2)、第二种方案也比较常见,但是比第一种的资源利用率要高,硬件电路也不复杂。 这是一种矩阵式键盘,用8个I/O控制了16个按钮开关,优点显而易见。当然这种电路的程序设计相对也还是很简单的。由P00到P03循环输出低电平,然后检测P04到P07的状态。比方说这里P00到P03口输出1000,然后检测P04到P07,如果P04为1则说明按下的键为s1,如果P05为1则说明按下的是s2等等。为了电路的可靠,也可以和第一种方案一样加上上拉电阻。 3)、第三种是我自己搞的一种方案,可以使用4个I/O控制8个按键,电路多了一些二极管,稍微复杂了一点。 这个电路的原理很简单,就是利用二极管的单向导电性。也是和上面的方案一样,程序需要采用轮训的方法。比方说,先置P00到P03都为低电平,然后把P00置为高电平,接着查询P02和P03的状态,如果P02为高则说明按下的是s5,若P03为高则说明按下的是s6,然后再让P00为低,P01为高,同样检测P02和P03的状态。接下来分别让P02和P03为高,其他为低,分别检测P00和P01的状态,然后再做判断。这种方案的程序其实也不难。 4)这是我在一本书上看到的,感觉设计的非常巧妙,同样它也用到了二极管,不过比我的上一种方案的I/O利用率更高,他用4个I/O口控制了12个按键。我相信你了解了之后也会惊奇的。 首先好好品味一下这个方案吧,想想怎么来识别按键呢!

基于单片机的模拟手机键盘

信息工程学院课程设计报告书题目: 基于单片机的模拟手机键盘 专业:电子信息科学与技术 班级: _ 学号: 学生姓名: _ 指导教师: 2013年 10月 18日

信息工程学院课程设计任务书

信息工程学院课程设计成绩评定表

摘要 本文是做基于89C52单片机的手机键盘的设计;利用P0端3*4的键值来模拟手机键盘中的数字,将采用编程的方法来实现使用12个键来做到0到9的数字输出和退位清零,并在液晶屏上显示。手机作为现代移动通信的载体,其技术也得到了很大的发展,手机的键盘布局已经成了各大厂商门竞争的主要方面,本次设计提高了我们对单片机的操作能力,让我们更加认识到单片机的广阔前景,对于我们更加深入学习和了解单片机提供了极大的帮助。关键词:矩阵键盘,LCD液晶屏,89C52单片机。

目录 1 任务提出与方案论证.............................................................................................................. - 2 - 1.1方案一...................................................................................................................... - 2 - 1.2 方案二.......................................................................................................................... - 2 - 1.3方案对比与选择............................................................................................................ - 2 - 2. 系统硬件电路的设计............................................................................................................. - 4 - 2.1 微处理器的选择........................................................................................................... - 4 - 2.2单片机的基本机构........................................................................................................ - 4 - 2.3键盘接口电路................................................................................................................ - 5 - 2.4消除抖动........................................................................................................................ - 6 - 3 详细设计.................................................................................................................................. - 7 - 3.1程序流程设计............................................................................................................... - 7 - 3.2硬件电路设计............................................................................................................... - 8 - 4 总结 ......................................................................................................................................... - 9 -参考文献.................................................................................................................................... - 10 -附录 ........................................................................................................................................... - 11 -

单片机按键识别方法之一

单片机按键识别方法之一 1.实验任务 每按下一次开关SP1,计数值加1,通过AT89S51单片机的P1端口的P1.0到P1.3显示出其的二进制计数值。 2.电路原理图 图4.8.1 3.系统板上硬件连线 (1.把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上;

(2.把“单片机系统”区域中的P1.0-P1.4端口用8芯排线连接到“八路发光二极管指示模块”区域中的“L1-L8”端口上;要求,P1.0连接到L1,P1.1连接到L2,P1.2连接到L3,P1.3连接到L4上。 4.程序设计方法 (1.其实,作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说, 当我们按下一个按键 时,总希望某个命令只 执行一次,而在按键按 下的过程中,不要有干 扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。 因此在按键按下的时候,图4.8.2 要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况 下,我们可以采用电容来滤除掉这些干扰信号,但实际上,会增加硬件成本及 硬件电路的体积,这是我们不希望,总得有个办法解决这个问题,因此我们可 以采用软件滤波的方法去除这些干扰信号,一般情况下,一个按键按下的时候, 总是在按下的时刻存在着一定的干扰信号,按下之后就基本上进入了稳定的状 态。具体的一个按键从按下到释放的全过程的信号图如上图所示: 从图中可以看出,我们在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU 就认为是误触发信号而舍弃这次的按键识别过程。从而提高了系统的可靠性。 由于要求每按下一次,命令被执行一次,直到下一次再按下的时候,再执行一次命令,因此从按键被识别出来之后,我们就可以执行这次的命令,所以要有一个等待按键释放的过程,显然释放的过程,就是使其恢复成高电平状态。

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