单片机8279键盘显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
集美大学
计算机工程学院实验报告
课程名称单片机应用技术
实验名称8279键盘显示实验
实验类型设计型
姓名学号
日期地点
成绩教师
第1页共5页
1. 实验目的与要求
1)解8279芯片的结构、工作原理;了解8279与单片机的接口逻辑;掌握对8279 的编程方法,掌握了解8279扩展键盘、显示器的方法
2)认真预习本节实验内容,尝试自行编写程序,填写实验报告。
2. 实验设备
STAR系列实验仪、PC机、星研集成软件环境
3. 实验内容
1编写程序:使用8279实现对G5区的键盘扫描,将键盘显示与8为数码管上
2按图连线,运行程序,观察实验结果,能熟练运用8279扩展显示器和键盘4. 实验硬件电路及接线
4.1电路设计
如下图
4.2实验装置的连线说明
G5 区 A0、CS-------------A3区 A0、CS5
E5区:CS,A0-------------CS5,A0
E5区: CLK---------------B2区2M
E5区: B,C---------------G5区LED:B,C
Protues连线图:
5,程序流程图
流程图:
N
Y N
Y
开始
初始化8279,设置8279分频系数(20分频)8*8字符显示,左边输入,外部译码键扫描
方式清显示,从第一个数码管开始移位显示。 有按键 安满8 次键 清显示 将键值转换为0..F 键号 将键值写入8279
6,程序源代码
BUFFER DATA 30H ;键盘输入缓冲区首地址
BUFFER1 DATA 40H ;8字节显示缓冲区在首地址
CMD8279 XDATA 0BF01H ;8279命令/状态字地址
DATA8279 XDATA 0BF00H ;8279读写数据口地址
KEYCOUNT DATA 50H
ORG0000H
LJMP MAIN
ORG0100H
MAIN:
RUN8279: ACALL INIT ;8279初始化
MOV KEYCOUNT,#0 ;按键个数计数
STAR1: LCALL SCAN_KEY ;键扫描
JNC STAR1 ;无按键则循环
XCH A,KEYCOUNT
INC A
CJNE A,#9,STAR2 ;
MOV KEYCOUNT,#0
LCALL INIT8279_1
SJMP STAR1
STAR2: XCH A,KEYCOUNT
LCALL KEY_NUM
MOV DPTR,#LED_TAB
MOVC A,@A+DPTR
LCALL WRITE_DATA
SJMP STAR1
;8279初始化
INIT: MOV A,#34H ;命令字:分频系数20分频
MOV DPTR,#CMD8279
MOVX @DPTR,A
MOV A,#10H
MOVX @DPTR,A
INIT8279_1: LCALL CLEAR ;清显示
MOV A,#90H ;从最后一个数码管开始显示移位
MOVX @DPTR,A
RET
; 清显示
CLEAR: MOV A,#0DEH ;清屏命令
MOV DPTR,#CMD8279
MOVX @DPTR,A
WAIT11: MOVX A,@DPTR
JB ACC.7,WAIT11 ;显示RAM清除完毕否?
RET
; 键盘扫描
SCAN_KEY: MOV DPTR,#CMD8279 ;读状态字
MOVX A, @DPTR
READ_FIFO: ANL A,#7
JZ NO_KEY ;判定是否有键按下
READ: MOV A,#40H
MOVX @DPTR,A ;读FIFO RAM 命令字
MOV DPTR,#DATA8279
MOVX A,@DPTR
SETB C ;有键按下SCAN_KEY1: RET
NO_KEY: CLR C ;无键按下
SJMP SCAN_KEY1
;键盘数据判定
KEY_NUM: ANL A,#3FH
RET
;写数据
WRITE_DATA: MOV DPTR,#DATA8279
MOVX @DPTR,A
RET
LED_TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH END