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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機秒表程序有點問題,不知道怎么改了,求助

[復制鏈接]
跳轉到指定樓層
樓主
ID:450993 發表于 2018-12-20 19:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <REGX51.H>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. #define PIN0 P0;  //數碼管段選端
  5. #define PIN1 P1;  //數碼管位選端
  6. uint cnt=0;   //1s的次數的計數值
  7. uint num=0;     //進入中斷次數的計數值(一次50ms)
  8. uint num1=0;  //0.001s的次數的計數值
  9. uint haomiaou=0;
  10. uchar code table[]={0x3f,0x06,0x5b,
  11. 0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};
  12. //不帶小數點的共陰極數碼管段碼0-9
  13. uchar code table1[]={0xbf,0x86,
  14. 0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
  15. //帶小數點的共陰極數碼管段碼0-9
  16. char code table2[]={0xc0,0xf9,0xa4,
  17. 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  18. //不帶小數點的共陽極數碼管段碼0-9
  19. uint a,b,c,d,e,f,g,w;
  20. void Display(uint a,uint b,uint c,uint d,uint e,uint f,uint g,uint w);  //聲明顯示函數
  21. void InitTimer0();  //聲明定時器初始化函數
  22. void Delayms(uint x);  //聲明延時函數
  23. void main ()
  24. {
  25. uint haomiao,haomiao1,haomiao2,s,s1,min,min1,minu=0,shi,shiu=0;
  26. //分別是毫秒的個位,毫秒的十位,毫秒的百位,
  27. //秒的個位,秒的十位,分的個位,分的十位,時的各位

  28.     InitTimer0();   //初始化定時器
  29.      while(1)   //進入死循環
  30.   {
  31.   //Delayms(20); //延時消抖
  32.     num=0;      //進入中斷次數的計數值(一次50ms)
  33.   num1=0;  //進入中斷次數值清0
  34.   haomiaou=0; //毫秒的計數值清0
  35.   cnt=0;  //秒的計數值清0
  36.   minu=0;  //分的計數值清0
  37.   shiu=0;    //時的計數值清0
  38.   }
  39.   if(num1>=200)           //檢測是否達到0.1s,(兩百個50ms)
  40.   {
  41.    num1=0;    //進入中斷次數值清零
  42.    haomiao++;  //毫秒秒的個位的計數值加1
  43.    if(haomiao>=10)  //若毫秒的個位計數值達到10
  44.    {
  45.     haomiao=0;       //清零毫秒的個位的計數值
  46.     num1=0;//進入中斷次數值置0
  47.    }
  48.   }
  49.   
  50.       if(num>=20)  //判斷計時時間是否達到1s(20個50ms)
  51.    {
  52.       cnt++;   //秒的計數值加1
  53.       if(cnt>=60) //判斷是否達到60s
  54.       {
  55.         cnt=0;  //若達到60s,將秒的計數值置零
  56.          minu++;   //分的計數值加1
  57.    
  58.        TR0=!TR0;   //達到60分鐘則關閉定時器并清零所有的計數值
  59.        num1=0;
  60.        num=0;
  61.       haomiao=0;
  62.       cnt=0;  
  63.      minu=0;
  64.       }
  65.     }
  66.   haomiao=haomiaou%10;   //從毫秒的計數值里面分離毫秒的個位
  67. haomiao1=haomiaou/10;   //從毫秒的計數值里面分離毫秒的十位
  68. haomiao2=haomiaou/100;   //從毫秒的計數值里面分離毫秒的百位
  69. s=cnt%10;   //從秒的計數值里面分離秒的個位
  70. s1=cnt/10;  //從秒的計數值里面分離秒的十位
  71. min=minu%10; //從分的計數值里面分離分的個位
  72. min1=minu/10; //從分的計數值里面分離分的十位
  73. Display(haomiao,haomiao1,haomiao2,s,s1,min,min1,shi);  //顯示這8個數
  74. }
  75. void InitTimer0() //定時器初始化函數
  76. {
  77. TMOD=0x10; //選擇定時器1的工作方式1
  78. TH0=(65536-45872)/65536;  //裝初值(定時50ms),晶振11.0592MHz
  79. TL0=(65536-45872)%65536;
  80. EA=1;  //打開總中斷
  81. ET0=1; //打開定時器中斷
  82. TR0=0; //先不要啟動定時器
  83. }
  84. void TI_time()interrupt 1  //定時器中斷服務函數
  85. {
  86. TH0=(65536-45872)/65536;  //重裝初值
  87. TL0=(65536-45872)%65536;
  88. num++;  //讓進入中斷次數值加1,用于判斷是否達到1s
  89. num1++;  //讓進入中斷次數值加1,用于判斷是否達到0.1s
  90. }
  91. void Delayms(uint x)   //延時xms
  92. {
  93. uint i,j;
  94. for(i=x;i>0;i--)
  95.   for(j=110;j>0;j--);
  96. }
  97. void Display(uint a,uint b,uint c,uint d,uint e,uint f,uint g,uint w) //定義顯示函數
  98. {
  99. PIN0 = table[a];  //毫秒的個位的段選
  100. PIN1 = 0x7f;   //毫秒的個位的位選
  101. Delayms(5);

  102. PIN0=table1[b];  //毫秒的十位的段選
  103. PIN1=0xbf;   //毫秒的十位的位選
  104. Delayms(5);        

  105. PIN0=table1[c];  //毫秒的百位的段選
  106. PIN1=0xdf;   //毫秒的百位的位選
  107. Delayms(5);         

  108. PIN0=table[d]; //秒的個位的段選
  109. PIN1=0xef;   //秒的個位的位選
  110. Delayms(5);   

  111. PIN0=table1[e];  //秒的十位的段選
  112. PIN1=0xf7;   //秒的十位的位選
  113. Delayms(5);

  114. PIN0=table[f];  //分的個位的段選(帶小數點)
  115. PIN1=0xfb;    //分的個位的位選
  116. Delayms(5);
  117.   
  118. PIN0=table1[g];  //分的十位的段選
  119. PIN1=0xfd;    //分的十位的位選
  120. Delayms(5);

  121. PIN0=table[w];  //時的個位的段選
  122. PIN1=0xfe;   //時的個位的位選
  123. Delayms(5);            
  124. }

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

使用道具 舉報

沙發
ID:1 發表于 2018-12-20 22:06 | 只看該作者
您這個問題給的信息不全,估計是沒人能回答得了的,先轉移到冷門區了,自行點擊編輯按鈕補充一下吧,審核員會幫你重新轉到熱門問答區的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 懂色av一区二区三区在线播放 | 国产亚洲一区二区精品 | 欧美日韩精品免费观看 | 亚洲三区视频 | 久久免费精品视频 | 久久久亚洲 | 欧美一区二区三区在线 | 男女爱爱网站 | 999精品视频| 男女羞羞视频网站 | 欧美在线视频一区二区 | 午夜免费福利片 | 高清一区二区三区 | 日韩成人在线观看 | 亚洲成人精品国产 | 国产激情在线观看视频 | 91精品国模一区二区三区 | 在线视频国产一区 | 丁香一区二区 | 国产99视频精品免费播放照片 | 久久久久欧美 | 超碰在线人人 | 在线观看国产视频 | 99久久中文字幕三级久久日本 | 欧美一级在线观看 | 国产精品视频久久 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 亚洲欧美在线观看 | 久久99国产精品 | 国产亚洲精品久久午夜玫瑰园 | 国产日韩一区二区三区 | 亚洲视频免费观看 | 国产日韩欧美激情 | 极品销魂美女一区二区 | 亚洲欧美激情精品一区二区 | 欧美日韩精品中文字幕 | 999久久久免费精品国产 | 欧美久| 狠狠干网 | 欧美精品一区三区 | 国产精品久久久久久av公交车 |