| 查看: 177 | 回复: 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] |
» 猜你喜欢
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
孩子确诊有中度注意力缺陷
已经有12人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复














回复此楼