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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4294|回復: 2
打印 上一主題 下一主題
收起左側

單片機秒表計時器Proteus仿真+程序 已成功

[復制鏈接]
跳轉到指定樓層
樓主
秒表計時器,仿真+程序已成功
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char        //無符號字符型宏定義
  3. #define   MS   2000
  4. uchar code led1[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //不帶小數點數碼管段碼
  5. uchar code led2[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//帶小數點數碼管段碼
  6. uchar n=0,m=0,j=0,k=0;//四位要顯示數據
  7. uchar keyln=0; //按鍵值
  8. sbit key=P3^3; //按鍵接口
  9. sbit key2=P3^2;
  10. sbit key1=P3^1;
  11. sbit key4=P3^4;
  12. uchar bit_;
  13. uchar num;
  14. uchar z,x,c,v;
  15. uchar h;
  16. uchar flag=0;
  17. uchar val[5][5];
  18. char val_index;
  19. uchar bc[4];
  20. uchar bc2[4];
  21. void Display2(void)        ;
  22. void Display3(void)        ;          //顯示函數;
  23. void Delay_ms(uchar s);//延時函數聲明
  24. void Display(void);         //顯示函數聲明

  25. void disp_1();
  26. void disp_2();
  27. void disp_3();
  28. void disp_4();
  29. void main(void)        // 主函數
  30. {
  31.           TMOD=0X01;          //定時器0方式1
  32.         TH0=(65536-8000)/256;  //預設初值高位
  33.         TL0=(65536-8000)%256;  //預設初值低位
  34.         ET0=1;         //開定時器0中斷
  35.         EA=1;          //開總中斷
  36.         TR0=0;          //定時器關
  37.         z=x=c=v=0;
  38.         while(1)   //主函數循環
  39.         {               

  40.                
  41. if(key==0)          //判斷按鍵是否按下
  42.         {
  43.                 Delay_ms(50);  //延時,軟件消抖
  44.                 if(key==0)          //再次判斷按鍵是否一直被按下
  45.                 {
  46.                                 TR0=!TR0;
  47.                         while(!key); //等待按鍵彈起
  48.                 }
  49.         }
  50. if(key4==0)          //判斷按鍵是否按下
  51.         {
  52.                 Delay_ms(50);  //延時,軟件消抖
  53.                 if(key4==0)          //再次判斷按鍵是否一直被按下
  54.                 {
  55.                                 n=m=j=k=0;
  56.                         while(!key4); //等待按鍵彈起
  57.                 }
  58.         }


  59.         Display();//正常模式下數據

  60. }
  61. }

  62. void timer0(void) interrupt 1           //定時器0中斷服務子程序
  63. {
  64.           TH0=(65536-8000)/256;                   //重賦初值高位
  65.         TL0=(65536-8000)%256;                   //重賦初值低位
  66.         //num++;
  67.        
  68.         n++;                                                   //秒表最低位+1
  69.         if(n==10)                                           //如果最低位=10
  70.         {
  71.           n=0;                                                   //則最低位清0
  72.           m++;                                                   //前一位+1
  73.           if(m==10)                                          //以下如此推理
  74.           {
  75.             m=0;
  76.                   j++;
  77.                 if(j==10)
  78.                 {
  79.                     j=0;
  80.                     k++;
  81.                if(k==6)                           //當最高位為10時,全部清零
  82.                   {
  83.                         n=0;
  84.                         m=0;
  85.                         j=0;
  86.                         k=0;
  87.                   }
  88.                 }
  89.           }
  90.         }
  91. }
  92. void Delay_ms(uchar s)          //延時函數
  93. {
  94.     uchar i;
  95.         for(i=0;i<s;i++);
  96. }




  97. void Display(void)                  //顯示函數
  98. {

  99.           P2=0XF7;                          //最低位
  100.           P1=led1[n];
  101.           Delay_ms(MS);
  102.           P2=0XFF;

  103.           P2=0XFB;                         //第三位
  104.           P1=led1[m];
  105.           Delay_ms(MS);
  106.           P2=0XFF;

  107.           P2=0XFD;                        //第二位
  108.           P1=led2[j];
  109.           Delay_ms(MS);
  110.           P2=0XFF;
  111.        
  112.           P2=0XFE;                         //第一位
  113.           P1=led1[k];
  114.           Delay_ms(MS);
  115.           P2=0XFF;               
  116. }                       



  117. void Display2(void)                  //顯示函數
  118. {
  119.                   P2=0XF7;                          //最低位
  120.                   P1=led1[bc[0]];
  121.                   Delay_ms(MS);
  122.                   P2=0XFF;

  123.                   P2=0XFB;                         //第三位
  124.                   P1=led1[bc[1]];
  125.                   Delay_ms(MS);
  126.                   P2=0XFF;

  127.                   P2=0XFD;                        //第二位
  128.                   P1=led2[bc[2]];
  129.                   Delay_ms(MS);
  130.                   P2=0XFF;

  131.                
  132.                   P2=0XFE;                         //第一位
  133.                   P1=led1[bc[3]];
  134.                   Delay_ms(MS);
  135.                   P2=0XFF;       
  136. }       

  137. void Display3(void)                  //顯示函數
  138. {
  139.               P2=0XF7;                          //最低位
  140.                   P1=led1[bc2[0]];
  141.                   Delay_ms(MS);
  142.                   P2=0XFF;

  143.                   P2=0XFB;                         //第三位
  144.                   P1=led1[bc2[1]];
  145.                   Delay_ms(MS);
  146.                   P2=0XFF;

  147.                   P2=0XFD;                        //第二位
  148.                   P1=led2[bc2[2]];
  149.                   Delay_ms(MS);
  150.                   P2=0XFF;

  151.                
  152.                   P2=0XFE;                         //第一位
  153.                   P1=led1[bc2[3]];
  154.                   Delay_ms(MS);
  155.                   P2=0XFF;       
  156.        
  157. }       
復制代碼

所有資料51hei提供下載(Proteus是7.5版本的工程,不要用高版本打開):
秒表基礎版.rar (73.07 KB, 下載次數: 130)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:885725 發表于 2021-7-6 09:35 | 只看該作者
謝謝樓主。請問仿真軟件是Proteus,制圖用什么軟件呢?
回復

使用道具 舉報

板凳
ID:1056233 發表于 2022-12-19 14:20 | 只看該作者
能問問怎么把量程設置成99.99嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 手机在线一区二区三区 | 日韩欧美一区二区三区 | 国产精品高潮呻吟久久av野狼 | 亚洲五码久久 | 国产精品久久久久久久久婷婷 | 99精品免费久久久久久日本 | 99热在线播放 | 欧美老少妇一级特黄一片 | 国产成人久久精品一区二区三区 | 日本一区二区视频 | 久久免费资源 | 日本不卡免费新一二三区 | 国产精品久久久久久福利一牛影视 | 亚洲在线中文字幕 | 欧美成人一区二区三区 | 国产免费黄网 | 日韩一区二区免费视频 | 伊人久久大香线 | 欧美亚洲国产精品 | 亚洲欧美高清 | 久久久一区二区三区 | 老牛影视av一区二区在线观看 | 秋霞国产 | 毛片一级片 | 久久久国产一区二区三区四区小说 | 成人精品视频免费 | 一区二区三区四区免费观看 | 免费视频久久久久 | 午夜精品一区二区三区在线 | 免费在线观看黄视频 | 国产在线视频三区 | 国产在线视频一区二区董小宛性色 | 日本久久精品视频 | 久久999| 亚洲永久 | 欧美一区日韩一区 | 国产精品视频网站 | 免费久久久久久 | 91久久久久| 成人国产精品免费观看 | 一级片在线播放 |