久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2481|回復: 8
打印 上一主題 下一主題
收起左側

數控烙鐵單片機程序求指點 燒錄后數碼管是全顯

[復制鏈接]
跳轉到指定樓層
樓主
自學單片機有一段時間了,做了款數控烙鐵程序,其中大部份程序我先屏蔽,先搞顯示正常,發現燒錄后數碼管是全顯,顯示不正常不是讀取AD的數值,用K型熱電偶作探頭經放大100倍送AD轉換,DC5V/2A供電,請大神們指點下。程序如下:
  1. #include"STC15.h"
  2. #include "intrins.h"
  3. #define  uchar  unsigned char  
  4. #define  uint   unsigned int  
  5. #define  ulong  unsigned long
  6. #define ADC_POWER   0x80            //ADCμçÔ′¿ØÖÆÎ»
  7. #define ADC_FLAG    0x10            //ADCíê3é±êÖ¾
  8. #define ADC_START   0x08            //ADCÆe꼿ØÖÆÎ»
  9. #define ADC_SPEEDLL 0x00            //540¸öê±Öó
  10. #define ADC_SPEEDL  0x20            //360¸öê±Öó
  11. #define ADC_SPEEDH  0x40            //180¸öê±Öó
  12. #define ADC_SPEEDHH 0x60            //90¸öê±Öó
  13. //#define GPIO_LED  P3

  14. sbit ba=P1^3;
  15. sbit sh=P1^0;
  16. sbit ge=P1^2;
  17. sbit dn=P1^1;
  18. //sbit dian=P3^4;
  19. /*sfr P1M0=0x0f;
  20. sfr P1M1=0x00;
  21. sfr P3M0=0xff;
  22. sfr P3M1=0x00; */
  23. sbit up=P1^0;
  24. sbit down=P1^1;
  25. sbit heat=P1^7;
  26. //sbit s2=P1^2;
  27. //void Display(uchar dn,uchar ge,uchar sh,uchar ba);
  28. //void Display(uchar kemp);
  29. uchar makesure;//S3¼ü ¡°è·èϼü¡°
  30. uchar tp=0;
  31. uchar num=0;
  32. uchar ad=0;
  33. uchar s1,s2,s3,temp;

  34. uchar code LED[]={0xCF,0x0C,0xEA,0xE3,0xAC,0x67,0xE7,0x0E,0xEF,0x6F}; //數碼管0-9
  35. uchar code wei[4]={0x08,0x04,0x02,0x01}; //位選
  36. //uint ADC_result6,shan_sz,shan_dw,wendu,sheding,aa,tt01,tt_xm1,tt_xm2,tt_aj,js_xm;
  37. //uchar sheding_bz,jiare_bz,bz1,bz2,qieh_w,tt00,jiareshu,bz_xs,tt1,ab1,ab2,fen,miao;//¶¨òå±äá¿


  38. ulong  code  KT_1[14][101]=        
  39. {
  40.         /*-100  0*/
  41.         {        3568,3523,3492,3461,3430,3399,3368,3337,3305,3274,
  42.                 3242,3211,3179,3147,3115,3082,3050,3018,2985,2953,
  43.                 2920,2887,2854,2821,2788,2754,2721,2687,2654,2620,
  44.                 2586,2552,2518,2484,2450,2416,2381,2347,2312,2277,
  45.                 2243,2208,2173,2137,2102,2067,2032,1996,1961,1925,
  46.                 1889,1853,1817,1781,1745,1709,1673,1636,1600,1563,
  47.                 1527,1490,1453,1416,1379,1342,1305,1268,1231,1193,
  48.                 1156,1118,1081,1043,1005, 968, 930, 892, 854, 816,
  49.                 777 ,739 , 701, 662, 624, 585, 547, 508, 469, 431,
  50.                 392 ,353 , 314, 275, 236, 197, 157, 118,  79,  39,  
  51.                 0
  52.         },
  53.          
  54.           /*0   100*/
  55.         {           0,  39,  79, 119, 158, 198, 238, 277, 317, 357,                                 
  56.                   397, 437, 477, 517, 557, 597, 637, 677, 718, 758,                                          
  57.                   798, 838, 879, 919, 960,1000,1041,1081,1122,1162,                        
  58.                  1203,1244,1285,1325,1366,1407,1448,1489,1529,1570,     
  59.                  1611,1652,1693,1734,1776,1817,1858,1899,1940,1981,
  60.                  2022,2064,2105,2146,2188,2229,2270,2312,2353,2394,
  61.                  2436,2477,2519,2560,2601,2643,2684,2726,2767,2809,
  62.                  2850,2892,2933,2975,3016,3058,3100,3141,3183,3224,
  63.                  3266,3307,3349,3390,3432,3473,3515,3556,3598,3639,
  64.                  3681,3722,3764,3805,3847,3888,3930,3971,4012,4054,
  65.                  4095  
  66.          },
  67.         /*100   200  */
  68.         {
  69.                 4095,4137,4178,4219,4261,4302,4343,4384,4426,4467,
  70.                 4508,4549,4590,4632,4673,4714,4755,4796,4837,4878,
  71.                 4919,4960,5001,5042,5083,5124,5164,5205,5246,5287,
  72.                 5327,5368,5409,5450,5490,5531,5571,5612,5652,5693,
  73.                 5733,5774,5814,5855,5895,5936,5976,6016,6057,6097,
  74.                 6137,6177,6218,6258,6298,6338,6378,6419,6459,6499,
  75.                 6539,6579,6619,6659,6699,6739,6779,6819,6859,6899,
  76.                 6939,6979,7019,7059,7099,7139,7179,7219,7259,7299,
  77.                 7338,7378,7418,7458,7498,7538,7578,7618,7658,7697,
  78.                 7737,7777,7817,7857,7897,7937,7977,8017,8057,8097,
  79.                 8137
  80.         },
  81.         /*200  300  */
  82.         {
  83.                  8137, 8177, 8216, 8256, 8296, 8236, 8376, 8416, 8456, 8497,
  84.                  8537, 8577, 8617, 8657, 8697, 8737, 8777, 8817, 8857, 8898,
  85.                  8938, 8978, 9018, 9058, 9099, 9139, 9179, 9220, 9260, 9300,
  86.                  9341, 9381, 9421, 9462, 9502, 9543, 9583, 9624, 9664, 9705,
  87.                  9745, 9786, 9826, 9867, 9907, 9948, 9989,10029,10070,10111,
  88.                 10151,10192,10233,10274,10315,10355,10396,10437,10478,10519,
  89.                 10560,10600,10641,10682,10723,10764,10805,10846,10887,10928,
  90.                 10969,11010,11051,11093,11134,11175,11216,11257,11298,11239,
  91.                 11381,11422,11463,11504,11546,11587,11628,11669,11711,11752,
  92.                 11793,11835,11876,11918,11959,12000,12042,12083,12125,12166,
  93.                 12207
  94.         },  
  95.         /*300   400  */
  96.         {   
  97.                 12207,12249,12290,12332,12373,12415,12456,12498,12539,12581,
  98.                 12623,12664,12706,12747,12789,12831,12872,12914,12955,12997,
  99.                 13039,13080,13122,13164,13205,13247,13289,13331,13372,13414,
  100.                 13456,13497,13539,13581,13623,13665,13706,13748,13790,13832,
  101.                 13874,13915,13957,13999,14041,14083,14125,14167,14208,14250,
  102.                 14292,14334,14376,14418,14460,14502,14544,14586,14628,14670,
  103.                 14712,14754,14796,14838,14880,14922,14964,15006,15048,15090,
  104.                 15132,15174,15216,15258,15300,15342,15384,15426,15468,15510,
  105.                 15552,15594,15626,15679,15721,15763,15805,15847,15889,15931,
  106.                 15974,16016,16058,16100,16142,16184,16227,16269,16311,16353,
  107.                 16395
  108.         },   
  109.         /*400   500  */
  110.         {   
  111.                 16395,16438,16480,16522,16564,16607,16649,16691,16733,16776,
  112.                 16818,16860,16902,16945,16987,17029,17072,17114,17156,17199,
  113.                 17241,17283,17326,17368,17410,17453,17495,17537,17580,17622,
  114.                 17664,17707,17749,17792,17834,17876,17919,17961,18004,18046,
  115.                 18088,18131,18173,18216,18258,18301,18343,18385,18428,18470,
  116.                 18513,18555,18598,18640,18683,18725,18768,18810,18853,18895,
  117.                 18938,18980,19023,19065,19108,19150,19193,19235,19278,19320,
  118.                 19363,19405,19448,19490,19533,19576,19618,19661,19703,19746,
  119.                 19788,19831,19873,19916,19959,20001,20044,20086,20129,20172,
  120.                 20214,20257,20299,20342,20385,20427,20470,20512,20555,20598,
  121.                 20640
  122.         },         
  123.         /*500   600  */
  124.         {   
  125.                 20640,20683,20725,20768,20811,20853,20896,20938,20981,21024,
  126.                 21066,21109,21152,21194,21237,21280,21322,21365,21407,21450,
  127.                 21493,21535,21578,21621,21663,21706,21749,21791,21834,21876,
  128.                 21919,21962,22004,22047,22099,22132,22175,22218,22260,22303,
  129.                 22346,22383,22431,22473,22516,22559,22601,22644,22687,22729,
  130.                 22772,22815,22857,22900,22942,22985,23028,23070,23113,23156,
  131.                 23198,23241,23284,23326,23369,23411,23454,23497,23539,23582,
  132.                 23624,23667,23710,23752,23795,23837,23880,23923,23965,24008,
  133.                 24050,24093,24136,24178,24221,24263,24306,24348,24391,24434,
  134.                 24476,24519,24561,24604,24646,24689,24731,24774,24817,24859,
  135.                 24902
  136.         },   
  137.         /*600   700  */
  138.         {   
  139.                 24902,24944,24987,25029,25072,25114,25157,25199,25242,25284,
  140.                 25327,25369,25412,25454,25497,25539,25582,25624,25666,25709,
  141.                 25751,25794,25836,25879,25921,25964,26006,26048,26091,26133,
  142.                 26176,26218,26260,26303,26345,26387,26430,26472,26515,26557,
  143.                 26599,26642,26684,26726,26769,26811,26853,26896,26938,26980,
  144.                 27022,27065,27107,27149,27192,27234,27276,27318,27361,27403,
  145.                 27445,27487,27529,27572,27614,27656,27698,27740,27783,27825,
  146.                 27867,27909,27951,27993,28035,28078,28120,28162,28204,28246,
  147.                 28288,28330,28372,28414,28456,28498,28540,28583,28625,28677,
  148.                 28709,28751,28793,28835,28877,28919,28961,29002,29044,29086,
  149.                 29128
  150.         },   
  151.         /*700  800  */
  152.         {
  153.                 29128,29170,29212,29254,29296,29338,29380,29422,29464,29505,
  154.                 29547,29589,29631,29673,29715,29756,29798,29840,29882,29924,
  155.                 29965,30007,30049,30091,30132,30174,30216,30257,30299,30341,
  156.                 30383,30424,30466,30508,30549,30591,30632,30674,30716,30757,
  157.                 30799,30840,30882,30924,30965,31007,31048,31090,31131,31173,
  158.                 31214,31256,31297,31339,31380,31422,31463,31504,31546,31587,
  159.                 31629,31670,31712,31753,31794,31836,31877,31918,31960,32001,
  160.                 32042,32084,32125,32166,32207,32249,32290,32331,32372,32414,
  161.                 32455,32496,32537,32578,32619,32661,32702,32743,32784,32825,
  162.                 32866,32907,32948,32990,33031,33072,33113,33154,33195,33236,
  163.                 33277
  164.         },        
  165.         /*800  900 */
  166.         {
  167.                 33277,33318,33359,33400,33441,33482,33523,33564,33604,33645,
  168.                 33686,33727,33768,33809,33850,33891,33931,33972,34013,34054,
  169.                 34095,34136,34176,34217,34258,34299,34339,34380,34421,34461,
  170.                 34502,34543,34583,34624,34665,34705,34746,34787,34827,34868,
  171.                 34909,34949,34990,35030,35071,35111,35152,35192,35233,35273,
  172.                 35314,35354,35395,35435,35476,35516,35557,35597,35637,35678,
  173.                 35718,35758,35799,35839,35880,35920,35960,36000,36041,36081,
  174.                 36121,36162,36202,36242,36282,36323,36363,36403,36443,36483,
  175.                 36524,36564,36604,36644,36684,36724,36764,36804,36844,36885,
  176.                 36925,36965,37005,37045,37085,37125,37165,37205,37245,37285,
  177.                 37325
  178.         },
  179.         /*900  1000  */
  180.         {
  181.                 37325,37365,37405,37445,37484,37524,37564,37604,37644,37684,
  182.                 37724,37764,37803,37843,37883,37923,37963,38002,38042,38082,
  183.                 38122,38162,38201,38241,38281,38320,38360,38400,38439,38479,
  184.                 38519,38558,38598,38638,38677,38717,38756,38796,38836,38875,
  185.                 38915,38954,38994,39033,39073,39112,39152,39191,39231,39270,
  186.                 39310,39349,39388,39428,39467,39507,39546,39585,39625,39664,
  187.                 39703,39743,39782,39821,39861,39900,39939,39979,40018,40057,
  188.                 40096,40136,40175,40214,40253,40292,40332,40371,40410,40449,
  189.                 40488,40527,40566,40605,40645,40684,40723,40762,40801,40840,
  190.                 40879,40918,40957,40996,41035,41074,41113,41152,41191,41230,
  191.                 41269
  192.         },        
  193.         /*1000   1100  */
  194.         {
  195.                 41269,41308,41347,41385,41424,41463,41502,41541,41580,41619,
  196.                 41657,41696,41735,41774,41813,41851,41890,41929,41968,42006,
  197.                 42045,42084,42132,42161,42200,42239,42277,42316,42355,42393,
  198.                 42432,42470,42509,42548,42586,42625,42663,42702,42740,42779,
  199.                 42817,42856,42894,42933,42971,43010,43048,43087,43125,43164,
  200.                 43202,43240,43279,43317,43356,43394,43482,43471,43509,43547,
  201.                 43585,43624,43662,43700,43739,43777,43815,43853,43891,43930,
  202.                 43968,44006,44044,44082,44121,44159,44197,44235,44273,44311,
  203.                 44349,44387,44425,44463,44501,44539,44577,44615,44653,44691,
  204.                 44729,44767,44805,44843,44881,44919,44957,44995,45033,45070,
  205.                 45108
  206.         },        
  207.         /*1100   1200  */
  208.         {
  209.                 45108,45146,45184,45222,45260,45297,45335,45373,45411,45448,
  210.                 45486,45524,45561,45599,45637,45675,45712,45750,45787,45825,
  211.                 45863,45900,45938,45975,46013,46051,46088,46126,46163,46201,
  212.                 46238,46275,46313,46350,46388,46425,46463,46500,46537,46575,
  213.                 46612,46649,46687,46724,46761,46799,46836,46873,46910,46948,
  214.                 46985,47022,47059,47097,47134,47171,47208,47245,47282,47319,
  215.                 47356,47393,47430,47468,47505,47542,47579,47616,47653,47689,
  216.                 47726,47763,47800,47837,47874,47911,47948,47985,48021,48058,
  217.                 48095,48132,48169,48205,48242,48279,48316,48352,48389,48426,
  218.                 48462,48499,48536,48572,48609,48645,48682,48718,48755,48792,
  219.                 48828
  220.         },        
  221.         /*1200   1300  */
  222.         {
  223.                 48828,48865,48901,48937,48974,49010,49047,49083,49120,49156,
  224.                 49192,49229,49265,49301,49338,49374,49410,49446,49483,49519,
  225.                 49555,49591,49627,49663,49700,49736,49772,49808,49844,49880,
  226.                 49916,49952,49988,50024,50060,50096,50132,50168,50204,50240,
  227.                 50276,50311,50347,50383,50419,50455,50491,50526,50562,50598,
  228.                 50633,50669,50705,50741,50776,50812,50847,50883,50919,50954,
  229.                 50990,51025,51061,51096,51132,51167,51203,51238,51274,51309,
  230.                 51344,51380,51415,51450,51486,51521,51556,51592,51627,51662,
  231.                 51697,51773,51768,51803,51838,51873,51908,51943,51979,52014,
  232.                 52049,52084,52119,52154,52189,52224,52259,52294,52329,52364,
  233.                 52398
  234.         }
  235.                
  236. };
  237. /*****************延時子程序*****************/
  238. /*void delayus(uint xus)
  239. {
  240.    uint i,j;
  241.    for(i=0;i<xus;i++)
  242.    for(j=0;j<10;j++);
  243.    }*/


  244. void delay1ms(unsigned int i)
  245. {
  246.      uchar j;
  247.          while(i--)
  248.          {

  249.        for(j=0;j>115;j++);
  250.            {;}
  251.            }
  252.    }
  253. /*********端口初始化********/
  254. /*void Init()
  255. {
  256.   P1M1&=~0X40;
  257.   P1M0|=0Xf3;
  258.   P3M1=0X00;
  259.   P3M0=0XFF;
  260.   P1M0&=~0X40;//P1^6¸高阻輸入
  261.   P1M1|=0X40;
  262.   ADC_CONTR=0X80;//啟動
  263.   ADC_START=0X08;
  264.   delay1ms(2);
  265.   AUXR1&=~0X04;//ADC儲存方式
  266.   ADC_CONTR=0XE1;
  267.   }        */

  268. void Init()
  269.   {
  270.    P1M0|=0x80;
  271.    P1M1&=~0x80;
  272.   // P1M0= 0x0f;            
  273.   // P1M1= 0x00;
  274.    P3M0=0xff;
  275.    P3M1=0x00;
  276.    P5=0xff;
  277.    P5=0xff;              
  278.    P1ASF=0x40;               //設置第6通道作摸擬輸入
  279.    ADC_RES=0;                //清除
  280.    ADC_RESL=0;               //清除
  281.    ADC_CONTR=ADC_POWER|ADC_SPEEDLL;   //ADC開啟電源,
  282.    delay1ms(2);                      //延時1ms
  283.     }


  284. /***鍵盤檢測*****/
  285. /*void Keyboardset(void)
  286. {
  287.   
  288. if((s1+s2+s3)!=0)
  289. {
  290.   if(s1==1)
  291.   num=num-1;
  292.   Display(num,tp);
  293.   }
  294.   if(s2==1)
  295.   {
  296.    num=num+1;
  297.    Display(num,tp);
  298.    if(num>=1000)num=1000;
  299.    }
  300.     if(s3==1)
  301.         {
  302.       if(num>tp)
  303.           makesure=1;
  304.           return;
  305.     }
  306.         } */
  307.                   
  308. /********按鍵掃描*********/
  309. /*void Keyask(void)
  310. {
  311.   uchar tepm;
  312. s1=0;
  313. s2=0;
  314. s3=0;
  315. P1=0x30;
  316. P5=0xff;
  317. tepm=P1&0X30;
  318. if(temp!=0x30)
  319. {
  320.   delay1ms(10);
  321.   if(temp!=0x30)
  322.   switch(temp)
  323.   {
  324.    case(0x20):s1=1;
  325.    while(!(P1&0X10));
  326.    break;
  327.    case(0x10):s2=1;
  328.    while(!(P1&0x20));
  329.    break;
  330.    }
  331.    }
  332.    P1=0X70;
  333.    if(temp!=0x30)
  334.    {
  335.      delay1ms(10);
  336.          if(temp!=0x30)
  337.         switch(temp)
  338.         {
  339.         case(0x20):s3=1;
  340.    while(!(P1&0X10));
  341.    }
  342.    }
  343.    }*/         
  344. /**********ADC初始化并采集**************/
  345. /*uchar getAD(void)
  346. {
  347. uchar i;
  348. uint sum=0;
  349. for(i=0;i<8;i++)
  350. {
  351.   ADC_CONTR|=0X08;
  352.   BIT3=0x08(ADC_STARTAD)
  353.   delay(1);
  354.   P1ASF=0x40;
  355.   while((ADC_CONTR&0x10)==0x00);//等待轉換結束
  356.   ADC_CONTR&=~0x10;
  357.   sum+=ADC_RES;
  358.   }
  359.   sum>>=3;
  360.   return(uchar)sum;        //強制轉換uchar形式
  361.   }          */
  362. uint getAD(uchar channel)
  363. {
  364.    uchar ad_finished=0;//儲存AD轉換標志
  365.    uchar i;
  366.    uint sum=0;
  367.    for(i=0;i<8;i++)
  368.    {
  369.    ADC_RES=0;//¸高8清0
  370.    ADC_RESL=0;//低2清0
  371.    channel&=0x07;//0000 0111 清0高5位
  372.    ADC_CONTR=0x60;//轉換速率
  373.     _nop_();
  374.     ADC_CONTR=channel;//選擇當前通道
  375.     _nop_();
  376.     ADC_CONTR|=0x80;//啟動AD電源
  377.     _nop_();//延時
  378.         _nop_();
  379.     ADC_CONTR|=0x08;//0000,1000啟動轉換
  380.     ad_finished=0;
  381.     while(ad_finished==0)//等待轉換結束
  382.    {
  383.      ad_finished=(ADC_CONTR&0x10); //測試轉換結束?
  384.       }
  385.       ADC_CONTR&=0xE7;//1111,0111 清ADC_FLAG位,關閉轉換
  386.           sum+=ADC_RES;
  387.           }
  388.       sum>>=3;                 //求取平均值
  389.       return(uchar)sum;        //強制轉換uchar形式
  390.       return(ADC_RES*256+ADC_RESL);//·返回AD結果
  391.   }         

  392. /*************êyÂë1üÏÔê¾*****************/
  393. void Display(uchar kemp)
  394. /* void Display(uchar dn,uchar ge,uchar sh,uchar ba)*/
  395.   {
  396.    /* uchar i;
  397.         uint k;
  398.         for(i=0;i<4;i++);
  399.         {
  400.          switch(i)
  401.          {
  402.           case(0):
  403.           b=0;s=0;g=0;d=0;
  404.         break;
  405.          case(1):
  406.           b=1;s=0;g=0;d=0;
  407.         break;
  408.          case(2):
  409.           b=0;s=1;g=0;d=0;
  410.         break;
  411.          case(3):
  412.           b=0;s=0;g=1;d=0;
  413.         break;
  414.          case(4):
  415.           b=0;s=0;g=0;d=1;
  416.         break;
  417.         }
  418.          GPIO_LED=LED[i];
  419.          k=10;
  420.         while(k--);
  421.         GPIO_LED=0x00;
  422.         } */

  423.     /*uchar b,sh,g;
  424.         b=num/100;
  425.         sh=(num/10)%10;
  426.         g=num%10;*/
  427.   //P3=0x00;
  428.     ba=1;
  429.         sh=0;
  430.         ge=0;
  431.         dn=0;
  432.         P3=LED[kemp/100];        //百位
  433. //        delay5ms();

  434.         ba=0;
  435.         sh=1;
  436.         ge=0;
  437.         dn=0;
  438.         P3=LED[kemp/10%10];           //十位
  439. //        delay5ms();

  440.         ba=0;         
  441.         sh=0;
  442.         ge=1;
  443.         dn=0;
  444.         P3=LED[kemp%10];         //個位
  445. //        delay5ms();

  446.         ba=0;
  447.         sh=0;
  448.         ge=0;
  449.         dn=1;
  450.         P3=0x5e;          //單位‘C'
  451. //        delay5ms();        
  452.         }
  453.         
  454.    
  455. /***********主程序***********/
  456.    void main()
  457.    {
  458.    uchar kemp;//dn,ge,sh,ba ;
  459.    Init();
  460.    P1ASF=0x40;//
  461.    AUXR=0x04;//
  462.    ADC_CONTR|=0x80;//
  463.    
  464.     //P1M0=0x0f;

  465.     //P3M0=0xff;

  466.         while(1)
  467.         {
  468.          Keyboardset();
  469.          ad=getAD;
  470.          tp=KT_1[ad/2];
  471.          if(makesure==1)
  472.          {
  473.           if(num>=tp)
  474.           {
  475.           heat=1;
  476.           }
  477.           if(tp>num)
  478.           {
  479.            heat=0;
  480.            }
  481.                    }
  482.                 kemp=tp|num;
  483.                 //delay10ms();
  484.         /*        ba=kemp/100;   //百
  485.                 sh=kemp/10%10; //十
  486.                 ge=kemp%10;        */   //¸個
  487.                 //dn=0x5e;  
  488.             Display(kemp);
  489.            }
  490.          }        
復制代碼



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

使用道具 舉報

沙發
ID:407803 發表于 2018-10-10 22:36 | 只看該作者
ad=getAD();//要加括號
回復

使用道具 舉報

板凳
ID:348282 發表于 2018-10-11 09:32 | 只看該作者
還有就是delay5ms()延時函數那里編譯出警告,顯示子程序好像沒起作用。
回復

使用道具 舉報

地板
ID:348282 發表于 2018-10-11 09:35 | 只看該作者
嗯,還有顯示子程序好像不起作用,如延時函數那里,我把它屏蔽了,編譯時少了幾個警告,可能少了聲明函數,但不知在那里聲明。
回復

使用道具 舉報

5#
ID:213173 發表于 2018-10-11 13:37 | 只看該作者
你的顯示程序寫得很混亂,從位碼看是用的共陽數碼管,從段碼看是用的共陰數碼管并且也沒有按a~f順序編碼,不知道你的段碼數組依據什么來的。
這是按共陰數碼管寫的顯示程序
uchar code LED[]={//共陰數碼管段碼"0~f-."
                0x3f,0x06,0x5b,0x4f,
                0x66,0x6d,0x7d,0x07,
                0x7f,0x6f,0x77,0x7c,
                0x39,0x5e,0x79,0x71,0x40,0x80};

void Display(uint k)
{
        static uchar i=0;
        P3=0x00;//消隱
        switch(i)
        {
                case 0:
                        ba=0;
                        sh=1;
                        ge=1;
                        dn=1;
                        P3=LED[k/100];        //百位
                        i++;
                break;
                case 1:
                        ba=1;
                        sh=0;
                        ge=1;
                        dn=1;
                        P3=LED[k/10%10];           //十位
                        i++;
                break;
                case 2:
                        ba=1;         
                        sh=1;
                        ge=0;
                        dn=1;
                        P3=LED[k%10];         //個位
                        i++;
                break;
                case 3:
                        ba=1;
                        sh=1;
                        ge=1;
                        dn=0;
                        P3=0x39;          //單位‘C'
                        i=0;
                break;
        }                               
        delay1ms(1);        
}




評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:348282 發表于 2018-10-11 15:28 | 只看該作者
還有就是STC15W408AS 沒有定時器1,那定時器2和CCP如何設置?

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

7#
ID:213173 發表于 2018-10-11 19:05 | 只看該作者
law110 發表于 2018-10-11 15:28
還有就是STC15W408AS 沒有定時器1,那定時器2和CCP如何設置?


評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

8#
ID:348282 發表于 2018-10-12 22:17 | 只看該作者
另外AD采集電壓沒電壓顯示幫看看程序有沒有錯,謝謝。
回復

使用道具 舉報

9#
ID:348282 發表于 2018-10-12 22:29 | 只看該作者
  1. #include"STC15.H"
  2. #include "intrins.h"


  3. #define  uchar unsigned char         
  4. #define  uint unsigned  int
  5. //#define  ulong  unsigned long
  6. #define ADC_POWER   0x80            //ADCμçÔ′¿ØÖÆÎ»
  7. #define ADC_FLAG    0x10            //ADCíê3é±êÖ¾
  8. #define ADC_START   0x08            //ADCÆe꼿ØÖÆÎ»
  9. #define ADC_SPEEDLL 0x00            //540¸öê±Öó
  10. #define ADC_SPEEDHH 0x60            //90¸öê±Öó
  11. uint Get_ADC(uchar channel);
  12. uchar ch=6;
  13. sbit ba=P1^3;
  14. sbit sh=P1^0;
  15. sbit ge=P1^2;
  16. sbit dn=P1^1;
  17. //sbit up=P1^0;
  18. //sbit down=P1^1;
  19. //sbit heat=P1^7;
  20. uchar c,b,s,g;
  21. uchar code LED[]={0xCF,0x0C,0xEA,0xE3,0xAC,0x67,0xE7,0x0E,0xEF,0x6F}; //¶¨òåêyÂë1ü0-9êy×é

  22. /*void Init()
  23.   {*/
  24.    /* TMOD=0x11; //é趨¶¨ê±Æ÷1¤×÷·½ê½
  25.     EA=1; //¿a×üÖD¶Ï
  26.     ET0=1; //¿a¶¨ê±Æ÷0
  27.     TR0=1; //Æô¶ˉ¶¨ê±Æ÷0
  28.     TH0=(65536-5000)/256; //¸ß8λװ3õÖμ 50ms
  29.     TL0=(65536-5000)%256; //μí8λװ3õÖμ*/
  30.    /*P1M0=0x0f;            
  31.    P1M1=0x00;
  32.    P3M0=0xff;
  33.    P3M1=0x00;
  34.    P5M0=0xff;
  35.    P5M1=0xff;              
  36.    
  37.     }  */

  38. /************延時子程序*************/


  39. void Delay1ms()                //@12.000MHz
  40. {
  41.         unsigned char i, j;

  42.         i = 12;
  43.         j = 169;
  44.         do
  45.         {
  46.                 while (--j);
  47.         }
  48.         while (--i);
  49. }

  50. void Delay5ms()                //@12.000MHz
  51. {
  52.         unsigned char i, j;

  53.         i = 59;
  54.         j = 90;
  55.         do
  56.         {
  57.                 while (--j);
  58.         } while (--i);
  59. }

  60. /***********初始化ADC**************/
  61. void InitADC()
  62.    {

  63.    P1M0=0x40;                                //éèÖÃP1μÄμú6í¨μà¶Ë¿ú×÷ÎaÄ£Äa¸ß×èêäèë
  64.    P1M1=0x00;        
  65.    P1ASF=0x40;
  66.    ADC_CONTR=0xe3;              
  67.    ADC_RES=0;               
  68.    ADC_RESL=0;               
  69.    ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;   //ADC 開啟電源并轉換
  70.    Delay1ms();                      //延時1ms
  71.    }
  72. /***********ADC2é¼ˉ***************/
  73.     uint Get_ADC(uchar channel)
  74.     {
  75.    uchar ad_finished=0;//ad儲存轉換標志
  76.    uint i;
  77.    uint sum=0;
  78.    for(i=0;i<8;i++)
  79.    {   
  80.    ADC_RES=0;//清0
  81.    ADC_RESL=0;
  82.    channel&=0x07;//清零高5位
  83.    ADC_CONTR=0x60;//轉換速率
  84.     _nop_();
  85.     ADC_CONTR=channel;//選擇當前通道
  86.     _nop_();
  87.     ADC_CONTR=0x80;//啟動AD電源,、
  88.     Delay1ms();

  89.     ADC_CONTR|=0x08;//0000,1000啟動轉換
  90.                   _nop_();
  91.                   _nop_();
  92.                   _nop_();
  93.                   _nop_();
  94.     ad_finished=0;
  95.     while(ad_finished==0)//等待轉換
  96.    {
  97.      ad_finished=(ADC_CONTR&0x10); //0001,0000 測試轉換結束
  98.       }
  99.       ADC_CONTR&=~ADC_FLAG;//1111,0111 清標志位,并關閉
  100.           sum+=ADC_RES;
  101.           }
  102.       sum>>=3;                 //Çóè¡Æ½¾ùÖμ
  103.      return(uchar)sum;        //強制轉換形式uchar
  104.      //return(ADC_RES*256+ADC_RESL);//·μ»Ø A/D ¸ß8λ+μí2λ×a»»½á1û
  105.   }       


  106.        
  107. /*        void change()
  108.   {
  109.   uint disnum;
  110.   uint temp=0;
  111.   disnum=Get_ADC();
  112.   disnum=disnum*(5.0)/256*10;
  113.   temp=(int)disnum;
  114.   c=temp/1000;
  115.   b=temp/1000%100;
  116.   s=temp/100%10;
  117.   g=temp%10;
  118. } */
  119. /*************數碼管顯示*****************/

  120.   void Display()
  121.   {
  122.   
  123.   //P3=0x00;
  124.    ba=1;
  125.         sh=0;
  126.         ge=0;
  127.         dn=0;
  128.         P3=LED[c];        //千位
  129.         Delay5ms();
  130.        
  131.         ba=0;
  132.         sh=1;
  133.         ge=0;
  134.         dn=0;
  135.         P3=LED[b];           //百
  136.         Delay5ms();

  137.         ba=0;         
  138.         sh=0;
  139.         ge=1;
  140.         dn=0;
  141.         P3=LED[s];         //十
  142.         Delay5ms();

  143.         ba=0;
  144.         sh=0;
  145.         ge=0;
  146.         dn=1;
  147.         P3=LED[g];   //個
  148. //        P3=0x5e;          //μ¥λ¡®C'
  149.         Delay5ms();
  150.         }
  151. /************ ¶¨ê±Æ÷1·tÎñ3ìDò***************/
  152. /* void timer0() interrupt 1 //¶¨ê±Æ÷1·tÎñ3ìDò2ms
  153. {
  154.    TH0=0xf8;//(65536-2000)/256
  155.    TL0=0x30;//(65536-2000)%256 */
  156.    


  157.    
  158. /***********主程序***********/
  159.    void main()
  160.    {
  161.      uint disnum;
  162.   
  163.    P1M0=0xff;
  164.   P1M1=0x00;
  165. // Disp_init();
  166. InitADC();
  167.   //Init();
  168.    for(;;)
  169.    {
  170.                 //change();
  171.                  uint temp=0;
  172.   disnum=Get_ADC();
  173.   disnum=disnum*(5.0)/256*10;
  174.   temp=(int)disnum;
  175.   c=temp/1000;
  176.   b=temp/1000%100;
  177.   s=temp/100%10;
  178.   g=temp%10;
  179.           Display();
  180.            }
  181.          }
復制代碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区二区不卡 | 久久午夜精品 | 国精品一区二区 | 日韩精品视频在线观看一区二区三区 | 欧美一区二区三区在线播放 | 成人av观看| 日韩一三区 | 国产99久久久国产精品 | 日本一道本 | 国产精品免费一区二区三区四区 | 精品久久久久一区二区国产 | 国产成人麻豆免费观看 | 一区中文字幕 | 日本成人免费观看 | a视频在线 | 国产精品99久久久久久久vr | 国产成人精品一区二区 | 91精品免费视频 | 久久99精品久久久久久青青日本 | 国产亚洲一区二区三区 | 日本欧美视频 | 91精品国产99 | 欧美乱大交xxxxx另类电影 | 久久久久久久久淑女av国产精品 | 午夜视频在线观看网址 | 免费一级黄色录像 | 成人在线免费网站 | 日韩成人免费av | 精品国产乱码久久久久久中文 | 午夜成人在线视频 | 亚洲日产精品 | 久草视 | 亚州影院 | 国产精品久久久久aaaa九色 | 中文字幕在线观看视频一区 | 国产精品久久久久久久粉嫩 | 狠狠的干| 奇米四色在线观看 | 精品国产亚洲一区二区三区大结局 | 亚洲一区国产精品 | 激情久久av一区av二区av三区 |