欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機數(shù)組顯示實驗 [打印本頁]

作者: liuda    時間: 2015-1-21 23:06
標題: 單片機數(shù)組顯示實驗
是用51hei單片機開發(fā)板 電路圖詳見:http://www.raoushi.com/f/51hei-5.pdf  的數(shù)碼管部分, 用2個74hc573 鎖存,p0口作為數(shù)據(jù)口 ,p3.6和p3.7分別是段和位的鎖存端口. p2口上面有按鍵 詳見程序的定義:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. sbit D=P3^6;
  6. sbit V=P3^7;
  7. uchar ACT[4]={0xfe,0xfd,0xfb,0xf7};
  8. uchar data shuzu[4];
  9. //=============
  10. uchar status;
  11. uchar temp,f;
  12. //===============
  13. void delay_1ms(void)
  14. {
  15. uint k;
  16. for(k=0;k<121;k++);
  17. }
  18. //============
  19. void dis_all(void)
  20. {
  21. D=1;P0=SEG7[shuzu[0]];D=0;P0=0xff;V=1;P0=ACT[3];V=0;delay_1ms();
  22. D=1;P0=SEG7[shuzu[1]];D=0;P0=0xff;V=1;P0=ACT[2];V=0;delay_1ms();
  23. D=1;P0=SEG7[shuzu[2]];D=0;P0=0xff;V=1;P0=ACT[1];V=0;delay_1ms();
  24. D=1;P0=SEG7[shuzu[3]];D=0;P0=0xff;V=1;P0=ACT[0];V=0;delay_1ms();
  25. }
  26. //================
  27. void dis_shuzu0(void)
  28. {
  29. D=1;P0=SEG7[f];D=0;P0=0xff;V=1;P0=ACT[3];V=0;delay_1ms();
  30. }
  31. //======================
  32. void dis_shuzu1(void)
  33. {
  34. D=1;P0=SEG7[f];D=0;P0=0xff;V=1;P0=ACT[2];V=0;delay_1ms();
  35. }
  36. //===================
  37. void dis_shuzu2(void)
  38. {
  39. D=1;P0=SEG7[f];D=0;P0=0xff;V=1;P0=ACT[1];V=0;delay_1ms();
  40. }
  41. //=======================
  42. void dis_shuzu3(void)
  43. {
  44. D=1;P0=SEG7[f];D=0;P0=0xff;V=1;P0=ACT[0];V=0;delay_1ms();
  45. }
  46. //=================
  47.   void key_s1(void)
  48. {
  49. P2=0xff;
  50. if(P2==0xbf)
  51. {if(temp>50)temp=0;
  52. if(temp==0)f++;
  53. if(f>9)f=0;
  54. temp++;
  55. delay_1ms();
  56.     }
  57. }
  58. //===================
  59. void key_s2(void)
  60. {
  61. P2=0xff;
  62. if(P2==0x7f)
  63. {
  64. switch (status)
  65. {
  66. case 1:shuzu[0]=f;break;
  67. case 2:shuzu[1]=f;break;
  68. case 3:shuzu[2]=f;break;
  69. case 4:shuzu[3]=f;break;
  70. default:break;
  71.      }
  72.   }
  73. }
  74. //=================
  75. void key_s4(void)
  76. {
  77. P2=0xff;
  78. if(P2==0xdf)
  79. {if(temp>50)temp=0;
  80. if(temp==0)status++;
  81. if(status>4)status=0;
  82. temp++;
  83. delay_1ms();
  84.    }
  85. }
  86. //================
  87. void main(void)
  88. {
  89. while(1)
  90. {
  91. key_s1();
  92. key_s2();
  93. key_s4();
  94. switch (status)
  95. {
  96. case 0:dis_all();break;
  97. case 1:dis_shuzu0();break;
  98. case 2:dis_shuzu1();break;
  99. case 3:dis_shuzu2();break;
  100. case 4:dis_shuzu3();break;
  101. default:break;
  102.       }
  103. }
  104. }
復制代碼







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