哈工大单片机实验报告 下载本文

内容发布更新时间 : 2024/11/5 12:51:42星期一 下面是文章的全部内容请认真阅读。

转换前内存单元内容 转换后BCD码

0020H-0022H单元中中存放的250即为二进制数FAH转换后得到的BCD码。

六、实验源程序

ORG 0000H LJMP MAIN ORG 100H MAIN: CLR A MOV R5, A MOV R6, A MOV A, #0FAH MOV B, #64H DIV AB MOV 20H, A MOV A, B MOV B, #0AH DIV AB MOV 21H, A MOV 22H, B

SJMP $

END

实验十四 键盘扫描显示实验

一、实验要求

在上一个实验的基础上,利用实验系统提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。

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

①键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。 ②显示模块:将显示单元的内容在显示器上动态显示。 ③主程序:调用键输入模块和显示模块。

二、实验目的

-24-

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

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

三、实验说明

本实验系统自带一个8×4的键盘,在判断有键按下后,要有一定的延时,防止键盘抖动。

四、程序框图

五、实验步骤

在联机状态下,编译、连接、下载、连续运行se14.asm,利用实验系统的显示设备、键盘实现按键的输入并送至显示设备输出。按“暂停图标”,系统无条件退出该程序运行返回监控状态。

六、实验结果和分析

在运行完实验程序之后,LED灯左四位显示good,利用键盘输入数字,LED灯就会在右边显示出输入的数字。由于已经用软件方法消除了键盘抖动,所以不存在多次响应一次键盘按下的情况。

七、实验源程序

;********************************************** ; MCS-51系列单片机仿真实验系统 软件实验项目 ; 键盘扫描显示实验

;********************************************** OUTBIT equ 0ffddh ;位控制口/键扫口 OUTSEG equ 0ffdch ;段控制口 IN equ 0ffdeh ;键盘读入口 LedBuf equ 60h ;显示缓冲 org 0 Start:

mov sp,#40h

-25-

mov LedBuf+0,#0c2h ;显示\ mov LedBuf+1,#0a3h mov LedBuf+2,#0a3h mov LedBuf+3,#0a1h mov LedBuf+4,#0ffh mov LedBuf+5,#0ffh MLoop:

call DisplayLED call GetKey jb acc.5,MLoop jb acc.4,MLoop

anl a,#00001111b mov dptr,#LedMap movc a,@a+dptr mov LedBuf+5,a sjmp MLoop

Delay: mov r7,#0 DelayLoop:

djnz r7,DelayLoop djnz r6,DelayLoop ret DisplayLED:

mov r0,#LedBuf

mov r1,#6 mov r2,#00100000b Loop:

mov dptr,#OUTBIT mov a,#0

movx @dptr,a mov a,@r0 mov dptr,#OUTSEG movx @dptr,a

;显示

;扫描键盘并读取键值 ;显示键码 ;延时子程序 ;共6个八段管 ;从左边开始显示 ;关所有八段管 -26-

mov dptr,#OUTBIT mov a,r2

movx @dptr,a ;显示一位八段管 mov r6,#1 call Delay

mov a,r2 ;显示下一位 rr a mov r2,a inc r0 djnz r1,Loop ret GetKey:

call ScanKey mov r4,a mov r1,#48h mov a,@r1 mov r2,a inc r1 mov a,@r1 mov r3,a mov a,r4 xrl a,r3 mov r3,04h mov r4,02h jz Key1 mov r2,#88h mov r4,#88h Key1: dec r4 mov a,r4 xrl a,#82h jz Key2 mov a,r4 xrl a,#0eh jz Key2

-27-