您好,欢迎访问三七文档
单片机及嵌入式系统大作业学院自动化专业班级14级自动化(1)班学号3114000825姓名伍宏淳指导老师廉迎战2017年06月05日一.实验目的1巩固和掌握对“单片机及嵌入式系统”课程内容的认识和理解,提高应用水平。2掌握汇编语言程序的编制方法。3熟悉键盘控制和七段码管及74系列芯片的使用。二.主要仪器和设备PC机一台,TD-PITE教学实验系统+TD-51系统平台。三.系统结构图一键盘和LED显示器控制电路图二电路图详细原理图系统主要包括:1.8051单片机系统2.两片74LS07六高压输出缓冲器、驱动器3.行列式(4×4)键盘4.LED数码管实现功能:将SST89E554RC单元与键盘及数码管显示单元连接,编写程序,扫描键盘输入,并将扫描结果送数码管显示。而键码产生后如何去实现按键的特定功能,是操作系统和应用程序的任务。编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近4次按下的按键编号。四.系统部件功能以及原理1.8051单片机系统作为系统信息的处理器。通过硬件和软件程序的结合,读取从P0端口的信息,检查是否有键按下,在通过P2口的状态,根据P0,P2口的信息确定按下的是键。在将按键所代表的功能通过8051的软件程序进行处理,若是需要显示的字符,则利用8051通过查表的方法所以这字符所对应的LED码,通过P1口输出到LED数码管显示。2.74LS0774LS07是集电极开路输出的六缓冲器/驱动器。管脚排列如下图,其中14脚Vcc接+5V电源,7脚GND接电源地,1A是通道1的输入端、1Y是通道1的输出端,2A是通道2的输入端、2Y是通道2的输出端,依此类推。输出和输入是同相位的,但是输出端要通过电阻外接到正电压上,这个外接正电压最高可以达到30V。引脚图真值表3.行列式(4×4)键盘原理图原理:无键按下,该行线为高电平,当有键按下时,行线电平由列线的电平来决定。功能:1.去抖动2.防串键3.识别被按键并产生与之对应的键码4.释放键4.LED数码管其基本单元是发光二极管,每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。优点是编程简单,显示亮度高,缺点是占用I/O端口多。本实验采用的是共阳数码管LED数码管功能:从P1口送段代码,P0口送位选信号。段码虽同时到达6个LED,但一次仅一个LED被选中。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个……循环扫描即可。五.系统软件框图开始扫描整个键盘有键按下吗?延时10ms有键按下吗?第一列输出为低电平此列有键按下吗?下一列输出为低电平各列扫描完了吗?返回记录列值读取行值延时10ms键释放了吗?按键处理程序YNYYNNYNN六.软件代码ORG0000HLJMPMAINORG0100HMAIN:MOV50H,#00HMOV51H,#00HMOV52H,#00HMOV53H,#00HMOV54H,#00HMOV55H,#00HMOVR5,#55HBEGIN:MOVP0,#00HMOVA,P2ANLA,#0FHCJNEA,#0FH,INK1ACALLDISAJMPBEGININK1:ACALLDL1MSMOVA,P2ANLA,#0FHCJNEA,#0FH,INK2AJMPBEGININK2:MOVP0,#0FEHMOVA,P2JNBACC.0,KEY0JNBACC.1,KEY4JNBACC.2,KEY80JNBACC.3,KEYC0MOVP0,#0FDHMOVA,P2JNBACC.0,KEY1JNBACC.1,KEY5JNBACC.2,KEY9JNBACC.3,KEYD0MOVP0,#0FBHMOVA,P2JNBACC.0,KEY2JNBACC.1,KEY6JNBACC.2,KEYAJNBACC.3,KEYE0MOVP0,#0F7HMOVA,P2JNBACC.0,KEY3JNBACC.1,KEY7JNBACC.2,KEYBJNBACC.3,KEYF0LJMPSTTKKEY80:AJMPKEY8KEYC0:AJMPKEYCKEYD0:AJMPKEYDKEYE0:AJMPKEYEKEYF0:AJMPKEYFKEY0:MOVA,#00HACALLPUTBUFACALLDISAJMPSTTKKEY1:MOVA,#01HACALLPUTBUFACALLDISLJMPSTTKKEY2:MOVA,#02HACALLPUTBUFACALLDISLJMPSTTKKEY3:MOVA,#03HACALLPUTBUFACALLDISAJMPSTTKKEY4:MOVA,#04HACALLPUTBUFACALLDISAJMPSTTKKEY5:MOVA,#05HACALLPUTBUFACALLDISAJMPSTTKKEY6:MOVA,#06HACALLPUTBUFACALLDISAJMPSTTKKEY7:MOVA,#07HACALLPUTBUFACALLDISAJMPSTTKKEY8:MOVA,#08HACALLPUTBUFACALLDISAJMPSTTKKEY9:MOVA,#09HACALLPUTBUFACALLDISAJMPSTTKKEYA:MOVA,#0AHACALLPUTBUFACALLDISAJMPSTTKKEYB:MOVA,#0BHACALLPUTBUFACALLDISAJMPSTTKKEYC:MOVA,#0CHACALLPUTBUFACALLDISAJMPSTTKKEYD:MOVA,#0DHACALLPUTBUFACALLDISAJMPSTTKKEYE:MOVA,#0EHACALLPUTBUFACALLDISAJMPSTTKKEYF:MOVA,#0FHACALLPUTBUFACALLDISAJMPSTTKPUTBUF:PUSH00HPUSHACCMOVA,R5MOVR0,APOPACCMOV@R0,ADECR5CJNER5,#4FH,GOBACKMOVR5,#55HGOBACK:POP00HRETDIS:PUSHACCPUSH00HPUSH03HMOVR0,#50HMOVR3,#0DFHAA2:MOVA,@R0MOVDPTR,#AA1MOVCA,@A+DPTRMOVP1,AMOVP0,R3ACALLDL1MSMOVA,R3JNBACC.0,AA3RRAMOVR3,AINCR0AJMPAA2AA3:POP03HPOP00HPOPACCRETAA1:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71HDL1MS:MOVR7,#01HDL0:MOVR6,#0FFHDL1:DJNZR6,DL1DJNZR7,DL0RETSTTK:ACALLDISMOVP0,#00HMOVA,P2ANLA,#0FHCJNEA,#0FH,STTKAJMPBEGINEND六.实验总结通过这次大作业:实现按下“按键显示相应的数字”,我不仅仅巩固和掌握对“单片机及嵌入式系统”课程内容的认识和理解,提高应用水平而且掌握汇编语言程序的编制方法。让我学到了许多。自己亲自操作,加深了对课程的理解和认识,也巩固和掌握课内的知识,将书上的原理应用到实际。同时,对汇编语言程序有了进一步的了解和熟悉,虽然过程当中也出现了很多错误,不过还是一一解决了。希望自己以后能更加学以致用,从中学到更多东西。
本文标题:广工单片机大作业
链接地址:https://www.777doc.com/doc-6573618 .html