打印

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

[复制链接]
楼主: Tomzong
手机看帖
扫描二维码
随时随地手机跟帖
21
datouyuan| | 2007-2-3 00:01 | 只看该作者 回帖奖励 |倒序浏览

2楼的和8楼的是对的

使用特权

评论回复
22
hbicecream| | 2007-2-3 00:47 | 只看该作者

楼上2位

楼主的程序整理一下就是这样:
#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=0
   p1_0 = 1;                        //此时P1^0=1
   for (a=0;a<30000;a++) ;          //此时P1^0=1
   
    for (b=0;b<255;b++) p1_1 = 0;   //此时P1^1=0
   p1_1 = 1;                        //此时P1^1=1
   for (a=0;a<30000;a++) ;          //此时P1^1=1
   
  }while(1);
}

仔细看

使用特权

评论回复
23
huihui118| | 2007-2-5 18:30 | 只看该作者

写程序前多想想!!!

下次不要犯同样的逻辑错误

使用特权

评论回复
24
xiaopet| | 2007-2-6 10:21 | 只看该作者

re

"有毕竟无论是谁在第一次点亮LED时都会兴奋难耐,呵呵"
有同感啊,想当年,第一次点亮LED,足足兴奋了两三天,呵呵!

使用特权

评论回复
25
acer2008| | 2007-2-6 10:36 | 只看该作者

跑馬燈電路是學習單片機的第一步,所以能亮起來大家都高

我第一次點亮這些LED燈的時候也興奮了好幾天

使用特权

评论回复
26
allen2006| | 2007-2-6 17:39 | 只看该作者

程序没问题!

楼主的程序没问题,2楼和8楼的思路也没问题,偶刚刚已经验证过了,都是OK的,只不过是楼主的和2楼的灯闪周期不一样而以

使用特权

评论回复
27
PCB趀ㄆㄌ| | 2007-2-8 11:59 | 只看该作者

顶!

使用特权

评论回复
28
woshidasha| | 2007-2-8 17:30 | 只看该作者

一个建议

大家在编写C的时候,是不是可以怎加一些可读性,比如楼主在最外面的死循环用的是do...while()的语句,那么是不是用while(1)更能让大家看得懂,也方便交流和指导,还有其他的一些算法的写法,在这里就不提了,可能有各人的习惯在里面,但是个人认为还是很有用的

使用特权

评论回复
29
sibaidong| | 2007-2-8 21:16 | 只看该作者

不会吧!

b++?

使用特权

评论回复
30
mygaojian| | 2007-2-9 17:10 | 只看该作者

zhangmcu

你连unsigned char 的取值范围都没弄清楚就写程序
程序里的这个取值范围没有写错吧?

使用特权

评论回复
31
孤独泪| | 2007-2-12 14:43 | 只看该作者

仔细阅读发现楼主的程序没有写错

给楼主的程序规范一下写法大家就可以看懂了

#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;
        }        
        for (a=0;a<30000;a++)
        {
            p1_0 = 1;
        }   
;;;;;;;
        for (b=0;b<255;b++)
        {
           p1_1 = 0;
        }  
        for (a=0;a<30000;a++) ; 
       { 
           p1_1 = 1;
       }   
     }while(1);
}

楼主程序如果对led的闪烁时间不需要精度到几微秒级,以上的程序和楼主的程序等价,但是谁都可以看懂了。当然这个程序,p1.1口接的led发光应该很暗,或者感觉不到,时间太短了,也没有必要用两个变量。楼主使用的是11.0592的晶振,闪烁的时间太快了。

使用特权

评论回复
32
xzhenggen| | 2007-2-15 10:17 | 只看该作者

是啊,就像第一次买彩票中奖一样,确实兴奋!!

我也是学单片机时第一次点亮跑马灯,就像第一中奖。

使用特权

评论回复
33
被磁化的铁| | 2007-2-17 18:45 | 只看该作者

_

p1_0:--------|_|------------------|_|---------------
p1_1:-----------------|_|-----------------|_|-------

使用特权

评论回复
34
lingse| | 2007-2-21 20:29 | 只看该作者

没有延时程序怎么亮1


#include <AT89X51.h>

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

void main(void)
{
  p1=0xff; 
  unsigned int a;
  unsigned char b;
  do 
  {
   p1_0=1;
   p1_1=0;
   for (a=0;a<5000;a++)
   p1_0=0;p1_1=1;
   for (a=0;b<5000;a++)  
  }while(1);
}

使用特权

评论回复
35
born就很乖| | 2007-2-21 23:02 | 只看该作者

路过

使用特权

评论回复
36
Tomzong|  楼主 | 2007-2-27 14:08 | 只看该作者

开学了,谢谢各位!

课本上面的程序是对的,但是不完整,需要继续完善,变理论为实际!谢谢!下次我将继续讨论心得问题

使用特权

评论回复
37
yun06| | 2007-3-7 16:27 | 只看该作者

学习中~~~~~~~~~~~~~~~~~

使用特权

评论回复
38
dong1035| | 2007-3-7 16:30 | 只看该作者

晕倒呢

使用特权

评论回复
39
yuanbj| | 2007-3-8 16:24 | 只看该作者

请问18楼的

为什么说2,8楼的 不仔细啊?我是新手,不懂!!

使用特权

评论回复
40
ysc5201| | 2007-3-12 20:43 | 只看该作者

好好的学习吧

使用特权

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

本版积分规则