8255扫描键盘显示实验Word文件下载.docx
- 文档编号:18808764
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:25
- 大小:230.50KB
8255扫描键盘显示实验Word文件下载.docx
《8255扫描键盘显示实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《8255扫描键盘显示实验Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
置8255状态
;
方式0,PB,PC口输出,PA口输入
MOVX@DPTR,A
MOVDPTR,#Z8279;
置8279命令字
MOVA,#0D3H
MOVX@DPTR,A;
清LED显示
MOVA,#00H
MOVA,#38H
MOVA,#0D1H
KB_DIS:
LCALLRD_KB;
读键盘
MOVA,#0FFH
CJNEA,KEYVAL,DISBUF;
判读到键
SJMPKB_DIS;
没有则继续读键
DISBUF:
LCALLDISP;
把键移入显存
延时消抖
LCALLDELAY
SJMPKB_DIS
DISP:
;
显存依次前移
MOVR1,#31H;
在最后加入新键值
MOVE:
MOVA,@R1
DECR1
MOV@R1,A
INCR1
CJNER1,#38H,MOVE
MOV37H,KEYVAL
MOVKEYVAL,#0FFH
MOVDPTR,#Z8279
MOVA,#90H
MOVR0,#08H
MOVR1,#30H
MOVDPTR,#D8279
LP:
MOVA,@R1
DJNZR0,LP
RET
RD_KB:
键盘扫描
MOVA,#02H;
扫描第一行
MOVDPTR,#D8255B
MOVDPTR,#D8255A
MOVXA,@DPTR
MOVR1,#00H
CJNEA,#0FFH,KEYCAL;
判键是否按下
MOVA,#01H;
扫描第二行
MOVR1,#08H
CJNEA,#0FFH,KEYCAL
SJMPNOKEY;
无键按下
KEYCAL:
计算键码
SHIFT:
RRCA
JNCCALC
DJNZR0,SHIFT
CALC:
换算显示码
MOVDPTR,#DL_DAT
MOVA,R1
MOVCA,@A+DPTR
MOVKEYVAL,A
NOKEY:
MOVKEYVAL,#0FFH;
返回无键标志
DELAY:
MOVR0,#0H;
延时子程序
DELAY1:
MOVR1,#0H
DJNZR1,$
DJNZR0,DELAY1
DL_DAT:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;
0,1,2,3,4,5,6,7
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;
8,9,A,B,C,D,E,F
END
实验十8279显示实验
编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。
1.掌握在8031系统中扩展8279键盘显示接口的方法。
2.掌握8279工作原理和编程方法。
CS8279接8700H。
模块中的十个短路套都套在8279侧。
利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,并具有显示稳定、程序简单、不会出现误动作等特点。
本实验系统中8279的状态/命令口地址位8701H;
数据口地址位8700H。
示例程序运行将显示"
8279--"
,并等待按键输入,将键值显示在数码管上(只响应0-F按键)。
五.实验程序框图
六.实验程序:
Z8279EQU08701H;
8279状态/命令口地址
D8279EQU08700H;
8279数据口地址
LEDMODEQU10H;
右端输入八位字符显示
外部译码键扫描方式,双键互锁
LEDFEQEQU38H;
扫描速率
LEDCLSEQU0D1H;
清除
LEDWR0EQU80H;
设定的将要写入的显示RAM地址
AJMPSTART
LCALLINIT8279;
初始化8279
WAIT:
MOVDPTR,#Z8279
ANLA,#0FH
JZWAIT
MOVA,#40H
ANLA,#3FH
MOVR4,#00H
MOVR5,A
LCALLDISLED
SJMPWAIT
INIT8279:
8279初始化子程序
PUSHDPH;
保存现场
PUSHDPL
PUSHACC
MOVDPTR,#Z8279
MOVA,#LEDMOD;
置8279工作方式
MOVA,#LEDFEQ;
置键盘扫描速率
MOVA,#LEDCLS;
清除LED显示
MOVA,#0H
MOVA,#0EFH
MOVA,#27H
MOVA,#5BH
MOVA,#7FH
POPACC;
恢复现场
POPDPL
POPDPH
显示字符子程序
输入:
R4,位置R5,值
DISLED:
PUSHDPH;
MOVA,#LEDWR0;
置显示起始地址
ADDA,R4;
加位置偏移量
设定显示位置
MOVDPTR,#LEDSEG;
置显示常数表起始位置
MOVA,R5
MOVCA,@A+DPTR;
查表
显示数据
PUSH0;
PUSH1
MOV0,#0H
MOV1,#0H
DJNZ1,$
DJNZ0,DELAY1
POP1;
POP0
LEDSEG:
'
0,1,2,3,4,5,6,7'
8,9,A,B,C,D,E,F'
DB6DH,02H,08H,00H,59H,0FH,76H;
U,-,_,,I,O,P,'
实验十一8279显示电子钟实验
利用8279键盘显示接口电路,做成一个电子钟。
该钟使用T1作50ms的定时中断。
利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,其有显示稳定、程序简单、不会出现误动作等特点。
本实验利用8279实现显示扫描自动化。
8279操作命令字较多,根据需要来灵活使用,通过本实验可初步熟悉使用方法。
电子钟做成如下格式:
XXXXXX由左向右分别为:
时、分、秒。
1.掌握在8031系统中扩展8279键盘显示接口的方法。
2.掌握8279工作原理和编程方法。
3.进一步掌握中断处理程序的编程方法。
8279通用接口芯片,根据应用需要可以在多种模式下工作,详见有关手册。
ISLED子程序框图
DISPLAY子程序框图
六.实验程序见:
LEDMODEQU00H;
左边输入八位字符显示
LEDFEQEQU2FH;
LEDCLSEQU0C1H;
清除显示RAM
ORG001BH;
INTT1入口地址
AJMPINT_T1
MOVR3,#0H;
时
MOVR2,#0H;
分
MOVR1,#0H;
秒
MOVR6,#0H;
标志
MOVTMOD,#10H
MOVTL1,#00H;
50mS的时间常数
MOVTH1,#04CH
MOVR0,#20
SETBTR1
SETBET1
SETBEA;
允许中断
CJNER6,#0FFH,WAIT
LCALLDISPLAY
MOVR6,#0
INT_T1:
INT_T1中断服务子程序
保护现场
PUSHPSW
CLRTR1
50mS定时常数
MOVTH1,#4CH
DJNZR0,EXIT;
判断毫秒=0
MOVR0,#20;
DELAY1SECOND
MOVR6,#0FFH;
置秒标志
CJNER1,#59H,SECOND;
判断秒=59
MOVR1,#99H
CJNER2,#59H,MINUTE;
判断分=59
MOVR2,#99H
CJNER3,#23H,HOUR;
判断时=23
MOVR3,#99H
HOUR:
MOVA,R3
ADDA,#1;
时加1
DAA
MOVR3,A
MINUTE:
MOVA,R2
分加1
MOVR2,A
SECOND:
秒加1
MOVR1,A
EXIT:
POPPSW;
POPACC
RETI;
中断返回
DISPLAY:
MOVR4,#6
LCALLDISLED;
显示小时低位
SWAPA
MOVR4,#7
显示小时高位
MOVR4,#3
显示分钟低位
MOVR4,#4
显示分钟高位
MOVR4,#0
显示秒低位
MOVR4,#1
显示秒高位
实验十二8279键盘显示实验(电子秒表)
利用实验机上提供的8279键盘电路,数码显示电路,设计一个电子钟,用小键盘控制电子钟的启停及初始值的预值。
XXXXXXXX由左向右分别为:
时、分、秒、百分之一秒
1.C键:
清除,显示00.00.00.00
2.A键:
启动,电子钟计时
3.D键:
停止,电子钟停止计时
4.B键:
设置初值:
由左向右依次输入预置的时、分、秒、百分之一秒值,同时应具有判断输入错误的能力,若
输入有错,则显示:
00.00.00.00
按B键即可重新输入预置值:
5.E键:
程序退出。
1.进一步掌握8279键盘显示电路的编程方法。
2.进一步掌握定时器的使用和编程方法。
主程序框图
SET_T子程序框图
GETWORD子程序框图
六.实验程序见:
READKBEQU40H;
读FIFORAM地址0的命令字
MOVR0,#0H;
10毫秒
10毫秒的时间常数
MOVTH1,#0DCH
LCALLDIS_mS
LCALLGETKEY;
CJNEA,#0FFH,CONT;
判断是否有键输入
MOVA,B
CJNEA,#3CH,KEY_G;
输入键是'
C'
转CLEAR_T
LCALLCLEAR_T
KEY_G:
CJNEA,#3AH,KEY_D;
G'
转START_T
LCALLSTART_T
KEY_D:
CJNEA,#3DH,KEY_P;
D'
转STOP_T
LCALLSTOP_T
KEY_P:
CJNEA,#3BH,KEY_E;
P'
转SET_T
LCALLSET_T
KEY_E:
CJNEA,#3EH,CONT;
E'
转MONITOR
AJMPMONITOR
CONT:
CJNER6,#0FFH,WAIT;
若无秒标志则循环
LCALLDISPLAY;
显示时间
MOVR6,#0;
清标志
SJMPWAIT;
循环
MONITOR:
NOP
SJMP$;
等待回到监控
CLEAR_T:
时间清零子程序
CLRTR1;
关计数器
小时清零
分钟清零
秒清零
10毫秒清零
LCALLDIS_mS;
显示毫秒
START_T:
电子钟计时子程序
STOP_T:
电子钟停止计时子程序
SET_T:
设置初值子程序
LCALLGETWORD;
读小时数
CJNEA,#0FFH,INVALID;
判断输入合法性
ADDA,#232
JCINVALID;
判断输入小时值<
24
MOVB,#10
DIVAB
ADDA,B
MOVR3,A;
保存输入的值
MOVR4,#5
读分钟数
ADDA,#196
判断输入分钟数<
60
MOVR2,A;
判断输入分钟值<
MOVR1,A;
读10毫秒数
MOVR0,A;
AJMPSET_TOK
INVALID:
LCALLCLEAR_T;
时间清零
SET_TOK:
显示10毫秒
GETWORD:
读数子程序
WKEY1:
LCALLGETKEY;
CJNEA,#0FFH,WKEY1;
无键输入,则再读
ADDA,#0C6H
JCERROR1;
判断输入是否大于9
SUBBA,#30H
判断输入是否小于0
显示输入的字符
MULAB
PUSHACC;
WKEY2:
CJNEA,#0FFH,WKEY2;
无键输入则再读
ADDA,#0C6H;
JCERROR2
SUBBA,#30H;
DECR4
MOVB,A
MOVB,A;
把得到的值存在B
MOVA,#0FFH;
置合法输入标志
AJMPKEYOK
ERROR2:
POPACC
ERROR1:
MOVA,#0;
置非法输入标志
KEYOK:
RET
PUSH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 8255 扫描 键盘 显示 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)