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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6964|回復: 1
收起左側

[已解決]求助:秒表程序不能計時!

[復制鏈接]
ID:9960 發表于 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    ,就不動了。 沒有實時顯示(這種錯誤系統怎么沒有提示呢?搞得我等菜鳥查錯查了半天~).  
下一步來寫按鍵和溢出提示部份.

回復

使用道具 舉報

ID:1 發表于 2009-4-27 20:19 | 顯示全部樓層

很好,頂一下

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级亚洲 | 欧美视频区 | 美女爽到呻吟久久久久 | 欧美天堂| 一区二区三区国产精品 | 国产免费一区二区 | 亚洲免费视频网站 | 日韩不卡在线 | a黄视频 | 欧美午夜视频 | 欧美 日韩 国产 成人 在线 91 | 一区二区三区不卡视频 | 国产精品视频 | 国精产品一区二区三区 | 国产亚洲高清视频 | 日韩伦理一区二区 | 在线午夜 | 日韩毛片免费看 | 国产在线激情视频 | 电影91久久久 | 日本成人中文字幕 | 国产精品国产三级国产aⅴ原创 | 亚洲国产成人精品久久久国产成人一区 | 新av在线| avtt国产 | 中文字幕国产日韩 | 综合久久综合久久 | 亚洲一区视频在线 | 中文字幕第一页在线 | 99精品久久久 | 久久久精品一区二区 | 一区二区成人 | 一本一道久久a久久精品综合 | 国产一二区视频 | 欧美成人免费 | 日本黄色一级视频 | 羞羞色影院 | 婷婷久久久久 | 成人免费在线观看 | 午夜视频在线观看网站 | 伊人网综合在线 |