8253计数器实验参考程序: 框图如右:
CONTROL equ 0c003h COUNT0 equ 0c000h COUNT1 equ 0c001h
COUNT2 equ 0c002h code segment
assume cs:code start:
mov al, 36h; 00110110B ; mov dx, CONTROL out dx, al mov ax, 1000 mov dx, COUNT0
out dx, al ; mov al, ah
out dx, al ; mov al, 76h; 01110110B ; mov dx, CONTROL out dx, al mov ax, 1000 mov dx, COUNT1
out dx, al ; mov al, ah
out dx, al ; jmp $ code ends end start
计数器0,16位,方式3,二进制计数器低字节 计数器高字节
计数器1,16位,方式3,二进制计数器低字节 计数器高字节
实验9 8253计数器实验
计数器计数执行单元在外部脉冲的激励下从技术初值n开始执行减1操作,直到执行单元中为0时,(n+1)个时钟,OUT输出高电平,并保持到重新设计定计数初值或工作方式。将OUT0连接到LED上,以看其变化,看计数器是否工作。
实验中设定计数初值为5。 实验框图如下:
由连线图可知: 8253地址:
计数器0:08000h 计数器1:08001h 计数器2:08002h 控制字地址:08003h
8253计数器参考程序:
CONTROL equ 08003h COUNT0 equ 08000h COUNT1 equ 08001h COUNT2 equ 08002h
code segment
assume cs:code
start proc near
mov al, 30h ; mov dx, CONTROL out dx, al
mov al, 5 ; mov dx, COUNT0
out dx, al ; mov al, 0
out dx, al ; Again:
mov al, 00000000B ; mov dx, CONTROL out dx, al
mov dx, COUNT0
in al, dx ; mov bl, al
in al, dx ; mov ah, al mov al, bl jmp Again
start endp code ends
end start
通道0,方式0 计数器初始值。 低八位 高八位 锁存计数器值 读入计数值低八位读入计数值高八位
8086实验10 步进电机控制实验
单四拍工作方式参考程序如下:
mode equ 082h ctl equ 08000h contrl equ 08003h Astep equ 01h Bstep equ 02h Cstep equ 04h Dstep equ 08h data segment dly_c dw 0 data ends code segment
assume cs:code, ds:data start:
mov ax, data mov ds, ax mov dx, contrl mov al, mode out dx, al mov dx, ctl mov al, 0 out dx, al
mov dly_c, 1000h step41:
mov dx,ctl mov al,Dstep out dx,al call delay mov al,Cstep out dx,al call delay mov al,Bstep out dx,al call delay mov al,Astep out dx,al call delay jmp step41 delay: mov cx, dly_c dd1: loop dd1 ret code ends
end start