1、微机原理上机实验三+五实验报告 简单IO16位实验 8255控制交通灯信号实验微机原理上机实验(三+五)实验报告实验三:简单I/O(16位)实验一、 实验目的1、了解外设的扩展方法,掌握外设的读写时序。2、了解74HC273、74HC244的功能,掌握它们的使用方法。3、掌握CPU对16位外设的访问方法4、认真预习本节实验内容,尝试自行编写程序,填写实验报告。二、 实验内容1、说明:二片74HC244组成16位的只读外设,二片74HC273组成16位的只写外设,它们都可以按字节或字方式操作。实验仪具有16位数据总线D0.D15、BLE(低电平有效,选中挂在低8位数据总线上外设)、BHE(低电平
2、有效,选中挂在高8位数据总线上外设);BLE、BHE同时有效,对外设字方式读写,BLE或BHE有效,对外设字节方式读写。二片74HC273的输出端与F4区的16个发光二极管相连;低位74HC244的输入端与F4区的8个拨动开关相连,8个拨动开关循环左移一位后与高位74HC244的输入端相连。2、编写程序:将B4区的二片74HC244中数据读出、写入二片74HC273中;然后逐一点亮挂在74HC273上的16个发光二级管;循环执行3、连接线路验证功能,熟悉它的使用方法。三、 实验代码IO244EQU0230H;244(16位)片选信号IO273EQU0230H;273(16位)片选信号_STAC
3、KSEGMENTSTACKDW 100 DUP(?)_STACKENDS_DATASEGMENTWORD PUBLIC DATA_DATAENDSCODESEGMENT START PROCNEARASSUME CS:CODE, DS:_DATA, SS:_STACKMOV MOVAX,_DATADS,AXMOVDX,IO244;选定244INAX,DX;从244读取开关数据(16位,K0 K7 K6 K5 K4 K3 K2 K1 K7 K6 K5 K4 K3 K2 K1 K0)MOVDX,IO273OUTDX,AX;将244的开关数据传输至273的对应接口CALLDelay调用Delay程序
4、CALLDelayCALLDelayCALLDelayCALLDelayCALLDelayMOVDX,IO273MOVAX,0FFFEHSTART1:OUTDX,AX;将273的K0置0,其余端口置1CALLDelayTESTAX,8000H;检查AX的D15位是否为1JZSTART;若AX的D15位为1,则转向START程序ROLAX,1;将AX循环左移一位JMPSTART1;循环执行START1DelayPROCNEAR;延时Delay1: XORCX,CX;将CX清零LOOP$;延时RET返回调用处DelayENDPSTARTENDPCODEENDSENDSTART四、 拓展题与拓展实验
5、1、 画出读(74HC244)写(74HC273)的时序。74HC244 74HC2742、 以上程序中,使用16位方式读写外设,请按照8位方式,重编程序。IO244 EQU 0230H ;244(16位)片选IO273 EQU 0230H ;273(16位)片选_STACK SEGMENT STACK DW 100 DUP(?) _STACK ENDS _DATA SEGMENT WORD PUBLIC DATA _DATA ENDS CODE SEGMENT START PROC NEAR ASSUME CS:CODE, DS:_DATA, SS:_STACK MOV AX,_DATA ;
6、数据段READ MOV DX,IO244 ;读取IO244 IN AL,DX ;读取开关数据(低8位,K7 K6 K5 K4 K3 K2 K1 K0) MOV DX,IO273 ;写IO273 OUT DX,AL ;将读进来的开关状态写到IO273 JMP READSTART ENDP CODE ENDS END START 3、 绘制实验详细电路图实验五:8255控制交通灯实验一、 实验目的1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。2、熟悉8255内部结构和与8086的接口逻辑,熟悉
7、8255芯片的3种工作方式以及控制字格式。3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。二、 实验内容1、编写程序:使用8255的PA0.2、PA4.6控制LED指示灯,实现交通灯功能。2、连接线路验证8255的功能,熟悉它的使用方法。三、 实验代码COM_ADDEQU0273HPA_ADDEQU0270HPB_ADDEQU 0271HPC_ADDEQU0272H_STACK SEGMENTSTACKDW 100 DUP(?) _STACKENDS_DATASEGMENTWORD PUBLIC DATALED_Data DB10111110B;东西绿灯,南北红灯DB10111111
8、B;东西绿灯闪烁,南北红灯DB10111101B;东西黄灯亮,南北红灯DB11101011B;东西红灯,南北绿灯DB11111011B;东西红灯,南北绿灯闪烁DB11011011B;东西红灯,南北黄灯亮_DATAENDSCODESEGMENT STARTPROCNEARASSUMECS:CODE, DS:_DATA, SS:_STACKMOV AX,_DATAMOVDS,AXNOPMOVDX,COM_ADDMOVAL,80H;PA、PB、PC为基本输出模式OUTDX,ALMOVDX,PA_ADD;灯全熄灭MOV AL,0FFHOUTDX,ALLEABX,LED_DataSTART1:MOVAL
9、,0XLATOUTDX,AL;东西绿灯,南北红灯CALLDL5SMOV CX,6START2:MOV AL,1XLATOUT DX,AL;东西绿灯闪烁,南北红灯CALLDL500msMOV AL,0XLATOUTDX,ALCALLDL500msLOOPSTART2MOVAL,2 ;东西黄灯亮,南北红灯XLATOUT DX,ALCALL DL3SMOVAL,3 ;东西红灯,南北绿灯XLATOUT DX,ALCALLDL5SMOV CX,6START3:MOVAL,4 ;东西红灯,南北绿灯闪烁XLATOUTDX,ALCALLDL500msMOV AL,3XLATOUTDX,ALCALL DL500
10、msLOOP START3MOV AL,5 ;东西红灯,南北黄灯亮XLATOUT DX,ALCALL DL3SJMPSTART1DL500ms PROC NEARPUSHCXMOVCX,60000DL500ms1:LOOPDL500ms1POPCXRETDL500msENDPDL3S PROCNEARPUSHCXMOV CX,6DL3S1:CALLDL500msLOOPDL3S1POPCXRETENDPDL5SPROCNEARPUSHCXMOVCX,10DL5S1:CALL DL500msLOOPDL5S1POPCXRETENDPSTARTENDPCODEENDSEND START四、 思考题
11、与拓展实验1、 如何对8255的PC口进行位操作?COM_ADD EQU 0273H ;控制字端口PA_ADD EQU 0270H PB_ADD EQU 0271H PC_ADD EQU 0272H _STACK SEGMENT STACK DW 100 DUP(?) _STACK ENDS CODE SEGMENT START PROC NEAR ASSUME CS:CODE, SS:_STACK NOPMOV AL, 00H ;AL置初值零MOV DX,COM_ADD ;写入PA控制字 MOV AL,90H ;控制字1001-0000 让PA方式0输入OUT DX,AL REPEAT: MOV DX,PA_ADD IN AL,DX ;读入PA口数据开关数据 (高-低 K8-K1) ROL AL, 1 ;AL循环左移一位 AL变为 K7 K6 K5 K4 K3 K2 K1 K8 AND AL, 0FH ;保证 AL高四位为0MOV DX,COM_ADD ; 写入控制字 置位PC OUT DX, AL; JMP REPEATSTART ENDP CODE ENDS END START 2、 绘制本实验的详细实验电路图。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1