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

QQ登錄

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

搜索
查看: 3633|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

數(shù)字鐘的proteus仿真電路及C語(yǔ)言程序設(shè)計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:269219 發(fā)表于 2018-11-29 18:36 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
例4 數(shù)字鐘的proteus仿真電路及C語(yǔ)言程序設(shè)計(jì)



單片機(jī)源程序如下:
  1. #include <REG51.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uint sec;
  5. uint min=23;
  6. uint hour=8;
  7. uint tcnt;
  8. unsigned char table[]=
  9.    {0x3f,0x06,0x5b,0x4f,0x66,
  10.    0x6d,0x7d,0x07,0x7f,0x6f,
  11.    0x40,0x00};
  12.    //共陰數(shù)碼管 0-9  '-'  
  13. void display(unsigned char a,unsigned char b,unsigned char c);
  14. //顯示延時(shí) 函數(shù)
  15. void delay(unsigned int z)
  16. {
  17.         unsigned int x;
  18.         unsigned char y;
  19.         for(x=z;x>0;x--)
  20.                 for(y=200;y>0;y--);        
  21. }
  22. void display()
  23. {   

  24. P3=0xfe;P2=0x00;
  25. P2=table[sec%10];
  26.   delay(3);


  27. P3=0xfd;P2=0x00;
  28. P2=table[sec/10];
  29. delay(3);

  30.   
  31. P3=0xfb;P2=0x00;
  32. P2=table[10];
  33.   delay(3);

  34.   
  35. P3=0xf7;P2=0x00;
  36. P2=table[min%10];
  37.   delay(3);

  38.   
  39. P3=0xef;P2=0x00;
  40. P2=table[min/10];
  41. delay(3);


  42. P3=0xdf;P2=0x00;
  43. P2=table[10];
  44.   delay(3);

  45. P3=0xbf;P2=0x00;
  46. P2=table[hour%10];
  47. delay(3);


  48. P3=0x7f;P2=0x00;
  49. P2=table[hour/10];
  50.   delay(3);
  51. }


  52. main()
  53. {
  54.          
  55.        TMOD=0x02;               //設(shè)置模式為定時(shí)器T0的模式2 (8位自動(dòng)重裝計(jì)數(shù)初值的計(jì)數(shù)值)        
  56.        TH0=0x06;                //設(shè)置計(jì)數(shù)器初值,靠TH0存儲(chǔ)重裝的計(jì)數(shù)值X0=256-250=6
  57.        TL0=0x06;
  58.        TR0=1;                   //啟動(dòng)T0
  59.        ET0=1;                   //開(kāi)啟定時(shí)器T0中斷允許
  60.        EA=1;

  61. while(1)
  62.         {   
  63.          
  64. display();
  65.            
  66.          }
  67. }
  68. void t0(void)interrupt 1 using 0      //t0的中斷程序
  69. {
  70.        tcnt++;
  71.        if(tcnt==4000)//定時(shí)器的定時(shí)計(jì)數(shù),4000次250us為1秒
  72.        {
  73.            tcnt=0;
  74.            
  75.            sec++;
  76.            if(sec==60)
  77.            {     
  78.                sec=0;
  79.                min++;
  80.                if(min==60)
  81.                {
  82.                    min=0;
  83.                    hour++;
  84.                    if(hour==24)
  85.                    {
  86.                        hour=0;
  87.                         
  88.                         
  89.                    }
  90.                   
  91.                }
  92.            }
  93.        }
  94. }
復(fù)制代碼

所有資料51hei提供下載:
數(shù)字鐘的proteus仿真電路及C語(yǔ)言程序設(shè)計(jì).rar (50.94 KB, 下載次數(shù): 35)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:570785 發(fā)表于 2019-6-24 14:03 | 只看該作者
樓主的是好東西啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:910454 發(fā)表于 2021-4-29 18:12 | 只看該作者
怎么把初始時(shí)間設(shè)為12.00.00
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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