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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:9960 發(fā)表于 2009-4-27 11:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
     用的是本站的51hei-5型開發(fā)板,學著寫了個秒表程序(還不完善,按鍵程序等還沒有寫出來,暫時用的自動計時),但是定時器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定時
參數(shù):無
返回:無
*****************************************************/
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十六進制數(shù)據(jù)轉(zhuǎn)換為BCD碼
參數(shù):無
返回:無
*****************************************************/
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;

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

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


/*****************************************************
功能:T0中斷服務子程序
描述:T0模式1,10ms定時
參數(shù):無
返回:無
*****************************************************/
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位加小數(shù)點
  {
   P0=numtab [LED ]|0x80;
  }
  else
   P0=numtab [LED ];
  DUAN=0;
  b=_cror_(b,1);
  delay (80);  //延時1ms
 }
}

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

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

 

 

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

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

使用道具 舉報

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

很好,頂一下

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本特黄a级高清免费大片 特黄色一级毛片 | 午夜视频在线免费观看 | 一区二区三区视频在线观看 | 日本免费视频 | 国产成人亚洲精品自产在线 | 九九热精品视频在线观看 | 华丽的挑战在线观看 | 中文字幕成人av | 久久r精品 | 亚洲男人的天堂网站 | 日韩成人av在线 | 久久久久久国模大尺度人体 | 日韩激情一区 | 成人久久久久 | av在线亚洲天堂 | 天天激情综合 | 一本一道久久a久久精品综合蜜臀 | 国产91久久久久久 | 亚洲视频在线看 | 久久手机视频 | 成人精品 | 国产成人综合在线 | 精品久久久久久久久久久久久 | 中文字幕一区二区三区四区五区 | 一区二区三区视频在线观看 | 一二区成人影院电影网 | 成年人的视频免费观看 | 亚洲精品久久嫩草网站秘色 | 国产一级特黄真人毛片 | 亚洲h视频| 亚洲xxxxx| 亚洲综合色自拍一区 | 亚洲欧洲av在线 | 日韩中文字幕一区二区三区 | 欧美日韩精品久久久免费观看 | 在线黄av| 精品久久一区二区 | 蜜桃av人人夜夜澡人人爽 | 亚洲精品久久久一区二区三区 | 91精品欧美久久久久久久 | 999久久久 |