找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9914|回复: 8
收起左侧

紧急求助!!!动态数码管不能正常显示!我做的是频率计,0到999999HZ,低频时直接计数,高频时经过16分频再计。

[复制链接]
ID:2788 发表于 2008-6-18 10:02 | 显示全部楼层 |阅读模式


计数时开始都是0,可是不久后就显示乱码,
有哪位高手帮助一下,小弟在这感激不尽了,
急呀,过两天就要交板了!!
我Q是170074505,这两天我会一直在线!!

#include <AT89x51.h>
/*********************************
全局变量定义
 *********************************/
unsigned char code pcode[]={215,17,205,93,27,94,222,21,223,95};//无小数点
unsigned char code chom[]={8,64,32,16,4,128};    //数码管选择
unsigned char temp[6]={0,0,0,0,0,0};   
unsigned char T0count;
unsigned char timecount;
bit flag;
unsigned long x;
/******************************************************
子函数定义
*******************************************************/    
void t0(void) interrupt 1 using 1
{
  T0count++;
}

void t1(void) interrupt 3 using 1    //定时2m
{
  TH1=(65536-15536)/256;
  TL1=(65536-15536)%256;
  timecount++;
  if(timecount==40) 
    {
      TR0=0;                //T0停止计数
      timecount=0;
      flag=1;
    }
 
}
  void get_1()
  {
  x=(T0count*65536+TH0*256+TL0)/2;             //低频
  }
 void get_2()
   {
   x=(T0count*65536+TH0*256+TL0)*8;        //高频
   }
 void deal()                             //存六位数码值
  {
    int i;
    for(i=0;i<6;i++)
     { 
      temp=x%10;
   x=x/10;
   }
  }
  void delay(unsigned dly)
    {
      unsigned i;
     for(;dly>0;dly--)
     for(i=50;i>0;i--);
    }
 void play()               
   { int i;
    for(i=0;i<6;i++)
   {
    P1=pcode[temp];  //数码显示
 P2=chom;         //数码管选择
    delay(10);
   }
   }
  
  
    /**************************
 主函数,定时器0对外部脉冲计数,定时器1定时50m*40=2s;
    ****************************/
void main(void)
 {
  int a;
  TMOD=0x15;
  TH0=0;
  TL0=0;
  TH1=(65536-15536)/256;
  TL1=(65536-15536)%256;
  TR1=1;
  TR0=1;
  ET0=1;
  ET1=1;
  EA=1;
  while(1)
    {
 
 if(flag==1)
 {  a=P3&0x80;
   
   if(a==0x80)
      get_2();
     else 
  get_1();
      deal();
      TR0=1;      //重启T0计数
   flag=0;
  }
     play();
  }
 }

 

 

回复

使用道具 举报

ID:2788 发表于 2008-6-18 13:59 | 显示全部楼层
唉,咋就没人帮忙?
难道就没有可以解决问题高手来过?
回复

使用道具 举报

ID:66671 发表于 2014-9-26 15:34 | 显示全部楼层
可能高手不屑回答吧
回复

使用道具 举报

ID:370231 发表于 2018-8-2 09:49 | 显示全部楼层
我来帮你,我加你Q了
回复

使用道具 举报

ID:61973 发表于 2018-8-5 21:52 来自手机 | 显示全部楼层
a89588038 发表于 2018-8-2 09:49
我来帮你,我加你Q了

十年了,这是刚通网呢
回复

使用道具 举报

ID:375880 发表于 2018-8-6 10:44 来自手机 | 显示全部楼层
解决了吗
回复

使用道具 举报

ID:374869 发表于 2018-8-7 15:54 | 显示全部楼层
10年问题,还能被找出来
回复

使用道具 举报

ID:382600 发表于 2018-8-7 18:02 来自手机 | 显示全部楼层
我感觉可能是短接片的问题,我记得我也出现过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表