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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1189|回復: 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. }

復制代碼
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av电影天堂 | 亚洲视频一区二区三区 | 成人精品一区二区三区 | 男人天堂99| 免费久久久 | 国户精品久久久久久久久久久不卡 | 午夜小电影 | 亚洲综合成人网 | 91社区在线观看 | 91欧美精品| 成人性视频免费网站 | 亚洲精品一区二区三区在线观看 | 中文字幕视频在线看 | 成人aaa视频 | 亚洲社区在线 | 中文字幕av在线 | 欧美视频在线播放 | 欧美一区二区在线 | 日韩国产一区二区三区 | 久久av一区二区三区 | 亚洲第1页 | 伊人精品在线 | 91精品国产99| 成年人免费在线视频 | 国产高清在线精品一区二区三区 | www国产成人免费观看视频,深夜成人网 | 精品国产欧美 | 日本精品一区二区三区在线观看视频 | 久久久久国产一区二区 | 午夜手机在线视频 | av中文字幕在线 | 久久精彩| 国产精品久久久久久妇女6080 | 中文字幕av一区 | 99pao成人国产永久免费视频 | 久久久精品一区二区三区 | 国产视频二区 | 亚洲天天干 | 日韩欧美在线观看一区 | 在线天堂免费中文字幕视频 | 国产成人av一区二区三区 |