还剩6页未读,继续阅读
文本内容:
微机原理上机实验(三+五)实验报告实验三简单I/O(16位)实验
一、实验目的了解外设的扩展方法,掌握外设的读写时序L、了解、的功能,掌握它们的使用方法274HC27374HC
244、掌握对位外设的访问方法3CPU
16、认真预习本节实验内容,尝试自行编写程序,填写实验报告4
二、实验内容、说明二片组成位的只读外设,二片组成位的只写外设,它们都可以按174HC2441674HC27316字节或字方式操作实验仪具有位数据总线、(低电平有效,选中挂在低位数据总16D
0..D15BLE8线上外设)、(低电平有效,选中挂在高位数据总线上外设);、同时有效,对外设BHE8BLE BHE字方式读写,或有效,对外设字节方式读写二片的输出端与区的个发光BLE BHE74HC273F416二极管相连;低位的输入端与区的个拨动开关相连,个拨动开关循环左移一位后与74HC244F488高位的输入端相连74HC
244、编写程序将区的二片中数据读出、写入二片中;然后逐一点亮挂在2B474HC24474HC27374HC273上的个发光二级管;循环执行
16、连接线路验证功能,熟悉它的使用方法3
三、实验代码10244EQU位片选信号0230H2441610273EQU位片选信号0230H27316,STACK SEGMENTSTACK100DUPDW_STACK ENDSWORD PUBLIC_DATA SEGMENTDATA_DATA ENDSCODESEGMENTNEARSTART PROCCS:CODE,DS:DATA,SS:STACKASSUME;选定AX,_DATA DS,AX DX,10244244MOV MOV;从读取开关数据位,AX.DX24416KO K7K6MOV INK5K4K3K2KI K7K6K5K4K3K2KIKODX,10273MOV OUT;将的开关数据传输至的对应DX.AX244273接口CALL CALL调用程序Delay DelayDelayCALL DelayCALLDelayCALLDelayCALL DelayMOV DX,10273MOV AX.OFFFEHSTART1:OUT DX.AX;将273的KO置0,其余端口置1CALL DelayTESTAX.8000H;检查AX的D15位是否为1JZ START;若人*的位为贝脖专向程D151,START序;将庆*循环左移一位ROL AX,1JMP START1;循环执行START1Delay PROCNEAR;延时Delayl:XOR CX,CX清零^CXLOOP$;延时RET返回调用处Delay ENDPSTARTENDPCODE ENDSENDSTART
四、拓展题与拓展实验、画出读写的时序174HC24474HC273i拄■^■i4:
④01i,C一一一二i-I—--j----^―f—I■I IL.I3H£•—I I---------I一I平鲫力4选J殍力为演』,汝T,刃]对全漏L四I
0./p T12D一钦戈为脩D口和0,3旧EHE绝|该闱.2片7钊
②+哈很挑端.,‘,■配郎把号找⑼工引物洲2c・
①的…]在见世沦日区时翅|尸当布潺.
②人”弼菽新七十居届*6J丫仙,加r”U,22s8/俗炎「⑭火美伙,用收.同芨2片7%2件自特此劫拣A
2.,泌s],可Xg74HC24474HC
274、以上程序中,使用位方式读写外设,请按照位方式,重编程序2168(位)片10244EQU0230H24416选(位)
10273.EQU0230H;27316片选STACK SEGMENTSTACK()DW,ST100DUP ACKENDS_DATA SEGMENTWORD PUBLICDATADATAENDSCODE SEGMENTSTART PROC NEARASSUME CS:CODE,DS:_DATA,SS:_STACKMOV AX,.DATA;数据段READ;读取MOV DX,1024410244;读取开关数据(低位,)IN AL,DX8K7K6K5K4K3K2KI KOMOV DX,10273;写10273OUTDX.AL;将读进来的开关状态写到10273JMP READSTARTENDPCODE ENDSENDSTART、绘制实验详细电路图3实验五8255控制交通灯实验
一、实验目的了解芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧L8255学会使用并行接口芯片实现各种控制功能,如本实验(控制交通灯)等、熟悉内部825528255结构和与的接口逻辑,熟悉芯片的种工作方式以及控制字格808682553式、认真预习本节实验内容,尝试自行编写程序,填写实验报告3
二、实验内容、编写程序使用的、控制指示灯,实现交通灯功能18255PA
0..2PA
4..6LED、连接线路验证的功能,熟悉它的使用方法28255
三、实验代码COM.ADD EQUEQU0273HPA_ADD EQUEQU0270HPB_ADD SEGMENT0271HPC_ADD,STA DWENDS0272HCK SEGMENTSTACKDB100DUP,STACK DB_DATA DBWORDPUBLICDATA;东西绿灯,南北红灯LED_Data DB10111110B;东西绿灯闪烁,南北红灯;DB10111111B东西黄灯亮,南北红灯DB10111101B冻西红灯,南北绿灯南北ENDS11101011B;东西红灯,绿灯闪烁南北SEGMENT11111011B;东西红灯,黄灯亮11011011B_DATACODESTART PROCNEARASSUME CS:CODE,DS:_DATA,SS:_STACKMOV AX,_DATAMOV DS,AXNOPMOV DX,COM_ADD、、为基本输出模式MOV AL,80H DX,AL;PA PBPCOUT DX,PA_ADDMOV AL.OFFH DX,AL;灯全熄灭MOV BX,LED_DataOUT AL,0LEA MOVSTART1:XLATOUT;东西绿灯,南北红灯CALL DX,ALMOV DL5SCX.6START2:MOVAL,1XLAT;东西绿灯闪烁,南北红灯OUT DX,ALCALL DL500msMOV AL,0XLATOUT DX,ALCALL DL500msLOOP START2;东西黄灯亮,南北红灯MOV AL,2XLATOUT DX,ALCALL DL3S;东西红灯,南北绿灯MOV AL,3XLATOUT DX,ALCALL DL5SMOV CX,6;东西红灯,南北绿灯闪烁STARTS:MOV AL,4XLATOUT DX,ALCALL DL500msMOV AL,3XLATOUT DX,ALCALL DL500msLOOP STARTS;东西红灯,南北黄灯亮MOV AL,5XLATDX,ALOUTDL3SCALL JMPSTART1PROCDL500ms PUSHNEARCXMOVCX,60000LOOPDL500mslDL500msl:POP RETCXENDPPROCDL500ms PUSHDL3S MOVNEARCALL CXCX,6DL3S1:DL500msLOOP DL3S1POP CXRETENDPDL5S PROCNEARPUSH CXMOVCX.10DL5S1:CALL DL500msLOOP DL5S1POP CXRETENDPSTARTENDPCODE ENDSENDSTART
四、思考题与拓展实验、如何对的口进行位操作18255PC才空制字端口COM_ADD EQU0273HPA_ADD EQU0270HPB_ADD EQU0271HPC_ADD EQU0272H_STACK SEGMENTSTACKDW100DUP_STACK ENDSCODESEGMENTSTARTPROCNEARASSUMECS:CODE,SS:_STACKNOP置初值零ALMOV AL,OOH写入控制字PAMOV DX,COM_ADDMOV AL,90H控制字——让方式输入1001-0000PA0OUT DX,ALREPEAT:MOVDX,PA_ADDIN AL.DX读入口数据——开关数据(高,低)PA K8-K1ROL AL,1循环左移一位变为AL ALK7K6K5K4K3K2KI K8AND AL,OFH保证高四位为AL0MOVDX,COM_ADD写入控制字置位PCOUT DX,AL;JMP REPEATSTARTENDPCODE ENDSENDSTART、绘制本实验的详细实验电路图2。