haoDIY创好电子音响电脑科技DIY小制作发明移动版

主页 > 电子DIY > 工具仪表 > 仪器仪表 >

大小通吃的电感表,精度还很好(3)

  • //=========================几个功能常用函数=================================
  • void lcd_cls()         { lcd_B(0, 0x01+0, 2);  } //清屏
  • void lcd_cur0()        { lcd_B(0, 0x0C+0, 0);  } //隐藏光标
  • void lcd_goto1(uchar x){ lcd_B(0, 0x80+x, 0);  } //设置DDRAM地址,第1行x位
  • void lcd_goto2(uchar x){ lcd_B(0, 0xC0+x, 0);  } //设置DDRAM地址,第2行x位
  • void lcd_putc(uchar d) { lcd_B(1, 0x00+d, 0);  } //字符输出
  • void lcd_puts(uchar *s){ for(; *s; s++) lcd_B(1,*s,0); } //字串输出
  • //==============字符显示函数====================
  • #define digW 4 //数字显示位数宏
  • void lcd_puti(long a,char w){ //定宽显示正整数
  •   char i=0, s[10]={32,32,32,32,32,32,32,32,32,32};
  •   if(a<0) { a=-a; lcd_puts("-"); }
  •   else    lcd_puts(" ");
  •   do{
  •    s[i++] = a%10+48;
  •    a /= 10;
  •   }while(a);
  •   for(;w;w--) lcd_putc(s[w-1]);
  • }
  • void lcd_putf(float a,char n,char w){ //浮点输出,n是保留小数的位数,w是数字宽度
  • char i,g,fi=0;
  • long b,c=1;
  • if(a<0) { lcd_putc('-'); a = -a; }
  • else    { lcd_putc(' '); }
  • for(i=0;i<n;i++) a *= 10;
  • for(i=1;i<w;i++) c *= 10;
  • b = a;
  • for(i=0;i<w;i++){
  •   g = b/c;
  •   b -= g*c;
  •   c /= 10;
  •   if(g>9||g<0) g='*'-48;
  •   if(i == w-n ) lcd_putc('.');
  •   if(!g && !fi && i<w-n-1) { lcd_putc(' '); continue; }
  •   lcd_putc(g+48);
  •   fi = 1;
  • }
  • if(!n) lcd_putc(' '); //无小数点的补足显示宽度
  • }
  •  
  • //==========================================================================
  • //===============================延时函数===================================
  • void delay(uint loop) { uint i; for(i=0;i<loop;i++); } //延时函数
  • void delay2(uint k)   { for(;k>0;k--) delay(10000);  } //长延时,k=100大约对应1秒
  •  
  •  
  • //==========================================================================
  • //==================================EEPROW偏程==============================
  • sfr IAP_data  = 0xC2;
  • sfr IAP_addrH = 0xC3;
  • sfr IAP_addrL = 0xC4;
  • sfr IAP_cmd   = 0xC5;
  • sfr IAP_trig  = 0xC6;
  • sfr IAP_contr = 0xC7;
  • /********************
  • 写字节时,可以将原有数据中的1改为0,无法将0改为1,只能使用擦除命令将0改为1
  • 应注意,擦除命令会将整个扇区擦除
  • *********************/
  • int eepEn = 0;
  • void saEEP(){ //触发并EEP保护
  • if(eepEn==12345) IAP_trig = 0x5A;  //先送5A
  • if(eepEn==12345) IAP_trig = 0xA5;  //先送5A再送A5立即触发
  • IAP_cmd = 0;      //关闭令,保护
  • IAP_contr = 0;    //关EEPROM,保护 (责任编辑:admin)
  • haoDIY创好电子 版权所有,电话微信13977534587