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

QQ登錄

只需一步,快速開始

搜索
查看: 7453|回復(fù): 5
收起左側(cè)

單片機(jī)10秒的秒表proteus仿真設(shè)計(jì)及源碼

[復(fù)制鏈接]
ID:137190 發(fā)表于 2016-9-28 13:31 | 顯示全部樓層 |閱讀模式
分享一個(gè)用51單片機(jī)做的10秒的秒表帶proteus仿真工程文件和源程序.下面是原理圖:
51hei.gif
0.png

源程序:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit K1 = P3^7;
  5. uchar i,s=0,Key_Flag_Idx=0,shi=0,ge=0;
  6. bit Key_State;
  7. uchar DSY_CODE[]=
  8. {
  9.          0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
  10. };

  11. void DelayMS(uint ms)
  12. {
  13.          uchar t;
  14.         while(ms--)
  15.         {
  16.                  for(t=0;t<120;t++);
  17.         }
  18. }
  19. void qidong()
  20. {
  21.   for(i=1;i<=10;i++)
  22.   {DelayMS(100);
  23.    if(Key_State != K1)
  24.     {
  25.           DelayMS(10);
  26.           Key_State = K1;
  27.           if(Key_State == 0)
  28.             {
  29.               Key_Flag_Idx=(Key_Flag_Idx+1)%3;
  30.                   return;
  31.                 }
  32.         }
  33.    }                  
  34.          ge=(ge+1)%10;
  35.          if(ge==0)shi=shi+1;
  36.          if(shi==6)shi=0;
  37.                  
  38. }

  39. void zhanting()
  40. {
  41.   while(Key_Flag_Idx==2)
  42.   {if(Key_State != K1)
  43.     {
  44.           DelayMS(10);
  45.           Key_State = K1;
  46.           if(Key_State == 0)
  47.             {
  48.               Key_Flag_Idx=(Key_Flag_Idx+1)%3;return;
  49.                 }
  50.     }
  51.    }
  52. }
  53. void main()
  54. {
  55.          P0 = 0x3f;
  56.         P2 = 0x3f;         
  57.         Key_State = 1;        //P3.7引腳的初始狀態(tài)為1
  58.         
  59.         while(1)
  60.         {
  61.                  if(Key_State != K1)//若P3.7引腳值有變化,其中K1為P3.7引腳值
  62.                 {
  63.                          DelayMS(10);//消抖
  64.                         Key_State = K1;        //將當(dāng)前P3.7值賦給Key_State變量
  65.                   if(Key_State == 0) //若當(dāng)前P3.7值為0,即若有按鍵按下
  66.               {
  67.                     Key_Flag_Idx=(Key_Flag_Idx+1)%3; //按鍵按下次數(shù)為...
  68.                    }
  69.                  }
  70.                       switch(Key_Flag_Idx)
  71.                       {
  72.                              case 1:qidong();break;
  73.                             case 2:zhanting();break;
  74.                             case 0:shi=0;ge=0;
  75.                       }                     
  76.         
  77.             P0 = DSY_CODE[shi];
  78.                 P2 = DSY_CODE[ge];
  79.    }

  80.   }
復(fù)制代碼
0.png
單片機(jī)秒表的所有資料打包下載: 秒表.7z (41.01 KB, 下載次數(shù): 66)

回復(fù)

使用道具 舉報(bào)

ID:156203 發(fā)表于 2016-12-20 13:42 | 顯示全部樓層
積分不夠兄弟能發(fā)給我么
回復(fù)

使用道具 舉報(bào)

ID:258481 發(fā)表于 2017-12-7 10:22 | 顯示全部樓層
左邊的那一位顯示有問(wèn)題是什么情況?就是不會(huì)顯示完整的數(shù)字
(RAD(2T]I8@99FS}FW~V7$O.png
回復(fù)

使用道具 舉報(bào)

ID:264617 發(fā)表于 2017-12-21 09:03 | 顯示全部樓層
wei960818 發(fā)表于 2016-12-20 13:42
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

我也很想要啊
回復(fù)

使用道具 舉報(bào)

ID:339213 發(fā)表于 2018-5-27 17:39 | 顯示全部樓層
我的顯示不出來(lái)怎么辦
回復(fù)

使用道具 舉報(bào)

ID:1122315 發(fā)表于 2024-5-26 10:13 來(lái)自手機(jī) | 顯示全部樓層
用Proteus8.13打開dsn文件
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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