《微处理器》实验报告
学院:
班级:
姓名:
学号:
实验四 可编程定时/计数器8253实验
-
实验要求
利用8086外接8253可编程定时/计数器,可以实现方波的产生。
-
实验目的
-
- 、学习8086与8253的连接方法。
- 、学习8253的控制方法。
- 、掌握8253定时器/计数器的工作方式和编程原理
-
-
实验电路及连线
-
- 、Proteus实验电路
-
2、硬件验证实验
硬件连接表
接线孔1 | 接线孔2 |
8253 CS | A000H-AFFFH |
CLOCK_OUT | CLOUK_IN |
分频1/4 | CLK0 |
GATE0 | +5V |
OUT0 | 示波器(电压表) |
-
实验说明
8253芯片介绍
8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz, 用+5V单电源供电。
8253的功能用途:
⑴ 延时中断 ⑸ 实时时钟
⑵ 可编程频率发生器 ⑹ 数字单稳
⑶ 事件计数器 ⑺ 复杂的电机控制器
⑷ 二进制倍频器
8253的六种工作方式:
⑴ 方式0:计数结束中断 ⑷ 方式3:方波频率发生器
⑵ 方式l:可编程频率发生 ⑸ 方式4:软件触发的选通信号
⑶ 方式2:频率发生器 ⑹ 方式5:硬件触发的选通信号
实验程序流程图
-
实验步骤
1、Proteus仿真
a.在Proteus中打开设计文档“8253_STM.pdsprj”;
b.建立实验程序并编译,仿真;
c.如不能正常工作,打开调试窗口进行调试。
汇编语言参考程序:
CODE SEGMENT ;H8253.ASM
ASSUME CS:CODE
START: JMP TCONT
TCONTRO EQU 0A06H
TCON0 EQU 0A00H;因为偶地址有效,所以设置为偶地址
TCON1 EQU 0A02H;偶地址有效,同理
TCON2 EQU 0A04H; 偶地址有效,同理
TCONT: MOV DX,TCONTRO
MOV AL,16H ;方式3,二进制计数,计数器0,只写计算值低8位
OUT DX,AL
MOV DX,TCON0
MOV AX,20 ;时钟为1MHZ,计数时间=1us*20=20us,输出频率50KHZ
OUT DX,AL
JMP $
CODE ENDS
END START
C语言参考程序:
#define TCONTRO 0A006H
#define TCON0 0A000H
#define TCON1 0A002H
#define TCON2 0A004H
void outp(unsigned int addr, char data)
// Write a byte to the specified I/O port
{ __asm
{ mov dx, addr
mov al, data
out dx, al
}
}
char inp(unsigned int addr)
// Read a byte from the specified I/O port
{ char result;
__asm
{ mov dx, addr
in al, dx
mov result, al
}
return result;
}
void main(void)
{
outp(TCONTRO,0x16);//计数器0,只写计算值低8位,方式3,二进制计数
outp(TCON0,20);//时钟为1MHZ ,计数时间=1us*20 =20 us 输出频率50KHZ
while(1){}
}
2、实验板验证
a.通过USB线连接实验箱
b.按连接表连接电路
c.运行PROTEUS仿真,检查验证结果
-
实验结果
8253的内部结构以及相关引脚排列:
即8253内部有3个计数器和1个控制字寄存器,可以通过地址线A0、A1,读写控制线RD非、WR非与选片CS非进行寻址,并进行相关的操作,在本次实验中利用Proteus系统对8086外接8253可编程定时/计数器的控制,最后实现了方波的产生,运行结果是播放音乐。
-
心得体会
通过本次实验的学习,我利用Proteus系统对8086外接8253可编程定时/计数器,实现了方波的产生。熟悉了8086与8253的连接方法和8253的控制方法。掌握了8253定时器/计数器的工作方式和编程原理。
通过这次实验,使我对芯片8253有了更加深刻的认识,也使将理论知识和实践操作相结合,使储备的专业知识更加丰富,对仿真操作能力提升了一些,在实验中,还是会遇到一些问题,这让我认识到了虽然理论知识很充足,但是如果缺少动手实践的经验的话,会产生一些令人啼笑皆非的小失误,所以当理论知识掌握了之后,一定要与实践结合起来,这样我们的理论知识才能够通过这种方式创造价值。
最后希望我以后会有更多的实践机会,并从中取得更多的进步。