找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5708|回復(fù): 2
收起左側(cè)

單片機(jī)十秒的秒表proteus仿真和代碼

[復(fù)制鏈接]
ID:204443 發(fā)表于 2017-5-31 12:44 | 顯示全部樓層 |閱讀模式
51單片機(jī)主控的十秒秒表仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):
無(wú)標(biāo)題.png 無(wú)標(biāo)2.png

51單片機(jī)代碼:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit s1=P3^0;
  5. uchar sun;
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
  7.                                          0x6d,0x7d,0x07,0x7f,0x6f};
  8. void delay(uint z)
  9. {
  10.         uint x,y;
  11.         for(x=z;x>0;x--)
  12.                 for(y=110;y>0;y--);
  13. }
  14. /***************顯示子程序************************/
  15. void display(uchar sum)
  16. {
  17.         uchar ge,shi;
  18.         ge=table[sum%10];
  19.         shi=table[sum/10];
  20.         
  21.         P2=1;
  22.         P0=ge;
  23.         P2=0xfe;
  24.         delay(5);

  25.         P2=1;
  26.         P0=shi;
  27.         P2=0xfd;
  28.         delay(5);        
  29. }
  30. /**************按鍵掃描函數(shù)**********************/
  31. void keycan()
  32. {
  33.         uint i;
  34.         if(s1==0)
  35.         {
  36.                 delay(30);
  37.                 if(s1==0)
  38.                 {
  39.                         i++;
  40.                         switch(i)
  41.                         {
  42.                                 case 1:TR0=0;break;
  43.                                 case 2:sun=0;break;
  44.                                 case 3:TR0=1;i=0;break;
  45.                                 default:break;
  46.                         }
  47.                         while(!s1);
  48.                 }
  49.         }
  50. }
  51. void main()
  52. {
  53.         
  54.         TMOD=01;
  55.         TH0=-50000/256;
  56.         TL0=-50000%256;
  57.         EA=1;
  58.         ET0=1;
  59.         TR0=1;
  60.         while(1)
  61.         {
  62.                 display(sun);
  63.                 keycan();
  64.         }
  65. }
  66. /***************中斷服務(wù)函數(shù)**********************/
  67. void T0_time() interrupt 1
  68. {        
  69.         uint i;
  70.         TH0=-50000/256;
  71.         TL0=-50000%256;
  72.         i++;
  73.         if(i==20)
  74.         {
  75.                 i=0;
  76.                 sun++;

  77. …………限于本文篇幅 余下代碼請(qǐng)從51hei下載附件…………
復(fù)制代碼


全部資料下載地址:
10秒的秒表.rar (54.56 KB, 下載次數(shù): 36)



評(píng)分

參與人數(shù) 2黑幣 +103 收起 理由
單片機(jī)菜鳥(niǎo)dd + 3 淡定
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:222006 發(fā)表于 2018-4-2 10:17 | 顯示全部樓層
錯(cuò)誤的沒(méi)法用
回復(fù)

使用道具 舉報(bào)

ID:632189 發(fā)表于 2019-11-7 10:00 來(lái)自觸屏版 | 顯示全部樓層
謝謝大佬呀
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表