打印

请教大家51单片机问题

[复制链接]
2161|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
......|  楼主 | 2008-5-10 20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
......|  楼主 | 2008-5-10 21:01 | 只看该作者

比如说我想设置P0.0为输入口,p0.1为输出口

p0.2-p0.7为输出口
是不是先设置P0=0X01
再要读P0.0口状态送A
a=p0.0
将P0.1-P0.7输出1
P1=0XFE
这时送往P0.1-P0.7的1会不会把P0.1-P0.7变成输入口呢

使用特权

评论回复
板凳
......|  楼主 | 2008-5-10 21:06 | 只看该作者

高手来帮帮忙啊,先谢谢了

使用特权

评论回复
地板
......|  楼主 | 2008-5-10 21:28 | 只看该作者

使用特权

评论回复
5
......|  楼主 | 2008-5-10 21:53 | 只看该作者

大伙帮帮忙啊

使用特权

评论回复
6
5880527| | 2008-5-10 21:57 | 只看该作者

书本害的,不要去管的,直接去读就可以了,没那么复杂

使用特权

评论回复
7
......|  楼主 | 2008-5-10 22:07 | 只看该作者

谢谢5880527

我现在想知道怎么去设置输入输出口

使用特权

评论回复
8
5880527| | 2008-5-10 22:29 | 只看该作者

口子上电都默认为输入状态的

输入你可以JB  P0.0,X,也可以MOV C,P0.0,不需要先来SETB P0.0的;输出SETB P0.0/CLR P0.0,也可MOV P0.0,C

使用特权

评论回复
9
......|  楼主 | 2008-5-10 22:37 | 只看该作者

谢谢LS

就是做输入口时候先将对应口设置为1,再读出来就行了
设置为输出口方法是直接输出高和低,即送1和0

使用特权

评论回复
10
5880527| | 2008-5-10 22:45 | 只看该作者

大多数情况你是输入就输入,输出就输出

如果你没对那个脚置过0那你任何时候去读都可以读到真实状态的,JB也好,MOV C也好,不需要每次读都先来个SETB,但IIC你需要输出后来个SETB,以便数据能进来,如果是固定的输入那根本不需要SETB。我硬件不太好,也没整明白那几个电阻的关系,只是有个新华龙的口子不太一样,需要先关掉什么电阻的

使用特权

评论回复
11
yysmcu| | 2008-5-12 00:05 | 只看该作者

有一点

P0、P2作输入口时,必须要使每位先置1,才能读入外部数据

使用特权

评论回复
12
gyt| | 2008-5-12 14:54 | 只看该作者

51和PIC不同

不用特意设置为输入状态的

使用特权

评论回复
13
农民讲习所| | 2008-5-12 15:24 | 只看该作者

一般是这样的

IO基本是要么固定输入口,要么固定输出口,几乎很少在使用中既输入又输出的。那么情况就非常简单了:

如果是输入:直接读,因为绝大多数MCU复位时99.9%都是设置为输入。
如果是输出:51类型直接写,有些MCU设置下输出模式寄存器即可。

是不是很简单了?

那些说51的IO读之前要写1之类的,都是画蛇填足。

使用特权

评论回复
14
5880527| | 2008-5-12 19:39 | 只看该作者

书本真是害人不浅

去百度了一下,不能正确读单片机管脚的人还多得很。大学的单片机教材都绝对是一开始就给你讲那几个口子的不同,几个什么弱上拉啊之类。结果大学毕业竟然不知道汇编怎么变成机器码。刚开始工作时看到一本书里每读一下口子就先给你MOV x,#0FFH一下,那时觉得那就是正确方法。
你说非电子专业给你讲什么三极管的动态工作点静态工作点,结果工作了发现从不拿三极管来放大,顶多就做一开关,这下好了,这么一个最简单的应用反而又不知道怎么办了。电机拖动把电机的线圈绕法背得滚瓜烂熟,做实验最简单的直流电机却不知道咋接线了。
书本真是害人不浅。本人读书时不怎么用功,让高手们见笑了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

32

帖子

1

粉丝