標(biāo)題: 用at89s52和七段數(shù)碼管實(shí)現(xiàn)計(jì)時(shí)時(shí)鐘 [打印本頁]

作者: daming    時(shí)間: 2014-12-30 23:43
標(biāo)題: 用at89s52和七段數(shù)碼管實(shí)現(xiàn)計(jì)時(shí)時(shí)鐘


  1. /*程序名稱:at89s52實(shí)現(xiàn)時(shí)鐘

  2.   程序功能:用at89s52和七段數(shù)碼管實(shí)現(xiàn)計(jì)時(shí)時(shí)鐘

  3.   作者      :hankjulianth

  4. */

  5. #include"reg52.h"
  6. #define uchar unsigned char
  7. #define uint  unsigned int
  8. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  9. uint sec,min,hour;//秒,分,時(shí)計(jì)數(shù)
  10. uint t1;//定義計(jì)數(shù)器
  11. sbit sc=P3^7;//鎖存信號(hào)
  12. void _init_();//初始化函數(shù)
  13. void timer0();//定時(shí)器T0中斷函數(shù)
  14. void showtime();//時(shí)間顯示函數(shù)

  15. void settime(uint,uint,uint)
  16. void main()
  17. {
  18. t1=0;

  19. settime(0,0,0);

  20. _init_();
  21. while(1)
  22. {
  23.   if(t1==20)
  24.   {
  25.    sec++;
  26.    t1=0;
  27.    }
  28.   if(sec==60)
  29.   {
  30.    min+=1;
  31.    sec=0;
  32.    }
  33.   if(min==60)
  34.   {
  35.    hour+=1;
  36.    min=0;
  37.    }
  38.   if(hour==24)
  39.   {
  40.    hour=0;
  41.   }
  42.    
  43.   showtime();
  44. }
  45. }

  46. void _init_()
  47. {

  48. //啟用且設(shè)置T0,定時(shí)50ms
  49. TH0=(65536-50000)/256;
  50. TL0=(65536-50000)%256;
  51. EA=1;
  52. ET0=1;
  53. TMOD=0x01;
  54. TR0=1;
  55. }
  56. void timer0() interrupt 1
  57. {
  58. _init_();
  59. t1++;
  60. }

  61. void settime(uint i,uint j,uint k)//設(shè)置初始時(shí)間函數(shù):   k : j : i

  62. {

  63.  sec=i;

  64.     min=j;

  65.     hour=k;

  66. }

  67. void showtime()
  68. {
  69. //秒鐘顯示
  70. sc=1;
  71. P0=table[sec/10];
  72. P2=0x06;
  73. sc=0;

  74. sc=1;
  75. P0=table[sec%10];
  76. P2=0x07;
  77. sc=0;


  78. //分鐘顯示
  79. sc=1;
  80. P0=table[min/10];
  81. P2=0x03;
  82. sc=0;

  83. sc=1;
  84. P0=table[min%10];
  85. P2=0x04;
  86. sc=0;

  87. //時(shí)鐘顯示
  88. sc=1;
  89. P0=table[hour/10];
  90. P2=0x01;
  91. sc=0;

  92. sc=1;
  93. P0=table[hour%10];
  94. P2=0x0;
  95. sc=0;
  96. }
復(fù)制代碼







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