您好,欢迎来到刀刀网。
搜索
您的当前位置:首页基于NTC热敏电阻的测量软件

基于NTC热敏电阻的测量软件

来源:刀刀网
*** 课题:NTC测温 *** *** 创建时间:2011年6月11日 *** ******************************************

/******************************************************************** 主函数部分

********************************************************************/ void main() {

uchar b=0,c,d; float e;

init(); //液晶初始化 xianshi(7,mima1,0x80); //显示密码字样 do{

du_key1(); //扫描键盘 du_key2(); if(adjust1==4&adjust4==3) { b=1; adjust1=0; adjust4=0; } }

while(b==0); Timer_start();

xianshi(16,deng1,0x80); //显示“please wait„„”字样 while(remember<=50); init();

xianshi(6,wendu1,0x80); while(1) {

du_key1(); du_key2(); chunshu(); lvbo(); if(adjust1==1) { flag=flag+1; if(flag==1) { init(); xianshi(8,look_shi,0x80); } write_command(0x80+9);

write_date(shu[adjust2]); } else if(adjust1==2) { flag=flag+1; if(flag==1) { init(); xianshi(7,look_ge,0x80); } c=adjust3/10; d=adjust3%10; write_command(0x80+8); write_date(shu[c]); write_command(0x80+9); write_date(shu[d]); } else if(adjust1==3) { flag=flag+1; if(flag==1) { init(); xianshi(9,look,0xc0); } Look_for(); deep_chuli(wendu); write_command(0xc0+10); write_date(AD_buffer[0]); write_command(0xc0+11); write_date(AD_buffer[1]); write_command(0xc0+12); write_date('.') ; write_command(0xc0+13); write_date(AD_buffer[2]); } else if(adjust1==4) { flag=flag+1; if(flag==1) { init();

xianshi(9,day_aver,0xc0); }

day_average(); deep_chuli(wendu); write_command(0xc0+10); write_date(AD_buffer[0]); write_command(0xc0+11); write_date(AD_buffer[1]); write_command(0xc0+12); write_date('.') ; write_command(0xc0+13); write_date(AD_buffer[2]); } else if(adjust1==5) { flag=flag+1; if(flag==1) { init(); xianshi(5,pwm_1,0xc0); } write_command(0xc0+5); write_date(shu[tiao/10]); write_command(0xc0+6); write_date(shu[tiao%10]); }

else if(adjust1==6) { flag=flag+1; if(flag==1) { init(); xianshi(5,pwm_2,0xc0); } write_command(0xc0+5); write_date(shu[tiao/10]); write_command(0xc0+6); write_date(shu[tiao%10]); } else if(adjust1==7) { flag=flag+1; if(flag==1) {

init(); xianshi(7,cha,0xc0); } e=max-min2; deep_chuli(e); write_command(0xc0+8); write_date(AD_buffer[0]); write_command(0xc0+9); write_date(AD_buffer[1]); write_command(0xc0+10); write_date('.') ; write_command(0xc0+11); write_date(AD_buffer[2]); } else { flag=flag+1; if(flag==1) { xianshi(6,wendu1,0x80); xianshi(4,max1,0xc0); xianshi(4,min1,0xc0+8); } line_processer(15,average); if(flag1==1) { min2=wendu; max=wendu; flag1=0; } if(wendu>max) { max=wendu; } else if(wenduwrite_date(AD_buffer[1]); write_command(0x80+8); write_date('.') ; write_command(0x80+9); write_date(AD_buffer[2]); deep_chuli(max); write_command(0xc0+4); write_date(AD_buffer[0]); write_command(0xc0+5); write_date(AD_buffer[1]); write_command(0xc0+6); write_date('.') ; write_command(0xc0+7); write_date(AD_buffer[2]); deep_chuli(min2); write_command(0xc0+12); write_date(AD_buffer[0]); write_command(0xc0+13); write_date(AD_buffer[1]); write_command(0xc0+14); write_date('.') ; write_command(0xc0+15); write_date(AD_buffer[2]); } } }

/******************************************************************* 子程序部分

********************************************************************/

/******************************* AD采集

*******************************/ void AD_caiji(uchar x) {

csad=0;

WR1=0; //启动ad _nop_(); WR1=1; delay1();

AD_data=0xff; RD1=0;

AD_buffer[x]=AD_data; RD1=1;

WR1=0; }

void chunshu() //数据存储 {

uchar i;

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

AD_caiji(i); } }

/******************************************** 滤波模块

数据滤波去掉最大,最小值后求均值

**********************************************/ void lvbo() { uchar x,y; uint buff;

for(x=15;x>0;x--) {

for(y=x;y>0;y--) { if(AD_buffer[y]>AD_buffer[y-1]) //大小排序(从大到小) { buff=AD_buffer[y-1]; AD_buffer[y-1]=AD_buffer[y]; AD_buffer[y]=buff; } } buff=AD_buffer[0]; AD_buffer[0]=AD_buffer[x]; AD_buffer[x]=buff; } buff=0; for(x=14;x>0;x--) { buff=buff+AD_buffer[x]; } average=buff/14; }

/************************************** 键盘查询

*************************************/ void delay1() { uchar g,h;

for(g=100;g>0;g--) for(h=100;h>0;h--); }

void du_key1() {

key1=1; if(key1==0) {

delay1(); if(key1==0) { flag=0; adjust1=adjust1+1; if(adjust1==8) { adjust1=0; } } while(key1==0); } }

void du_key2() {

key2=1; if(key2==0) {

delay1(); if(key2==0) { if(adjust1==1) { adjust2=adjust2+1; if(adjust2==5) // { adjust2=0; } } else if(adjust1==2) { adjust3=adjust3+1; 十位 // 个位

if(adjust3==10) {

adjust3=0; } }

else if(adjust1==4) {

adjust4=adjust4+1; }

else if(adjust1==5)

// 密码

{ // 调节pwm的占空比 增加 tiao=tiao+1; if(tiao==101) tiao=0; } else if(adjust1==6) // 调节pwm的占空比 减少 { tiao=tiao-1; if(tiao==0) { tiao=100; } } } while(key2==0); } }

/***************************************** 温度线性处理模块

***************************************/ void line_processer(uchar x,uchar f) {

uchar y,z=0; for(y=0;yif(f>=Fen_duan[y][0]&&fvoid deep_chuli(float y) {

int x; x=y*10;

AD_buffer[0]=shu[x/100];

AD_buffer[1]=shu[(x-(x/100)*100)/10]; AD_buffer[2]=shu[x%10]; }

/*************************************** 一天的平均温度

***************************************/ void day_average() {

uchar x; float y=0;

for(x=0;x<48;x++) { average=Tem_buffer[x]; line_processer(15,average); y=y+wendu; }

wendu=y/48; }

/************************************* 报警模块

**************************************/ void baojin() {

if(wendu>=35||wendu<=10) {

beep=0; }

else if(wendu<=34||wendu>=11) { beep=1; } } 1.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务