AT89C51单片机键盘接口实验

合集下载

06 12864LCD显示计算器键盘按键实验

06 12864LCD显示计算器键盘按键实验

目录1 课程设计概述和要求 (1)1.1 课程设计要求与任务 (2)1.2 课程设计思路 (2)1.3 课程设计需要配置的环境 (3)2 系统设计 (3)2.1 设计框图 (3)2.2 元件解析 (3)2.2.1 LCD12864芯片……………………………………………………………42.2.2 AT89C51芯片 (5)2.2.3 其他部件 (6)2.2.4 电路分析 (7)3 软件设计 (12)3.1 程序流程图 (12)3.2 程序代码 (12)4 系统的仿真与调试 (13)4.1 硬件调试 (13)4.2 软件调试 (14)4.3 软硬件调试 (14)5 总结 (14)附录1:程序代码附录2:12864LCD显示计算器键盘按键实验Proteus仿真图1 课程设计概述和要求1.1 课程设计任务与要求设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。

设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键2.利用AT89C51控制整个电路来实现. 显示12864LCD显示器设计计算器键盘按键,系统主要包括硬件和软件两部分。

重点就是各部分硬件的连接设计以及程序的编写。

本章讲述的就是系统硬件的设计,其中包括各模块的器件选择和电路设计。

将计算器按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显示于12864LCD液晶显示屏上。

1.2 课程设计目的思路1、先把与题目有关的芯片资料找到,熟悉一下芯片资料2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。

3、分析一下此程序的各部分的功能,各零件的工作原理。

4、对程序进行调试,分析调试结果,观察并得出结论。

1.3 课程设计需要配置的环境1、一台主机,一台显示器2、Keil uVision3/Keil uVision4 应用程序软件3、ISIS 7 Professional 仿真软件4、老师交给的仿真电路图,及案例5、纸张,以及一些参考资料2 系统设计2.1.设计框图框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。

单片机c语言程序设计---矩阵式键盘实验报告

单片机c语言程序设计---矩阵式键盘实验报告

单片机c语言程序设计---矩阵式键盘实验报告课程名称:单片机c语言设计实验类型:设计型实验实验项目名称:矩阵式键盘实验一、实验目的和要求1.掌握矩阵式键盘结构2.掌握矩阵式键盘工作原理3.掌握矩阵式键盘的两种常用编程方法,即扫描法和反转法二、实验内容和原理实验1.矩阵式键盘实验功能:用数码管显示4*4矩阵式键盘的按键值,当K1按下后,数码管显示数字0,当K2按下后,显示为1,以此类推,当按下K16,显示F。

(1)硬件设计电路原理图如下仿真所需元器件(2)proteus仿真通过Keil编译后,利用protues软件进行仿真。

在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。

启动仿真,观察仿真结果。

操作方完成矩阵式键盘实验。

具体包括绘制仿真电路图、编写c源程序(反转法和扫描法)、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。

完成思考题。

三、实验方法与实验步骤1.按照硬件设计在protues上按照所给硬件设计绘制电路图。

2.在keil上进行编译后生成“xxx.hex”文件。

3.编译好的“xxx.hex”文件加入AT89C51。

启动仿真,观察仿真结果。

四、实验结果与分析void Scan_line()//扫描行{Delay(10);//消抖switch ( P1 ){case 0x0e: i=1;break;case 0x0d: i=2;break;case 0x0b: i=3;break;case 0x07: i=4;break;default: i=0;//未按下break;}}void Scan_list()//扫描列{Delay(10);//消抖switch ( P1 ){case 0x70: j=1;break;case 0xb0: j=2;break;case 0xd0: j=3;break;case 0xe0: j=4;break;default: j=0;//未按下break;}}void Show_Key(){if( i != 0 && j != 0 ) P0=table[ ( i - 1 ) * 4 + j - 1 ];else P0=0xff;}五、讨论和心得。

at89c51实验报告

at89c51实验报告

at89c51实验报告AT89C51实验报告引言:AT89C51是一款经典的8位单片机,被广泛应用于各种嵌入式系统中。

本实验报告将介绍我对AT89C51的实验过程和结果,以及对该单片机的一些理解和应用。

实验目的:1. 熟悉AT89C51单片机的基本特性和功能;2. 掌握AT89C51单片机的编程方法和调试技巧;3. 实现简单的功能模块并验证其正确性。

实验过程:1. 硬件准备在实验开始前,我准备了一块AT89C51开发板、一台电脑、一根USB数据线以及一些连接线。

将开发板与电脑连接,确保能够正常通信和编程。

2. 软件设置我选择了Keil C51作为开发工具,打开软件后,新建一个工程,并选择AT89C51作为目标芯片。

接着,我编写了一个简单的程序,用于点亮开发板上的LED灯。

3. 编程调试将编写好的程序下载到AT89C51单片机中,然后通过调试工具进行程序的调试和运行。

在调试过程中,我发现程序中存在一处错误,经过仔细排查后,成功修复了问题。

4. 功能实现在程序调试通过后,我开始尝试实现一些功能模块。

首先,我实现了一个简单的计数器,通过按下开发板上的按钮,可以实现数字的加减操作。

接着,我尝试了一些其他的功能,如LED灯的闪烁、蜂鸣器的发声等。

实验结果:经过一系列的实验和调试,我成功地实现了以上功能模块,并验证了其正确性。

AT89C51单片机表现出了良好的稳定性和可靠性,在进行各种操作时没有出现明显的延迟或错误。

对AT89C51的理解和应用:通过这次实验,我对AT89C51单片机有了更深入的了解。

AT89C51作为一款经典的8位单片机,具有较强的处理能力和丰富的外设接口,可以广泛应用于各种嵌入式系统中。

在实际应用中,AT89C51可以用来控制各种外设,如LED灯、LCD显示屏、温度传感器等。

通过编写相应的程序,可以实现各种功能,如数据采集、数据处理、控制操作等。

此外,AT89C51还支持多种通信协议,如UART、SPI、I2C等,可以与其他设备进行数据交互。

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。

本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。

设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。

显示采用字符LCD静态显示。

软件方面使用C语言编程,并用PROTUES仿真。

一、总体设计根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。

通过扩展必要的外围接口电路,实现对计算器的设计。

具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。

》(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。

(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。

(4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。

系统模块图:二、硬件设计(一)、总体硬件设计/本设计选用AT89C51单片机为主控单元。

显示部分:采用LCD 静态显示。

按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。

总体设计效果如下图:(二)、键盘接口电路计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。

第9章AT89C51单片机扩展IO接口的设计

第9章AT89C51单片机扩展IO接口的设计

第9章AT89C51单片机扩展IO接口的设计第9章 AT89C51单片机扩展I/O接口的设计1.判断下列说法是否正确,为什么?(1)由于81C55不具有地址锁存功能,因此在与AT89C51芯片的接口电路中必须加地址锁存器。

(2)在81C55芯片中,决定端口和RAM单元编址的信号是AD7~AD0和WR。

(3)82C55具有三态缓冲器,因此可以直接挂在系统的数据总线上。

(4)82C55的PB口可以设置成方式2。

答:(1)错,81C55具有地址锁存功能。

(2)错,在81C55芯片中,引脚IO/M*、A2、A1、A0决定端口地址和RAM 单元编址。

(3)错,82C55不具有三态缓冲器。

(4)错,82C55的PB口只可以设置成方式0和方式1。

2.I/O接口和I/O端口有什么区别?I/O接口的功能是什么?答:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器。

I/O接口是指单片机与外设间的I/O接口芯片。

I/O接口的功能:(1)实现和不同外设的速度匹配;(2)输出数据缓存;(3)输入数据三态缓冲。

3.I/O数据传送由哪几种传送方式?分别在哪些场合下使用?答:(1)同步传送方式。

同步传送又称无条件传送。

当外设速度可与单片机速度相比拟时,常常采用这种方式。

最典型的同步传送就是单片机和外部数据存储器之间的数据传送。

(2)查询传送方式。

查询传送又称有条件传送,也称异步传送。

单片机通过查询得知外设准备好后,再进行数据传送。

异步传送的优点是通用性好,硬件连线和查询程序十分简单,但是效率不高。

为了提高单片机的工作效率,通常采用中断方式。

(3)中断传送方式。

中断传送方式是利用AT89C51本身的中断功能和I/O 接口的中断功能来实现I/O数据的传送。

单片机只有在外设准备好后,发出数据传送请求,才中断主程序,进入与外设进行数据传送的中断服务程序,进行数据的传送。

中断服务完成后又返回主程序继续执行。

因此,采用中断方式可以大大提高单片机的工作效率。

51单片机按键电路

51单片机按键电路

51单片机键盘接口电路(含源程序)键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。

一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。

按钮开关的抖动问题组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。

在下图中,当开<键盘结构图>图1图2关S未被按下时,P1。

0输入为高电平,S闭合后,P1。

0输入为低电平。

由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1。

0输入端的波形如图2所示。

这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。

前面我们讲到中断时曾有个问题,就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。

为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。

单片机中常用软件法,因此,对于硬件办法我们不介绍。

软件法其实很简单,就是在单片机获得P1。

0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1。

0口,如果仍为低,说明S1的确按下了,这实际上是避开了按钮按下时的抖动时间。

而在检测到按钮释放后(P1。

0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。

不过一般情况下,我们常常不对按钮释放的后沿进行处理,实践证明,也能满足一定的要求。

当然,实际应用中,对按钮的要求也是千差万别,要根据不一样的需要来编制处理程序,但以上是消除键抖动的原则。

51单片机矩阵键盘设计

51单片机矩阵键盘设计

51单片机矩阵键盘设计
一、引言
AT89C51单片机矩阵键盘设计是嵌入式系统中一个重要的技术,它的
作用是以矩阵形式把外部按键与MCU相连,使得系统可以对外部的按键进
行检测和响应。

矩阵键盘设计在可编程嵌入式系统的设计中占有重要的地位,如智能交通系统、智能家居系统、航空电子系统等。

本文主要介绍了矩阵键盘设计中硬件电路的设计,包括按键、拉电阻、和矩阵编码等,同时给出系统的控制算法,使得系统可以实现有效的按键
检测和响应。

二、矩阵键盘概述
矩阵键盘是将多个按键排布成列行形式进行连接,一般来说,矩阵键
盘是由按键、拉电阻、矩阵编码器和控制器组成,按键是系统中重要的部件,其作用是将外部输入信号传递给控制器。

拉电阻起到的作用是防止按
键耦合,一般可以使用4.7KΩ拉电阻来防止按键耦合。

矩阵编码器用来
识别按键的状态,通常通过硬件把按键信号编码为数字信号,输入到处理
器或控制器。

控制器用来实现按键信号的检测,通过定义硬件定时器和软
件定时器,实现按键检测和处理。

1、硬件电路设计
应用AT89C51单片机矩阵键盘。

矩阵式键盘实验报告

矩阵式键盘实验报告

矩阵式键盘实验报告矩阵键盘设计实验报告南京林业大学实验报告基于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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

班级电科081 班姓名龚浪
学号080712110073 实验名称键盘接口实验
指导教师马光喜
理学院
时间:2011年月日
实验九键盘接口实验
(设计性实验)
一、实验目的:
⑴熟悉单片机通过行列键盘的接口方法
⑵掌握键盘扫描及处理程序的编程方法和调试方法
二、实验内容:
程序运行后,根据按下的数字键,数码管上应能显示
相应数字。

三、实验硬件电路
四、实验步骤:
1、进入Keil C51组合软件的操作环境
2、在Keil C51组合软件环境中, 根据实验硬件电路编辑源程序并对源文件进行编译,生成目标代码;
源程序如下:
;EXP9
ORG 0000H
LJMP MAIN
ORG 8000H
;*******检查是否有键按下******************** MAIN: MOV P0,#00
MOV A,P2
ANL A,#0FH
SUBB A,#0FH
JNC MAIN
ACALL DELAY ;延时去抖动
;****寄存器赋初值****************
MOV R2,#4 ;R2记录行数
MOV R3,#4 ;R3记录列数
MOV A,#0FEH ;行扫描初始值
MOV R4,#0FFH ;R4记录键号初值
;*******按键扫描***************************** NEXT1: MOV P0,A
RLC A
MOV R0,A ;修改扫描码并送R0保存
MOV A,P2 ;读入列值
ANL A,#0FH ;清除高4位
CJNE A,#0FH,NEXT2 ;有列值为0,转NEXT2
MOV A,R4
ADD A,R3 ;否则指向该行最后一列
MOV R4,A
MOV A,R0
DJNZ R2,NEXT1 ;扫描下一行
LJMP MAIN
NEXT2: INC R4 ;键号加1
RRC A
JC NEXT2 ;不是按键所在列,转NEXT2使键号加1
MOV A,R4
MOV P3,A ;键号送P3口显示
LJMP MAIN ;转MAIN进行下一次等待扫描
;*********延时函数***************************** DELAY: MOV R7,#2
DELAY1: MOV R6,#100
DELAY2: MOV R5,#200
DELAY3: DJNZ R5,DELAY3
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
END
3、运行、调试程序和结果检查
⑴采用单步,设置断点等方法,观察程序走向是否正确;
⑵连续运行程序,依次按动数字键观察LED的显示是否相符。

部分仿真结果如下所示:
按下第一行第二列开关时:
按下第一行第四列开关时:
按下第三行第三列开关时:
按下第四行第三列开关时:
五、思考题:字型码是如何确定的
因为本实验中使用的是能显示BCD码的数码管,因此只需向P3口送BCD码即可。

六、预习要求:
1.了解键盘接口的功能。

相关文档
最新文档