云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于51单片机的数字电容测量仪

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

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 23:58:48

. .

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单片机的数字电容测量仪 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

. . 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

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com