资源描述:
《实验三输入输出口(IO)实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验三输入输出口(I/O)实验【实验内容一】左右急转弯灯一.实验内容KI,K2两个开关的四种组合控制灯的不同状态。二.实验程序LOCOBJSOURCE4000ORG4000H4000D291START:SETBPl.l;Pl.l口置1,开写入4002D290SETBP1.0;Pl.O口置1,开写入4004E590MOVA,Pl;Pl的值赋给A40065403ANLA,#03H;逻辑与,取低2位400890400DMOVDPTR,#TAB;TAB的地址赋给DPTR400B93MOVCA,@A+DPTR;将选择执行程序地址赋给A4
2、00C73JMP@A+DPTR;跳转到执行的程序400D04TAB:DBPRG0-TAB;查表地址400E09DBPRG1-TAB400F15DBPRG2-TAB401021DBPRG3-TAB40117590FPRG0:MOVP1,#OFFH;FFH赋值给Pl此时灯全灭401480EAJMPSTART;程序重新执行40167590FPRG1:MOVPl,#0F3H;赋值F3H(11110011)给Pl,此时对应Pl.2和Pl.3的灯亮40191133ACALLDELAY;调用延时程序401B7590FFMOVP1,#OFFH
3、;灯全灭401E1133ACALLDELAY;调用延时程序402080DEJMPSTART;程序重新执行402275903FPRG2:MOVP1,#3FH;赋值F3H(00111111)给Pl,此时对应Pl.6和Pl.7的灯亮40251133ACALLDELAY;调用延时程序40277590FFMOVP1,#OFFH;灯灭402A1133ACALLDELAY;调用延吋程序402C80D2JMPSTART;程序重新执行402E759000PRG3:MOVP1,#OOH;OOH赋值给Pl此时灯全亮403180CDJMPSTART;
4、程序重新执行40337905DELAY:MOVRl,#05;0.5s延时程序40357AC8DEL1:MOVR2,#20040377B7EDEL2:MOVR3,#1264039DBFEDEL3:DJNZR3,DEL3403BDAFADJNZR2,DEL2403DD9F6DJNZR1,DEL1403F22RET;调用结束返冋三.实验步骤1•接通单片机电源,用串口线R232实现与计算机连接。按照实验要求连接号线。启动计算机和单片机,并在计算机为打开MSC51软件。选择COM串口和波特率2400b/s,单击确定示按单片机上的RESE
5、T键。正常连接,数码管显示“C_”2•进入软件,在菜单栏里选样“文件■新建ASM・点击保存”,文件保存目录为“D:/ASM”(一开始输入保存目录含有中文名称,所以汇编是出错,提醒找不到文件)。3.输入程序。完毕后,点击菜单栏里面的“汇编”,汇编通过后选择调试,将文件烧写至单片机,此时绿灯闪烁。4•调试好程序示执行,并依次改变K1,K2的状态,记录实验现象。四.实验结果假设开关高电平为1,低电平为0开关状态实验现象Kl=0;k2=0四个LED灯都灭,不闪烁Kl=l;k2=0LED1和LED2灭,LED5和LED6以Is为周期闪烁
6、Kl=O;k2=lLED5和LED6灭,LED1和LED2以Is为周期闪烁Kl=l;k2=l四个LED灯都亮,不闪烁五.实验分析及拓展1.程序全部注軽如上。2.连线时,由于程序要使赋值3FH(00111111B)给P1使灯LED5和LED6亮,则两者必须分别与P1.6和P1.7连接。如果按照书中的连线,则需要此时赋值OCFH(11001111B)给P1口。3•不使用JMP@A+DPTR改用比较转移指令CJNZA,#DATA,rel的程序如F。SOURCEORG4000HSTART:SETBP1.0SETBPl.lMOVA,Pl
7、ANLA,#03HCJNEA,#02H,COMPJMPPRG2COMP:JNCPRG3CJNEA,#00H,PRG1PRGO:MOVP1,#OFFHJMPSTARTPRG1:MOVPl,#0F3HACALLDELAYMOVP1,#OFFHACALLDELAYJMPSTARTPRG2:MOVP1,#3FHACALLDELAYMOVP1,#OFFHACALLDELAYJMPSTARTPRG3:MOVP1,#OOHJMPSTARTDELAY:MOVRl,#15MOVR2,#200MOVR3,#126DJNZR3,DEL3DJNZR2
8、ZDEL2DJNZR1ZDEL1RETEND【实验内容二】简单I/O口扩展一.实验内容用74LS244作为输入口和74LS273作为输出口。二、实验程序LOCOBJLINESOURCE40001ORG4000HCFA82INPORTEQU0CFA8HCFBO3OUTPORTE