- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
个人收集整理 仅供参考学习
个人收集整理 仅供参考学习
PAGE / NUMPAGES
个人收集整理 仅供参考学习
单片机与矩阵键盘接口电路设计实验报告
姓名:林蔼龄
学号:1060601007
班级:10级物理系电子信息工程A班
单片机与矩阵键盘接口电路设计实验报告
一:实验内容
使用单片机地P1口与矩阵式键盘连接时,可以将P1口低4位地4条端口线定义为行线,P1口高4位地4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在地键号.b5E2RGbCAP
二:电路图
三:程序流程图
四:程序
org 0000h
ljmp main
main:mov p1,#0fh;列线输出0,行线设为输入
mov a,p1;读P1口
anl a,#0fh;屏蔽高4位,留下行线状态
cjne a,#0fh,look;有按键按下,转look
ret;无按键按下,返回主程序
look:lcall dlay10;延时10ms
mov a,p1;读P1口
anl a,#0fh;屏蔽高4位,留下行线状态
cjne a,#0fh,rank ;确认键已按稳,转RANK
ljmp main;是抖动,未按稳,重新扫描
rank:mov r2,#00h ;窜键标志寄存器请0
mov r3,#04h ;查列次数
mov r4,#0f7h ;列扫描字初值
mov r5,#0ffh ;列号处值
rloop1:inc r5 ;开始列扫描,列号加1
mov a,r4 ;列扫描字送A
rl a ;列扫描字左移一位
mov r4,a ;暂存列扫描字
mov p1,a ;送出列扫描字
mov a,p1 ;读P1口
anl a,#0fh ;屏蔽高4位,留下行线状态
cjne a,#0fh,next1 ;当前列有键按下,转next1
rloop2:djnz r3,rloop1 ;列扫描未完,继续
sjmp line ;列扫描完,转行扫描
next1:inc r2 ;窜键标志加1
mov 20h,r5 ;暂存有按键地列号
sjmp rloop2 ;继续列扫描
line:cjne r2,#01h,main ;若已窜键,转main,重新扫描
mov r2,#00h ;开始查行,窜键标志寄存器清0
mov r3,#04h ;行扫描次数
mov r6,#0ffh ;行号初值
mov p1,#0fh ;列线送0,准备读行线
mov a,p1 ;读P1口,获取行线状态
lloop1:inc r6 ;行号加1
rrc a ;从第0行开始,判断有无按键
jnc next2 ;本行有按键,转next2
lloop2:djnz r3,lloop1 ;无按键,继续查下一行
sjmp next3 ;查完,转next3
next2:inc r2 ;窜键标志加1
mov 21h,r6 ;暂存有按键地行号
sjmp lloop2 ;继续行扫描
next3:cjne r2,#01h,main ;若窜键,转main,重新扫描
gainky:mov a,21h ;无窜键,取出行号
mov b,#04h ;键盘列数
mul ab ;行号*键盘列数
add a,20h ;乘积与列号相加,得到键号
mov b,#03h;为执行键处理程序做准备
mul ab ;键号*3
mov dptr,#ptab ;键处理程序表首地址送DPTR
jmp @a+dptr ;散转至与键号对应地键处理程序
ptab:ljmp prog0; 键处理程序表
ljmp prog1
ljmp prog2
ljmp prog3
ljmp prog4
ljmp prog5
ljmp prog6
ljmp prog7
ljmp prog8
ljmp prog9
ljmp prog10
ljmp prog11
ljmp prog12
ljmp prog13
ljmp prog14
ljmp prog15
prog0:mov p2,#3fh
ret
prog1:mov p2,#06h
ret
prog2:mov p2,#5bh
ret
prog3:mov p2,#4fh
ret
prog4:mov p2,#66h
ret
prog5:mov p2,#6dh
ret
prog6:mov p2,#7dh
ret
prog7:mov p2,#07h
ret
prog8:mov p2,#7fh
ret
prog9:mov p2,#6fh
ret
prog10:mov p2,#77h
ret
prog11:mov p2,#7ch
ret
prog12:mov p2,#39h
ret
prog13:mov p2,#5eh
ret
prog14:mov p2,#
文档评论(0)