计数器定时器8253和并行接口8255综合实验一、实验目的1.掌握8253定时原理和初始化方法。2.掌握8255并行输入输出原理和初始化方法。3.掌握定时器8253和并行接口8255的综合应用设计技术。二、实验内容用8253定时1秒钟,“时间到”信号可由8255端口的一个位检测得到。在8255的另一个端口连接8个发光二极管,则可实现每隔1秒钟循环点亮1个灯。还可以在8255端口的另一个位连接一只开关,当开关拨到1时进入运行状态,当拨到0时返回DOS。三、实验程序流程图8255初始化检测开关,是0吗?8253初始化设置灯点亮初始状态寄存器,并点亮1只灯查询时间到状态信号,是1吗?循环点亮1个灯查询时间到状态信号,是0吗?返回DOSYYYNNN四、实验硬件接线图程序清单:CODESEGMENTASSUMECS:CODESTART:MOVAL,10010000B;8255初始化MOVDX,28BH;间接I/O寻址方式,8255的控制口地址OUTDX,AL;将8255控制字送控制端口地址PR0:MOVAL,00110110B;8253计数器0工作方式字MOVDX,283H;间接I/O寻址方式,8253的控制口地址OUTDX,AL;将8253计数器0控制字送到控制端口地址MOVAX,1000;计数初值MOVDX,280H;选中计数器0OUTDX,AL;将计数初值低字节送8253计数器0端口地址MOVAL,AH;先读写低字节,再读写高字节OUTDX,AL;将计数初值高字节送8253控制端口地址PR1:MOVAL,01111100B;8253计数器1工作方式字MOVDX,283H;间接I/O寻址方式OUTDX,AL;将8253计数器1控制字送到控制端口地址MOVAX,1000;计数初值MOVDX,281H;选中计数器1OUTDX,AL;将计数初值低字节送8253计数器1端口地址MOVAL,AH;先读写低字节,再读写高字节OUTDX,AL;将计数初值高字节送8253控制口地址MOVBL,01HMOVDX,28AH;间接I/O寻址方式,8255的C口地址MOVAL,BLOUTDX,AL;点亮一盏灯L1:MOVDX,288H;间接I/O寻址方式,8255的A口地址INAL,DXTESTAL,10000000B;测试PA7开关JENEXT;若为0则返回DOSL2:MOVDX,288H;8255A口地址INAL,DXTESTAL,00000001B;测PA0,若是1则继续测PA0JNEL2ROLBL,1;若是0则准备点亮下一盏灯MOVDX,28AH;8255C口地址MOVAL,BL;点亮下一盏灯OUTDX,ALL3:MOVDX,288H;8255A口地址INAL,DXTESTAL,01H;测PA0,若是0则继续测PA0JEL3;定时到OUT输出低电平并维持一个CLK周期JMPL1;若PA0为1,则跳转至L1NEXT:MOVAH,4CH;返回DOSINT21HCODEENDSENDSTART