搜索
您的当前位置:首页正文

8253定时计数器

来源:赴品旅游
 微机原理 实验报告

专业班级 通信1301 姓名 张麒 学 号 20135440

实验题目 8253定时计数器 日 期 2015.6.8

实验三:可编程定时/计数器8253 一、实验目的 掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU模块、示波器。 三、实验内容 8253计数器0,1,2工作于方波方式,观察其输出波形。 四、实验原理 本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路 脉冲产生电路:该电路由1片74LS161、1片74LS04、1片74LS132组成。CLK0是6MHz,输出时钟为该CLK0的2分频(CLK1),4分频(CLK2),8分频(CLK3),16分频(CLK4),相应输出插孔 (CLK0~CLK4)。 脉冲产生电路 8253定时器/计数器电路:该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口、地址、读、写线均已接好,T0、T1、T2时钟输入分别为8253CLK0、8253CLK1、8253CLK2。定时器输出、GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。原理图如下: 注:GATE信号无输入时为高电平 8253定时器/计数器电路 四、实验连线 1、实验连线: CS0CS8253 CLK48253CLK0 OUT08253CLK1 OUT18253CLK2 OUT2示波器或发光二级管; 各通道门控信号GATE  +5V 2、编程调试程序。 3、全速运行,观察实验结果。 五、程序框图 开 始写T0方式控制字写T0计数初值写T1方式控制字写T1计数初值写T2方式控制字写T2计数初值空操作结束 程序框图 六、参考程序 code segment assume cs:code org 100h start: mov dx,04a6h mov al,36h ;通道0 out dx,al mov dx,04a0h mov al,00h out dx,al mov al,40h out dx,al mov dx,04a6h mov al,76h ;通道1 out dx,al mov dx,04a2h mov al,02h out dx,al mov al,0h out dx,al mov dx,04a6h mov al,0b6h ;通道2 out dx,al mov dx,04a4h mov al,2h out dx,al mov al,00h out dx,al jmp $ code ends end start 七、思考题 1、编程。利用通道1的软触发计数工作方式(方式0、4),对输入的单脉冲进行计数。注意观察计数初值与输入的脉冲数,以及输出信号的波形 。 2、编程。利用通道2的硬触发计数工作方式(方式1、5),对输入的单脉冲进行计数。注意观察计数初值与输入的脉冲数,以及输出信号的波形 3、分析软触发与硬触发的区别。 思考题1 通道1方式0 code segment assume cs:code ;伪指令用于指示如何按段组织程序和使用存储器 org 100h start: mov dx,04a6h ;控制寄存器的端口地址,采用间接寻址方式 mov al,70h ;计数器1工作在方式0,先写低字节后写高字节,二进制计数 out dx,al ;写入控制端口 mov dx,04a2h ;通道1的端口地址 mov al,05h out dx,al ;写入计数器1的计数初值低字节 mov al,00h out dx,al ;写入计数器1的计数初值高字节 jmp $ ;无条件循环执行空操作 code ends ;伪指令用于指示如何按段组织程序和使用存储器 end start 实验结果:开始产生单脉冲时,二极管灯亮,连续五个脉冲后,二极管熄灭。 通道1方式4 code segment assume cs:code ;伪指令用于指示如何按段组织程序和使用存储器 org 100h start: mov dx,04a6h ;控制寄存器的端口地址,采用间接寻址方式 mov al,78h ;计数器1工作在方式4,先写低字节后写高字节,二进制计数 out dx,al ;写入控制端口 mov dx,04a2h ;通道1的端口地址 mov al,05h out dx,al ;写入计数器1的计数初值低字节 mov al,00h out dx,al ;写入计数器1的计数初值高字节 jmp $ ;无条件循环执行空操作 code ends ;伪指令用于指示如何按段组织程序和使用存储器 end start 实验结果:开始产生单脉冲时,二极管不亮,待产生五个脉冲后,二极管变亮。 思考题2 通道2方式1 code segment assume cs:code ;伪指令用于指示如何按段组织程序和使用存储器 org 100h start: mov dx,04a6h ;控制寄存器的端口地址,采用间接寻址方式 mov al,0b2h ;计数器2工作在方式1,先写低字节后写高字节,二进制计数 out dx,al ;写入控制端口 mov dx,04a4h ;通道2的端口地址 mov al,05h out dx,al ;写入计数器1的计数初值低字节 mov al,00h out dx,al ;写入计数器1的计数初值高字节 jmp $ ;无条件循环执行空操作 code ends ;伪指令用于指示如何按段组织程序和使用存储器 end start 实验结果:使用开关触发后,二极管变亮,产生五个脉冲后,二极管熄灭。 通道2方式5 code segment assume cs:code ;伪指令用于指示如何按段组织程序和使用存储器 org 100h start: mov dx,04a6h ;控制寄存器的端口地址,采用间接寻址方式 mov al,0bah ;计数器2工作在方式1,先写低字节后写高字节,二进制计数 out dx,al ;写入控制端口 mov dx,04a4h ;通道2的端口地址 mov al,05h out dx,al ;写入计数器1的计数初值低字节 mov al,00h out dx,al ;写入计数器1的计数初值高字节 jmp $ ;无条件循环执行空操作 code ends ;伪指令用于指示如何按段组织程序和使用存储器 end start 实验结果:使用开关触发后,二极管熄灭,产生五个脉冲后,二极管变亮。 思考题3 分析软触发与硬触发的区别。 软触发:是用电平触发,靠软件编程的方式触发启动,不能重复计数,只能完成一次计数到初值的过程,一旦程序编写好了,触发启动是自动的有规律的,除非修改程序,否则无法根据自己的意愿随意触发。 硬触发:是用上升沿触发,是靠外部硬件的触发脉冲启动,可以重复进行计数,随意重触发,通过门控的跳变,完成多次计数到初值的过程。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top