《单片机原理及应用课程设计》报告
——数码管显示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口的利用率。
数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
3.3 原理图及功能电路介绍 距阵键盘P14S1Comment: 0S54S21S65S109S14DS32S76S11AS15ES43S87S12BS16F048C159D26AEP15S98P16S13CP17P10P11P12P13K1K2K3 K3P16abcdefgdp1174211053 矩阵键盘电路 K2独立键盘K1 P00P01P02P03P04P05P06P07K4P17VCCVCCK5RESET4321P14P15P16P17P14P151174211053abcdefgdpRDS1R00R01R02R03R04R05R06R07abcdefgdpafegdDS2agdbfceagdabcdefgdpaabfcegdbfcegdbfceabcdefgdpaabfcegdbfcegdbfceagdbcJP2dpDIG1dpDIG2dpDIG3dpDIG4dpDIG1dpDIG2dpDIG3dpDIG4121298698 P20 P21P22P23P24P25P26P27R20R21R22R23R24R25R26R27Q20Q21Q22Q23Q24Q25Q26Q27 数码管电路 4. 软件设计 4.1 设计思想
按键采用线反转法先把列线置成低电平,行线置成输入状态,读行线;再把行线置成低电平,列线输入状态,读列线。当有键按下时,由两次所读状态即可确定所按键的位置,不需扫描,键盘响应速度大大加快。
61-2 LCD2-3 DSY3-4 LED伟
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,$