第一范文网 - 专业文章范例文档资料分享平台

基于51单片机的数字电容测量仪

来源:用户分享 时间:2025/8/2 16:52:15 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

. .

p++;

}

lcd_pos(0x40); for(i=0;i<16;i++) {

LCD_write_Data(' ');

}

}

unsigned char pro_data(unsigned char mda) 低位互换

{ unsigned char enddat; unsigned char i; enddat = 0; for(i=0;i<8;i++) { enddat = enddat << 1; if(mda & 0x01 == 1) { enddat = enddat | 0x01;

} else { enddat = enddat | 0x00; }

mda = mda >> 1;

}

return enddat;

}

(e)main.c程序清单:

word完美格式

//数据处理函数,将高位和 . .

#include #include \#include \

sbit vo = P3^2; // 用于检测P3.2口的值,计算时间。 计时器0的开与断 sbit tr = P3^7;

// 产生一个低电平脉冲

sbit ledclc = P2^7;

sbit con1 = P0^0; sbit con2 = P0^1; sbit con3 = P0^2;

sbit key1 = P0^3; sbit key2 = P0^4; sbit key3 = P0^5; sbit key4 = P0^6;

sbit led1 = P2^3; sbit led2 = P2^4; sbit led3 = P2^5; sbit led4 = P2^6;

unsigned int tw;

float ftemp;

unsigned long int c;

word完美格式

// 超量程提示灯

// 用于控制继电器,实现档位选择

// 独立按键部分,用于用户选择量程

// 量程提示灯

// 用于获取定时器的数值 // 用于计算电容值的中间变量

// 存放电容值

. .

unsigned char need; 结束置0

// 需要测量时置1,一次测量

unsigned char R; // 表示不同的档位 unsigned char flag; // 数据处理结束置1 unsigned char temp[8]; // 存放电容值的各个位 unsigned char zimu1[] = \ unsigned char zimu2[] = %unsigned char zimu3[] = %unsigned char zimu4[] = \ to measure %unsigned char zimu5[] = \void process(unsigned long int c); void keyscan();

// 数据处理函数

// 键盘扫描函数

// 量程指示灯函数 //量程太高

void ledlight(unsigned char R);

void init_timer0() // 定时器0 初始化 { 断

}

void init_INT1 () { }

EA = 1;

IT1 = 1; // 下降沿触发 EX1 = 1;

// 定时器0 初始化

TH0 = 0x00; TL0 = 0x00; EA = 1;

ET0 = 1; TR0 = 1; TMOD = 0x09;

// gate置1,方式1,16位计时,定时器由P3.2控制开

void main()

word完美格式

. .

{

ledclc = 1; need = 0;

// 超量程提示灯熄灭

// 一开始无需测量

con1 = con2 = con3 = 0;

flag = 0;

// 初始化

init_timer0(); 束

{

{

init_INT1(); LCD_init();

dispchar1(zimu3); dispchar2(zimu4); while(1) {

if(need == 1)

{

// 当需要测量时

if(vo == 0 ) //vo == 0时检测计数器的值可能还没开始计数,可能计数结

if(TH0 != 0x00 || TL0 != 0x00) // 是计数结束 若有读数,用tw 存

tw = TH0 << 8; tw = tw | TL0; TH0 = 0x00; TL0 = 0x00;

need = 0; // 需要再次测量时,need置1.避免tw的值

被更//改 即不需要测量时,一直保持 // 一次结束,计时器清零

}

EX1 = 1; // 开外部中断1

else // 反之,证明没有计数,无电容,默认值tw置0 {

word完美格式

搜索更多关于: 基于51单片机的数字电容测量仪 的文档
基于51单片机的数字电容测量仪.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3nwgf4v5gx4zk8m0hvkq6k2tg1xudp00s6f_7.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top