资源描述:
《单片机键盘显示实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机的键盘和显示实验报告㈠实验目的1.掌握单片机I/O的工作方式;2.掌握单片机以串行口方式0工作的LED显示;3.掌握键盘和LED显示的编程方法。㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台㈢实验内容及要求实验硬件线路图见附图从线路图可见,8051单片机的P1口作为8个按键的输入端,构成独立式键盘。四个LED显示器通过四个串/并移位寄存器74LS164接口至8051的串行口,该串行口应工作在方式0发送状态下,RXD端送出要显示的段码数据,TXD则作为发送时钟来对显示数据进行移位操作。编写一个计算器程序,当某一键按下时可执行相应的加、减、乘、除运
2、算方式,在四个显示器上显示数学算式和最终计算结果。注:①通过按键来选择加、减、乘、除四种运算方式。②输入两个数字均为一位十进制数,可预先放在内存中。㈣实验框图(见下页)㈤思考题1.当键盘采用中断方式时,硬件电路应怎样连接?P1.4~P1.7是键输出线,P1.0~P1.3是扫描输入线。输入与门用于产生按键中断,其输入端与各列线相连,再通过上拉电阻接至+5V电源,输出端接至8051的外部中断输入端。2.74LS164移位寄存器的移位速率是多少?实验中要求计算的式子和结果之间相差一秒,移位寄存器的移位速率应该是每秒一位吧。其实这个问题确实不知道怎么回答。。。。。否有否P1口置输入读P1口开始
3、显示“0000”是否有键按下?延迟消抖是否有键按下?是读键码加法运算减法运算除运算LED显示用的段码与教科书所提供的不同,本实验采用如下段码:显示数符段码显示数符段码0BBHADBH109HBF1H2EAHCB2H36BHDE9H459HEF2H573HFD2H6F3H—40H70BH.04H8FBH┗┛A1H97BH┗┛1AH灭00HPDAH实验代码:ORG0000HAJMPMAINORG0030HMAIN:MOV41H,#0BBH;对几个存放地址进行初始化MOV42H,#0BBHMOV43H,#0BBHMOV44H,#0BBHMOVSCON,#00H;初始化串行口控制寄存器,设置其
4、为方式0LCALLDISPLAY;初始化显示KEY:MOVR3,#08H;用来存放两个数据MOVR4,#02HMOVP1,#0FFH;初始化P1口MOVA,P1;读取按键状态CPLA;取正逻辑,高电平表示有键按下JZKEY;A=0时无键按下,重新扫描键盘LCALLDELAY1;消抖MOVA,P1;再次读取按键状态CPLAJZKEY;再次判别是否有键按下PUSHAKEY1:MOVA,P1CPLAANLA,#0FH;判别按键释放JNZKEY1;按键未释放,等待LCALLDELAY1;释放,延时去抖动POPAJBACC.0,ADD1;K1按下转去ADD1JBACC.1,SUB1;K1按下转去
5、SUB1JBACC.2,MUL1;K1按下转去MUL1JBACC.3,DIV1;K1按下转去DIV1LJMPKEYADD1:LCALLBUFFER;显示加数和被加数MOV43H,#049HLCALLDISPLAY;显示加号MOVA,R3ADDA,R4DAAMOVR3,A;相加结果放入R6ANLA,#0FHMOVR4,A;结果个位放入R7MOVA,R3SWAPA;半字节交换,高四位放入低四位ANLA,#0FHMOVR3,A;结果的高位放入R6LCALLL;显示缓存区设置LCALLDELAY2;延时一秒后显示LCALLDISPLAYLJMPKEYSUB1:LCALLBUFFER;显示减数和
6、被减数MOV43H,#40HLCALLDISPLAY;显示减号MOVA,R3CLRCY;CY清零SUBBA,R4;做减法PUSHARLCA;带进位循环左移,最高位放入CYJCF;判断最高位,若为1则跳转到负数ZHENG:POPAMOVR4,AMOVR3,#00H;高位清零SJMPOUTFU:POPACPLA;取绝对值INCAMOVR4,AMOVR3,#11H;显示负号OUT:LCALLL;显示缓存区设置LCALLDELAY2;延时1s后显示LCALLDISPLAYLJMPKEYMUL1:LCALLBUFFER;显示两位乘数MOV43H,#99HLCALLDISPLAY;显示乘号MOVA
7、,R3MOVB,R4MULAB;结果放入AB,A中是低8位,B中是高8位MOVB,#0AHDIVAB;十进制转换MOVR4,B;结果个位放入R7MOVR3,A;结果的十位放入R6LCALLLLCALLDELAY2LCALLDISPLAY;延时1s后显示LJMPKEYDIV1:LCALLBUFFER;显示除数和被除数MOV43H,#62HLCALLDISPLAY;显示除号MOVA,R3MOVB,R4DIVAB;A除以BMOVR4,B;余数放在R4