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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機秒表C程序

作者:huqin   來源:徐冉   點擊數:  更新時間:2014年03月24日   【字體:

本程序所用的原理圖下載: 點這里 ,單片機芯片使用的stc89c52;電路找到相應部分即可.這是一整個單片機開發板的電路圖其他的忽略.
本程序的keil工程下載: http://m.zg4o1577.cn/f/miaobiao.rar   以下是通過測試的源代碼:

/*
*功能:用定時器0實現秒表,實現60秒定時,精確度為1毫秒
*   利用key1獨立按鍵實現定時器的啟動和停止,
*   利用key2獨立按鍵實現秒表的清零;
*日期:2013-03-24
*作者:徐冉
*注意事項:若打開兩個定時器時,必須使用兩個定時器,
*     否則兩個定時器都不工作!!!
**/
/**********stc89C52-RC 51hei單片機實驗板**********/
/**********51hei-5開發板**********/
#include <reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit wela = P2^7;
sbit dula = P2^6;
sbit key1 = P3^4;
sbit key2 = P3^5;
sbit FM   = P2^3;//蜂鳴器
uchar code table[] = { 
       0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄滅
                0x40  //自定義
 };
uint counter, num_h, num_m;
void delay(uint xms);
void display_h(uint num_h);
void init();
void display_m(uint num_m);
void keyscan_D();
void keyscan_Q();
//主函數
void main()
{
 init();
 while(1)
 {
  dula = 1;
  P0 = table[22];
  dula = 0;
  P0 = 0xff;
  wela = 1;
  P0 = 0xfb;
  wela = 0;
  keyscan_D();
  keyscan_Q();
  display_h(num_h);
  display_m(num_m);
 }
}
//定時器0初始化函數
void init()
{

 TMOD = 0x01;
 TH0 = 0xFC;
 TL0 = 0x67;
 TR0 = 1;
 EA = 1;
 ET0 = 1;
}
//毫秒位顯示子函數
void display_h(uint num_h)
{
 uchar bai,shi,ge;
 bai = num_h / 100 % 10;
 shi = num_h / 10 % 10;
 ge  = num_h % 10;
 dula = 1;
 P0 = table[bai];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xf7;
 wela = 0;
 P0 = 0x00;
 delay(1);
    dula = 1;
 P0 = table[shi];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xef;
 wela = 0;
 P0 = 0x00;
 delay(1);
 
 dula = 1;
 P0 = table[ge];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xdf;
 wela = 0;
 P0 = 0x00;
 delay(1);
}
//秒位顯示子函數
void display_m(uint num_m)
{
 uchar shi_, ge_;
 shi_ = num_m / 10 % 10;
 ge_ = num_m % 10;
 dula = 1;
 P0 = table[shi_];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xfe;
 wela = 0;
 P0 = 0x00;
 delay(1);
 dula = 1;
 P0 = table[ge_];
 dula = 0;
 P0 = 0xff;
 wela = 1;
 P0 = 0xfd;
 wela = 0;
 P0 = 0x00;
 delay(1);
}
//延時子函數
void delay(uint xms)
{
 uint i, j;
 for(i = xms; i > 0; i--)
   for(j = 125; j > 0; j--);
}
//獨立按鍵1檢測子函數 ,開啟和關閉
void keyscan_D()
{
 if(key1 == 0)
 {
  delay(10);
  if(key1 == 0)
  {
   TR0 = ~TR0;
   FM = 0;
   while(!key1);
   FM = 1; 
  }
 }
}
//獨立按鍵2檢測子函數,清零
void keyscan_Q()
{
 if(key2 == 0)
 {
  delay(10);
  if(key2 == 0)
  {
   counter = 0;
   num_h = 0;
   num_m = 0;
   FM = 0;
   while(!key2);
   FM = 1;
  }
 }
}
//定時器0中斷子程序
void int_time0() interrupt 1
{
 TH0 = 0xFC;
 TL0 = 0x67;
 counter++;
 if(counter == 1)
 {
  counter = 0;
  num_h++; //毫秒自增
  if(num_h == 1000)
  {
   num_h = 0;
   num_m++; //秒自增
   if(num_m == 60)
   {
    num_m = 0;
   }
  }
 }
}

 

關閉窗口

相關文章

主站蜘蛛池模板: 日韩欧美在线观看 | 中文字幕第7页 | 999久久久国产精品 亚洲黄色三级 | 欧美一区二区三区在线播放 | 亚洲爱爱网 | 五月天.com| www.四虎影视| 日本免费在线观看视频 | 人人草人人干 | 国产伦精品一区二区三区视频黑人 | 日韩一区二区三区精品 | 精品久久免费 | 日韩一级淫片 | 亚洲日本欧美 | 亚洲精品成人网 | 免费a在线观看 | 国产理论在线 | 日韩在线视频免费 | 特一级黄色片 | 久久久久久免费 | a毛片在线观看 | 亚洲人在线观看 | 秘密爱大尺度做爰呻吟 | 午夜激情网站 | 香蕉久久久 | 美女无遮挡网站 | 综合久久久久 | 日本成人黄色 | 久久国产一区二区三区 | 日韩黄色录像 | 91在线播放视频 | 91理论片午午伦夜理片久久 | www.com黄| 欧美日韩成人 | 国产寡妇亲子伦一区二区三区四区 | 精品视频一区二区三区四区 | 成人国产一区 | 久久久久国产视频 | 亚洲福利在线观看 | 成人精品在线视频 | 国产一区二区视频在线播放 |