欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7188|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

[已解決]求助:秒表程序不能計(jì)時(shí)!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:9960 發(fā)表于 2009-4-27 11:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
     用的是本站的51hei-5型開發(fā)板,學(xué)著寫了個(gè)秒表程序(還不完善,按鍵程序等還沒(méi)有寫出來(lái),暫時(shí)用的自動(dòng)計(jì)時(shí)),但是定時(shí)器0 10ms中斷不被響應(yīng),LED一直顯示00.00.00.00,不知道怎么回事,請(qǐng)DX們幫忙分析下,謝謝!

程序如下:

#include <AT89X51.h>
#include "intrins.h"
#include "math.h"

typedef unsigned int uint;
typedef unsigned char uchar;

#define DUAN P2_6
#define WEI P2_7

uchar Hour,Mint,Sec,Ms;  //定義時(shí),分,秒,毫秒變量static

uchar LED [8];
uchar code numtab []={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} ;  //共陰LED顯示字庫(kù)0-9

/*****************************************************
功能:T0中斷初始化
描述:T0模式1,10ms定時(shí)
參數(shù):無(wú)
返回:無(wú)
*****************************************************/
void time0_init (void)
{
 TMOD=0x1;
 TH0=(65536-10000)/256;
 TL0=(65536-10000)%256;
 EA=1;
 ET0=1;
}

/*溢出閃爍提醒子程序(待寫)*/
void flash ()
{
}

 /*****************************************************
功能:數(shù)據(jù)轉(zhuǎn)換
描述:將hour,min,sec,ms十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換為BCD碼
參數(shù):無(wú)
返回:無(wú)
*****************************************************/
void to_bcd ()
{
 LED [0]=Ms%10;
 LED [1]=Ms/10;
 LED [2]=Sec%10;
 LED [3]=Sec/10;
 LED [4]=Mint%10;
 LED [5]=Mint/10;
 LED [6]=Hour%10;
 LED [7]=Hour/10;

/*****************************************************
功能:計(jì)數(shù)
描述:時(shí),分,秒,毫秒 計(jì)數(shù)
參數(shù):無(wú)
返回:無(wú)
*****************************************************/

void count ()
{
 if (++Ms==100)
 {
  Ms=0;
  if (++Sec==60)
  {
   Sec=0;
   if (++Mint==60)
   {
    Mint=0;
    if (++Hour==100)  //計(jì)數(shù)溢出時(shí)停止計(jì)時(shí),LED閃爍顯示FFFFFFFF
    {
     TR0=0;
     flash ();
    }
   }
  }
 }
}


/*****************************************************
功能:T0中斷服務(wù)子程序
描述:T0模式1,10ms定時(shí)
參數(shù):無(wú)
返回:無(wú)
*****************************************************/
void t0_init () interrupt 1
{
 TH0=(65536-10000)/256;
 TL0=(65536-10000)%256;
 count ();
 to_bcd ();
}

//延時(shí)子程序
void delay (uint i)
{
 for (; i>0; i--);
}

void disp ()
{
 uchar i,b=0x7f;
 for (i=0; i<8; i++)
 {
  WEI=1;
  P0=b;   
  WEI=0;
  DUAN=1;
  if (i==2 || i==4 || i==6) //2,4,6位加小數(shù)點(diǎn)
  {
   P0=numtab [LED ]|0x80;
  }
  else
   P0=numtab [LED ];
  DUAN=0;
  b=_cror_(b,1);
  delay (80);  //延時(shí)1ms
 }
}

/*****************************************************
功能:主函數(shù)
描述:無(wú)
參數(shù):無(wú)
返回:無(wú)
*****************************************************/

void main (void)
{
 time0_init (); //T0中斷初始化
 TR0=1;   //開始計(jì)時(shí)
  while (1)         //顯示
   { 
      disp ();       
    }                 //紅色部份原來(lái)是只有一條 disp ();   導(dǎo)致程序跑飛! 
}

 

 

 原來(lái)是main函數(shù)沒(méi)有寫好,disp函數(shù)只被執(zhí)行了第一次就沒(méi)有執(zhí)行了,所以只顯示00 00 00    ,就不動(dòng)了。 沒(méi)有實(shí)時(shí)顯示(這種錯(cuò)誤系統(tǒng)怎么沒(méi)有提示呢?搞得我等菜鳥查錯(cuò)查了半天~).  
下一步來(lái)寫按鍵和溢出提示部份.

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2009-4-27 20:19 | 只看該作者

很好,頂一下

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表