同组同学学号:同组同学姓名:实验日期:2012年3月26日交报告日期:2012年5月30日实验(No.1_1)题目:定时器与计数器实验(8253)--8253定时器实验实验目的及要求:实验目的:1、学习8253可编程定时器/计数器定时方法。2、学习8253多级串联实现大时间常数的定时方法。3、学习8088/86控制8253可编程定时器的方法。实验要求:用8253对标准脉冲信号进行计数,就可以实现定时功能。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。实验电路及连线:连线连接孔1连接孔218253_CSCS428253_OUT0L038253_GATE0VCC48253_CLK08253_OUT158253_GATE1VCC68253_CLK1F/4(1M)74MHzFin实验说明:1、本实验工作方式0,计数值减完后输出一个脉冲宽度的高电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。直到下一次计数值减完。这样输出的波形为方波。2、由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为100和10000。将计数器的输出接到计数器0输入。计数器0的输出接到LED0。实验框图:主程序框图源程序及分析:CONTROLequ0c003h;设置命令寄存器COUNT0equ0c000h;设置计数器0COUNT1equ0c001h;设置计数器1COUNT2equ0c002h;设置计数器2codesegmentassumecs:codestartprocnear;第一次定时器设定:moval,36h;;计数器0,16位,方式3,二进制(00110110B=36h)movdx,CONTROLoutdx,almovax,1000movdx,COUNT0outdx,al;计数器低字节moval,ahoutdx,al;计数器高字节;第二次定时器设定moval,01110110B;;计数器1,16位,方式3,二进制movdx,CONTROLoutdx,almovax,1000movdx,COUNT1outdx,al;计数器低字节moval,ahoutdx,al;计数器高字节jmp$startendpcodeendsendstart实验(No.1-2)题目:定时器与计数器实验(8253)--8253计数器实验实验目的及要求:实验目的:1、学习8088/86与8253的连接方法。2、学习8088/86对8253的控制方法。实验要求:利用8088/86外接8253可编程定时器/计数器,可以实现对外部事件进行计数。设置断点读回计数器的值。实验电路及连线:连线连接孔1连接孔218253_CSCS028253_OUT0L038253_GATE0VCC48253_CLK0单脉冲实验说明:本实验中计数器按方式0工作。即十六位二进制计数器。当计数设置好后,计数器就开始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT脚输出一个高电平。实验时,可以将OUT0接到LED上,观察计数器是否工作。实验框图:主程序框图源程序及分析:CONTROLequ08003hCOUNT0equ08000hCOUNT1equ08001hCOUNT2equ08002hcodesegmentassumecs:codestartprocnearmoval,30h;通道0,方式0movdx,CONTROLoutdx,almoval,5;计数器初始值。movdx,COUNT0outdx,al;低八位moval,0outdx,al;高八位Again:moval,00000000B;锁存计数器值movdx,CONTROLoutdx,almovdx,COUNT0inal,dx;读入计数值低八位movbl,alinal,dx;读入计数值高八位movah,almoval,bljmpAgainstartendpcodeendsendstart实验心得:通过本次实验我更加熟练的用8253对标准脉冲信号进行计数,并实现定时功能。并且学会了使用8253可编程定时器/计数器定时方法,多级串联实现大时间常数的定时方法和8088/86控制8253可编程定时器的方法。也是我对接口的软件编程有了初步的认识,使我对以后接口程序的设计奠定了基础。教师评语:成绩:教师签字:年月日