欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)4位秒表代碼與Proteus仿真圖 啟動停止清零3個按鈕 [打印本頁]

作者: 1005002719    時間: 2022-11-25 18:32
標(biāo)題: 單片機(jī)4位秒表代碼與Proteus仿真圖 啟動停止清零3個按鈕
采用80c52單片機(jī),制作4位秒表,精確到0.01s。有啟動、暫停、清零按鍵。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)






單片機(jī)源程序如下:
  1. #include "reg52.h"
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit k1=P1^0;
  5. sbit k2=P1^1;
  6. sbit k3=P1^2;

  7. uint num;
  8. uint sec=0;
  9. uint ms=0;
  10. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
  11.                     0x92,0x82,0xf8, 0x80,0x90};


  12. void delay(uint a)
  13. {
  14.    uint i,j;
  15.         for(i=0;i<a;i++)
  16.         for(j=0;j<120;j++);
  17.         
  18. }

  19. void Scankey()
  20. {
  21.         if(k1==0)
  22.         {
  23.          delay(5);
  24.                 if(k1==0)
  25.                 {
  26.                          TR0=1;
  27.                 }
  28.         }
  29.         else if(k2==0)
  30.         {
  31.          delay(5);
  32.                 if(k2==0)
  33.                 {
  34.                          TR0=0;
  35.                 }
  36.         }
  37.                 else if(k3==0)
  38.         {
  39.          delay(5);
  40.                 if(k3==0)
  41.                 {
  42.                          sec=0;ms=0;
  43.                 }
  44.         }

  45. }
  46. void Display()
  47. {
  48.                 P2=0x01;
  49.                 P0=table[sec/10];
  50.           delay(1);
  51.                 P2=0x02;
  52.                 P0=table[sec%10]&0x7f;        
  53.           delay(1);
  54.         
  55.                 P2=0x04;
  56.                 P0=table[ms/10];
  57.           delay(1);
  58.                 P2=0x08;
  59.                 P0=table[ms%10];        
  60.           delay(1);

  61. }



  62. void Time0()
  63. {
  64. TMOD=0x01;
  65. TH0=(65535-10000)/256;
  66. TL0=(65535-10000)%256;
  67. ET0=1;
  68. EA=1;        
  69. TR0=0;
  70. }

  71. /**************
  72. 四位數(shù)碼管顯示
  73. 00.00-99.99
  74. 1s=1000ms,定時10ms++
  75. **************/


  76. void main()
  77. {
  78. Time0();
  79. while(1)
  80. {
  81.                
  82. Display();
  83. Scankey();
  84. }
  85.         
  86. }

  87. void zd() interrupt 1
  88. {
  89. TH0=(65535-10000)/256;
  90. TL0=(65535-10000)%256;
  91.         ms++;
  92.         if(ms>=100)
  93.         {
  94.           ms=0;
  95.           sec++;
  96.   if(sec>=99)
  97.    {
  98.    sec=0;
  99.    }
  100. }
  101. }

復(fù)制代碼
Keil代碼與Proteus8.13仿真下載: 4位秒表.zip (75.13 KB, 下載次數(shù): 62)

作者: sonique0371    時間: 2022-11-26 11:10
從98直接跳到00
作者: sonique0371    時間: 2022-11-26 11:30
sonique0371 發(fā)表于 2022-11-26 11:10
從98直接跳到00

第110行改成 if(sec>=100)即可。
作者: real8799190    時間: 2022-11-28 14:41
就喜歡這種初級的程序,,,,
作者: gcy666888    時間: 2022-11-29 09:01
sonique0371 發(fā)表于 2022-11-26 11:10
從98直接跳到00

這個應(yīng)該可以改的





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1