实验6、8254定时/计数器实验
2020-01-15 10:10
846 查看
实验内容
基础部分:
1、编写程序,是8254的计数器1分别工作在方式0、1、2、3下,在示波器上观察各工作方式下OUT1的输出波形。
拓展部分:
2、使用单脉冲开关手动生成8254的输入时钟,观察方式0的输出波形。
3、编写程序,在示波器上显示周期为1s的方波。
4、利用8254方式2或方式3精确定时,控制LED等D7~D0的点亮:
- 初始时,D7~D0全部熄灭;
- 1秒钟之后点亮D0,再经过1秒D1D0点亮,…,8秒钟之后D7~D0全部点亮。
代码
1
CONUTER0 EQU 0600H CONUTER1 EQU 0602H CONUTER2 EQU 0604H CON8254 EQU 0606H CODE SEGMENT ASSUME CS:CODE START: MOV DX, CON8254 ;MOV AL,70H ;计数器1工作在方式0 ;MOV AL,72H ;方式1 MOV AL,74H ;方式2 ;MOV AL, 76H ;方式3 OUT DX, AL MOV DX, CONUTER1 MOV AL, 00H OUT DX, AL MOV AL, 48H OUT DX, AL AA1: JMP AA1 ;将GATE1置为高电平,运行程序,在示波器中可以看到OUT1输出一段高电平后会输出一个宽度为一个周期的负脉冲。 CODE ENDS END START
2
A8254 EQU 0600H B8254 EQU 0602H C8254 EQU 0604H CON8254 EQU 0606H CODE SEGMENT ASSUME CS:CODE START: MOV DX, CON8254 MOV AL, 70H ;8254计数器1工作在方式0,计数时输出低电平,到0时输出高电平 OUT DX, AL MOV DX, B8254 MOV AL, 00H OUT DX, AL MOV AL, 48H ;写入计数初值4800H,接18.432KHZ时钟源,这样可到达计时1s后输出正跃变信号 OUT DX, AL AA1: JMP AA1 ;将GATE1置为低电平,运行程序。 ;将GATE1置为高电平,在示波器中可以观察到OUT1输出低电平,待过一段时间后(计数器减至0)输出高电平。 CODE ENDS END START
3
A8254 EQU 0600H B8254 EQU 0602H C8254 EQU 0604H CON8254 EQU 0606H CODE SEGMENT ASSUME CS:CODE START: MOV DX, CON8254 MOV AL, 76H ;8254计数器1工作在方式3,产生方波信号 OUT DX, AL MOV DX, B8254 MOV AL, 00H OUT DX, AL MOV AL, 48H ;写入计数初值4800H,接18.432KHZ时钟源,这样方波周期则为1s OUT DX, AL AA1: JMP AA1 CODE ENDS END START
4
COUNTER0 EQU 0600H COUNTER1 EQU 0602H COUNTER2 EQU 0604H CON8254 EQU 0606H A8255 EQU 0640H B8255 EQU 0642H C8255 EQU 0644H CON8255 EQU 0646H DATA SEGMENT LASTNUMBER DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX,CON8255 MOV AL,80H ;A--OUT,B--OUT OUT DX,AL ;设置中断向量 MIR6 MOV AX,OFFSET MIR6 ;存偏移量 MOV SI,38H MOV [SI],AX MOV AX,CS ;存段地址 MOV SI,3AH MOV [SI],AX CLI ;关闭中断 ;设置ICW1~ICW4和OCW1 MOV AL,11H OUT 20H,AL MOV AL,08H ;中断源选择IR0 OUT 21H,AL MOV AL,04H ;S2为1表示有内部从片被级联到主片的IR2上 OUT 21H,AL MOV AL,07H ;D2为1表示其为主片,D1为1表示为自动中断,D0为1表示为8086~Pentinum的CPU OUT 21H,AL MOV AL,2FH ;M7和M6为0表示IR7和IR6,IR4(用于复位)三个个中断未被屏蔽,其它中断均被屏蔽 OUT 21H,AL STI ;打开中断 MOV DX,CON8254 MOV AL,76H ;计数器1工作在方式3 OUT DX,AL MOV DX,COUNTER1 MOV AL,00H OUT DX,AL MOV AL,48H OUT DX,AL ;计数初值4800H,选用时钟18.432KHZ MOV AL,00H MOV DX,B8255 MAIN: OUT DX,AL JMP MAIN MIR6: CMP AL,0FFH JZ I1 ROL AL,1 INC AL JMP I2 I1: MOV AL,00H I2: IRET CODE ENDS END START
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- PIC16F877A开发板 数码管计数器实验
- EDA2016 秋季计数器仿真实验作业
- FPGA基础实验:用计数器读取ROM数据产生信号波形(直接数字频率合成DDS)
- 实验三:计数器、波形仿真、SignalTap
- FPGA基础实验:计数器设计、波形仿真、SignalTap调试
- 实验2 中断和定时计数器实验
- 每天进步一点点------基础实验_09_计数器 :摸4、8、16计数器各一
- 定时器/计数器实验报告
- 计数器 FPGA 电路实验 作业
- 8253方式0计数器实验
- 【微机实验系列】可编程定时/计数器与中断控制
- 计数器 FPGA 电路实验 作业
- 计数器 FPGA电路实验 作业2
- 计数器设计实验
- FPGA实验3:计数器、波形仿真、SignalTap
- J2EE实验2:乘法口诀表和访问计数器
- 定时器/计数器设计实验
- FPGA入门实验三:计数器、波形仿真、SignalTap
- 作业1:计数器仿真实验作业
- 定时器/计数器的提高实验报告