微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 数码管时钟,错误太多,望各位指导.........

数码管时钟,错误太多,望各位指导.........

时间:10-02 整理:3721RD 点击:

  1. #include<reg52.h>
  2. #define uc unsigned char;
  3. #define ui unsigned int;
  4. sbit d=P2^6;
  5. sbit w=P2^7;
  6. sbit led1=P1^0;
  7. uc code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  8. uc code table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  9. void delayms(ui);
  10. uc n1,n2,n3,n4,x,shi1,ge1,shi2,ge2,shi3,ge3,shi4,ge4,m;
  11. void display(uc,uc,uc,uc,uc,uc,uc,uc);
  12. void main()
  13. {
  14. TMOD=0x11;
  15. TH0=(65536-45872)/256;
  16. TL0=(65536-45872)%256;
  17. TH1=(65536-45872)/256;
  18. TL1=(65536-45872)%256;
  19. EA=1;
  20. ET0=1;
  21. ET1=1;
  22. TR0=1;
  23. TR1=1;
  24. while(1)
  25. {
  26. display(shi1,ge1,shi2,ge2,shi3,ge3,shi4,ge4);
  27. }
  28. }
  29. void display(uc shi1,uc ge1,uc shi2,uc ge2,uc shi3,uc ge3,uc shi4,uc ge4)
  30. {
  31. for(x=1;x<5;x++)
  32. {
  33. d=1;
  34. P0=table1[gex];
  35. d=0;
  36. P0=0xff;
  37. w=1;
  38. P0=table1[2*x-1];
  39. w=0;
  40. delayms(1);
  41. d=1;
  42. P0=table1[shix];
  43. d=0;
  44. P0=0xff;
  45. w=1;
  46. P0=table1[2*x];
  47. w=0;
  48. delayms(1);
  49. }
  50. }
  51. void delayms(ui xms)
  52. {
  53. ui i,j;
  54. for(i=xms;i>0;i--)
  55. for(j=110;j>0;j--)
  56. }
  57. void T1_time()interrupt3
  58. {
  59. TH1=(65536-45872)/256;
  60. TL1=(65536-45872)%256;
  61. m++;
  62. if(m==20)
  63. {
  64. m=0;
  65. n1++;
  66. if(n1==60)
  67. {
  68. n1=0;
  69. n2++;
  70. if(n2==60)
  71. {
  72. n2=1;
  73. n3++;
  74. if(n3==24)
  75. {
  76. n3=0;
  77. n4++;
  78. shi4=n4/10;
  79. ge4=n4%10;
  80. }
  81. shi3=n3/10;
  82. ge3=n3%10;
  83. }
  84. shi2=n2/10;
  85. ge2=n2%10;
  86. }
  87. shi1=n1/10;
  88. ge1=n1%10;
  89. }
  90. }
  91.                                   

复制代码


顶顶。11

自顶一个!

太乱了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top