| 查看: 194 | 回复: 0 | ||
| 当前主题已经存档。 | ||
[资源]
HS1101测湿度程序的修改 (555定时器),绝对好用
|
||
|
/***********读取T1口输入的频率值(10MS 11.0592HZ晶振)T0做定时器*****************/ #include unsigned int frequency,f1,f2; void time1(unsigned char x) { unsigned int i,j; for(i=0;i<200*x;i++) for(j=0;j<50000;j++); } void clean(void) { ES=0;//串行口中断禁止 ET1=0;//T1溢出中断禁止 EX1=0;//外部中断1禁止 ET0=0;//T0溢出中断禁止 EX0=0;//外部中断0禁止 EA=0;//总中断禁止 } unsigned int pinlu() { int i; clean(); TMOD=0X51; //T1计数,方式1 T0定时,方式1 TH1=TL1=0; //T1计数清零 TH0=0Xdb; TL0=0Xff; //T0定时10MS(11.0592HZ) TF0=0; //T0溢出中断标志清零 ET0=ET1=1; //T0T1溢出中断开 TR0=TR1=1; //开T0 T1 while(TF0!=1) //定时时间到再往下执行 {;} TR0=TR1=0; //关T0 T1 TF0=0; //T0溢出中断标志清零 i=TH1*256+TL1; return(i); } void main() { //initlcm(); // clear(); //bg=1; time1(2); while(1) { frequency=pinlu()*100; if((frequency>6033)&(frequency<6187)) f1=90; //将测量数值转换为对应百分比, 1%-100% if((frequency>6186)&(frequency<6331)) f1=80; if((frequency>6330)&(frequency<6469)) f1=70; if((frequency>6468)&(frequency<6601)) f1=60; if((frequency>6600)&(frequency<6729)) f1=50; if((frequency>6728)&(frequency<6854)) f1=40; if((frequency>6853)&(frequency<6977)) f1=30; if((frequency>6976)&(frequency<7101)) f1=20; if((frequency>7100)&(frequency<7225)) f1=10; if(frequency>7224) f1=00; f2=frequency%100; //对测量数值取低两位 time1(1); //处理需要等待一段时间,否则f2=0 if((f1==60)||(f1==70)||(f1==90)) f2=f2/13; //对低两位数值取个位, else if(f1==80) f2=f2/14; else f2=f2/12; time1(1); f1=f1+f2; //将数据合成一起,送显示 f1=0x000; //清0,为下次准备 } } /* 如果您对此文章感觉满意的话,请投我一票。*/ [search]HS1101[/search] |
» 猜你喜欢
有院领导为了换新车,用横向课题经费买了俩车
已经有8人回复
博士延得我,科研能力直往上蹿
已经有8人回复
酰胺脱乙酰基
已经有12人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有4人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有10人回复
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有5人回复
CSC & MSCA 博洛尼亚大学能源材料课题组博士/博士后招生|MSCA经费充足、排名优
已经有6人回复
面上项目申报
已经有3人回复
遇见不省心的家人很难过
已经有22人回复













回复此楼