8255控制键盘与显示

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

2011-2012学年第一学期电信学院计算机系

实验报告

课程名称微机原理及接口技术实验名称8255控制键盘与显示班级

学号

姓名

一、实验目的

1、掌握8255输入、输出编程方法。

2、掌握阵列键盘和数码管动态扫描显示的控制方法。

二、实验内容

用8255可编程并行口做一个键盘、显示扫描实验,把按键输入的键值,显示在8255控制的七段数码管上。8255 PB口做键盘的输入线,PC 口显示扫描线,PA口做显示数据线。

三、实验要求

根据实验内容编写一个程序,并在实验仪器上调试和验证。

四、实验电路工作原理

本实验需要用到CPU模块(F3区)、8255模块(C6区)、8279键盘与显示模块(E7区)。8255键盘与显示电路原理图参见图。

CS_8255接8000H,则8255状态/命令口地址8003H,PA口地址为8000H,PB口地址为8001H。

五、实验步骤

1)系统各跳线器处在初始设置状态,S11E和S12E红开关全部打到下方(OFF)。

2)用8位数据线对应连接8255模块的JD3C(PA口)、JD4C(PB 口)、JD5C(PC口)到8279模块的JD3E、JD2E、JD4E;

用导线连接8255模块的CS_8255到地。

3)启动PC机,打开THGMW-51软件,输入源程序,并编译源程序。变异无误后,下程序运行。

4)、在键盘上按任一单键,观察数码管的显示,数码管地位显示按键值。

六、程序及注释

;//*********************************************************

;文件名: 8255KD for MCU51

;功能: 8255控制键盘显示实验

;接线: 连接8279键盘显示模块的JD3E到8255模块的JD3C(PA口);

; JD2E到8255模块的JD4C(PB口);

; JD4E到8255模块的JD5C(PC口);

; 用导线连接CPU模块的8000H到8255模块的CS_8255。

;//*********************************************************

;---------------------------------------------------------

D8255A EQU 8000H ;8255 PA 口地址

D8255B EQU 8001H ;8255 PB 口地址

D8255C EQU 8002H ;8255 PC 口地址

D8255 EQU 8003H ;8255 状态/命令口地址

LEDBUF EQU 50H ;显示缓存

KEYVAL EQU 60H ;读到的键码

;---------------------------------------------------------

ORG 0000H

LJMP START

ORG 0100H

START: MOV SP,#80H

MOV DPTR,#D8255

MOV A,#90H ;方式0,PB,PC口输出,PA口输入

MOVX @DPTR,A

MOV LEDBUF,#10H

MOV LEDBUF+1,#11H

MOV LEDBUF+2,#11H

MOV LEDBUF+3,#11H

MOV LEDBUF+4,#5

MOV LEDBUF+5,#5

MOV LEDBUF+6,#2

MOV LEDBUF+7,#8

KB_DIS:

LCALL RD_KB ;读键盘

MOV A,#0FFH

CJNE A,KEYVAL,TOSHOW ;判读到键

SJMP SHOW ;没有则继续读键TOSHOW:

MOV LEDBUF,KEYVAL

SHOW: LCALL DISPLAY

SJMP KB_DIS

RD_KB: ;键盘扫描

MOV A,#02H ;扫描第一行

MOV DPTR,#D8255C

MOVX @DPTR,A

MOV DPTR,#D8255A

MOVX A,@DPTR

MOV R1,#00H

CJNE A,#0FFH,KEYCAL ;判键是否按下

MOV A,#01H ;扫描第二行

MOV DPTR,#D8255C

MOVX @DPTR,A

MOV DPTR,#D8255A

MOVX A,@DPTR

MOV R1,#08H

CJNE A,#0FFH,KEYCAL

SJMP NOKEY ;无键按下KEYCAL: MOV R0,#08H ;计算键码SHIFT: RRC A

JNC TORET

INC R1

DJNZ R0,SHIFT

SJMP NOKEY ;无键按下

TORET: MOV KEYVAL,R1

RET

NOKEY: MOV KEYVAL,#0FFH ;返回无键标志RET

Display:

MOV R7,#8 ;8个数码管

MOV R5,#0

MOV R0,#LEDBUF

DLOOP:

MOV A,R5

RL A

RL A

RL A

ANL A,#11111011B

相关文档
最新文档