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

標題: 數碼管溫度顯示程序,有沒有大神幫忙看看哪里出錯了 [打印本頁]

作者: AmonMU    時間: 2019-1-24 16:02
標題: 數碼管溫度顯示程序,有沒有大神幫忙看看哪里出錯了


  1. #include"reg51.h"
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #include"intrins.h"
  5. sbit DQ=P3^7;
  6. sbit P20=P3^0;
  7. sbit P21=P3^1;
  8. sbit P22=P3^2;
  9. sbit P23=P3^3;
  10. sbit P24=P0^0;
  11. code uchar tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
  12. code uchar tab1[]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};
  13. uchar a,b,t,h;
  14. uchar bai,shi,ge,xiao;
  15. void delay(unsigned int i)
  16. {
  17.   while(i--);  
  18. }
  19. //初始化函數
  20. bit int_DS18B20(void)
  21. {
  22.   unsigned char x=0;
  23.   DQ=1;
  24. delay(8);
  25.   DQ=0;
  26. delay(80);
  27.   DQ=1;
  28. delay(14);
  29.   x=DQ;
  30. delay(30);
  31.   return x;
  32. }
  33. //讀一個字節
  34. read(void)
  35. {
  36. unsigned char i=0;
  37. unsigned char dat=0;
  38. for(i=8;i>0;i--)
  39. {
  40. DQ=0;
  41. dat>>=1;
  42. DQ=1;
  43. if(DQ)
  44. dat|=0x80;
  45. delay(4);
  46. }
  47. return(dat);
  48. }
  49. //寫一個字節
  50. write(unsigned char dat)
  51. {
  52. unsigned char i=0;
  53. for(i=8;i>0;i--)
  54. {
  55. DQ=0;
  56. DQ=dat&0x01;
  57. delay(5);
  58. DQ=1;
  59. dat>>=1;
  60. }
  61. delay(4);
  62. }
  63. //啟動轉換
  64. void int_(void)
  65. {
  66. while(int_DS18B20());
  67. write(0xCC);
  68. write(0x44);
  69. }
  70. void main(void)
  71. {
  72. uint count=0;
  73. P3=0X00;
  74. int_();
  75. delay(2200);
  76. for(count=0;count<1000;count++)
  77. {
  78. P20=1;
  79. P1=tab[0];
  80. delay(30);
  81. P20=0;
  82. P21=1;
  83. P1=tab[0];
  84. delay(30);
  85. P21=0;
  86. P22=1;
  87. P1=tab1[0];
  88. delay(30);
  89. P22=0;
  90. P23=1;
  91. P1=0xc6;
  92. delay(30);
  93. P23=0;
  94. }
  95. while(1)
  96. {
  97. delay(120);
  98. while(int_DS18B20());
  99. write(0xcc);
  100. write(0xbe);
  101. a=read();
  102. b=read();
  103.   if(b>127)
  104. {
  105. a=~a;
  106. b=~b;
  107. a>>=4;
  108. t=b<<4;
  109. t=t|a;
  110. t+=1;
  111. shi=t/10;
  112. ge=t-shi*10;
  113. for(count=0;count<123;count++)
  114. {
  115. if(t>=10)
  116.   {
  117.   P20=1;
  118.   P1=0xbf;
  119.   delay(30);
  120.   P20=0;
  121.   P21=1;
  122.   P1=tab[shi];
  123.   delay(50);
  124.   P21=0;
  125.   P22=1;
  126.   P1=tab1[ge];
  127.   delay(30);
  128.   P22=0;
  129.   P23=1;
  130.   P1=0xc6;
  131.   delay(30);
  132.   P23=0;
  133.   }
  134.   else
  135.   {
  136.   P20=0;
  137.   P21=1;
  138.   P1=0xbf;
  139.   delay(30);
  140.   P21=0;
  141.   P22=1;
  142.   P1=tab1[ge];
  143.   delay(30);
  144.   P22=0;
  145.   P23=1;
  146.   P1=0xc6;
  147.   delay(30);
  148.   P23=0;
  149.   }
  150. }
  151. }
  152. else
  153. {
  154. count=0;
  155. a=a>>4;
  156. t=b<<4;
  157. t=t|a;
  158. if(t>36)
  159. {P24=0;}
  160. else P24=1;
  161. bai=t/100;
  162. shi=(t-bai*100)/10;
  163. ge=t-(bai*100+shi*10);
  164.    for(count=0;count<123;count++)
  165.    {
  166.    if(bai)
  167.    {
  168.    P20=1;
  169.    P1=tab[bai];
  170.    delay(30);
  171.    P20=0;
  172.    }
  173.    P20=0;
  174.    P21=1;
  175.    P1=tab[shi];
  176.    delay(30);
  177.    P21=0;
  178.    P22=1;
  179.    P1=tab1[ge];
  180.    delay(30);
  181.    P22=0;
  182.    P23=1;
  183.    P1=0xc6;
  184.    delay(30);
  185.    P23=0;
  186.    }
  187. }
  188. int_();
  189. }


復制代碼



作者: 教教我單片機把    時間: 2019-3-12 19:51
大哥大哥,我一直在找你這個數碼管,請問它在DXP里如何找到?
作者: 還有誰?    時間: 2019-3-13 09:15
本帖最后由 還有誰? 于 2019-3-22 12:33 編輯

很器件在里面,看看別人怎么弄的再說




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