+ -
当前位置:首页 → 问答吧 → 关于8253,请高人看看我的代码哪里错了

关于8253,请高人看看我的代码哪里错了

时间:2011-12-13

来源:互联网

我的代码
Assembly code
;8253的CLK0输入8KHz的时钟脉冲
;OUT0与CLK1相连
code segment
assume cs:code
start:mov dx,203h;控制字的端口地址
mov ax,36h;将计数器0设置为模式3
out dx,ax
mov dx,200h;定时器0端口地址
mov ax,40h
out dx,ax;写入低8位
mov ax,1fh
out dx,ax;写入高8位
mov dx,203h;控制字的端口地址
mov ax,74h;
out dx,ax;将计数器1设置为方式2
mov dx,201h;计数器1端口地址
mov ax,04h
out dx,ax;写入低8位
mov ax,00h
out dx,ax;写入高8位
aa:jmp aa
code ends
end start
;目标是OUT0输出1HZ
;OUT1输出0.25HZ

我用Proteus仿真后,OUT0和OUT1没有波形输出,请高人指点

作者: nimingzhe2008   发布时间: 2011-12-13

这里是不是有问题?
mov ax,40h
out dx,ax;写入低8位
mov ax,1fh
out dx,ax;写入高8位
这样吧:
mov al,40h
out dl,al;写入低8位
mov al,1fh
out dl,al;写入高8位

作者: asia_deng   发布时间: 2011-12-13

不好意思,是这样
mov al,40h
out dl,al;写入低8位
mov ah,1fh
out dh,ah;写入高8位

作者: asia_deng   发布时间: 2011-12-13

引用 2 楼 asia_deng 的回复:

不好意思,是这样
mov al,40h
out dl,al;写入低8位
mov ah,1fh
out dh,ah;写入高8位

还是没效果。

作者: nimingzhe2008   发布时间: 2011-12-13

http://dl.dbank.com/c0383t16fw 这是我仿真的没成功的作品

作者: nimingzhe2008   发布时间: 2011-12-13

后面还有一部分:
mov ax,04h
out dx,ax;写入低8位
mov ax,00h
out dx,ax;写入高8位
这样:
mov al,04h
out dl,al;写入低8位
mov ah,00h
out dh,ah;写入高8位

我也是新手

作者: asia_deng   发布时间: 2011-12-13

我把ax都改成al了。ah不让用在out语句里

作者: nimingzhe2008   发布时间: 2011-12-13