打印
[复制链接]
1228|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
justsuperone|  楼主 | 2014-3-26 10:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2014-3-26 10:42 | 只看该作者
请问你程序写对没有,用对没有

使用特权

评论回复
板凳
justsuperone|  楼主 | 2014-4-13 13:51 | 只看该作者
#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;
       }
           
}


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

使用特权

评论回复
地板
justsuperone|  楼主 | 2014-4-13 13:59 | 只看该作者
ayb_ice 发表于 2014-3-26 10:42
请问你程序写对没有,用对没有

我用89c51做了个旋转LED时钟,用P3^2口为红外对管的外部中断,每当对管时让定时器t0以tmod=0x01方式计时,记一次line加一,假设记了180次,正好电机转过一圈,则180除以12,让一点显示,同理让其他点所对应的表刻度显示,如果显示的点数小于十二,则说明计时较大,反之较小,这样不断调整定时时间就可以准确的显示时间刻度,我就是这么想的,可是做起来发现完全不是那么回事,显示的完全不是按照时钟表那种个个时间点分明的,而是连在了一起,无论我怎么调整定时延时,都没有效果,为什么啊 求指点

使用特权

评论回复
5
coody| | 2014-4-13 15:57 | 只看该作者
如果是STC的MCU,串口接起来就可以下载了

使用特权

评论回复
6
yht0917| | 2014-4-14 08:12 | 只看该作者
你看STC的PDF,有下载电路图的,你可以按照那个自己焊接一个,然后再买一根串口线,就可以了,我自己就这样弄的,还可以仿真的。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
justsuperone + 1 ,,
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

168

帖子

0

粉丝