- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七-单片机键盘LED显示实 验
实验七单片机键盘LED显示实验
、实验目的
1、 掌握键盘和LED显示器的接口方法和编程方法。
2、 掌握键盘扫描和LED八段码显示器的工作原理。
3、 学习并口扩展的程序编写方法。
二、 实验说明
利用实验仪提供的键盘扫描电路和显示电路 ,做一个扫描键盘和数码显示实
验,把按键输入的键码在六位数码管上显示出来。
实验程序可分成三个模块。
键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。
显示模块:将显示单元的内容在显示器上动态显示。
主程序:调用键输入模块和显示模块。
三、 实验仪器
计算机
伟福实验箱(lab2000P )
四、 实验内容
1本实验仪提供了一个6X 4的小键盘,向列扫描码地址(0X002H)逐列输出 低电平,然后从行码地址(0X001H)读回。如果有键按下,则相应行的值应为低 如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读 取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止 键盘抖动。地址中的X是由KEY/LED CS 决定,参见地址译码。做键盘和LED 实验时,需将KEY/LED CS接到相应的地址译码上。以便用相应的地址来访问。 例如将KEY/LED CS信号接CS0上,则列扫描地址为 08002H,行码地址为 08001H。列扫描码还可以分时用作 LED的位选通信号。
2、 本实验仪提供了 6位8段码LED显示电路,只要按地址输出相应数据, 就可以实现对显示器的控制。显示共有 6位,用动态方式显示。8位段码、6位 位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相 应显示位。
3、 本实验仪中8位段码输出地址为0X004H,位码输出地址为 0X002H。 此处X是由KEY/LED CS 决定,参见地址译码。做键盘和 LED实验时,需将 KEY/LED CS接到相应的地址译码上。以便用相应的地址来访问。例如,将 KEY/LED CS 接到CS0上,则段码地址为 08004H,位码地址为08002H。
五、 思考题
1、 按键接收到的数据加1显示出来;
2、 实现第2功能键,即按下A后,再按下0— 9键为加1显示;
3、 保存前一个接收到的数据,数据向前推动显示。
OUTBITOUTSEGIN
OUTBIT
OUTSEG
IN
equ 08002h equ 08004h equ 08001h
;位控制口 段控制口 键盘读入口
显示缓冲LEDBuf equ 60h
显示缓冲
Ijmp Start
LEDMAP: ;八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h
db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
db 3fh, 06h ;表中增加两个数据,在查
表时最后两个数据+2后可 以正常显示
Delay: ;延时子程序
mov
r7, #0
DelayLoop:
djnz
r7, DelayLoop
djnz
r6, DelayLoop
ret
DisplayLED:
mov
r0, #LEDBuf
mov
r1, #6
;共6个八段管
mov
r2,
;从左边开始显示
Loop:
mov
dptr, #OUTBIT
mov
a, #0
movx
@dptr, a
;关所有八段管
mov
a, @r0
mov
dptr, #OUTSEG
movx
@dptr, a
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
TestKey:
mov
dptr, #OUTBIT
mov
a, #0
movx
@dptr, a
mov
dptr, #IN
movx
a, @dptr
cpl
a
anl
a, #0fh
输出线置为0
读入键状态
高四位不用
键码定义
db
db
db
16h, 15h, 14h, 0ffh
13h, 12h, 11h, 10h
0dh, 0ch, 0bh, 0ah
db
0eh, 03h, 06h, 09h
db
0fh, 02h, 05h, 08h
db
00h, 01h, 04h, 07h
GetKey:
mov
LEDBuf,LEDBuf+1
mov
LEDBuf+1,LEDBuf+2
mov
LEDBuf+2,LEDBuf+3
mov
LEDBuf+3,LEDBuf+4
mov
LEDBuf+4,LEDBuf+5
mov
dptr, #OUTB
原创力文档


文档评论(0)