找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)實(shí)現(xiàn)10內(nèi)秒表 仿真及程序

[復(fù)制鏈接]
ID:57821 發(fā)表于 2016-10-21 00:19 | 顯示全部樓層 |閱讀模式
用51單片機(jī)實(shí)現(xiàn)的10內(nèi)秒表仿真原理圖如下:
0.png
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar count=0;       
  5. uchar code tab[]={
  6. 0x3f,0x06,0x5b,0x4f,0x66,
  7. 0x6d,0x7d,0x07,0x7f,0x6f};//共陰數(shù)碼管0123456789
  8. sbit key1=P3^6;
  9. sbit key2=P3^7;
  10. uchar sec,flag,temp,i;
  11. uchar state;
  12. void delay(uchar z)
  13. {
  14.         uchar x;
  15.         while(z--)
  16.                 for(x=120;x>0;x--);
  17. }
  18. void init()
  19. {
  20.         P0=0x3f;P2=0x3f;
  21.         flag=0;
  22.         state=1;
  23.         sec=0;
  24.         i=0;
  25.         TMOD=0x01;
  26.         TH0=(65536-50000)/256;
  27.         TL0=(65536-50000)%256;
  28.         PX0=1; //設(shè)置優(yōu)先級為INT0
  29.         EA=1;
  30.         EX0=1;
  31. }
  32. void main()
  33. {
  34.         init();
  35.         while(1)
  36.         {
  37.                 if(state!=key2)
  38.                 {
  39.                         delay(10);
  40.                         state=key2;
  41.                         //while(key2==0);
  42.                         if(state==0)
  43.                           {
  44.                                   delay(10);
  45.                                 flag=(flag+1)%2;
  46.                                   switch(flag)
  47.                                 {
  48.                                         case 0:
  49.                                         EA=0;ET0=0;TR0=0;break;
  50.                                         case 1:
  51.                                         EA=1;ET0=1;TR0=1;break;
  52.                                 }
  53.                           }
  54.                 }
  55.         }
  56. }
  57. void timer0() interrupt 1
  58. {
  59.         TH0=(65536-50000)/256;
  60.         TL0=(65536-50000)%256;
  61.         if(++i==2)
  62.         {
  63.                 i=0;
  64.                 ++sec;
  65.                 P0=tab[sec/10];
  66.                 P2=tab[sec%10];
  67.                 if(sec==100)
  68.                         sec=0;
  69.         }
  70. }
  71. void exter0() interrupt 0
  72. {
  73.         P0=0x3f;P2=0x3f;i=0;sec=0;
  74. }
復(fù)制代碼

0.png

10內(nèi)秒表.zip

28.37 KB, 下載次數(shù): 8, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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