共2条
1/1 1 跳转至页
![](http://uphotos.eepw.com.cn/jackwang/thumb/avatar.jpg)
问
各位帮我看看这个程序,运行时为什么P0端口没有变化?
谢谢大家了。
ORG 0000H
LJMP BEGIN
ORG 0033H
BEGIN:
MOV DPTR ,#00FFH
LCALL DL30MS
LOOG0:
MOV A , #00H
MOVX @DPTR , A
LCALL DL30MS
LCALL DL30MS
LCALL DL30MS
MOV A , #0FFH
MOVX @DPTR , A
LCALL DL30MS
LCALL DL30MS
LCALL DL30MS
AJMP LOOG0
dl30ms:
mov r4, #0FFH
dl10:
lcall DL1mS
DJNZ R4, DL10
ret
DL1mS: ;1ms
MOV R6 , #0aH
DL1:
MOV R5 , #32H
DL2:
DJNZ R5 , DL2
DJNZ R6 , DL1
ret
DL05mS: ;05ms
MOV R6 , #14H
DL3:
MOV R5 , #01H
DL4:
DJNZ R5 , DL4
DJNZ R6 , DL3
ret
END
答 1: 你的程序没有对P0口操作 答 2: 是呀!可以这样啊
mov p0,#00h
.......
mov p0,#0ffh
.......
答 3: 谢谢,再帮我看看 这是简图,我的主要目的是通过MOVX命令扩展IO接口,各位再帮我看看这个程序,运行时为什么74373的输出端口没有变化?
谢谢大家了。
答 4: 简图图搞错 答 5: 对不起,应该是这样的图,刚搞错了对不起,应该是这样的图,刚搞错了 答 6: 请大家帮帮忙!谢谢!请大家帮帮忙!谢谢! 答 7: 你是P0口不能变化还是373不能输出变化啊?373的LE能正常实现H-L-H的变化吗? 答 8: 电路有点问题哦。。。你用什么片子做I/O扩展接口? 答 9: 373不能输出变化啊 我检查了电路,373的LE不能正常实现H-L-H的变化,这是为什么? 答 10: /WR 要接到 74145 的 D. 答 11: 真的没有人知道怎么改吗?真的没有人知道怎么改吗? 答 12: ALE????数据总线都没搞清楚
ALE
RD
WD
看看这三个脚有什么用途。 答 13: 你的电路有问题P0口如果作为IO口,你应该接上拉电阻
做数据\地址总线才用373锁存器! 答 14: 各位,帮帮忙各位,帮帮忙,我是新手,还有很多不懂,请大家多多指教!
上图我是按教材上的图例画的,下面这图是改过的,我看程序没有什么大问题,主要是CPU访问外部RAM的时序没有处理好(我的看法对不对,请指正)。我按改过后的电路图实验,74373输出口还是没有动作,我实在不知道问题在哪,请大家帮帮忙,谢谢了。 答 15: 各位,帮帮忙各位,帮帮忙 答 16: 你用的8031那程序存在哪?EA的接法等等 答 17: 图上是8031,实际用89C52图上是8031,实际用89C52 答 18: 啊我不明白你用什么来检测74373输出端是否有信号输出。
这个电路来看,你的意图显然是要把p0做地址总线。
但电路不完整啊,74373只是锁存器而已,电路里没有任何外部的i/o和存储设备。这样的话执行movx指令能够从p0输出地址信号吗?我不晓得啊,哪位高人来解释一下? 答 19: 要查查手册你首先要搞明白373能麽用。OE是输出允许、LE时锁存控制。你直接将WR信号接到LE上那么只要有读写外部寄存器的命令数据都回存入373。你用地址控制373的输出控制端,你完成写命令后373的输出被禁止。所以,373的输出大部分时间为高阻状态。
谢谢大家了。
ORG 0000H
LJMP BEGIN
ORG 0033H
BEGIN:
MOV DPTR ,#00FFH
LCALL DL30MS
LOOG0:
MOV A , #00H
MOVX @DPTR , A
LCALL DL30MS
LCALL DL30MS
LCALL DL30MS
MOV A , #0FFH
MOVX @DPTR , A
LCALL DL30MS
LCALL DL30MS
LCALL DL30MS
AJMP LOOG0
dl30ms:
mov r4, #0FFH
dl10:
lcall DL1mS
DJNZ R4, DL10
ret
DL1mS: ;1ms
MOV R6 , #0aH
DL1:
MOV R5 , #32H
DL2:
DJNZ R5 , DL2
DJNZ R6 , DL1
ret
DL05mS: ;05ms
MOV R6 , #14H
DL3:
MOV R5 , #01H
DL4:
DJNZ R5 , DL4
DJNZ R6 , DL3
ret
END
答 1: 你的程序没有对P0口操作 答 2: 是呀!可以这样啊
mov p0,#00h
.......
mov p0,#0ffh
.......
答 3: 谢谢,再帮我看看 这是简图,我的主要目的是通过MOVX命令扩展IO接口,各位再帮我看看这个程序,运行时为什么74373的输出端口没有变化?
谢谢大家了。
答 4: 简图图搞错 答 5: 对不起,应该是这样的图,刚搞错了对不起,应该是这样的图,刚搞错了 答 6: 请大家帮帮忙!谢谢!请大家帮帮忙!谢谢! 答 7: 你是P0口不能变化还是373不能输出变化啊?373的LE能正常实现H-L-H的变化吗? 答 8: 电路有点问题哦。。。你用什么片子做I/O扩展接口? 答 9: 373不能输出变化啊 我检查了电路,373的LE不能正常实现H-L-H的变化,这是为什么? 答 10: /WR 要接到 74145 的 D. 答 11: 真的没有人知道怎么改吗?真的没有人知道怎么改吗? 答 12: ALE????数据总线都没搞清楚
ALE
RD
WD
看看这三个脚有什么用途。 答 13: 你的电路有问题P0口如果作为IO口,你应该接上拉电阻
做数据\地址总线才用373锁存器! 答 14: 各位,帮帮忙各位,帮帮忙,我是新手,还有很多不懂,请大家多多指教!
上图我是按教材上的图例画的,下面这图是改过的,我看程序没有什么大问题,主要是CPU访问外部RAM的时序没有处理好(我的看法对不对,请指正)。我按改过后的电路图实验,74373输出口还是没有动作,我实在不知道问题在哪,请大家帮帮忙,谢谢了。 答 15: 各位,帮帮忙各位,帮帮忙 答 16: 你用的8031那程序存在哪?EA的接法等等 答 17: 图上是8031,实际用89C52图上是8031,实际用89C52 答 18: 啊我不明白你用什么来检测74373输出端是否有信号输出。
这个电路来看,你的意图显然是要把p0做地址总线。
但电路不完整啊,74373只是锁存器而已,电路里没有任何外部的i/o和存储设备。这样的话执行movx指令能够从p0输出地址信号吗?我不晓得啊,哪位高人来解释一下? 答 19: 要查查手册你首先要搞明白373能麽用。OE是输出允许、LE时锁存控制。你直接将WR信号接到LE上那么只要有读写外部寄存器的命令数据都回存入373。你用地址控制373的输出控制端,你完成写命令后373的输出被禁止。所以,373的输出大部分时间为高阻状态。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |