汇编8253例子PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/12/10
00110011
在计数过程中,8253读计数器现行值的方法: (将计数值存入内部锁存器)
MOV OUT IN MOV IN MOV
AL,03H ;计数器0的锁存命令 0FBH,AL;写入控制寄存器 AL,0F8H ;读低8位 CL,AL ;存入CL中 AL,0F8H ;读高8位 CH,AL ;存入CH中
3
例2:用8253产生各种定时波形。
8086 CPU
A9 A8 A7 A6 A5 M/IO A4 A3 A0
A2 A1 RD WR
D7—D0
74LS138 G1
G2A
G2B C Y4 B A
CLK0 CLK1 CLK2
1MHz方波
GATE0
5V
CS OUT0
2KHz方波
GATE1
A1 OUT1
A0
MOV AL,37H OUT 83H,AL MOV AL,50H OUT 80H,AL MOV AL,12H OUT 80H,AL
2020/12/10
1
8253的编程
初始化编程的步骤:
1.写入通道控制字,规定通道的工作方式;(A1A0=11) 2. 写入计数值(由控制字的D7D6确定通道号)。 ①若规定只写入低8位,则写入的为计数值的低8位,高8位 自动置0; ②若规定只写入高8位,则写入的为计数值的高8位,低8位 自动置0; ③若是16位计数值,则分两次写入,先写入低8位,再写入 高8位。
分析:通道0工作于方式3,控制端GATE0接+5V,时间常数 N0=1MHz/2KHz=500;
通道1工作于方式1,由控制端GATE1的正跳变触发,OUT1 的宽度为时常,单次触发,时间常数N1=1ms/0.001ms=1000;
通道2工作于方式5,由控制端GATE2的正跳变触发,可连续 触发,时间常数N2=26。
2020/12/10
5
;通道0初始化程序 MOV DX,316H MOV AL, 00110111B OUT DX,AL MOV DX,310H MOV AL,00H OUT DX,AL MOV AL,05H OUT DX,AL
;通道1初始化程序 MOV DX,316H MOV AL, 01110011B OUT DX,AL MOV DX,312H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL
RD
CLK1 A1
A0
CS
INTR
WR
RD
A2
A1
译码
M/IO AB
9
PPT教学课件
谢谢观看
Thank You For Watching
10
2020/12/10
;通道2初始化程序 MOV DX,316H MOV AL, 10011011B OUT DX,AL MOV DX,314H MOV AL,26H OUT DX,AL
6
例3:8253控制LED。要求:LED点亮10秒,熄灭10秒 分析: 8253的数据线与CPU高8位数据线D8——D15相连, 8253的各端口的地址为81H、83H、85H、87H。
例:要求计数器0工作于方式3,输出方波的频率为2KHz,计数 脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。
1. 8253的端口地址为:80H,81H,82H,83H。
2. 常数计算:TC = 2.5MHz/2KHz=1250
3. 8253的方式控制字为: 00 11 011 1 4. 初始化程序段:
OUT1输出占空比为1:1的方波, 8253端口1工作在方式3。 时钟频率为2MHz时,16位计数通道的最大定时时间为: 0 .5s65536=32.768ms +5V
级连:通道0输出 400Hz脉冲(时常 5000),通道1输出 0.05Hz方波(时常 8000)。
2020/12/10
2MHz
GATE0
2020/12/10
8
例4:用8253设计一个自动计数系统(计数500向CPU提出中断 申请)。
8253端口地址: F0H, F2H, F4H, F6H,
8253工作方式:计数器1工作于方式0,按BCD计数, 先读写低字节,后读写高字节。
+5V
2020/12/10
+5V
+5V
D7-D0
GATE1 OUT0 WR
GATE1 D7-D0
CLK0 WR
RD OUT0
A1
CLK1
A0
OUT1 CS
D8-D15
WR
RD
A2
A1
译码
M/ IO A0-A7
7
;通道0初始化程序 MOV AL, 00110101B OUT 87,AL MOV AL,00H OUT 81,AL MOV AL,50H OUT 81,AL
;通道1初始化程序 MOV AL, 01110111B OUT 87,AL MOV AL,00H OUT 83,AL MOV AL,80H OUT 83,AL
1ms的负脉冲
RD WR GATE2
OUT2
D7—D0
பைடு நூலகம்
单脉冲
2020/12/10
4
例2:用8253产生各种定时波形。要求: (1)通道0输出频率为2KHz的方波; (2)通道1产生宽度为1ms的负脉冲; (3)通道2以硬件方式触发,输出单脉冲时常为26。
已知:8253基地址为310H,3通道所用时钟脉冲频率为1MHz。
2020/12/10
2
8253的应用举例
例1:某8253端口地址为F8H~FBH,欲用通道0以方式1, 按BCD计数,计数值为5080。
1.确定通道控制字; 2.计数值的低8位为80; 3.计数值的高8位为50。
初始化程序为: MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL
00110011
在计数过程中,8253读计数器现行值的方法: (将计数值存入内部锁存器)
MOV OUT IN MOV IN MOV
AL,03H ;计数器0的锁存命令 0FBH,AL;写入控制寄存器 AL,0F8H ;读低8位 CL,AL ;存入CL中 AL,0F8H ;读高8位 CH,AL ;存入CH中
3
例2:用8253产生各种定时波形。
8086 CPU
A9 A8 A7 A6 A5 M/IO A4 A3 A0
A2 A1 RD WR
D7—D0
74LS138 G1
G2A
G2B C Y4 B A
CLK0 CLK1 CLK2
1MHz方波
GATE0
5V
CS OUT0
2KHz方波
GATE1
A1 OUT1
A0
MOV AL,37H OUT 83H,AL MOV AL,50H OUT 80H,AL MOV AL,12H OUT 80H,AL
2020/12/10
1
8253的编程
初始化编程的步骤:
1.写入通道控制字,规定通道的工作方式;(A1A0=11) 2. 写入计数值(由控制字的D7D6确定通道号)。 ①若规定只写入低8位,则写入的为计数值的低8位,高8位 自动置0; ②若规定只写入高8位,则写入的为计数值的高8位,低8位 自动置0; ③若是16位计数值,则分两次写入,先写入低8位,再写入 高8位。
分析:通道0工作于方式3,控制端GATE0接+5V,时间常数 N0=1MHz/2KHz=500;
通道1工作于方式1,由控制端GATE1的正跳变触发,OUT1 的宽度为时常,单次触发,时间常数N1=1ms/0.001ms=1000;
通道2工作于方式5,由控制端GATE2的正跳变触发,可连续 触发,时间常数N2=26。
2020/12/10
5
;通道0初始化程序 MOV DX,316H MOV AL, 00110111B OUT DX,AL MOV DX,310H MOV AL,00H OUT DX,AL MOV AL,05H OUT DX,AL
;通道1初始化程序 MOV DX,316H MOV AL, 01110011B OUT DX,AL MOV DX,312H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL
RD
CLK1 A1
A0
CS
INTR
WR
RD
A2
A1
译码
M/IO AB
9
PPT教学课件
谢谢观看
Thank You For Watching
10
2020/12/10
;通道2初始化程序 MOV DX,316H MOV AL, 10011011B OUT DX,AL MOV DX,314H MOV AL,26H OUT DX,AL
6
例3:8253控制LED。要求:LED点亮10秒,熄灭10秒 分析: 8253的数据线与CPU高8位数据线D8——D15相连, 8253的各端口的地址为81H、83H、85H、87H。
例:要求计数器0工作于方式3,输出方波的频率为2KHz,计数 脉冲的频率为2.5MHz,采用BCD计数,试写出初始化程序段。
1. 8253的端口地址为:80H,81H,82H,83H。
2. 常数计算:TC = 2.5MHz/2KHz=1250
3. 8253的方式控制字为: 00 11 011 1 4. 初始化程序段:
OUT1输出占空比为1:1的方波, 8253端口1工作在方式3。 时钟频率为2MHz时,16位计数通道的最大定时时间为: 0 .5s65536=32.768ms +5V
级连:通道0输出 400Hz脉冲(时常 5000),通道1输出 0.05Hz方波(时常 8000)。
2020/12/10
2MHz
GATE0
2020/12/10
8
例4:用8253设计一个自动计数系统(计数500向CPU提出中断 申请)。
8253端口地址: F0H, F2H, F4H, F6H,
8253工作方式:计数器1工作于方式0,按BCD计数, 先读写低字节,后读写高字节。
+5V
2020/12/10
+5V
+5V
D7-D0
GATE1 OUT0 WR
GATE1 D7-D0
CLK0 WR
RD OUT0
A1
CLK1
A0
OUT1 CS
D8-D15
WR
RD
A2
A1
译码
M/ IO A0-A7
7
;通道0初始化程序 MOV AL, 00110101B OUT 87,AL MOV AL,00H OUT 81,AL MOV AL,50H OUT 81,AL
;通道1初始化程序 MOV AL, 01110111B OUT 87,AL MOV AL,00H OUT 83,AL MOV AL,80H OUT 83,AL
1ms的负脉冲
RD WR GATE2
OUT2
D7—D0
பைடு நூலகம்
单脉冲
2020/12/10
4
例2:用8253产生各种定时波形。要求: (1)通道0输出频率为2KHz的方波; (2)通道1产生宽度为1ms的负脉冲; (3)通道2以硬件方式触发,输出单脉冲时常为26。
已知:8253基地址为310H,3通道所用时钟脉冲频率为1MHz。
2020/12/10
2
8253的应用举例
例1:某8253端口地址为F8H~FBH,欲用通道0以方式1, 按BCD计数,计数值为5080。
1.确定通道控制字; 2.计数值的低8位为80; 3.计数值的高8位为50。
初始化程序为: MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL