久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: [已解決]求助:秒表程序不能計時! [打印本頁]

作者: arbol    時間: 2009-4-27 11:58
標題: [已解決]求助:秒表程序不能計時!
     用的是本站的51hei-5型開發板,學著寫了個秒表程序(還不完善,按鍵程序等還沒有寫出來,暫時用的自動計時),但是定時器0 10ms中斷不被響應,LED一直顯示00.00.00.00,不知道怎么回事,請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;  //定義時,分,秒,毫秒變量static

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

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

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

 /*****************************************************
功能:數據轉換
描述:將hour,min,sec,ms十六進制數據轉換為BCD碼
參數:無
返回:無
*****************************************************/
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;

/*****************************************************
功能:計數
描述:時,分,秒,毫秒 計數
參數:無
返回:無
*****************************************************/

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


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

//延時子程序
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位加小數點
  {
   P0=numtab [LED ]|0x80;
  }
  else
   P0=numtab [LED ];
  DUAN=0;
  b=_cror_(b,1);
  delay (80);  //延時1ms
 }
}

/*****************************************************
功能:主函數
描述:無
參數:無
返回:無
*****************************************************/

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

 

 

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


作者: admin    時間: 2009-4-27 20:19

很好,頂一下






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日日干天天射 | 伊人久久久 | 天天射天天干天天操 | 国产精品一区二区在线播放 | 欧美日韩一区二区三区视频 | 免费看黄色小视频 | 日韩福利片 | 日韩一区二区三区四区 | 亚洲最新视频 | 午夜伦理视频 | 色综合五月天 | 欧美一级淫片免费视频魅影视频 | 日本国产一区 | 天天射综合 | 在线一区二区三区 | 国产高清一区 | 91在线精品视频 | 国产美女一区二区三区 | 国产午夜影院 | 色综合久久综合 | 日韩精品在线免费观看 | 欧美一区二区三区免费 | 久久久精品在线观看 | 日韩在线视频一区 | 日韩精品免费看 | 日韩一级二级三级 | 97精品在线 | 国产精品高潮呻吟久久 | 欧美 日韩 国产 成人 在线 | 久久久久久久99 | 国产三级在线 | 久久久综合 | 国产精品久久免费 | 亚洲精品在线视频 | 日本黄色一级视频 | 夜夜肉她怀孕h周君彦 | 国产欧美日韩综合 | www.日本在线观看 | 亚洲福利在线观看 | 国产日韩综合 | 黄色片免费 |