打印

学校电子设计,请高手帮看电路,谢谢

[复制链接]
8283|51
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Tomzong|  楼主 | 2007-1-22 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想设计一个LED延时闪烁的例子,但却没有反应,单片机复位后程序没有工作.还望指点!
程序如下
#include <AT89X51.h>

sbit p1_0 =P1^0;
sbit p1_1 =P1^1;

void main(void)
{
  unsigned int a;
  unsigned char b;
  do 
  {
   for (a=0;a<65535;a++)
   p1_0 = 0;
   p1_0 = 1;
   for (a=0;a<30000;a++) ;   
   
    for (b=0;b<255;b++)
   p1_1 = 0;
   p1_1 = 1;
   for (a=0;a<30000;a++) ; 
   
  }while(1);
}
程序接防真软件测试通过!LED灯却没有变化........
相关链接:https://bbs.21ic.com/upfiles/img/20071/2007122135824991.rar

相关帖子

沙发
阿发| | 2007-1-22 16:23 | 只看该作者

这样那行啊,刚设置为低又设置为高。

改成这样吧:
  do 
  {
   for (a=0;a<65535;a++);
   p1_0 = 0;
   for (a=0;a<65535;a++);
   p1_0 = 1;   
  }while(1);

使用特权

评论回复
板凳
小孩大头门| | 2007-1-22 18:04 | 只看该作者

for 语句那里有问题

for (a=0;a<65535;a++)
   p1_0 = 0;
   p1_0 = 1;
 相当于
for (a=0;a<65535;a++)
  { p1_0 = 0;}
p1_0 = 1;
   不知道是什么意思给p1_0付了65535次0  最后又给p1_0 付 1  要LED亮p1_0为0才能亮

使用特权

评论回复
地板
平常人| | 2007-1-22 18:16 | 只看该作者

程序没错,用示波器看看输出,也许频率太高了或程序没跑

使用特权

评论回复
5
xlander| | 2007-1-22 18:21 | 只看该作者

程序可能死在什么地方了

 unsigned int a;
  unsigned char b;
for (a=0;a<65535;a++)
    
    for (b=0;b<255;b++)


仔细确认下,a,b的取值范围,看能不能退出循环?

65530 和 250 肯定没问题。

使用特权

评论回复
6
xinyi205| | 2007-1-23 08:32 | 只看该作者

就是 那个高手写的呀,厉害!!!!

就是 那个高手写的呀,厉害!!!!

使用特权

评论回复
7
liwind22| | 2007-1-23 14:18 | 只看该作者

可以这样该下

同意2楼的,电平转换之间没有延时,当然看不到闪烁了!!
换一下 for (a=0;a<65535;a++)
       p1_0 = 0;
       for (a=0;a<30000;a++) ;
       p1_0 = 1;
就好了

使用特权

评论回复
8
zhangmcu| | 2007-1-24 11:40 | 只看该作者

晕啦,你写的什么

学习单片机要戒骄戒躁,你连unsigned char 的取值范围都没弄清楚就写程序?还有p1_0 = 0;
        p1_0 = 1;
这样的代码你斟酢过了吗?
先打好基础先!

使用特权

评论回复
9
Tomzong|  楼主 | 2007-1-24 15:45 | 只看该作者

谢谢各位!

程序没有问题,是我的晶振没有起振,确切的说,我30P贴片电容坏了,后来换了,就可以看见闪烁了.谢谢

使用特权

评论回复
10
杨真人| | 2007-1-24 20:46 | 只看该作者

这个故事教训我们,元件要先检验后使用.

使用特权

评论回复
11
hwarm| | 2007-1-26 11:18 | 只看该作者

改成2樓8樓的就可以拉

 for (a=0;a<65535;a++)
   p1_0 = 0;
   p1_0 = 1;//剛低就高看不到的
   for (a=0;a<30000;a++) ;   
   

使用特权

评论回复
12
chenbintom| | 2007-1-26 14:19 | 只看该作者

建议把C语言学好在学单片机C语言

建议把C语言学好在学单片机C语言,这样就容易多了。

使用特权

评论回复
13
likee| | 2007-1-29 00:10 | 只看该作者

楼主的程序怎么也看不出会闪~~~~

使用特权

评论回复
14
Tomzong|  楼主 | 2007-1-30 14:54 | 只看该作者

不会吧,老兄!

我这程序是从课本上面COPY下来的,前段时间刚刚起步,现在好多了,还是要实战经验,搞电子开发,没有开发板和焊接设备,元器件.不能学好,自己摸索,才能进步!谢谢大家!

使用特权

评论回复
15
binbinwb| | 2007-1-31 21:44 | 只看该作者

程序没有问题的

要仔细看一下哟

使用特权

评论回复
16
sillboy| | 2007-2-1 15:00 | 只看该作者

路过

使用特权

评论回复
17
hbicecream| | 2007-2-2 14:17 | 只看该作者

楼主的程序没问题,2楼的和8楼的不仔细,9楼的不知所云

使用特权

评论回复
18
szzhengjin| | 2007-2-2 14:27 | 只看该作者

C的基本也太差了吧,好好加油啊

都不知道那些语句具体作用,一堆没用的

有几个回复的也是乱来,呵呵

使用特权

评论回复
19
mohanwei| | 2007-2-2 14:33 | 只看该作者

可以闪的,只是程序看起来不太顺眼而以……

大家要多多鼓励新人,而不是打击……

毕竟无论是谁在第一次点亮LED时都会兴奋难耐,呵呵

使用特权

评论回复
20
xwj| | 2007-2-2 14:41 | 只看该作者

2楼的和8楼的是对的

使用特权

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

本版积分规则

35

主题

93

帖子

0

粉丝