找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3356|回复: 1
打印 上一主题 下一主题
收起左侧

基于合泰的HT46R66B的测温程序,热敏电阻分压得到电压,进入模数转换后进行查表校正

[复制链接]
跳转到指定楼层
楼主
ID:82781 发表于 2015-6-13 16:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  1. /*******************************************************************************************************************
  2. *  程序版本:HT-V1.0
  3. *  作者:小ARM菜菜
  4. *  时间:2017年11月8日
  5. *  功能:打歪子钓鳖!正事我不干!
  6. *  描述:基于合泰的HT46R66B的测温,热敏电阻分压得到电压,进入模数转换后进行查表校正,
  7. *        采用了温度点校正,区间采用近似线性法计算,开模液晶LCD显示!39段
  8. *     
  9. *******************************************************************************************************************/
  10. #include "HT46R066B.h"
  11. #define  uint32_t unsigned long
  12. #define  uint8_t unsigned char
  13. #define  uint16_t unsigned int
  14. #define get_bit(a,b)  (a>>b)&1
  15. #define K1  0x01
  16. #define K2  0x02
  17. #define K3  0x04
  18. #define K4  0x08
  19. #define GET_K1   _pa1
  20. #define GET_K2   _pa2
  21. #define GET_K3   _pa3
  22. #define GET_K4   _pa4
  23. void ad_process(uint16_t ad_data,uint16_t *p);//ad数据处理
  24. void Dispaly_SEGD2( uint8_t number);
  25. void Dispaly_SEGD1( uint8_t number);
  26. //按键检测的
  27. unsigned char Trg;
  28. unsigned char Cont;
  29. unsigned char button_data;//
  30. static uint8_t tick;//计数变量
  31. uint8_t count_tick; //定时器AD 的
  32. static uint16_t seg1_display;//COM1的扫描显存
  33. static uint16_t seg2_display;//COM2的扫描显存
  34. static uint16_t seg3_display;//COM3的扫描显存
  35. static uint16_t seg4_display;//COM4的扫描显存

  36. uint8_t set_tem;

  37. void set_bit_16(uint16_t *a,uint8_t b)
  38. {
  39.    uint8_t *c;
  40.    if(b<=7)
  41.    {
  42.     c=(uint8_t*)a;
  43.     (*c)|=(1<<b);
  44.    }
  45.    else
  46.    {
  47.    c=(uint8_t*)a;
  48.    c++;
  49.    (*c)|=(1<<(b-8));
  50.    
  51.    }
  52. }
  53. void clr_bit_16(uint16_t *a,uint8_t b)
  54. {
  55.    uint8_t *c;
  56.    if(b<=7)
  57.    {
  58.     c=(uint8_t*)a;
  59.     (*c)&=(~(1<<b));
  60.    }
  61.    else
  62.    {
  63.    c=(uint8_t*)a;
  64.    c++;
  65.    (*c)&=(~(1<<(b-8)));
  66.    
  67.    }
  68. }
  69. //中断服务程序入口
  70. /*
  71. uint16_t display_ram , 显存
  72. uint8_t f,标志位
  73. uint8_t d,是否是COM1标志
  74. */
  75. void display_com(uint16_t display_ram,uint8_t f,uint8_t d)
  76. {
  77. //扫描COM1口的所有的SEG
  78. uint8_t count;

  79. if(f)
  80. {
  81.        for(count=0;count<10;count++)//扫描9次
  82.       {
  83.       
  84.             switch (count)
  85.             {//
  86.            
  87.                case 0:if(get_bit(display_ram,count)&&d){_pc1=0;}else{_pc1=1;}break;
  88.              case 1:if(get_bit(display_ram,count)){_pc0=0;}else{_pc0=1;}break;
  89.              case 2:if(get_bit(display_ram,count)){_pc7=0;}else{_pc7=1;}break;
  90.              case 3:if(get_bit(display_ram,count)){_pc6=0;}else{_pc6=1;}break;
  91.              case 4:if(get_bit(display_ram,count)){_pb4=0;}else{_pb4=1;}break;
  92.              case 5:if(get_bit(display_ram,count)){_pb5=0;}else{_pb5=1;}break;
  93.              case 6:if(get_bit(display_ram,count)){_pc2=0;}else{_pc2=1;}break;
  94.              case 7:if(get_bit(display_ram,count)){_pc3=0;}else{_pc3=1;}break;
  95.              case 8:if(get_bit(display_ram,count)){_pc4=0;}else{_pc4=1;}break;
  96.              case 9:if(get_bit(display_ram,count)){_pc5=0;}else{_pc5=1;}break;
  97.             
  98.             
  99.             
  100.             }
  101.          
  102.          
  103.      }
  104. }
  105. else
  106. {
  107.   
  108.     for(count=0;count<10;count++)//扫描9次
  109.      {
  110.           switch (count)
  111.           {//
  112.              case 0:if(get_bit(display_ram,count)&&d){_pc1=1;}else{_pc1=0;}break;
  113.            case 1:if(get_bit(display_ram,count)){_pc0=1;}else{_pc0=0;}break;
  114.            case 2:if(get_bit(display_ram,count)){_pc7=1;}else{_pc7=0;}break;
  115.            case 3:if(get_bit(display_ram,count)){_pc6=1;}else{_pc6=0;}break;
  116.            case 4:if(get_bit(display_ram,count)){_pb4=1;}else{_pb4=0;}break;
  117.            case 5:if(get_bit(display_ram,count)){_pb5=1;}else{_pb5=0;}break;
  118.            case 6:if(get_bit(display_ram,count)){_pc2=1;}else{_pc2=0;}break;
  119.            case 7:if(get_bit(display_ram,count)){_pc3=1;}else{_pc3=0;}break;
  120.            case 8:if(get_bit(display_ram,count)){_pc4=1;}else{_pc4=0;}break;
  121.            case 9:if(get_bit(display_ram,count)){_pc5=1;}else{_pc5=0;}break;
  122.            
  123.           }
  124.          
  125.          
  126.        }
  127.    
  128.    
  129.    

  130.   
  131. }

  132. }
  133. #pragma vector ISR_AD @ 0x10//ad转换
  134. void ISR_AD(void)
  135. {
  136. uint16_t ad_date;
  137. /*。。。。。热敏电阻的真值表。。。。。*/
  138. uint16_t ad_temp_tab[]={
  139. 1077,1112,1147,1182,1218,1254,1289,1325,1361,1398,1434,1438,1455,1482,1517,
  140. 1558,1604,1652,1702,1753,1805,1856,1906,1954,2002,2048,2092,2135,2176,2216,
  141. 2255,2293,2330,2366/*,2410,2436,2470,2504,2537,2570,2603*/};
  142. ad_date=_adrh;
  143. ad_date<<=8;
  144. ad_date+=_adrl;
  145. ad_date>>=4;
  146. ad_process(ad_date, ad_temp_tab);//ad数据处理
  147. _emi=1;
  148. _ade=1;//开启AD转换使能。

  149. }

  150. void KeyRead( void )
  151. {
  152.   unsigned char  ReadData=0;

  153.   /*大神级按键算法,逆天了!201210月22日,日照,小ARM菜菜*/
  154.    if(! GET_K1)
  155.    {button_data=0xfe;}//生成按键值
  156.   else
  157.   if(! GET_K2)
  158.   {button_data=0xfd;}
  159.   else
  160.   if(! GET_K3)
  161.   {button_data=0xfb;}
  162.   else
  163.   if(! GET_K4)
  164.   {button_data=0xf7;}
  165.   else
  166.   {
  167.    button_data=0xff;
  168.   }
  169.      ReadData = button_data^0xff;    // 1
  170.      Trg = ReadData & (ReadData ^ Cont);   // 2
  171.      Cont = ReadData;   // 3
  172. }
  173. void KeyProc(void)
  174. {
  175.       if (Trg & K1) // 如果按下的是K1
  176.      {
  177.          
  178.          
  179.           if(set_tem<32)
  180.           {
  181.        set_tem++;
  182.         
  183.           }
  184.           else
  185.           {
  186.            
  187.           set_tem=32;
  188.           }
  189. Dispaly_SEGD2( set_tem%10);
  190. Dispaly_SEGD1( set_tem/10);
  191.          
  192.      }
  193.    if (Trg & K2) // 如果按下的是K2
  194.      {
  195.          
  196. if(set_tem>10)
  197.           {
  198.        set_tem--;
  199.         
  200.           }
  201.           else
  202.           {
  203.            
  204.           set_tem=10;
  205.           }
  206. Dispaly_SEGD2( set_tem%10);
  207. Dispaly_SEGD1( set_tem/10);
  208.    

  209.      }
  210.     if (Trg & K3) // 如果按下的是K3
  211.      {
  212.          
  213.    
  214.      }
  215.    if (Trg & K4) // 如果按下的是K4
  216.      {
  217.          
  218.    

  219.      }

  220.    
  221. }
  222. #pragma vector ISR_tmr0 @ 0x08
  223. void ISR_tmr0(void)
  224. {
  225. tick++;
  226. count_tick++;
  227. if(count_tick==255)
  228. {
  229. count_tick=0;
  230. _start=0;
  231. _start=1;//ad转换
  232. _start=0;
  233. }
  234. KeyRead();
  235. KeyProc();
  236. switch(tick)
  237. {     //scom1的扫描
  238. case 1: _scomc=0x3e;_pb0=1;      display_com(seg1_display,1,0); break;//扫描COM1口所有的SEG
  239. case 2: _scomc=0x3e;_pb0=0;   ; display_com(seg1_display,0,0); break;

  240.   //scom2的扫描
  241. case 3: _scomc=0x3d;_pb1=1;    display_com(seg2_display,1,1);         break;
  242. case 4: _scomc=0x3d; _pb1=0;   display_com(seg2_display,0,1);       break;


  243.   //scom3的扫描
  244. case 5: _scomc=0x3b; _pb2=1;  display_com(seg3_display,1,1);        break;
  245. case 6: _scomc=0x3b;_pb2=0;   display_com(seg3_display,0,1);       break;



  246.   //scom4的扫描
  247.     case 7: _scomc=0x37; _pb3=1; display_com(seg4_display,1,1);         break;
  248. case 8: _scomc=0x37; _pb3=0; display_com(seg4_display,0,1); tick=0;   break;



  249. }

  250. _emi=1;
  251. _t0e=1;//使能tim0中断
  252. }

  253. void display_s1_s2_s3_s4_s5_p(uint8_t s1,uint8_t s2,uint8_t s3,uint8_t s4,uint8_t s5,uint8_t p)
  254. {

  255.   if(s1) {set_bit_16(&seg1_display,6);}else{clr_bit_16(&seg1_display,6);}
  256.   if(s2) {set_bit_16(&seg1_display,4);}else{clr_bit_16(&seg1_display,4);}
  257.   if(s3) {set_bit_16(&seg1_display,9);}else{clr_bit_16(&seg1_display,9);}
  258.   if(s4) {set_bit_16(&seg1_display,8);}else{clr_bit_16(&seg1_display,8);}
  259.   if(s5) {set_bit_16(&seg1_display,1);}else{clr_bit_16(&seg1_display,1);}
  260.   if(p)  {set_bit_16(&seg1_display,3);}else{clr_bit_16(&seg1_display,3);}
  261. }
  262. void Dispaly_SEGD3(uint8_t a)//显示断码
  263. {


  264.   switch (a)
  265.   {
  266.    
  267.      case 0:seg2_display&=0xfcff;seg3_display&=0xfcff;seg4_display&=0xfcff;break;
  268.    
  269.      case 1: set_bit_16(&seg2_display,8);clr_bit_16(&seg2_display,9); clr_bit_16(&seg3_display,8);clr_bit_16(&seg3_display,9); set_bit_16(&seg4_display,8);clr_bit_16(&seg4_display,9); break;//显示1
  270.    
  271.      case 2:set_bit_16(&seg2_display,8);set_bit_16(&seg2_display,9);set_bit_16(&seg3_display,8);set_bit_16(&seg3_display,9);set_bit_16(&seg4_display,9);clr_bit_16(&seg4_display,8); break;
  272.      
  273.      case 3:seg2_display|=0x0300;set_bit_16(&seg3_display,8);clr_bit_16(&seg3_display,9);seg4_display|=0x0300; break;
  274.    
  275.      default:seg2_display&=0xfcff;seg3_display&=0xfcff;seg4_display&=0xfcff;
  276.   }

  277. }

  278. void Dispaly_SEGD4(uint8_t a)//显示断码
  279. {


  280. switch (a)
  281. {
  282.    case 0:seg1_display|=0x0080;seg2_display|=0x00c0;set_bit_16(&seg3_display,7);clr_bit_16(&seg3_display,6);seg4_display|=0x00c0;break;//显示0
  283.   
  284.    case 1: clr_bit_16(&seg1_display,7);set_bit_16(&seg2_display,6);clr_bit_16(&seg2_display,7);seg3_display&=0xff3f;set_bit_16(&seg4_display,6);clr_bit_16(&seg4_display,7); break;//显示1
  285.   
  286.    case 2:seg1_display|=0x0080;set_bit_16(&seg2_display,6);clr_bit_16(&seg2_display,7);seg3_display|=0x00c0;clr_bit_16(&seg4_display,6);set_bit_16(&seg4_display,7);break;
  287.    
  288.    case 3:seg1_display|=0x0080;set_bit_16(&seg2_display,6);clr_bit_16(&seg2_display,7);set_bit_16(&seg3_display,6);clr_bit_16(&seg3_display,7);seg4_display|=0x00c0; break;

  289.    case 4:seg1_display&=0xff7f;seg2_display|=0x00c0;set_bit_16(&seg3_display,6);clr_bit_16(&seg3_display,7);set_bit_16(&seg4_display,6);clr_bit_16(&seg4_display,7);break;

  290.    case 5:seg1_display|=0x0080;seg2_display|=0x00c0;seg3_display|=0x0080; set_bit_16(&seg2_display,7);clr_bit_16(&seg2_display,6);set_bit_16(&seg3_display,6);clr_bit_16(&seg3_display,7);           seg4_display|=0x00c0; break;
  291.   
  292.    case 6:seg1_display|=0x0080;seg2_display|=0x00c0; set_bit_16(&seg2_display,7);clr_bit_16(&seg2_display,6); seg3_display|=0x00c0;seg4_display|=0x00c0;break;
  293.   
  294.    case 7:seg1_display|=0x0080;set_bit_16(&seg2_display,6);clr_bit_16(&seg2_display,7);seg3_display&=0xff3f; set_bit_16(&seg4_display,6);clr_bit_16(&seg4_display,7);  break;
  295.       
  296.    case 8:seg1_display|=0x0080;seg2_display|=0x00c0;seg3_display|=0x00c0;seg4_display|=0x00c0; break;
  297.   
  298.    case 9:seg1_display|=0x0080;seg2_display|=0x00c0;set_bit_16(&seg3_display,6);clr_bit_16(&seg3_display,7);seg4_display|=0x00c0; break;
  299.   
  300.    default:seg1_display|=0x0080;seg2_display|=0x00c0;set_bit_16(&seg3_display,7);clr_bit_16(&seg3_display,6);seg4_display|=0x00c0;
  301.   
  302.      
  303. }

  304. }

  305. void Dispaly_SEGD5(uint8_t number)
  306. {

  307. switch (number)
  308.    {
  309.    case 0:seg1_display|=0x0020;seg2_display|=0x0030;set_bit_16(&seg3_display,5);clr_bit_16(&seg3_display,4);seg4_display|=0x0030;break;//显示0
  310.   
  311.    case 1: clr_bit_16(&seg1_display,5);set_bit_16(&seg2_display,4);clr_bit_16(&seg2_display,5);seg3_display&=0xffcf;set_bit_16(&seg4_display,4);clr_bit_16(&seg4_display,5); break;//显示1
  312.   
  313.    case 2:seg1_display|=0x0020;set_bit_16(&seg2_display,4);clr_bit_16(&seg2_display,5);seg3_display|=0x0030;clr_bit_16(&seg4_display,4);set_bit_16(&seg4_display,5);break;
  314.    
  315.    case 3:seg1_display|=0x0020;set_bit_16(&seg2_display,4);clr_bit_16(&seg2_display,5);set_bit_16(&seg3_display,4);clr_bit_16(&seg3_display,5);seg4_display|=0x0030; break;

  316.    case 4:seg1_display&=0xffdf;seg2_display|=0x0030;set_bit_16(&seg3_display,4);clr_bit_16(&seg3_display,5);set_bit_16(&seg4_display,4);clr_bit_16(&seg4_display,5);break;

  317.    case 5:seg1_display|=0x0020;seg2_display|=0x0030;seg3_display|=0x0020; set_bit_16(&seg2_display,5);clr_bit_16(&seg2_display,4);set_bit_16(&seg3_display,4);clr_bit_16(&seg3_display,5);           seg4_display|=0x0030; break;
  318.   
  319.    case 6:seg1_display|=0x0020;seg2_display|=0x0030; set_bit_16(&seg2_display,5);clr_bit_16(&seg2_display,4); seg3_display|=0x0030;seg4_display|=0x0030;break;
  320.   
  321.    case 7:seg1_display|=0x0020;set_bit_16(&seg2_display,4);clr_bit_16(&seg2_display,5);seg3_display&=0xffcf; set_bit_16(&seg4_display,4);clr_bit_16(&seg4_display,5);  break;
  322.       
  323.    case 8:seg1_display|=0x0020;seg2_display|=0x0030;seg3_display|=0x0030;seg4_display|=0x0030; break;
  324.   
  325.    case 9:seg1_display|=0x0020;seg2_display|=0x0030;set_bit_16(&seg3_display,4);clr_bit_16(&seg3_display,5);seg4_display|=0x0030; break;
  326.   
  327.    default:seg1_display|=0x0020;seg2_display|=0x0030;set_bit_16(&seg3_display,5);clr_bit_16(&seg3_display,4);seg4_display|=0x0030;
  328.    
  329.   
  330. }

  331. }
  332. void Dispaly_SEGD2(uint8_t number)
  333. {
  334.    switch (number)
  335.      {
  336.      case 0:seg1_display|=0x0004;seg2_display|=0x000c;set_bit_16(&seg3_display,2);clr_bit_16(&seg3_display,3);seg4_display|=0x000c;break;//显示0
  337.    
  338.      case 1: clr_bit_16(&seg1_display,2);set_bit_16(&seg2_display,3);clr_bit_16(&seg2_display,2);seg3_display&=0xfff3;set_bit_16(&seg4_display,3);clr_bit_16(&seg4_display,2); break;//显示1
  339.    
  340.      case 2:seg1_display|=0x0004;set_bit_16(&seg2_display,3);clr_bit_16(&seg2_display,2);seg3_display|=0x000c;clr_bit_16(&seg4_display,3);set_bit_16(&seg4_display,2);break;
  341.      
  342.      case 3:seg1_display|=0x004;set_bit_16(&seg2_display,3);clr_bit_16(&seg2_display,2);set_bit_16(&seg3_display,3);clr_bit_16(&seg3_display,2);seg4_display|=0x00c; break;
  343.    
  344.      case 4:clr_bit_16(&seg1_display,2);seg2_display|=0x00c;set_bit_16(&seg3_display,3);clr_bit_16(&seg3_display,2);set_bit_16(&seg4_display,3);clr_bit_16(&seg4_display,2);break;
  345.    
  346.      case 5:seg1_display|=0x004;seg2_display|=0x00c;seg3_display|=0x004; set_bit_16(&seg2_display,2);clr_bit_16(&seg2_display,3);set_bit_16(&seg3_display,3);clr_bit_16(&seg3_display,2);           seg4_display|=0x00c; break;
  347.    
  348.      case 6:seg1_display|=0x004;seg2_display|=0x00c; set_bit_16(&seg2_display,2);clr_bit_16(&seg2_display,3); seg3_display|=0x00c;seg4_display|=0x00c;break;
  349.    
  350.      case 7:seg1_display|=0x004;set_bit_16(&seg2_display,3);clr_bit_16(&seg2_display,2);seg3_display&=0xfff3; set_bit_16(&seg4_display,3);clr_bit_16(&seg4_display,2);  break;
  351.         
  352.      case 8:seg1_display|=0x004;seg2_display|=0x00c;seg3_display|=0x00c;seg4_display|=0x00c; break;
  353.    
  354.      case 9:seg1_display|=0x004;seg2_display|=0x00c;set_bit_16(&seg3_display,3);clr_bit_16(&seg3_display,2);seg4_display|=0x00c; break;
  355.    
  356.      default:seg1_display|=0x0004;seg2_display|=0x00c;set_bit_16(&seg3_display,2);clr_bit_16(&seg3_display,3);seg4_display|=0x00c;
  357.    
  358.    }

  359. }
  360. void Dispaly_SEGD1(uint8_t number)
  361. {

  362.    switch (number)
  363.   {
  364.    
  365.    
  366.      case 0:clr_bit_16(&seg2_display,1);clr_bit_16(&seg2_display,0);clr_bit_16(&seg3_display,1);clr_bit_16(&seg3_display,0);clr_bit_16(&seg4_display,1);clr_bit_16(&seg4_display,0);break;
  367.    
  368.      case 1: set_bit_16(&seg2_display,1);clr_bit_16(&seg2_display,0); clr_bit_16(&seg3_display,0);clr_bit_16(&seg3_display,1); set_bit_16(&seg4_display,1);clr_bit_16(&seg4_display,0); break;//显示1
  369.    
  370.      case 2:set_bit_16(&seg2_display,0);set_bit_16(&seg2_display,1);set_bit_16(&seg3_display,1);set_bit_16(&seg3_display,0);set_bit_16(&seg4_display,0);clr_bit_16(&seg4_display,1); break;
  371.    
  372.      case 3:set_bit_16(&seg2_display,0);set_bit_16(&seg2_display,1);set_bit_16(&seg3_display,1);clr_bit_16(&seg3_display,0);  set_bit_16(&seg4_display,1);set_bit_16(&seg4_display,0); break;
  373.    
  374.    
  375.   }   



  376. }



  377. void ad_process(uint16_t ad_data,uint16_t *p)//ad数据处理
  378. {
  379.   uint8_t i;
  380.   uint8_t n;
  381.   
  382.   if(ad_data<*p){return ;}//如果小于0度,按照0度处理
  383.   
  384.   
  385.   
  386.   for(i=0;i<33;i++)//1摄氏度到32摄氏度
  387.   {
  388.    if(*p==ad_data)//如果相等,那么直接返回点温度值
  389.    {
  390.    
  391.        Dispaly_SEGD3(i/10);
  392.    Dispaly_SEGD4(i%10);
  393.    return ;
  394.    }
  395.    else
  396.    if((*p<ad_data)&&(*(p+1)>ad_data))
  397.       {
  398.    
  399.    Dispaly_SEGD3(i/10);
  400.    Dispaly_SEGD4(i%10);
  401.    
  402.    
  403.    //小数点按照线性计算,就相当于p和P++之间进行求差值,然后用1除
  404.         n=*(p+1)-*p;
  405.         n=n/10;//现行小数点,100,是为了使结果变成整数,其实是1,
  406.       
  407.         ad_data=ad_data-*p;
  408.         n=ad_data/n;
  409.       
  410.       
  411.        Dispaly_SEGD5(n);
  412.    return ;
  413.    
  414.       }
  415.   
  416.   
  417.   p++;
  418.   }
  419.   
  420.   
  421.   
  422.   
  423.   
  424.   
  425.    
  426.    
  427. }


  428.    
  429. void main()
  430. {
  431. uint8_t i;
  432. seg1_display=0;
  433. seg2_display=0;
  434. seg3_display=0;
  435. seg4_display=0;
  436. //SEG口定义
  437. _pbc=0;
  438. _pbpu=0x0f;//上啦
  439. _pcc=0;//设置为输出
  440. _pcpu=0x0f;//上啦
  441. //设置PB口为COM口
  442. _pbc0=0;
  443. _pbc1=0;
  444. _pbc2=0;//output
  445. _pbc3=0;

  446. _pac1=1;
  447. _pac2=1;
  448. _pac3=1;//设置为输入
  449. _pac4=1;
  450. _papu1=1;
  451. _papu2=1;
  452. _papu3=1;
  453. _papu4=1;

  454. //中断配置
  455. _emi=1;//使能全局开关
  456. _t0e=1;//使能tim0中断
  457. _ade=1;//开启AD转换使能。

  458. //ad转换
  459. _adcr=0x48;//选择AN0通道的PA0口作为模拟输入,但是并未开启转换
  460. _acsr=0x82;//开启AD电源,4MHZ时转换速度是500ns
  461. //定时器0定义
  462. _tmr0c=0x87;
  463. _tmr0=(256-100);
  464. _t0on=1;//开始定时
  465. tick=0;//清除计时
  466. set_tem=23;
  467. display_s1_s2_s3_s4_s5_p(0,1,0,1,1,1);
  468. Dispaly_SEGD3(2);
  469. Dispaly_SEGD4(9);
  470. Dispaly_SEGD5(6);
  471. Dispaly_SEGD2(set_tem%10);
  472. Dispaly_SEGD1(set_tem/10);
  473. while(1);//什么也不做,天天耍,奥 。。。 我就耍你怎么着?    莫脾气!
  474. /**/
  475. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:149451 发表于 2019-5-19 21:10 | 只看该作者
请问合泰的单片机是用什么编译软件?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表