键盘模块控制实验原理及分析报告.docx

上传人:b****2 文档编号:2144817 上传时间:2023-05-02 格式:DOCX 页数:19 大小:1.24MB
下载 相关 举报
键盘模块控制实验原理及分析报告.docx_第1页
第1页 / 共19页
键盘模块控制实验原理及分析报告.docx_第2页
第2页 / 共19页
键盘模块控制实验原理及分析报告.docx_第3页
第3页 / 共19页
键盘模块控制实验原理及分析报告.docx_第4页
第4页 / 共19页
键盘模块控制实验原理及分析报告.docx_第5页
第5页 / 共19页
键盘模块控制实验原理及分析报告.docx_第6页
第6页 / 共19页
键盘模块控制实验原理及分析报告.docx_第7页
第7页 / 共19页
键盘模块控制实验原理及分析报告.docx_第8页
第8页 / 共19页
键盘模块控制实验原理及分析报告.docx_第9页
第9页 / 共19页
键盘模块控制实验原理及分析报告.docx_第10页
第10页 / 共19页
键盘模块控制实验原理及分析报告.docx_第11页
第11页 / 共19页
键盘模块控制实验原理及分析报告.docx_第12页
第12页 / 共19页
键盘模块控制实验原理及分析报告.docx_第13页
第13页 / 共19页
键盘模块控制实验原理及分析报告.docx_第14页
第14页 / 共19页
键盘模块控制实验原理及分析报告.docx_第15页
第15页 / 共19页
键盘模块控制实验原理及分析报告.docx_第16页
第16页 / 共19页
键盘模块控制实验原理及分析报告.docx_第17页
第17页 / 共19页
键盘模块控制实验原理及分析报告.docx_第18页
第18页 / 共19页
键盘模块控制实验原理及分析报告.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

键盘模块控制实验原理及分析报告.docx

《键盘模块控制实验原理及分析报告.docx》由会员分享,可在线阅读,更多相关《键盘模块控制实验原理及分析报告.docx(19页珍藏版)》请在冰点文库上搜索。

键盘模块控制实验原理及分析报告.docx

键盘模块控制实验原理及分析报告

 

 

 

键盘模块控制实验原理及分析报告

 

学院计算机工程学院

专业计算机科学与技术

年级班别09计算机科学与技术1班

学号2009404010150

学生姓名柯森

指导教师李永

 

2012年1月1日

 

目录

1、实验目标、实验要求和实验器材…………………………………3

二、实验原理……………………………………………………………3

三、芯片的使用介绍及其在实验中的作用……………………………5

四、实验流程图…………………………………………………………7

五、实验代码及分析……………………………………………………8

六、实验现象的分析说明………………………………………………14

七、实验感想……………………………………………………………14

 

 

一、实验目标、实验要求和实验器材

实验目标:

1、掌握键盘和显示器的接口方法和编程方法。

2、掌握键盘扫描和LED八段数码管显示器的工作原理。

3、了解数码管动态显示的原理。

4、了解74LS164扩展端口的方法。

实验要求:

本课程设计所用实验器材主要有计算机和恒科KeilC超级仿真器的超想-3000TC综合/仿真系统实验箱。

使用KeiluVision2软件编写、编译、运行实验程序。

实验仪器和软件都符合设计要求后,将程序下载到实验箱芯片中,则可观察到预期的实验效果,即当按下某一键时,在数码管上显示该键对应的键值。

实验器材:

1、超想-3000TC综合实验仪1台

2、KEIL仿真器1台

3、计算机1台

二、实验原理

实验程序可分成三个模块:

1、键输入模块:

扫描键盘、读取一次键盘并将键值存入键值缓冲单元。

2、显示模块:

将显示单元的内容在显示器上动态显示。

3、主程序:

调用键输入模块和显示模块。

细分为:

1、实验仪提供了8段码数码管LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,采用动态方式显示。

8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。

6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。

写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。

本实验涉及到了8155I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。

2、七段数码管的字型代码表如下表:

显示字形

g

f

e

d

c

b

a

段码

0

0

1

1

1

1

1

1

3fh

1

0

0

0

0

1

1

0

06h

2

1

0

1

1

0

1

1

5bh

a

fb

g

ec

d

dp

3

1

0

0

1

1

1

1

4fh

4

1

1

0

0

1

1

0

66h

5

1

1

0

1

1

0

1

6dh

6

1

1

1

1

1

0

1

7dh

7

0

0

0

0

1

1

1

07h

8

1

1

1

1

1

1

1

7fh

9

1

1

0

1

1

1

1

6fh

A

1

1

1

0

1

1

1

77h

B

1

1

1

1

1

0

0

7ch

C

0

1

1

1

0

0

1

39h

D

1

0

1

1

1

1

0

5eh

E

1

1

1

1

0

0

1

79h

F

1

1

1

0

0

0

1

71h

 

3、本实验仪提供了一个6×4的小键盘,向列扫描码地址(0e101H)逐列输出低电平,然后从行码地址(0e103H)读回,如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高.这样就可以通过输出的列码和读取的行码来判断按下的是什么键。

在判断有键按下后,要有一定的延时,防止键盘抖动。

列扫描码还可以分时用作LED的位选通信号。

 

三、芯片的使用介绍及其在实验中的作用

1、8051端口草图

2、8051/8052单片机功能方框图

 

3、试验箱6×4键盘和八段显示屏

试验箱6×4键盘和八段显示屏实拍图

键盘草图

八端数码显示管草图

 

4、8155键显模块原理图

四、实验流程图

1、八段数码管显示程序框图

 

 

2、读键输入子程序框图

 

3、主程序框图

 

五、实验代码及分析

;键盘扫描实验

OUTBITequ0e101h;位控制口

CLK164equ0e102h;段控制口(接164时钟位)

DAT164equ0e102h;段控制口(接164数据位)

INequ0e103h;键盘读入口

ORG0000H

LJMPSTAR

;=====================================================================

KEY1:

MOV13H,#06H

MOV12H,#20H

KEY2:

MOVA,12H

CPLA

MOVR7,A

MOVDPTR,#0E101H

MOVA,R7

MOVX@DPTR,A

MOVA,12H

CLRC

RRCA

MOV12H,A

MOVDPTR,#0E103H

MOVXA,@DPTR

MOVR7,A

MOVA,R7

CPLA

MOVR7,A

MOVA,R7

ANLA,#0FH

MOV14H,A

DEC13H

MOVR7,13H

MOVA,R7

JZKEYDIS

MOVA,14H

JZKEY2

KEYDIS:

MOVA,14H

JZTESTKEY5

MOVA,13H

ADDA,ACC

ADDA,ACC

MOV13H,A

MOVA,14H

JNBACC.1,TESTKEY

INC13H

SJMPTESTKEY2

;;=================================================

;键盘扫描

TESTKEY:

MOVA,14H

JNBACC.2,TESTKEY1

INC13H

INC13H

SJMPTESTKEY2

TESTKEY1:

MOVA,14H

JNBACC.3,TESTKEY2

MOVA,#03H

ADDA,13H

MOV13H,A

TESTKEY2:

MOVDPTR,#0E101H

CLRA

MOVX@DPTR,A

TESTKEY3:

MOVR7,#0AH

LCALLMLOOP

LCALLMLOOP4

MOVA,R7

JNZTESTKEY3

MOVR7,13H

MOVA,R7

MOVDPTR,#0134H

MOVCA,@A+DPTR

MOVR7,A

RET

;=====================================================================

TESTKEY4:

DB22H;"

;=====================================================================

TESTKEY5:

MOVR7,#0FFH

RET

;=====================================================================

GETKEY:

MOV10H,#20H

MOV0EH,#00H

GETKEY1:

MOVA,0EH

CLRC

SUBBA,#06H

JNCGOON2

MOVDPTR,#0E101H

CLRA

MOVX@DPTR,A

MOVR7,0EH

MOVA,#08H

ADDA,R7

MOVR0,A

MOVA,@R0

MOVR7,A

MOV11H,R7

MOV0FH,#00H

GETKEY2:

MOVA,0FH

CLRC

SUBBA,#08H

JNCGOON1

MOVA,11H

JNBACC.7,KLOOP

MOVDPTR,#0E102H

MOVA,#01H

MOVX@DPTR,A

SJMPKLOOP1

;;==========================================

KLOOP:

MOVDPTR,#0E102H

CLRA

MOVX@DPTR,A

KLOOP1:

MOVDPTR,#0E102H

MOVXA,@DPTR

MOVR7,A

MOVA,R7

ORLA,#02H

MOVR7,A

MOVA,R7

MOVX@DPTR,A

MOVDPTR,#0E102H

MOVXA,@DPTR

MOVR7,A

MOVA,R7

ANLA,#0FDH

MOVR7,A

MOVA,R7

MOVX@DPTR,A

MOVA,11H

ADDA,ACC

MOV11H,A

INC0FH

SJMPGETKEY2

GOON1:

MOVDPTR,#0E101H

MOVA,10H

MOVX@DPTR,A

MOVR7,#01H

LCALLMLOOP

MOVA,10H

CLRC

RRCA

MOV10H,A

INC0EH

SJMPGETKEY1

GOON2:

RET

;=====================================================================

WAIT:

MOVDPTR,#0E100H

MOVA,#03H

MOVX@DPTR,A

MOV08H,#0FFH

MOV09H,#0FFH

MOV0AH,#0FFH

MOV0BH,#0FFH

MOV0CH,#00H

MOV0DH,#00H

WAIT1:

LCALLGETKEY

LCALLMLOOP4

MOVA,R7

JZWAIT1

LCALLKEY1

MOVR6,#00H

MOVR6,#00H

MOVA,R7

ANLA,#0FH

MOVR7,A

MOVA,#24H

ADDA,R7

MOVDPL,A

MOVA,#01H

ADDCA,R6

MOVDPH,A

CLRA

MOVCA,@A+DPTR

MOVR7,A

MOV0DH,R7

SJMPWAIT1

RET

;=====================================================================

TAB:

Q0124:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;?

.[Ofm}.

Q012C:

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;ow|9^yq

Q0134:

DB00H,01H,04H,07H,0FH,02H,05H,08H;........

Q013C:

DB0EH,03H,06H,09H,0DH,0CH,0BH,0AH;........

Q0144:

DB10H,11H,12H,13H,14H,15H,16H;.......

;=====================================================================

MLOOP:

MOV15H,R7

MLOOP1:

MOVR7,15H

DEC15H

MOVA,R7

JZMLOOP3

MOV16H,#64H

MLOOP2:

MOVA,16H

JZMLOOP1

DEC16H

SJMPMLOOP2

SJMPMLOOP1

MLOOP3:

RET

;=====================================================================

MLOOP4:

MOVDPTR,#0E101H

CLRA

MOVX@DPTR,A

MOVDPTR,#0E103H

MOVXA,@DPTR

MOVR7,A

MOVA,R7

CPLA

MOVR7,A

MOVA,R7

ANLA,#0FH

MOVR7,A

RET

;=====================================================================

STAR:

MOVR0,#7FH

CLRA

STAR1:

MOV@R0,A

DJNZR0,STAR1

MOVSP,#16H

LJMPWAIT

END

;==============================================================

 

6、实验现象的分析说明

将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。

进入KEIL软件界面,点击项目/打开项目,在C:

\KEIL\UV2\3000TC51配套实验例程中选择实验二“键盘扫描实验”,内有ASM和C51两种程序,进入ASM文件夹打开LED项目文件。

点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”,运行无误后就可以在试验箱上操作了。

在试验箱的键盘上按下某个按键,可以看到在八端数码显示管上显示按键上相应的符号。

松开按键后,再按其他键,八端数码显示管上变为显示其他的符号。

当把程序中的防抖动子程序模块注释掉后,发现按下键盘后,八端数码显示管上显示的符号变得不稳定,这证明了防抖动程序的正确性和必要性。

7、实验感想

通过这次课程设计,我不仅加深了对MCS-51/52单片机原理与应用这门课程的理解,从开始的知识听说该课程的懵懂,到课程设计完成之后真正明白了该课程的实践与应用的联系,这些实验箱的强大之处,更加加深了我对该课程的兴趣。

在课程设计过程中,从第一步的八段数码显示管程序的原理,我遇到了很多问题,但是经过老师的讲解和后期学习的不断深入,开始逐渐瞥见单片机的趣味。

在随后老师的耐心指导和同学们的帮助之下我克服了一个又一个得困难,逐渐把整个键盘扫描的程序弄明白了。

在后来实验室里做过实验之后,我进一步理解了这个程序的原理。

总之,通过了这次课程设计,不仅加深了我对单片机这门课程的了解与应用,而且让我掌握了汇编语言的使用,更重要的是使我对该课程产生了更加浓厚的兴趣,这是一次让我收获颇丰的课程设计。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2