论坛风格切换切换到宽版
  • 3802阅读
  • 29回复

求教:我的89s51不好使啊? [复制链接]

上一主题 下一主题
离线bg6ida
 
发帖
1463
只看楼主 倒序阅读 0楼 发表于: 2005-03-11
我曾经看到过一个资料
89s51的io口可以驱动发光二极管
我做了一个最简系统
89s51+晶振+两个瓷片电容+一个电阻+一个高亮发光管

编写闪光程序并编译通过
把生成的hex文件通过编程器写入89s51后
通电试验
p0.0上接的发光管只是在通电后亮一下就熄灭
把rst和vcc短暂短接后再断开,发光管还是亮一下就熄灭
无论我怎么整,发光二极管就是不闪烁

这是我的程序:
loop:   setb p0.0
    lcall delay
    clr p0.0
    lcall delay
    ajmp loop

delay: mov r7,#8
d1:   mov r6,#250
d2:   mov r5,#250
d3:   djnz r5,d3
    djnz r6,d2
    djnz r7,d1
    ret
    end

我的晶振是12mhz我计算的延时大概是1s左右

特请教各位高手,先说声谢谢啦!!!
离线2cm
发帖
3486
只看该作者 1楼 发表于: 2005-03-12
d3又回到d3.
是不是就出不来了?
离线dfh
发帖
2763
只看该作者 2楼 发表于: 2005-03-12
虽然不懂这些,但是随便提一句,是否有循环执行语句?
离线bg5in
发帖
6637
只看该作者 3楼 发表于: 2005-03-12
没有功夫看程序,先接uln2003再接led
离线2cm
发帖
3486
只看该作者 4楼 发表于: 2005-03-12
我看错了.
d3没有问题.

我刚开始学,遇到过这个情况,
我遇到的情况,原因是没有起振.晶振离ic过远.
还有一次是复位电容稍小一点,不过,你的这个好象不是,因为你手动rst接vcc后还是不行.

看看晶振部分.

'
d3又回到d3.
是不是就出不来了?
'
离线Sullivan
发帖
4817
只看该作者 5楼 发表于: 2005-03-12
12m延迟1s 子程序:
delay:mov r0,#00h
xl2:   mov r1,#80h
xl1:   nop
      djnz r1,xl1
      djnz r0,xl2
      ret

调用delay,然后给你指定的端口写1就是亮,0就是灭
几年前我自己做彩灯玩的:)



发现一处手误,呵呵,更正
离线bg6ida
发帖
1463
只看该作者 6楼 发表于: 2005-03-12
谢谢各位老师
我再试试吧

这个问题困扰我很长时间了:)
离线BG9FU
发帖
1137
只看该作者 7楼 发表于: 2005-03-12
clr p0.0
他的意思是,置0,
所以一上电,高电位,以后全为0
离线BG9FU
发帖
1137
只看该作者 8楼 发表于: 2005-03-12
没有电容,没有复位系统如何工作?
离线bd5it
发帖
2355
只看该作者 9楼 发表于: 2005-03-12
前面加上

    org 0000h
    ajmp 0030h

      org 0030h
;****************************
loop: setb p0.0
lcall delay
clr p0.0
lcall delay
ajmp loop

delay: mov r7,#8
d1: mov r6,#250
d2: mov r5,#250
d3: djnz r5,d3
djnz r6,d2
djnz r7,d1
ret
end
离线BA5TX
发帖
4053
只看该作者 10楼 发表于: 2005-03-12
'
我曾经看到过一个资料
89s51的io口可以驱动发光二极管
我做了一个最简系统
89s51+晶振+两个瓷片电容+一个电阻+一个高亮发光管
编写闪光程序并编译通过
把生成的hex文件通过编程器写入89s51后
通电试验
p0.0上接的发光管只是在通电后亮一下就熄灭
把rst和vcc短暂短接后再断开,发光管还是亮一下就熄灭
无论我怎么整,发光二极管就是不闪烁
这是我的程序:
loop:   setb p0.0
    lcall delay
    clr p0.0
    lcall delay
    ajmp loop
delay: mov r7,#8
d1:   mov r6,#250
d2:   mov r5,#250
d3:   djnz r5,d3
    djnz r6,d2
    djnz r7,d1
    ret
    end
我的晶振是12mhz我计算的延时大概是1s左右
特请教各位高手,先说声谢谢啦!!!
'
我还没有入门,只能用仿真器实际给你走一走 在实验板上用p1.0口驱动led没有问题 你的发光管是怎么接的?好像要利用灌电流来驱动才行
离线bg6ida
发帖
1463
只看该作者 11楼 发表于: 2005-03-12
'
没有电容,没有复位系统如何工作?
'

仅仅是做试验,为了省事儿我用手动复位:)
离线2cm
发帖
3486
只看该作者 12楼 发表于: 2005-03-12
哈哈,兄弟,你可真神了。
手动复位也要加一个下拉电阻啊。
要不然rst线怎么能保持低电平啊。


'
仅仅是做试验,为了省事儿我用手动复位:)
'
离线shl
发帖
571
只看该作者 13楼 发表于: 2005-03-12
'
手动复位也要加一个下拉电阻啊。
要不然rst线怎么能保持低电平啊。
'我认为是你的硬件连接的有问题,一般单片机的i/o口为低电位的时候驱动能力强,而高电位时直接驱动led提供的电流小,而且有时候也会莫名其妙的亮,也许是这个原因把,我以前就遇见过这种问题,不知道对不对。
离线bg6ida
发帖
1463
只看该作者 14楼 发表于: 2005-03-12
我装了一个下拉电阻

这次通电后p0.0的led亮了

手动复位后,led熄灭

等了很长时间,还是没有反应

下面是我的元器件连接的实物图
离线bg6ida
发帖
1463
只看该作者 15楼 发表于: 2005-03-12
头大~~~大家快帮帮我~~~
离线剑心
发帖
397
只看该作者 16楼 发表于: 2005-03-12
ea要接vcc

faint,字数不够。
离线bg4jj
发帖
5094
只看该作者 17楼 发表于: 2005-03-12
失败 乃 成功之母.
离线BD7RC
发帖
3283
只看该作者 18楼 发表于: 2005-03-12
1、rst脚接个几k的电阻到地;
2、ea脚接到+vcc;
3、改用p1口输出;
4、低电平驱动led,即led一端接+vcc,再串个限流电阻然后接到p1口。
离线zyf_90302
发帖
336
只看该作者 19楼 发表于: 2005-03-12
先仔细看s51的说明书,使用片内程序和片外程序时有管脚接法不一样