找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机万用表记录仪程序+调试过程

[复制链接]
跳转到指定楼层
楼主
ID:20012 发表于 2019-4-18 15:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在维修中对于一些不定时变化的测量数据,很难判断,有了这个,就方便多了.

调试过程说明
STC15W4K最高实验用于27MHZ晶体,用30MHZ温度18B20不正常工作



在高速的晶体下写入EEPROM时要等待几十毫秒的写入时间。
//              w_testeeprom();//24C测试
//              led =~led;
//              for(i=0;i<65535;i++);
//            //w_ascii_8x16();
//              led =~led;
//              for(i=0;i<65535;i++);
//              r_testeeprom();//24C测试
//              led =~led;
//              for(i=0;i<65535;i++);
//            //xianshiwendu(0,40);////温度显示
               r_pcf8563();//读时钟
                 xianshi_shijian(0,50);    //显示一行时间// 2018-10-27
              wendulerbiao();//显示温度列表2017-02-27//
            //r_testeeprom();//24C测试
              led =~led;
              for(i=0;i<65535;i++);
              eeprom_xianshishijian(16,40);//显示记录时间表//显示一个时间表由K2输入
              key_shijian();//调节时间2018-10-28

单片机源程序如下:
  1. #include"stc15w4k.h"
  2. #include"lcd.h"
  3. #include"18b20.h"
  4. #include"at24cxx.h"
  5. //#include"ht1380.h"
  6. #include"pcf85.h"

  7. u8 xdata i_temp;
  8. u8 xdata wendu_w;//温度写入标志位//

  9. void w_ascii_8x16()
  10. {
  11.                 i_temp++;
  12.                 ascii_8x16(0,0, "abcdefghijklmn");
  13.                 //aascii_0_9(0,57,(i_temp>>4)&0x0f);//指定地址写入数字
  14.                 //aascii_0_9(0,60,i_temp&0x0f);//指定地址写入数字
  15.                 aascii_0_9(0,54,i_temp/100);//指定地址写入数字
  16.                 aascii_0_9(0,57,i_temp%100/10);//指定地址写入数字
  17.                 aascii_0_9(0,60,i_temp%10);//指定地址写入数?
  18. }
  19. //ascii_8x16(u8 x,u8 y,u8
  20. void shao()
  21. {

  22.                 LCD_PutString(0,0,"邵建雄");//写入-判断是ASCII还是汉字//



  23. }

  24. void xianshiwendu(u8 xx,u8 yy)////温度显示
  25. {//晶振要用12MHZ//
  26.         u16 xdata wendu;
  27.         u8 xdata k;
  28.         //xx=33;
  29.         //yy=0;
  30.         EA=0;         
  31.                         wendu=rr18b20();//读出温度//
  32.         EA=1;
  33.                         LCD_PutString(xx,yy,"温度");//写入-判断是ASCII还是汉字//
  34.                         wendu=(u16)((u32)wendu*625/1000);
  35.                         if(k=wendu/100)aascii_0_9(xx,yy+13,k);//100指定地址写入数字        
  36.                         else ascii_8x16(xx,yy+13," ");        
  37.                                  
  38.                         k=wendu%100/10;
  39.                         aascii_0_9(xx,yy+16,k);//100指定地址写入数字        
  40.                         ascii_8x16(xx,yy+19,".");        
  41.                                  
  42.                         k=wendu%10;
  43.                                          
  44.                         aascii_0_9(xx,yy+21,k);//100指定地址写入数字        
  45.                         ascii_8x16(xx,yy+25,"C");
  46.                                    
  47.                         
  48.                         //EA=1;
  49.         
  50.         
  51. }



  52. //..........................................................................................



  53. /*
  54. 温度时间存于0X0F,0XE0
  55. 温度存于0X0F,0XF0


  56. */
  57. void wendulerbiao()//显示温度列表2017-02-27//
  58. {        u8 xdata shijian1_12[]={1,2,3,4,5,6,7,8,9,0x10,0x11,0x12};//时钟
  59.         u8 xdata   wen_du0_9[]={0,1,2,3,4,5,6,7,8,9,0x10,0x11};//用于记录10小时前的数据//
  60. //        u8 idata i,k,xx,yy,ex,ey,wen_du0_max,wen_du0_min;
  61.         u8 xdata i,k,xx,yy,ex,ey,wen_du0_max,wen_du0_min;
  62.         u8 xdata h1,h2,h3,h4,h5;
  63.         //u8 idata bershu,wen_du0_max_r,wen_du0_min_r;//温度倍数//
  64.         u8 xdata bershu,wen_du0_max_r,wen_du0_min_r;//温度倍数//
  65.         //u16 wendu_r;
  66.         u16 xdata wendu_r;
  67.                         
  68.                                                 h1=0x10;
  69.                                                 h2=0x20;
  70.                                                 h3=0x30;
  71.                                                 h4=0x40;
  72.                                                 h5=0x50;
  73.                                                 read_24cxx_n(0x0f,0xe0,12);//连续读12时间字节//
  74.                                                 for(i=0;i<12;i++)
  75.                                                                                         {
  76.                                                                                                         shijian1_12[i]=at24c32[i];//读写24CXX//
  77.                                                                                                         
  78.                                                                         
  79.                                                                                         }
  80.                                                 read_24cxx_n(0x0f,0xf0,12);//连续读12温度字节//
  81.                                                 for(i=0;i<12;i++)
  82.                                                                                                 {
  83.                                                                                                         wen_du0_9[i]=at24c32[i];//读写24CXX//
  84.                                                                         
  85.                                                                         
  86.                                                                                                 }                                                        
  87.                                        
  88.                                                 xianshiwendu(0,10);////温度显示
  89.                                                 
  90.                                                 wendu_r=rr18b20();//读出温度//
  91.                                                 wendu_r=(u16)((u32)wendu_r*625/1000);
  92.                                                                 k=wendu_r/100;
  93.                                                                 //ascii_12x12_12x6_bye(90,50,(k));//12x6宽6高12写入 字节//2017-2-25
  94.                                                                 k=(k<<4)+(wendu_r%100/10);//+优先级比<<高//
  95.                                 
  96.                                                 if((fen==0)&&(mao<3)&&(wendu_w==0))//(fen==0)&&
  97.                                                                 {
  98.                                                                         
  99.                                                                                         for(i=0;i<11;i++)        //把温度数据向前记录一次//
  100.                                                                                                         {
  101.                                                                                                                                                         
  102.                                                                                                                         wen_du0_9[i]=wen_du0_9[i+1];//温度列表//
  103.                                                                                                                         shijian1_12[i]=shijian1_12[i+1];//时间列表//
  104.                                                                                                                                                         
  105.                                                                                                         }                                
  106.                                                                                                         ////////////////////
  107.                                                                                         wen_du0_9[11]=k;
  108.                                                                                         shijian1_12[11]=shi;
  109.                                                                                         /////////写入///////////////////
  110.                                                                                         for(i=0;i<12;i++)
  111.                                                                                                         {
  112.                                                                                                                 at24c32[i]=shijian1_12[i];//写24CXX//
  113.                                                                                                                         
  114.                                                                                                                         
  115.                                                                                                         }                        
  116.                                                                                         write_24cxx(0x0f,0xe0,12);//写入12个字节时间字节//        
  117.                                                                                         st7529_delay1(20);        //24CXX页写要10MS等等时间//
  118.                                                                                         for(i=0;i<12;i++)
  119.                                                                                                                 {
  120.                                                                                                                         
  121.                                                                                                                         at24c32[i]=wen_du0_9[i];//写24CXX//
  122.                                                                                                                         
  123.                                                                                                                 }                        
  124.                                                                                         write_24cxx(0x0f,0xf0,12);//写入12个字节温度字节//
  125.                                                                                         st7529_delay1(20);                        
  126.                                                                                         ////////////////////////////////////        

  127.                                                                                         ////////////////////////////                                       
  128.                                                                                         wendu_w=1;//温度写入标志位//
  129. //                                                                                        xx=80;
  130. //                                                        
  131. //                                                                                        ex=125;
  132. //                                                                                        yy=3;               
  133. //                                                                                        ey=yy+60;                                
  134. //                                                                                        yishu(xx,ex,yy,ey,0);//清除图形区域//        
  135.                                                                                         clr_st7529();//从255X160清所有地址位?/清除图形区域//        
  136.                                                                                         //...................................................
  137. //                                                                                                                                                                //.......................//温度图形显示2017-2-28..........................//
  138. //                                                                                //if(fen==0x10);
  139. //                                                                                                //yilie(125,0,1,1);//127行0列写入1列高亮,ler列显示试验//
  140. //                                                                                                
  141. //                                                                                                               
  142. //                                                                                                               
  143. //                                                                                       
  144. //                                                                                                //yishu(80,127,0,1,1);//////一竖显示以 六 点为一竖0x3f=0011 1111//        
  145. //                                                                                                xx=57;//80;//57--125
  146. //                                                                                                        
  147. //                                                                                                ex=125;
  148. //                                                                                                yy=3;               
  149. //                                                                                                ey=4;        
  150. //                                                                                                //.............显示窗口..........................................................................                                                               
  151. //                                                                                                //yishu(71,125,0,1,0x20);////一竖显示以 六 点为一竖0x3f=0011 1111//        
  152. //                                                                                                yishu(xx-1,ex,0,1,0x20);////一竖显示以 六 点为一竖0x3f=0011 1111//                        
  153. //                                                                                                //yishu(71,125,83,84,0x01);////一竖显示以 六 点为一竖//        
  154. //                                                                                                yishu(xx-1,ex,83,84,0x01);////一竖显示以 六 点为一竖0x3f=0011 1111//        
  155. //                                                                                                yiler_w(ex,ex+1,yy-3,yy+81,0x3f);///0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  156. //                                                                                                yiler_w(xx,xx,0,84,0x3f);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  157. //                                                                                        //................显示温度虚线...每次写入6个点.............//
  158. //                                                                                                //yiler_w(ex-5,ex-5,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  159. //                                                                                                yiler_w(ex-10,ex-10,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  160. //                                                                                                               
  161. //                                                                                                               
  162. //                                                                                                yiler_w(ex-20,ex-20,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  163. //                                                                                                               
  164. //                                                                                                               
  165. //                                                                                                yiler_w(ex-30,ex-30,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  166. //                                                                                                               
  167. //                                                                                                               
  168. //                                                                                                yiler_w(ex-40,ex-40,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//.
  169. //                                                                                                yiler_w(ex-50,ex-50,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//.
  170.                                                                                         //...................................................
  171.                                                                 }
  172.                                                 if(mao>10)//温度写入标志位//fen==1
  173.                                                         {               

  174.                                                                         wendu_w=0;//温度写入标志位//
  175.                                                                         
  176.                                                         }
  177.                                                 ascii_12x12_12x6_bye(16,0,wendu_w);//12x6宽6高12写入 字节//2017-2-25        
  178.                                                 xx=28;
  179.                                                 yy=2;               
  180.                                                 for(i=0;i<12;i++)//时间列表//
  181.                                                                 {
  182.                                                                         if(shijian1_12[i]>>4)ascii_12x12_12x6_bye(xx,yy,(shijian1_12[i]>>4));//12x6宽6高12写入 字节//2017-2-25
  183.                                                                         else ascii_12x12_12x6(xx,yy," ");//12x6宽6高12写入//2017-2-25
  184.                                                                         ascii_12x12_12x6_bye(xx,yy+2,(shijian1_12[i]&0x0f));//12x6宽6高12写入 字节//2017-2-25
  185.                                                                         yy+=6;        
  186.                                                                 }
  187.                                                 ascii_12x12_12x6(xx,yy-2,":");//12x6宽6高12写入//2017-2-25
  188.                                                                 //ascii_12x12_12x6(xx,yy,"00");//12x6宽6高12写入//2017-2-25
  189.                                                 ascii_12x12_12x6_bye(xx,yy,(fen>>4));//12x6宽6高12写入 字节//2017-2-25
  190.                                                 ascii_12x12_12x6_bye(xx,yy+2,(fen&0x0f));//12x6宽6高12写入 字节//2017-2-25
  191.                                                                
  192.                                                 ascii_12x12_12x6(xx,yy+4,":");//12x6宽6高12写入//2017-2-25
  193.                                                                
  194.                                                 ascii_12x12_12x6_bye(xx,yy+6,(mao>>4));//12x6宽6高12写入 字节//2017-2-25
  195.                                                 ascii_12x12_12x6_bye(xx,yy+8,(mao&0x0f));//12x6宽6高12写入 字节//2017-2-25
  196.                                                 xx=xx+15;
  197.                                                 yy=2;                                       
  198.                                                 for(i=0;i<12;i++)//温度列表//
  199.                                                                 {
  200.                                                                         if(wen_du0_9[i]>>4)ascii_12x12_12x6_bye(xx,yy,(wen_du0_9[i]>>4));//12x6宽6高12写入 字节//2017-2-25
  201.                                                                         else ascii_12x12_12x6(xx,yy," ");//12x6宽6高12写入//2017-2-25
  202.                                                                         ascii_12x12_12x6_bye(xx,yy+2,(wen_du0_9[i]&0x0f));//12x6宽6高12写入 字节//2017-2-25
  203.                                                                         yy+=6;        
  204.                                                                 }
  205.                                                                
  206.                                                         ascii_12x12_12x6(xx,yy+2,"C");//12x6宽6高12写入//2017-2-25
  207.                                        

  208. //.......................//温度图形显示2017-2-28..........................//
  209.                                 //if(fen==0x10);
  210.                                                 //yilie(125,0,1,1);//127行0列写入1列高亮,ler列显示试验//
  211.                                                 
  212.                                                                
  213.                                                                
  214.                                        
  215.                                                 //yishu(80,127,0,1,1);//////一竖显示以 六 点为一竖0x3f=0011 1111//        
  216.                                                 xx=57;//80;//57--125
  217.                                                         
  218.                                                 ex=125;
  219.                                                 yy=3;               
  220.                                                 ey=4;        
  221.                                                 //.............显示窗口..........................................................................                                                               
  222.                                                 //yishu(71,125,0,1,0x20);////一竖显示以 六 点为一竖0x3f=0011 1111//        
  223.                                                 yishu(xx-1,ex,0,1,0x20);////一竖显示以 六 点为一竖0x3f=0011 1111//                        
  224.                                                 //yishu(71,125,83,84,0x01);////一竖显示以 六 点为一竖//        
  225.                                                 yishu(xx-1,ex,83,84,0x01);////一竖显示以 六 点为一竖0x3f=0011 1111//        
  226.                                                 yiler_w(ex,ex+1,yy-3,yy+81,0x3f);///0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  227.                                                 yiler_w(xx,xx,0,84,0x3f);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  228.                                         //................显示温度虚线...每次写入6个点.............//
  229.                                                 //yiler_w(ex-5,ex-5,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  230.                                                 yiler_w(ex-10,ex-10,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  231.                                                                
  232.                                                                
  233.                                                 yiler_w(ex-20,ex-20,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  234.                                                                
  235.                                                                
  236.                                                 yiler_w(ex-30,ex-30,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//
  237.                                                                
  238.                                                                
  239.                                                 yiler_w(ex-40,ex-40,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//.
  240.                                                 yiler_w(ex-50,ex-50,0,84,0x01);//////0x3f全亮在一个窗口里写入或清屏TEMP=0清屏//=0x3f就填充//.
  241.                                         //.......................测试高度值....................................
  242. //                                                wen_du0_9[0]=0x15;//相差10
  243. //                                                wen_du0_9[1]=0x16;
  244. //                                                wen_du0_9[2]=0x17;
  245. //                                                wen_du0_9[3]=0x18;
  246. //                                                wen_du0_9[4]=0x19;
  247. //                                                wen_du0_9[5]=0x20;
  248. //                                                wen_du0_9[6]=0x21;
  249. //                                                wen_du0_9[7]=0x22;
  250. //                                                wen_du0_9[8]=0x23;
  251. //                                                wen_du0_9[9]=0x24;
  252. //                                                wen_du0_9[10]=0x25;
  253. //                                                wen_du0_9[11]=0x24;
  254.                                                 //.........15.........
  255. //                                                wen_du0_9[0]=0x15;//相差10
  256. //                                                wen_du0_9[1]=0x17;
  257. //                                                wen_du0_9[2]=0x19;
  258. //                                                wen_du0_9[3]=0x21;
  259. //                                                wen_du0_9[4]=0x23;
  260. //                                                wen_du0_9[5]=0x25;
  261. //                                                wen_du0_9[6]=0x27;
  262. //                                                wen_du0_9[7]=0x29;
  263. //                                                wen_du0_9[8]=0x30;
  264. //                                                wen_du0_9[9]=0x32;
  265. //                                                wen_du0_9[10]=0x34;
  266. //                                                wen_du0_9[11]=0x36;
  267. //................寻找最大最小值..把最大值放在上面线,最小值放在下面线...测试温度处理图形表...................................
  268.                                                 wen_du0_max=wen_du0_9[0];//0;寻找最大//
  269.                                                 wen_du0_min=wen_du0_9[0];//0x50寻找最小值//
  270.                                                 for(i=0;i<12;i++)//wen_du0_r寻找最小的数值//
  271.                                                                         {
  272.                                                                         
  273.                                                                                         //if(wen_du0_9[i]>wen_du0_max)wen_du0_max=wen_du0_9[i];
  274.                                                                                         //if(wen_du0_9[i]<wen_du0_min)wen_du0_min=wen_du0_9[i];
  275.                                                                                         if(wen_du0_9[i]>wen_du0_max)wen_du0_max=wen_du0_9[i];
  276.                                                                                         if(wen_du0_9[i]<wen_du0_min)wen_du0_min=wen_du0_9[i];
  277.                                                                                 
  278.                                                                         }
  279.                                                         //....处理wen_du0_r值....               
  280. //                                                        if(wen_du0_max>0x10);
  281. //                                                        else if(wen_du0_max>0x20);        
  282. //                                                        else if(wen_du0_max>0x30);
  283. //                                                        else wen_du0_max=0;
  284. //..................计算图形高度差......BCD->HEX......HEX->BCD..........................................//
  285.                                                         wen_du0_max_r=wen_du0_max;
  286.                                                         wen_du0_min_r=wen_du0_min;        //把BCD码转为16进//        
  287.                                                                         
  288.                                                         wen_du0_min_r=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD码转16进数bcd->16h//
  289.                                                         wen_du0_max_r=((wen_du0_max>>4)*0x0a)+(wen_du0_max&0x0f);///BCD码转16进数bcd->16h//                                
  290.                                 //...................................................                                       
  291.                                                         if((wen_du0_max_r-wen_du0_min_r)>=20)
  292.                                                                         {
  293.                                                                                        
  294.                                                                                                 i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD码转16进数bcd->16h//
  295.                                                                                                         k=i+20;
  296.                                                                                                         h5=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  297.                                                                                        
  298.                                                                                         //............................
  299.                                                                                        
  300.                                                                                                         k=i+15;
  301.                                                                                                         h4=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  302.                                                                                                 
  303.                                                                                                         k=i+10;//5;
  304.                                                                                                         h3=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  305.                                                                                                 
  306.                                                                                                         k=i+5;//3;
  307.                                                                                                         h2=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  308.                                                                                                         h1=wen_du0_min;
  309.                                                                                         bershu=2;//温度倍数//
  310.                                                                         }
  311.                                                         else if((wen_du0_max_r-wen_du0_min_r)>=15)
  312.                                                                         {
  313.                                                                                                 i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD码转16进数bcd->16h//
  314.                                                                                                         k=i+19;
  315.                                                                                                         h5=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  316.                                                                                        
  317.                                                                                         //............................
  318.                                                                                        
  319.                                                                                                         k=i+15;
  320.                                                                                                         h4=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  321.                                                                                                 
  322.                                                                                                         k=i+10;
  323.                                                                                                         h3=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  324.                                                                                                 
  325.                                                                                                         k=i+5;
  326.                                                                                                         h2=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  327.                                                                                                         h1=wen_du0_min;
  328.                                                                                         bershu=2;//温度倍数//
  329.                                                                         }
  330.                                                         else if((wen_du0_max_r-wen_du0_min_r)>=10)
  331.                                                                         {
  332.                                                                                                 i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD码转16进数bcd->16h//
  333.                                                                                                         k=i+10;
  334.                                                                                                         h5=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  335.                                                                                        
  336.                                                                                         //............................
  337.                                                                                        
  338.                                                                                                         k=i+8;
  339.                                                                                                         h4=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  340.                                                                                                 
  341.                                                                                                         k=i+5;
  342.                                                                                                         h3=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  343.                                                                                                 
  344.                                                                                                         k=i+2;
  345.                                                                                                         h2=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  346.                                                                                                         h1=wen_du0_min;
  347.                                                                                                         bershu=4;//温度倍数//
  348.                                                                         }
  349.                                                         else if((wen_du0_max_r-wen_du0_min_r)>5)
  350.                                                                         {               
  351.                                                                                 
  352. //                                                                                        h1=wen_du0_min;
  353. //                                                                                        //h5=wen_du0_min+0x05;//wen_du0_max;
  354. //                                                                                        k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+5;///BCD码转16进数bcd->16h//
  355. //                                                                                        h5=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  356.                                                                                 
  357.                                                                         //...........................        
  358.                                                                                                         
  359.                                                                                                         
  360.                                                                                                         i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD码转16进数bcd->16h//
  361.                                                                                                         k=i+8;
  362.                                                                                                         h5=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  363.                                                                                        
  364.                                                                                         //............................
  365.                                                                                        
  366.                                                                                                         k=i+6;
  367.                                                                                                         h4=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  368.                                                                                                 
  369.                                                                                                         k=i+4;
  370.                                                                                                         h3=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  371.                                                                                                 
  372.                                                                                                         k=i+2;
  373.                                                                                                         h2=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  374.                                                                                                         h1=wen_du0_min;
  375.                                                                                                         bershu=5;//温度倍数//yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                        
  376.                                                                         }
  377.                                                                  else if((wen_du0_max_r-wen_du0_min_r)<=5)
  378.                                                                                 {
  379.                                                                                                 
  380.                                                                                                         //h5=wen_du0_min+0x04;//wen_du0_max;
  381.                                                                                                         i=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f);///BCD码转16进数bcd->16h//
  382.                                                                                                         //k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+4;
  383.                                                                                                         k=i+4;
  384.                                                                                                         h5=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  385.                                                                                        
  386.                                                                                         //............................
  387.                                                                                                         //k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+3;///BCD码转16进数bcd->16h//
  388.                                                                                                         k=i+3;
  389.                                                                                                         h4=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  390.                                                                                                         //k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+2;///BCD码转16进数bcd->16h//
  391.                                                                                                         k=i+2;
  392.                                                                                                         h3=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  393.                                                                                                         //k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+1;///BCD码转16进数bcd->16h//
  394.                                                                                                         k=i+1;
  395.                                                                                                         h2=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//
  396.                                                                                                         //h4=k/4;
  397.                                                                                                         h1=wen_du0_min;
  398.                                                                                                         bershu=10;//温度倍数//
  399.                                                                                        
  400.                                                                                 }
  401.                                                                                 
  402.         /*
  403.                 //16进转BCD码//2017-03-07//                                                               
  404.                 temp=pBuff[i]/10;
  405.                 time[i]=pBuff[i]%10+temp*16;                                                                 
  406.                 演变为h5=((k/10)*16)+(k%10);//16进转BCD码//2017-03-07//

  407. ////BCD码转16进数bcd->16h//
  408.                 temp =pBuff[i] / 16;
  409.                 pBuff[i] = temp * 10 + pBuff[i] % 16;        
  410.                 演变为k=((wen_du0_min>>4)*0x0a)+(wen_du0_min&0x0f)+4;///BCD码转16进数bcd->16h//        

  411.                                                                                 
  412.         */                                                                        
  413. //..........................显示虚线数字温度...................................//                                                
  414.                                                                 //ascii_12x12_12x6(ex-12,78,"10");//12x6宽6高12写入//2017-2-25
  415.                                                                 ascii_12x12_12x6_bye(ex-12,78,(h1>>4));//12x6宽6高12写入 字节//2017-2-25
  416.                                                                 ascii_12x12_12x6_bye(ex-12,80,(h1&0x0f));//12x6宽6高12写入 字节//2017-2-25
  417.                                                                
  418.                                                                 ascii_12x12_12x6_bye(ex-24,78,h2>>4);//12x6宽6高12写入//2017-2-25
  419.                                                                 ascii_12x12_12x6_bye(ex-24,80,h2&0x0f);//12x6宽6高12写入//2017-2-25
  420.                                                                
  421.                                                                 ascii_12x12_12x6_bye(ex-38,78,(h3>>4));//12x6宽6高12写入//2017-2-25
  422.                                                                 ascii_12x12_12x6_bye(ex-38,80,(h3&0x0f));//12x6宽6高12写入//2017-2-25
  423.                                                                
  424.                                                                 ascii_12x12_12x6_bye(ex-50,78,(h4>>4));//12x6宽6高12写入//2017-2-25
  425.                                                                 ascii_12x12_12x6_bye(ex-50,80,(h4&0x0f));//12x6宽6高12写入//2017-2-25
  426.                                                                
  427.                                                                 ascii_12x12_12x6_bye(ex-60,78,(h5>>4));//12x6宽6高12写入//2017-2-25
  428.                                                                 ascii_12x12_12x6_bye(ex-60,80,(h5&0x0f));//12x6宽6高12写入//2017-2-25                                                                        
  429. //......................................................................................//
  430.                                                 wen_du0_min_r=wen_du0_min;
  431.                                                 if(wen_du0_min_r>>4)
  432.                                                                 {
  433.                                                                         wen_du0_min_r=((wen_du0_min_r>>4)*0x0a)+(wen_du0_min_r&0x0f);
  434.                                                                 }                        
  435.                                                 //yishu(xx,yy,ex,ey,0);//一竖显示以 六 点为一竖//        
  436.                                                 k=wen_du0_9[0];        
  437.                                                 if(k>>4)
  438.                                                                 {
  439.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  440.                                                                 }
  441.                                                 //yishu((ex-k-),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//        
  442.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                        
  443.                                                 yy=yy+4;               
  444.                                                 ey=yy+1;               
  445.                                                 k=wen_du0_9[1];
  446.                                                         if(k>>4)
  447.                                                                 {
  448.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  449.                                                                 }        
  450.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  451.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  452.                                                 yy=yy+4;               
  453.                                                 ey=yy+1;               
  454.                                                 k=wen_du0_9[2];        
  455.                                                 if(k>>4)
  456.                                                                 {
  457.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  458.                                                                 }               
  459.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  460.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  461.                                                 yy=yy+4;               
  462.                                                 ey=yy+1;               
  463.                                                 k=wen_du0_9[3];
  464.                                                 if(k>>4)
  465.                                                                 {
  466.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  467.                                                                 }               
  468.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  469.                                                         yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                
  470.                                                 yy=yy+4;               
  471.                                                 ey=yy+1;        
  472.                                                 k=wen_du0_9[4];        
  473.                                                 if(k>>4)
  474.                                                                 {
  475.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  476.                                                                 }               
  477.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  478.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  479.                                                 yy=yy+4;               
  480.                                                 ey=yy+1;               
  481.                                                 k=wen_du0_9[5];
  482.                                                 if(k>>4)
  483.                                                                 {
  484.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  485.                                                                 }               
  486.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  487.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  488.                                                 yy=yy+4;               
  489.                                                 ey=yy+1;               
  490.                                                 k=wen_du0_9[6];
  491.                                                 if(k>>4)
  492.                                                                 {
  493.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  494.                                                                 }               
  495.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  496.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  497.                                                 yy=yy+4;               
  498.                                                 ey=yy+1;               
  499.                                                 k=wen_du0_9[7];
  500.                                                 if(k>>4)
  501.                                                                 {
  502.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  503.                                                                 }               
  504.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  505.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  506.                                                 yy=yy+4;               
  507.                                                 ey=yy+1;               
  508.                                                 k=wen_du0_9[8];
  509.                                                 if(k>>4)
  510.                                                                 {
  511.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  512.                                                                 }               
  513.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//        
  514.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  515.                                                 yy=yy+4;               
  516.                                                 ey=yy+1;        
  517.                                                 k=wen_du0_9[9];
  518.                                                 if(k>>4)
  519.                                                                 {
  520.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  521.                                                                 }               
  522.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//
  523.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  524.                                                 yy=yy+4;               
  525.                                                 ey=yy+1;        
  526.                                                 k=wen_du0_9[10];
  527.                                                 if(k>>4)
  528.                                                                 {
  529.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  530.                                                                 }               
  531.                                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//
  532.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  533.                                                 yy=yy+4;               
  534.                                                 ey=yy+1;        
  535.                                                 k=wen_du0_9[11];
  536.                                                 if(k>>4)
  537.                                                                 {
  538.                                                                         k=((k>>4)*0x0a)+(k&0x0f);
  539.                                                                 }               
  540.                                                 //yishu((ex-k),ex,yy,ey,0x3f);////一竖显示以 六 点为一竖//
  541.                                                 yishu((ex-((k-wen_du0_min_r)*bershu)-10),ex,yy,ey,0x3f);//////一竖显示以 六 点为一竖0x3f=0011 1111//                                       
  542. //........................................................................//                                                
  543. //                                                        htrr();//读时钟//
  544. //                                                        shifenmao(0,50);//指定地址写入时间表//               
  545. //                                                        laozhong(0x12,0x05);//12:10时间到蜂鸣叫//
  546. //                                                        laozhong(0x13,0x12);//13:17时间到蜂鸣叫//
  547. //                                                        laozhong(0x18,0x05);//时间到蜂鸣叫//
  548. //                                                        laozhong_BZZ(0x1200);//时间到蜂鸣叫//
  549. //......................显示最大最小值........................................//
  550.                                                 xx=58;
  551.                                                 yy=10;
  552.                                                 ascii_12x12_12x6(xx,yy,"max");//12x6宽6高12写入//2017-2-25               
  553.                                                 ascii_12x12_12x6_bye(xx,yy+6,(wen_du0_max>>4));//12x6宽6高12写入//2017-2-25
  554.                                                 ascii_12x12_12x6_bye(xx,yy+8,(wen_du0_max&0x0f));//12x6宽6高12写入//2017-2-25        
  555.                                                 ascii_12x12_12x6(xx,yy+12,"min");//12x6宽6高12写入//2017-2-25                                
  556.                                                 ascii_12x12_12x6_bye(xx,yy+18,(wen_du0_min>>4));//12x6宽6高12写入//2017-2-25
  557.                                                 ascii_12x12_12x6_bye(xx,yy+20,(wen_du0_min&0x0f));//12x6宽6高12写入//2017-2-25               
  558. }        
  559. void eeprom_xianshishijian(u8 x,u8 y)//显示记录时间表//显示一个时间表由K2输入
  560. {               
  561.         //        u8 xx,yy;
  562.                 if(k2_inc==0)
  563.                         {               
  564.                                 st7529_delay1(3);
  565.                                 if(k2_inc==0)
  566.                                                 {               
  567.                                                         BBZZ(255);
  568.                                                         at24c32[0]=shi>>4;
  569.                                                         at24c32[1]=shi&0x0f;
  570.                                                         
  571.                                                         at24c32[2]=fen>>4;
  572.                                                         at24c32[3]=fen&0x0f;
  573.                                                         
  574.                                                         at24c32[4]=mao>>4;
  575.                                                         at24c32[5]=mao&0x0f;
  576.                                                         write_24cxx(0,0x60,6);//d 0x0012EEPROM写入6个字节   写入    最大12个字节//
  577.                                                         st7529_delay1(20);
  578.                                                         
  579.                                                 }
  580.                                 
  581.                         }
  582.                 read_24cxx_n(0,0x60,6);//连续读12时间字节//        
  583. //                xx=17;
  584. //                yy=20;
  585.                 if(at24c32[0])ascii_12x12_12x6_bye(x,y,at24c32[0]);//12x6宽6高12写入//2017-2-25
  586.                 else ascii_12x12_12x6(x,y," ");//12x6宽6高12写入//2017-2-25        
  587.                 ascii_12x12_12x6_bye(x,y+2,at24c32[1]);//12x6宽6高12写入//2017-2-25        
  588.                 ascii_12x12_12x6(x,y+4,":");//12x6宽6高12写入//2017-2-25        
  589.                         
  590.                 ascii_12x12_12x6_bye(x,y+6,at24c32[2]);//12x6宽6高12写入//2017-2-25
  591.                 ascii_12x12_12x6_bye(x,y+8,at24c32[3]);//12x6宽6高12写入//2017-2-25        
  592.                 ascii_12x12_12x6(x,y+10,":");//12x6宽6高12写入//2017-2-25        
  593.                         
  594.                 ascii_12x12_12x6_bye(x,y+12,at24c32[4]);//12x6宽6高12写入//2017-2-25
  595.                 ascii_12x12_12x6_bye(x,y+14,at24c32[5]);//12x6宽6高12写入//2017-2-25               

  596. }
  597. void xianshi_shijian(u8 x,u8 y)        //显示一行时间// 2018-10-27
  598. {         //r_pcf8563();//读时钟
  599. //        y=y+10;        
  600. //        if(yifen>>4)ascii_12x12_12x6_bye(x,y,yifen>>4);//12x6宽6高12写入 字节//2017-2-25
  601. //        else ascii_12x12_12x6(x,y," ");//12x6宽6高12写入//2017-2-25
  602. //        ascii_12x12_12x6_bye(x,y+2,yifen&0x0f);//12x6宽6高12写入 字节//2017-2-25
  603. //        ascii_12x12_12x6(x,y+4,"-");//12x6宽6高12写入//2017-2-25
  604. //        if(riqi>>4)ascii_12x12_12x6_bye(x,y+6,riqi>>4);//12x6宽6高12写入 字节//2017-2-25
  605. //        else ascii_12x12_12x6(x,y+6," ");//12x6宽6高12写入//2017-2-25
  606. //        ascii_12x12_12x6_bye(x,y+8,riqi&0x0f);//12x6宽6高12写入 字节//2017-2-25
  607.         
  608.         if(shi>>4)ascii_12x12_12x6_bye(x,y+12,shi>>4);//12x6宽6高12写入 字节//2017-2-25
  609.         else ascii_12x12_12x6(x,y+12," ");//12x6宽6高12写入//2017-2-25
  610.         ascii_12x12_12x6_bye(x,y+14,shi&0x0f);//12x6宽6高12写入 字节//2017-2-25
  611.         ascii_12x12_12x6(x,y+16,":");//12x6宽6高12写入//2017-2-25
  612.         
  613.         //if(fen>>4)
  614.         ascii_12x12_12x6_bye(x,y+18,fen>>4);//12x6宽6高12写入 字节//2017-2-25
  615.         //else ascii_12x12_12x6(x,y+18," ");//12x6宽6高12写入//2017-2-25
  616.         ascii_12x12_12x6_bye(x,y+20,fen&0x0f);//12x6宽6高12写入 字节//2017-2-25
  617.         ascii_12x12_12x6(x,y+22,":");//12x6宽6高12写入//2017-2-25
  618.         
  619.         
  620.         ascii_12x12_12x6_bye(x,y+24,mao>>4);//12x6宽6高12写入 字节//2017-2-25
  621.         
  622.         ascii_12x12_12x6_bye(x,y+26,mao&0x0f);//12x6宽6高12写入 字节//2017-2-25
  623.         
  624. //        ascii_12x12_12x6(x,y+28,"open");//12x6宽6高12写入//2017-2-25
  625. //        //..........................................................
  626. //        
  627. //        
  628. //        if(yifen>>4)ascii_12x12_12x6_bye(x,y+40,yifen>>4);//12x6宽6高12写入 字节//2017-2-25
  629. //        else ascii_12x12_12x6(x,y+40," ");//12x6宽6高12写入//2017-2-25
  630. //        ascii_12x12_12x6_bye(x,y+42,yifen&0x0f);//12x6宽6高12写入 字节//2017-2-25
  631. //        ascii_12x12_12x6(x,y+44,"-");//12x6宽6高12写入//2017-2-25
  632. //        if(riqi>>4)ascii_12x12_12x6_bye(x,y+46,riqi>>4);//12x6宽6高12写入 字节//2017-2-25
  633. //        else ascii_12x12_12x6(x,y+46," ");//12x6宽6高12写入//2017-2-25
  634. //        ascii_12x12_12x6_bye(x,y+48,riqi&0x0f);//12x6宽6高12写入 字节//2017-2-25
  635. //        
  636. //        if(shi>>4)ascii_12x12_12x6_bye(x,y+52,shi>>4);//12x6宽6高12写入 字节//2017-2-25
  637. //        else ascii_12x12_12x6(x,y+52," ");//12x6宽6高12写入//2017-2-25
  638. //        ascii_12x12_12x6_bye(x,y+54,shi&0x0f);//12x6宽6高12写入 字节//2017-2-25
  639. //        ascii_12x12_12x6(x,y+56,":");//12x6宽6高12写入//2017-2-25
  640. //        
  641. //        if(fen>>4)ascii_12x12_12x6_bye(x,y+58,fen>>4);//12x6宽6高12写入 字节//2017-2-25
  642. //        else ascii_12x12_12x6(x,y+58," ");//12x6宽6高12写入//2017-2-25
  643. //        ascii_12x12_12x6_bye(x,y+60,fen&0x0f);//12x6宽6高12写入 字节//2017-2-25
  644. //        ascii_12x12_12x6(x,y+62,":");//12x6宽6高12写入//2017-2-25
  645. //        
  646. //        
  647. //        ascii_12x12_12x6_bye(x,y+64,mao>>4);//12x6宽6高12写入 字节//2017-2-25
  648. //        
  649. //        ascii_12x12_12x6_bye(x,y+66,mao&0x0f);//12x6宽6高12写入 字节//2017-2-25
  650. //        
  651. //        ascii_12x12_12x6(x,y+68,"cl");//12x6宽6高12写入//2017-2-25
  652. //        
  653.         
  654.         
  655. }


  656. void w_testeeprom()//24C测试 32k= 0xfffh
  657. {
  658.           at24c32[0]=0x01;
  659.           at24c32[1]=0x23;
  660.           at24c32[2]=0x45;
  661.           at24c32[3]=0x67;
  662.           at24c32[4]=0x89;
  663.           at24c32[5]=0x98;
  664.           at24c32[6]=0x76;
  665.           at24c32[7]=0x54;
  666.           write_24cxx(0x05,0,8);//写入i个字节//


  667. }

  668. void r_testeeprom()//24C测试
  669. {
  670.           u8 x=16,y=20;        
  671.           at24c32[0]=0;
  672.           at24c32[1]=0;
  673.           at24c32[3]=0;
  674.           at24c32[2]=0;
  675.           at24c32[4]=0;
  676.           at24c32[5]=0;
  677.           at24c32[6]=0;
  678.           at24c32[7]=0;
  679. //          read_24cxx_n(0x05,0,4);//连续读4字节//
  680.         read_24cxx_n(0x05,0,8);//连续读4字节//
  681.           ascii_12x12_12x6_bye(x,  y,at24c32[0]>>4);//12x6宽6高12写入 字节//2017-2-25
  682.           ascii_12x12_12x6_bye(x,y+2,at24c32[0]&0x0f);//12x6宽6高12写入 字节//2017-2-25

  683.           ascii_12x12_12x6_bye(x,y+6,at24c32[1]>>4);//12x6宽6高12写入 字节//2017-2-25
  684.           ascii_12x12_12x6_bye(x,y+8,at24c32[1]&0x0f);//12x6宽6高12写入 字节//2017-2-25

  685.           ascii_12x12_12x6_bye(x,y+12,at24c32[2]>>4);//12x6宽6高12写入 字节//2017-2-25
  686.           ascii_12x12_12x6_bye(x,y+14,at24c32[2]&0x0f);//12x6宽6高12写入 字节//2017-2-25

  687.           ascii_12x12_12x6_bye(x,y+18,at24c32[3]>>4);//12x6宽6高12写入 字节//2017-2-25
  688.           ascii_12x12_12x6_bye(x,y+20,at24c32[3]&0x0f);//12x6宽6高12写入 字节//2017-2-25



  689.           ascii_12x12_12x6_bye(x,y+23,at24c32[4]>>4);//12x6宽6高12写入 字节//2017-2-25
  690.           ascii_12x12_12x6_bye(x,y+25,at24c32[4]&0x0f);//12x6宽6高12写入 字节//2017-2-25

  691.           ascii_12x12_12x6_bye(x,y+28,at24c32[5]>>4);//12x6宽6高12写入 字节//2017-2-25
  692.           ascii_12x12_12x6_bye(x,y+30,at24c32[5]&0x0f);//12x6宽6高12写入 字节//2017-2-25

  693.           ascii_12x12_12x6_bye(x,y+33,at24c32[6]>>4);//12x6宽6高12写入 字节//2017-2-25
  694.           ascii_12x12_12x6_bye(x,y+35,at24c32[6]&0x0f);//12x6宽6高12写入 字节//2017-2-25

  695.           ascii_12x12_12x6_bye(x,y+38,at24c32[7]>>4);//12x6宽6高12写入 字节//2017-2-25
  696.           ascii_12x12_12x6_bye(x,y+40,at24c32[7]&0x0f);//12x6宽6高12写入 字节//2017-2-25
  697. }




  698. u8 bcd_add_dce(u8 i)//BCD加法进位与借位
  699. {
  700.         
  701.         u8 j;
  702.         if((i&0x0f)==0x0a)
  703.                 {
  704.                         j=i+6;
  705.                         return j;
  706.         
  707.                 }
  708.         //if(i==0xff)        return -1;
  709.         if((i&0x0f)==0x0f)
  710.                 {
  711.                         if(i==0xff)return i;
  712.                         j=i-6;
  713.                         
  714.                         return j;
  715.         
  716.                 }
  717.         return i;
  718. }
  719. void key_shijian()//调节时间2018-10-28
  720. {
  721.          u32 delay10s;
  722.          u8 wei_k;
  723.         
  724.          if(k1_muen==0)
  725.                 {         wei_k = 0;
  726.                         Delay_ms(10);
  727.                         do{               
  728.                                         if(k1_muen==0)
  729.                                                  {         
  730.                                                            //wei_k = 0;
  731.                                                           st7529_delay1(10); //27mhz
  732.                                                           ////
  733.                                                           if(k1_muen==0)
  734.                                                                    {   
  735.                                                                               BBZZ(255);//蜂鸣器子程序        
  736.                                                                            delay10s=1355350;
  737.                                                                            wei_k++;
  738.                                                                            if(wei_k==3)wei_k=0;
  739.                                                                            ascii_12x12_12x6_bye(0,0,wei_k);//12x6宽6高12写入 字节//2017-2-25
  740.                                                                           
  741.                                        
  742.                                                                    }
  743.                                                                   while(!k1_muen);
  744.                                                          
  745.                                                  }
  746.                                          if(k2_inc==0) //加一
  747.                                                  {
  748.                                                            st7529_delay1(30);
  749. ……………………

  750. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
stc15w4k56s4_7135_2019-4-14 - 副本.rar (236.54 KB, 下载次数: 19)




评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:328014 发表于 2019-4-18 17:24 | 只看该作者
好东东 能分享下原理图吗?
回复

使用道具 举报

板凳
ID:1013588 发表于 2022-9-16 08:57 | 只看该作者
要是有原理图就好了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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