打印

帮我看看这程序

[复制链接]
1538|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dyw07|  楼主 | 2007-12-1 18:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
/***********定义数据类型*************/
typedef  unsigned char     uint8;
typedef  signed  char      int8;
typedef  unsigned  short   uint16;
typedef  signed  short     int16;
typedef  unsigned int      int32;
typedef  signed   int      uint32;
typedef  float              fl32;
typedef  double            db64;
/*************************************/
sbit   P2_7=P2^7;
sbit   P2_6=P2^6;
sbit   P2_5=P2^5;
/************************************/
#define  RCK_H()     (P2_7=1)
#define  RCK_L()     (P2_7=0)
#define  SI_H()      (P2_6=1)
#define  SI_L()      (P2_6=0)
#define  SCK_H()     (P2_5=1)
#define  SCK_L()     (P2_5=0)
/***********************************/
const uint8 number[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/*****************************子程序***************************************/
void S74595(uint8 dat)
{
  uint8 i;
  
  RCK_L();                                    
  for(i=0;i<8;i++)                              
    {
      SCK_L();                                 
      if((dat & 0x80)!=0)
        {SI_H();}                              
      else
        {SI_L();}                              
       
      dat<<=1;                                   
      SCK_H();                                  
    }
  RCK_H();                                     
}
/**************************************************/
void Timer1(void) interrupt 3

   static  uint8  count,i;
   count++;
   if(count==16)
   { 
      count=0;
      S74595(number);
      i++;
      if(i==10)
      {i=0;}
    } 
}    
/************************************************************************/
main()
{
   EA=1;
   ET1=1;
   TH1=0x0B;
   TL1=0xDC;
   TMOD=0x0100;
   TR1=1; 
   while(1);
}
数码管怎么变化的很快.按程序应该1s才变化一次
难道代码错了
哪位大侠能否帮我解释一下

相关帖子

沙发
dyw07|  楼主 | 2007-12-1 18:55 | 只看该作者

修改后

为什么把计数器1换为计数器0
就可以了?Timer1 换为Timer0
TH1 换为       TH0
TL1 换为       TL0
TR1 换为       TR0
TMOD=0x0001

使用特权

评论回复
板凳
dyw07|  楼主 | 2007-12-1 21:59 | 只看该作者

新手的疑问

大侠们帮我解释一下嘛,
计数器0和计数器1有什么区别?

使用特权

评论回复
地板
hellomcu| | 2007-12-2 00:25 | 只看该作者

要自己花时间去学习!!!!

main()
{
   EA=1;
   ET1=1;
   TH1=0x0B;    // 与晶体的频率有关的
   TL1=0xDC;    //
   TMOD=0x0100;  //????????????
   TR1=1;
   while(1);
}

回去仔细看书去,你用多大的晶体?!!!


相关链接:http://shop35088126.taobao.com

使用特权

评论回复
5
dyw07|  楼主 | 2007-12-2 20:27 | 只看该作者

~~~

12MHz的
那行打错了
TMOD=0x0100.

使用特权

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

本版积分规则

17

主题

71

帖子

0

粉丝