有关51的IO口的几个问题?2.P1/2/3内部有上拉电阻,所以当作IO口时不需加上拉电阻,那么是不是说,任何时候,都不需加?遇到OC呢?如有I2C挂在上边,那还要再另加上拉电阻吗?像有些DATASHEET上的典型应用中接到uP(并未特别指出哪种uP)的示意图中,加上拉电阻的情况,我用P1/2/3时还需再加上拉吗?如DS1820等的DATASHEET上建议的强上拉的情况怎么处理呢?如果用P口做按键输入,那么由于内部有上拉,是不是可以直接经过按键接地呢?我没看见过这种用法,但是否理论上可行?
3.P1/2/3的操作有对锁存器和对引脚操作的区别,我有些区分不开,是不是简单点,用指令就能分开?如只有MOV是对引脚读写,其他的如ANL,ORL等就是对锁存器操作?两种操作的结果有什么区别,会互相影响吗?是不是这两种操作的区别仅体现在读上?
4.很多地方提到对端口的操作:读--修改--些端口操作,没能搞懂,这样操作,有什么好处?是因为这样不会引起错误?那么,如果引起错误,会是什么样的错误呢?不用这种,直接读写,不行吗?
5.P1/2/3做输入口,学要先写FFH,以使内部场效应管截止,从而不会出现误读,那么还是那个问题,我若对某1个端口做读操作,先写了1,用什么命令才是读入了引脚的信息呢?举个例子,如果我用P1.1接按键,来查询,用如下命令能实现吗(有健按下跳到KEY1)?SETB P1.1 LOOP:JNB P1.1,KEY1 AJMP LOOP;(暂且不去管消抖) ,这样写,能实现吗?是在读引脚状态吗?另外,我也读了一些程序,我特地注意了一下,很多在进行端口读操作时并未进行先写1,是不是因为复位时P口已经是FFH了?还有的程序,如用口线对串行器件操作,先写一的操作怎么处理?我看过一个对DS1302进行读写的程序,在对一串数据进行读时,只是在第一次时进行了写一操作,其他的就是顺着读下去了,这样行吗?不会误读?还是就是应该这样,只对P口进行一次写一,就可以?从P口的结构来看,我觉得不是,应该每读一位前都写一,不知对不对?最后,如果不进行写一操作,错误率会很高吗?
我是初学者,这些问题想了很久,一直也没搞清,请大虾帮忙,别光看看,发表点评论,解决一个是一个啊。
再次感谢!
都20好几的人了,如果上述这些问题都没搞定,还是改行吧,这口饭不是谁都能吃的
入门有先后
不要打击他,或许他在这方面了解不透(我也不懂,但我会用),齐浩,认真看看书吧(北航的不错)
何立民教授的是
到这里去查查,很多的
谢谢。
E文好的话去看最底层的官方公布的器件Datasheet
你是说到INTEL那里去看8031的?
OK.Intel首先设计的51核,当然是最权威
1.10K上拉电阻是根据内部场效应管漏级静态电流算出的(Ohm定律)
续
谢。
不要只是问,这些问题,做个小试验马上明白
楼上家伙说得有道理!
应多多交流,我也问问
驱动能力太小
我一般这样
继续努力,不断学习,善于不耻下问。