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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡易單片機秒表Proteus仿真與代碼

[復制鏈接]
跳轉到指定樓層
樓主
需要的自取,有代碼和proteus仿真

單片機源程序如下:

  1. #include<reg52.h>                 //庫文件
  2. #define uchar unsigned char//宏定義無符號字符型
  3. #define uint unsigned int  //宏定義無符號整型

  4. #define DUAN P0          //P0口控制段
  5. #define WEI  P2          //P2口控制位
  6. sbit k_shi=P1^0;// 更改小時按鍵
  7. sbit k_fen=P1^1;// 更改分鐘按鍵
  8. sbit k_miao=P1^2;// 更改秒按鍵
  9. /********************************************************************
  10.                             初始定義
  11. *********************************************************************/
  12. uchar Table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//七段碼對應值
  13. uchar numb[8];         //定義字符串
  14. uint miao=0,fen,shi;
  15. /********************************************************************
  16.                             延時函數
  17. *********************************************************************/
  18. void delay(uchar t)
  19. {
  20.   uchar i,j;
  21.    for(i=0;i<t;i++)
  22.    {
  23.             for(j=13;j>0;j--);
  24.          { ;
  25.          }
  26.    }
  27. }
  28. /********************************************************************
  29.                             求值函數
  30. *********************************************************************/
  31. void t_to_dis()
  32. {
  33. numb[0]=shi/10;        //顯示小時十位
  34. numb[1]=shi%10;        //顯示小時個位
  35. numb[2]=10;                //顯示橫杠
  36. numb[3]=fen/10; //顯示分十位
  37. numb[4]=fen%10;        //顯示分個位
  38. numb[5]=10;                //顯示橫杠
  39. numb[6]=miao/10;//顯示秒十位
  40. numb[7]=miao%10;//顯示秒個位
  41.   }

  42. /********************************************************************
  43.                             顯示函數
  44. *********************************************************************/        
  45. void display()//顯示函數
  46. {
  47. /*****************數據轉換*****************************/
  48. uchar i,j;
  49. uchar sel;
  50. i=30;           //定義延時顯示時間
  51. sel=0x01;  //掃描位初值
  52. for(j=0;j<8;j++)
  53.         {
  54.         WEI=sel;                  //選通最右邊的數碼管
  55.     DUAN=~Table[numb[j]];          //送字型碼
  56.     delay(i);                 //顯示延時   
  57.     sel=sel<<1;   
  58.         }

  59. }
  60. /********************************************************************
  61.                            按鍵函數
  62. *********************************************************************/        
  63. void key()//函數
  64. {
  65. if(k_shi==0){shi++;while(!k_shi);if(shi>=24)shi=0;}
  66. if(k_fen==0){fen++;while(!k_fen);if(fen>=60)fen=0;}
  67. if(k_miao==0){miao++;while(!k_miao);if(miao>=60)miao=0;}
  68. }

  69. /********************************************************************
  70.                            定時器中斷函數
  71. *********************************************************************/
  72. void timer1(void)interrupt 3
  73. {
  74. uchar i;
  75. TH1=0X3c;//定時初值
  76. TL1=0Xaf;//定時初值
  77.   i++;
  78. if(i>=20)
  79.    {i=0;
  80.     miao++;//秒加1
  81.      if(miao>=60)
  82.        {miao=0;//秒清零
  83.              fen++;//60秒后分加1
  84.                if(fen>=60)
  85.                 {fen=0;//分清零
  86.                    shi++;//60分后時加1
  87.                      if(shi>=24)
  88.                            shi=0;//時清零
  89.                                                   }
  90.                                    }
  91.                                   }
  92. }
  93. /********************************************************************
  94.                            中斷初始化
  95. *********************************************************************/
  96. void cshh()
  97. {
  98. TMOD=0X10;//定義定時器工作方式
  99. TH1=0X3c;
  100. TL1=0Xaf;
  101. ET1=1;
  102. TR1=1;//開定時器
  103. EA=1;//開中斷
  104. }
  105. /********************************************************************
  106.                             主函數
  107. *********************************************************************/

  108. main()
  109. {
  110. cshh();         //中斷初始化
  111. while(1)
  112. {
  113. key();//按鍵函數
  114. t_to_dis();//確定秒分時值
  115. display();        //顯示秒分時值
  116. }
  117. }
  118.        
  119. /********************************************************************
  120.                               結束
  121. *********************************************************************/
復制代碼

Keil代碼與Proteus8.13仿真下載:
數字鐘設計.7z (65.8 KB, 下載次數: 12)


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日夜精品视频 | 欧美一级黑人aaaaaaa做受 | 中文字幕一区二区三区不卡 | 色婷婷综合久久久中文字幕 | 鸡毛片| 女女百合av大片一区二区三区九县 | 国产精品精品久久久 | 亚洲www啪成人一区二区麻豆 | 久久久久久久国产 | 色综合一区二区 | 国产精品69毛片高清亚洲 | 天天搞天天搞 | 亚洲精品成人网 | 欧美精品在欧美一区二区 | 久久成人免费视频 | 国产综合在线视频 | 亚洲一区二区久久 | 伊人春色成人网 | 中国一级特黄毛片大片 | 国产成人免费视频网站高清观看视频 | 亚洲欧美日韩国产 | 亚洲视频欧美视频 | 亚洲毛片一区二区 | 日韩高清中文字幕 | 在线观看视频福利 | 在线观看h视频 | 国产欧美日韩一区 | 日韩在线欧美 | 男女污污动态图 | 一级欧美 | 国产成人精品网站 | 日韩av免费在线电影 | 国产成人精品一区二 | 91黄在线观看 | 一级毛片大全免费播放 | 国产欧美精品 | 日韩毛片中文字幕 | 国产资源在线视频 | 青青草视频网 | 中文字幕 欧美 日韩 | 美女久久久久久久久 |