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

QQ登錄

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

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

計(jì)時(shí)器設(shè)計(jì)(計(jì)時(shí)時(shí)間存放于共同體變量中)實(shí)驗(yàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72519 發(fā)表于 2015-1-21 23:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
是用51hei單片機(jī)開(kāi)發(fā)板 電路圖詳見(jiàn):http://www.torrancerestoration.com/f/51hei-5.pdf  的數(shù)碼管部分, 用2個(gè)74hc573 鎖存,p0口作為數(shù)據(jù)口 ,p3.6和p3.7分別是段和位的鎖存端口.P2口上面是按鍵
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. //======================
  5. uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  6. uchar code ACT[4]={0xfe,0xfd,0xfb,0xf7};
  7. sbit D=P3^6;
  8. sbit V=P3^7;
  9. uint hour;
  10. uchar min,sec,cnt;
  11. uchar status;
  12. void delay(uint k);
  13. //==========
  14. union deda
  15. {
  16. uint dhour;
  17. uchar dmin;
  18. uchar dsec;
  19. };
  20. union deda dis_buff;
  21. //============
  22. void initial(void)
  23. {
  24. TMOD=0x01;
  25. TH0=-(50000/256);
  26. TL0=-(50000%256);
  27. ET0=1;
  28. TR0=1;
  29. EA=1;
  30. }
  31. //============
  32. void time0(void) interrupt 1
  33. {
  34. TH0=-(50000/256);
  35. TL0=-(50000%256);
  36. cnt++;
  37. if(cnt>=20){sec++;cnt=0;}
  38. if(sec>=60){min++;sec=0;status++;}
  39. if(min>=60){hour++;min=0;}
  40. if(hour>9999){hour=0;}
  41. if(status>2){status=0;}
  42. switch(status)
  43. {
  44. case 0:dis_buff.dhour=hour;break;
  45. case 1:dis_buff.dmin=min;break;
  46. case 2:dis_buff.dsec=sec;break;
  47. default:break;
  48.   }
  49. }
  50. //============
  51. void main(void)
  52. {
  53. initial();
  54. for(;;)
  55. {
  56. switch(status)
  57. {
  58. case 0:{D=1;P0=SEG7[dis_buff.dhour%10];D=0;P0=0xff;V=1;P0=ACT[3];V=0;delay(2);
  59. D=1;P0=SEG7[(dis_buff.dhour%100)/10];D=0;P0=0xff;V=1;P0=ACT[2];V=0;delay(2);
  60. D=1;P0=SEG7[(dis_buff.dhour%1000)/100];D=0;P0=0xff;V=1;P0=ACT[1];V=0;delay(2);
  61. D=1;P0=SEG7[dis_buff.dhour/1000];D=0;P0=0xff;V=1;P0=ACT[0];V=0;delay(2);}break;
  62. case 1:{D=1;P0=SEG7[dis_buff.dmin%10];D=0;P0=0xff;V=1;P0=ACT[3];V=0;delay(2);
  63. D=1;P0=SEG7[dis_buff.dmin/10];D=0;P0=0xff;V=1;P0=ACT[2];V=0;delay(2);}break;
  64. case 2:{D=1;P0=SEG7[dis_buff.dsec%10];D=0;P0=0xff;V=1;P0=ACT[1];V=0;delay(2);
  65. D=1;P0=SEG7[dis_buff.dsec/10];D=0;P0=0xff;V=1;P0=ACT[0];V=0;delay(2);}break;
  66. default:break;
  67.      }
  68.   }
  69. }
  70. //==============
  71. void delay(uint k)
  72. {
  73. uint data i,j;
  74. for(i=0;i<k;i++){
  75. for(j=0;j<121;j++)
  76. {;}}
  77. }
復(fù)制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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