单片机IO口的疑问,请教老师和高手,急用!!!!
1.在单片的I/O口读引脚的时候,都是用软件把T2(场效应管)截止的吗?2.然后呢,在单片机的P0口中,当执行MOV@DPTR,A地址和数据都是通过地址数据总线传送到外部...
1.在单片的I/O口读引脚的时候,都是用软件把T2(场效应管)截止的吗?
2.然后呢,在单片机的P0口中,当执行MOV @DPTR,A 地址和数据都是通过地址数据总线传送到外部ram的吗,会使用D触发器输出数据么?
3.然后执行,MOV A,@DPTR的时候,外部的数据也是通过地址和数据总线传送到A中的吗,还是通过读引脚传送到A中呢?
4.还有,在p0口的原理图中,连接D触发器的总线和连接T1的数据/总线有什么区别呢? 展开
2.然后呢,在单片机的P0口中,当执行MOV @DPTR,A 地址和数据都是通过地址数据总线传送到外部ram的吗,会使用D触发器输出数据么?
3.然后执行,MOV A,@DPTR的时候,外部的数据也是通过地址和数据总线传送到A中的吗,还是通过读引脚传送到A中呢?
4.还有,在p0口的原理图中,连接D触发器的总线和连接T1的数据/总线有什么区别呢? 展开
2个回答
展开全部
1.对于81的I/O口,需要先写1,再读引脚,写1的时候D触发器Q非端为0,自然拉低了 T2,使之截止
2.P0口,当执行MOV @DPTR,A 时,
这时多路开关‘控制’信号为‘1’,‘与门’解锁,‘与门’输出信号电平由“地址/数据”线信号决定;多路开关与反相器的输出端相连,地址信号经“地址/数据”线→反相器→T2场效应管栅极→T2漏极输出。
3.在取指令期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU自动将0FFH(11111111,即向D锁存器写入一个高电平‘1’)写入P0口锁存器,使V2管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线,
如果该指令是输入数据(读外部数据存储器或程序存储器),如MOVX A,@DPTR(将外部RAM某一存储单元内容通过P0口数据总线输入到累加器A中),则输入的数据仍通过读引脚三态缓冲器到内部总线
通过以上的分析可以看出,当P0作为地址/数据总线使用时,在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态。因此,不能再作为通用的I/O端口。
如果可以,你留个邮箱,我这有份资料发给你
2.P0口,当执行MOV @DPTR,A 时,
这时多路开关‘控制’信号为‘1’,‘与门’解锁,‘与门’输出信号电平由“地址/数据”线信号决定;多路开关与反相器的输出端相连,地址信号经“地址/数据”线→反相器→T2场效应管栅极→T2漏极输出。
3.在取指令期间,“控制”信号为“0”,V1管截止,多路开关也跟着转向锁存器反相输出端Q非;CPU自动将0FFH(11111111,即向D锁存器写入一个高电平‘1’)写入P0口锁存器,使V2管截止,在读引脚信号控制下,通过读引脚三态门电路将指令码读到内部总线,
如果该指令是输入数据(读外部数据存储器或程序存储器),如MOVX A,@DPTR(将外部RAM某一存储单元内容通过P0口数据总线输入到累加器A中),则输入的数据仍通过读引脚三态缓冲器到内部总线
通过以上的分析可以看出,当P0作为地址/数据总线使用时,在读指令码或输入数据前,CPU自动向P0口锁存器写入0FFH,破坏了P0口原来的状态。因此,不能再作为通用的I/O端口。
如果可以,你留个邮箱,我这有份资料发给你
更多追问追答
追问
问问二楼的:
1.比如STC89C52读引脚的时候需要向P口写1让T2截止么?我看到书上那些芯片拓展中是直接读取的,而没有写1,而书中前面讲的时候要写1,这有什么区别?
按你的意思,读取外部拓展芯片时候,其读引脚之前是自动的向D写1使之截止么?可书上说不会自动写啊,是新版的单片机的功能附加了么?怎么向片外写数据是通过地址/数据总线,而读取的时候是读引脚而不是吧数据通过地址/数据总线独到A中呢?谢谢你帮我解答
追答
你的邮箱给我吧,我有份资料,里面讲的很详细的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询