19416|8

17

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

气压与高度的转换显示 [复制链接]

我做的是气压高度计 现在气压的显示已经解决 但是还有高度没有解决 气压与高度的转换关系是
 怎么改才能让程序把高度显示   多多指教 
程序见附件
此帖出自单片机论坛

最新回复

扫描的时间长了 设置短一点 就可以了  详情 回复 发表于 2007-4-29 15:37
点赞 关注
 

回复
举报

1759

帖子

0

TA的资源

裸片初长成(高级)

沙发
 

Re: 气压与高度的转换显示

没做过这个 你能够将电路图上传一下 我看看 帮你分析一下
此帖出自单片机论坛
 
个人签名南京璞晓电子   www.cpx0.com需要
msn:njlianjian@hotmail.com
 

回复

17

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

Re: 这是气压的显示程序

/*---------------------------------------------*/ #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //------------------------------------------ #include //#include //#include //#include sfr DisDat =0x90; sfr DisCs =0xa0; //sbit P35 =P3^5; uchar code table[10] ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F}; bit overflag=0; //一次测量结束标志 uchar T0cnt; //T0_count uchar tcnt; //Time_count uchar datbuf[6]; //计数值数据存储数组 ulong total; //计数值缓存单元 ulong total_low; //time delay subproram void Delay(uchar dcnt)// 延时程序,T=DCNT*6+11 { uchar j; j=dcnt; while (j--){;} } //data display subproram void Display(void) { uchar i,j,temp=0xdf; for(i=0;i<6;i++) { DisCs=0xff; j=datbuf; if(i==3)DisDat=(table[j]|0x80); else DisDat=table[j]; DisCs=temp; Delay(10); temp=temp>>1; temp=temp|0x80; DisCs=0xff; } } /* sfr DisDat =0x90; sfr DisCs =0xa0; */ //外部计数中断 void tcount0(void) interrupt 1 using 1 { TH0=0; TL0=0; T0cnt++; } //50MS定时中断 void timer1(void) interrupt 3 using 2 { ulong temp; TH1=(65536-50000)/256; TL1=(65536-50000)%256; tcnt++; if(tcnt==20) { TR0=0; //先关闭TR0,以保证计数精确 EA=0; TR1=0; //完成一次测量,关闭所有定时器,以重新开始下一次测量 tcnt=0; overflag = 1; total = (T0cnt*65536)+(TH0*256)+TL0;//TOTAL存放了1S内T0的计数值 temp=total*10+15280; total=temp/1059 ; total_low=(temp%1059)/10; total = (total%10000); datbuf[0] = (uchar)(total/1000);//千位送datbuf[0] total = total%1000; datbuf[1] = (uchar)(total/100); //百位送datbuf[1] total = total%100; datbuf[2] = (uchar)(total/10); //十位送datbuf[2] datbuf[3] = total%10; //个位送datbuf[3] datbuf[4] = (uchar)total_low/10; datbuf[5] = (uchar)total_low%10; T0cnt = 0; } } //------------------------------------------ void main(void) { TMOD=0x15; /*------------------------ 定时记数器工作状态设置, 定时器0工作在内部定时1方式 定时器1工作在外部计数1方式 --------------------------*/ TH0=0; TL0=0; TH1=(65536-50000)/256; //初值设置 TL1=(65536-50000)%256; //50MS定时常数 EA=1; ET0=1; ET1=1; TR1=1; TR0=1; while(1) { Display(); if(overflag!=0)//一次转换结束,重新装载数据,开始下一次转换 { TH0=0; TL0=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET0=1; ET1=1; TR1=1; TR0=1; //重启定时器 ,开始下一次测量 overflag=0; } } }
此帖出自单片机论坛
 
 
 

回复

1759

帖子

0

TA的资源

裸片初长成(高级)

4
 

Re: 气压与高度的转换显示

你是根据什么原理作的呢 不要仅仅给我看程序阿
此帖出自单片机论坛
 
个人签名南京璞晓电子   www.cpx0.com需要
msn:njlianjian@hotmail.com
 
 

回复

17

帖子

0

TA的资源

一粒金砂(初级)

5
 

Re: 气压与高度的转换显示

我图传不上去 你有QQ吗 ?我是根据气压传感器送信号到V/F转换 最后送入单片机 显示
此帖出自单片机论坛
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(初级)

6
 

Re: 气压与高度的转换显示

我是根据压力传感器 采集数据 然后送入单片机转换显示 问题是现在我的程序只是显示采集的气压数据 要怎么修改才能显示高度呢 气压与高度的关系 是一个指数关系H=44.3308-439645*P0.190263
此帖出自单片机论坛
 
 
 

回复

141

帖子

0

TA的资源

一粒金砂(初级)

7
 

Re: 气压与高度的转换显示

先找个基准高度,然后按照这个公式计算即可。
此帖出自单片机论坛
 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(初级)

8
 

Re: 气压与高度的转换显示

现在做出来了 非常感谢各位的回复 现在我还有个小问题就是动态扫描的闪烁问题 老是一闪一闪的 不能达到直观是静态显示的效果
此帖出自单片机论坛
 
 
 

回复

1759

帖子

0

TA的资源

裸片初长成(高级)

9
 

Re: 气压与高度的转换显示

扫描的时间长了 设置短一点 就可以了
此帖出自单片机论坛
 
个人签名南京璞晓电子   www.cpx0.com需要
msn:njlianjian@hotmail.com
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表