单片机课程设计——数码管显示4×4矩阵键盘
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《单片机原理及应用课程设计》报告——数码管显示4*4矩阵键盘
的键盘号设计
专业:
班级:
姓名:
学号:
2013年1月
1.课程设计目的
1.1巩固和加深对单片机原理和接口技术知识的理解;
1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;
1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;
1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;
1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。
2.课程设计要求
单片机的P1口的P1.0~P1.7连接4×4矩阵键盘,P0口控制一只数码管,当4×4矩阵键盘中的某一按键按下时,数码管上显示对应的键号。例如,1号键按下时,数码管显示“1”, 14号键按下时,数码管显示“E”等等。
3.硬件设计
3.1 设计思想
分析本任务的要求,使设计能够完成当4*4矩阵键盘中的某一按键按下时,数码管上显示对应的键盘号。则本系统主要由以下几大模块构成:显示模块,共阴极LED数码管;
输入模块,4*4矩阵键盘;
3.2主要元器件介绍
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O 口的利用率。
数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
4.1 设计思想
按键采用线反转法先把列线置成低电平,行线置成输入状态,读行线;再把行线置成低电平,列线输入状态,读列线。当有键按下时,由两次所读状态即可确定所按键的位置,不需扫描,键盘响应速度大大加快。
4.2软件流程图
4.3 源程序
org 0000h
mov p2,#0ffh
ljmp main
org 0100h
main:acall keyscan mov a,30h
mov dptr,#table movc a,@a+dptr
mov p2,a
acall delay
sjmp main
keyscan:mov p3,#0fh
mov a,p3
anl a,#0fh
mov b,a
mov p3,#0f0h
mov a,p3
anl a,#0f0h
orl a,b
cjne a,#0ffh,keypro ret
keypro:mov b,a
mov dptr,#keyvalue mov r3,#0ffh
key1:inc r3
mov a,r3
movc a,@a+dptr
cjne a,b,key2
mov a,r3
mov 30h,a
ret
key2:cjne a,#00h,key1
ret
delay:mov r0,#20
next1:mov r1,#20
next2:mov r2,#248
djnz r2,$
djnz r1,next2
djnz r0,next1
ret
keyvalue:db 77h,7bh,7dh,7eh
db 0b7h,0bbh,0bdh,0beh
db 0d7h,0dbh,0ddh,0deh
db 0e7h,0ebh,0edh,0eeh
db 00h
table:db 0c0h,0f9h,0a4h,0b0h
db 99h,92h,82h,0f8h
db 80h,90h,88h,83h
db 0c6h,0a1h,86h,8eh
end
5.调试运行
依次按下开关,八段数码管会对应显示出0—f的16个数字
6.设计心得体会
经过这次课程设计,我对51单片机有了更高程度的理解。更加明白了做设计是一项很考验心智的一件事儿,需要时间、精力和耐心。
参考书目:
肖金球. 单片机原理与接口技术.[M].北京:清华大学出版社,2004.12