《数码管显示4×4矩阵键盘的键盘号---硬件的.docx》由会员分享,可在线阅读,更多相关《数码管显示4×4矩阵键盘的键盘号---硬件的.docx(14页珍藏版)》请在第壹文秘上搜索。
1、单片机原理及应用课程设计报告一数码管显示4X4矩阵键盘的键盘号专业:电子信息科学与技术班级:电科0911姓名:冯卫蓉学号:0920108133指导教师:黄伟军2012年5月15日1、课程设计目的1.1稳固和加深对单片机原理和接口技术知识的理解;1. 2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3 学会方案论证的比拟方法,拓宽知识,初步掌握工程设计的根本方法;1.4 掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5 能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。2、课程设计要求单片机的Pl口的PLOP1.7连接
2、4X4矩阵键盘,PO口控制一只数码管,当4X4矩阵键盘中的某一按键按下时,数码管上显示对应的键号。例如,1号键按下时,数码管显示“1”,14号键按下时,数码管显示“E”等等。3、硬件设计3. 1设计思想分析本任务的要求,在课程设计的根底上,添加要求,使设计能够完成当4X4矩阵键盘中的某一按键按下时,数码管上显示对应的键号。那么本系统主要由以下几大模块构成:显示模块,共阴极LED数码管;输入模块,4X4矩阵键盘;2主要元器件介绍1.0G05IVarl.1开发板3.3功能电路介绍KEIO享mu fr:&咨r;Vl- - r Ic Flc * I * Io纪S电二产 .4UF- J盘电路一、矩阵键二
3、、八位数码管显示GND10P272P263P254P245P236P22一P21SP209VCCDTRGNDOE0 12 3 4-067 AAA丸AAAA1VCC19GNDOI 2 3 4 5 6 7BbbbbbbbISDP2717DP2616DP2515JDP2414DP2313DP22TFppzT11DP20CON74HC245U6VCCGNDPlO1Pll2P123GND4GND5VCC16GNDSABCG2AG2BGl15WEXo14WEXl13WEX212WEX311WEXA10WEX59WEX67WEX7卜2QG 9dclSWdaCH S0 - 0aJ: 0a、一星。LOGKI二h
4、dG9ZddSWda 0一 rrlld -CCdQell EaI-IdaLOZda二1.ED2DIODE4LED.7DIODE4LED.7IKZP2三、主芯片电路JPlCON20U2STC89C52PllPl23P134P145P156P167P178RST9三:10P3111P3212P3313P3414P3515P3616P3717X28Xl19GND20PlO14、软件设计4.1设计思想PlO、/VCCPl.1POOP1.2P0.1P1.3P0.2器主芯片电路黑P1.6P0.5P1.7P0.6RST_P0.7RXD/P3.0钮VPPTXDP3.1ALETROGINTOp3.2PSENIN
5、TlP3.3P2.7T0/P3.4P2.6TlP3.5P2.5WRP3.6P2.43.7P2.3XTAL2P2.2XTAUP2.1GNDP2.0JP240VCC39POo38POl37P0236P0335P0434P0533P0632P0731VCC30ALE28P2727P2626P2525P24AP2323P2222P2121P20Ol7*3456789012345678911111111112通过对矩阵键盘的逐行扫描,来获得所按下键的键盘号,最终通过数码管显示出来。3. 2软件流程图4. 3源程序ttinclude#defineuintunsignedint#defineucharuns
6、ignedcharucharcodetable-0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0;ucharnum,temp,numl;voiddelay(uintz)(uintx,y;for(x=z;x0;x一)for(y=110;y0;y);)ucharkeyscan();voidmain()(Pl=OXf8;num=17;whiIe(I)(P2=tablekeyscan()-l)ucharkeyscan()(PO=Oxfe;temp=P0;temp=temp&OxfO;whi
7、le(temp!=OXfO)(delay(5);temp=temp&OxfO;while(temp!=OxfO)(temp=P0;switch(temp)(caseOxeemum=I;break;caseOxde:num=2;break;caseOxbe:num=3;break;case0x7e:num=4;break;)while(temp!=OxfO)(temp=PO;temp=tempxf;)PO=Oxfd;temp=PO;temp=tempftxf;whiIe(temp!=OxfO)(delay(5);temp=PO;whiIe(temp!=OxfO)temp=P0;switch(te
8、mp)(caseOxed:num=5;break;case0xdd:num=6;break;caseOxbd:num=7;break;case0x7d:num=8;break;)whiIe(temp!=OxfO)(temp=PO;temp=tempxf;)PO=Oxfb;temp=PO;temp=temp&OxfO;whiIe(temp!=OxfO)(delay(5);temp=PO;whiIe(temp!=OXfO)temp=P0;switch(temp)(case0xeb:num=9;break;caseOxdbinum=IO;break;caseOxbbinum=I1;break;cas
9、e0x7bnum=12;break;whiIe(temp!=OxfO)(temp=PO;temp=temp&OxfO;)PO=OXf7;temp=PO;temp=temp&OxfO;while(temp!=OxfO)(delay(5);temp=PO;whiIe(temp!=OxfO)temp=P0;switch(temp)(case0xe7:num=13;break;case0xd7:num=14;break;case0xb7:num=15;break;case0x77:num=16;break;)whiIe(temp!=OxfO)(temp=PO;temp=temp&OxfO;)retur
10、nnum;)5、调试运行依次按下开关,八段数码管会对应显示出0f的16个数字6、设计心得体会硬件设计方面,此课题所需的硬件并不负责,只许少量的导线、简单的电路便可以完成。软件设计方面,我感觉到在编写循环嵌套程序时非常容易出错,需要反复的查错和耐心的调试。我虽然能够编写出程序,其可读性却有待于提高。经过这次课程设计,我对51系统的单片机内部构造的了解认识有了一定程度的提高。我体会到做设计是一项细致的工作,必须要投入时间及精力,要有耐心有韧性。我相信这次的课程设计为我以后的开展打下一定的根底,我会更加努力,争取自己在单片机的开发上有更深层次的提高。参考书目:1肖金球.单片机原理与接口技术M.北京:清华大学出版社,2004.12