打印

新手请教AT89S52

[复制链接]
1752|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zmmhmily|  楼主 | 2008-12-23 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lyjian| | 2008-12-23 12:55 | 只看该作者

楼主搞错了吧

P0口没有上拉,P3有
这才是对的
不过不管有没上拉, 执行P3=0后输出肯定是低的。

使用特权

评论回复
板凳
zmmhmily|  楼主 | 2008-12-23 12:58 | 只看该作者

谢谢楼上

可是我现在怎么都置不了低 找不到问题出在哪里啊

使用特权

评论回复
地板
orangelxlf| | 2008-12-23 20:10 | 只看该作者

太少了

把整个源程序贴出来看下。

使用特权

评论回复
5
zmmhmily|  楼主 | 2008-12-24 16:03 | 只看该作者

源程序如下

//-----------------------------------------------------------------------------
// AT89S52:  16864.c
//-----------------------------------------------------------------------------
//
// Program Description:
// --------------------
//-----------------------------------------------------------------------------

#include <reg52.h>

sbit RS = P3^4;   //H=data; L="command";
sbit RW = P3^3;   //H=read; L="write";
sbit  E = P3^5;   //input enable;
sbit CS1= P3^0;  
sbit CS2= P3^1;
sbit RST= P3^2;   //Reset Signal 低电平有效

#define right_on  CS1_low
#define right_off CS1_high
#define left_on   CS2_low
#define left_off  CS2_high
#define uchar unsigned char
uchar p;

main()
{    

    while(1)
    {
        P3=0x00;
            
    }

}

使用特权

评论回复
6
orangelxlf| | 2008-12-24 20:49 | 只看该作者

hehe

这个程序看着没什么语法问题,但是前面的宏定义都没有用,是你改别人的程序吧.如果真是单给P3口赋值,可以这么写:
#include<reg52.h>
void main()
{
  P3=0;
  while(1);
}

使用特权

评论回复
7
zmmhmily|  楼主 | 2008-12-25 00:01 | 只看该作者

回楼上

本来宏定义是为了用来控制点屏用的, 可是发现点不亮, 然后把其它删了,试一下IO口, 结果发现IO口都不受自己控制, 不知道怎么回事啊

使用特权

评论回复
8
E007| | 2008-12-25 00:03 | 只看该作者

这个都点不亮,只能说明程序没运行,呵呵......

使用特权

评论回复
9
orangelxlf| | 2008-12-25 10:41 | 只看该作者

?

点不亮的原因有很多,还真不好分析,如硬件没接好、时序不对等等。建议你好好看看那个点屏的操作说明。
如果只说这个程序的话,while(1){P3=0;},这句话不是一个很好的赋值操作,这样会导致CPU不停的个P3口赋0,建议安我写的那条语句给P3口赋值看看怎么样。如果输出还是不对的话,可以考虑换个片子,或者把P3口从电路里面断开,不要让别的电路影响到它。

使用特权

评论回复
10
E007| | 2008-12-25 19:39 | 只看该作者

我说的是P3口

就一条指令怎么可能拉不低口线呢?所以只能是程序没运行,一是晶体没起振,二是芯片GP了.楼主说对P0口有效,能拉低,其实是假象,因为P0口内部没有上拉电阻,即使输出一直是1,外面没有上拉电阻时用表测也还是0V,因为这时相当于高阻态.

使用特权

评论回复
11
ybdesire| | 2008-12-27 22:08 | 只看该作者

换芯片

1、楼主说的“P0口有上拉,P3没有,就这点区别”是指P0口有外部上拉,P3外部没有上拉吧。
2、换一块芯片试试吧。我以前写过s52的,就是进不了中断,其它一切正常。后来换一个片子,好了

使用特权

评论回复
12
jato| | 2008-12-28 22:45 | 只看该作者

试验一下P3

用6楼的方法试试就知道硬件还是软件坏了

使用特权

评论回复
13
llx04| | 2009-1-5 23:10 | 只看该作者

LCD1602

看哪些宏定义,应该是LCD1602的驱动程序是吧

使用特权

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

本版积分规则

205

主题

698

帖子

0

粉丝