打印
[STC单片机]

旋转lED时钟显示问题 用下面的程序我想显示时钟的表盘

[复制链接]
1931|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
justsuperone|  楼主 | 2014-4-12 11:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#define uchar unsigned char;
#define uint unsigned int;
uchar time,set,line,flag;
               
void delay(int z)
{
                int x,y;
        for(x=1;x>0;x--)
        for(y=z;y>0;y--);
}
void main()
{        P2=0xfe;
         time=100;
       
        EA=1;
        EX0=1;         //外部中断0开
    IT0=1;
        TMOD|=0x01;
        ET0=1;         //边沿触发
        TH0 =(65536- time)/256;
        TL0 =(65536- time)%256;
        while(1)
         {
          
      if(flag==1)
                        {
                            flag=0;
                       
                            TR0=1;
                                  
                               
                                       
                        }
           }
}
void timer0(void) interrupt 0
{
        flag=1;

}
void timer1(void) interrupt 1
{

         
          TH0 =(65536- time)/256;
          TL0 =(65536- time)%256;
       
//  if ( ++Time0_count > 250 ) Time0_count = 250 ; //溢出计数器+1,>最大值,=最大值

  if ( ++line > 180 ) line = 0 ; //显示列计数器+1,>最大值,=0
                /***********清空显示************/
                P2=0XFe ;
            P0=0XFF ;
                switch (line)   
       {
                case 180*1/12 :    //1点
                case 180*2/12 :    //2点
                case 180*4/12 :    //4点
                case 180*5/12 :    //5点
                case 180*7/12 :    //6点
                case 180*8/12 :    //7点
                case 180*10/12 :   //10点
                case 180*11/12 :   //11点
                  P2=0xfc;
                          delay(5);
                 break;
                        case 180*3/12 :    //3点
                case 180*6/12 :    //6点
                case 180*9/12 :    //9点
                        case 0:    //12点
                          P2=0xf8;
                           delay(5);
                          break;
       }
          
}


但电机转起来后时钟对应的杠杠却不是独立的,而是一块块连续的  为什么啊  是电机转速问题吗  还是我延时  或者定时错了呢  真心提问求帮助

相关帖子

沙发
airwill| | 2014-4-13 21:59 | 只看该作者
由于亮的时间是一段的, 所以运转后肯定呈块状
至于不连续, 应该是时间控制里的问题

使用特权

评论回复
板凳
justsuperone|  楼主 | 2014-4-15 12:09 | 只看该作者
airwill 发表于 2014-4-13 21:59
由于亮的时间是一段的, 所以运转后肯定呈块状
至于不连续, 应该是时间控制里的问题 ...

恩  这个我理解,我改了下定时器时间和延时的时间  可以实现一点点的亮  可是亮度不够 我觉得是闪烁的间隔太短了的缘故,然而我增加闪烁间隔又会导致显示成段  矛盾啊  怎么解决呢   

使用特权

评论回复
地板
airwill| | 2014-4-15 13:45 | 只看该作者
怎么解决呢?
1. 选择合适的点亮时间;
2. 增加驱动电流和亮度.

使用特权

评论回复
5
lanchong1980| | 2014-4-15 14:39 | 只看该作者
增加电流啊

使用特权

评论回复
6
justsuperone|  楼主 | 2014-4-15 15:08 | 只看该作者
lanchong1980 发表于 2014-4-15 14:39
增加电流啊

增加电流 ,吗    单片机一般用5V的电源供电  而现在我用了8V的  在增加电压我怕烧了单片机  而减小电阻的话  因为硬件最好不要动  动一发而牵动全身  我想知道能不能再程序上下下功夫解决呢

使用特权

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

本版积分规则

30

主题

168

帖子

0

粉丝