matlab编写的小程序温度转换小程序提示异常。

V C++ 温度转换课程设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
V C++ 温度转换课程设计
简​单​的​温​度​转​换
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩26页未读,继续阅读
你可能喜欢 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
C语言程序设计(何欣铭、颜晖_第2版)课后习题答案
下载积分:1600
内容提示:C语言程序设计(何欣铭、颜晖_第2版)课后习题答案
文档格式:PDF|
浏览次数:380|
上传日期: 05:03:36|
文档星级:
该用户还上传了这些文档
C语言程序设计(何欣铭、颜晖_第2版)课后习题答案
官方公共微信17TinyOS下编写简单的温度检测程序
上亿文档资料,等你来发现
17TinyOS下编写简单的温度检测程序
TinyOS下编写简单的温度检测程序;既然是无线传感器,那它的特性自然是能够感知周围环;这个例程主要包含了两个部分:一是传感器A感知周围;数据的感知和发送;感知数据我们需要使用Read接口,而提供这个接口;uses{;interfaceB;interfaceL;interfaceTimer&TMilli;interfaceRead&lt
TinyOS下编写简单的温度检测程序既然是无线传感器,那它的特性自然是能够感知周围环境,例如温度、湿度、光线或者是声音等,然后利用无线信号将数值返回给用户。我手头上只有TelosB喝MicaZ两种传感器,而MicaZ本身不配有任何感应设备,所以在编写这个例程的时候,还是采用的TelosB传感器。TelosB主要是用在研究领域,本身性能一般,但是可以做的事情并不少,可以感知温度、湿度和光线的变化。这个例程主要包含了两个部分:一是传感器A感知周围环境温度的变化,然后将数值发送给传感器B,传感器B接受到数据以后,再通过USB接口将数据返回给电脑,然后显示在终端内。也就是说有两套小程序要写,一是数据的感知和发送,另一个是数据的接受、处理和返回。按照TinyOS官方手册内的划分,一共包含了三个技术,分别是感知、无线通讯和串口通讯。而我的例程也是在官方例程的基础上修改而来。数据的感知和发送感知数据我们需要使用Read接口,而提供这个接口的组件则根据感应部件的不同而不同。TelosB采用的是Sensirion SHT11,所以提供Read接口的组件为SensirionSht11C。至于无线通讯部分,则还需要SplitControl、Packet和AMSend三个接口。SplitControl主要负责启动无线通讯设备,Packet负责处理数据包,而AMSend则负责数据的发送。来看一下模块组件的定义: module TempRadioSndC {uses {interface Binterface Linterface Timer&TMilli&;interface Read&uint16_t&; interface SplitControlas RadioCinterface Pinterface AMS}}使用Boot接口是毫无疑问的,处理在程序启动时需要做的初始化工作。Leds和Timer两个接口其实并无实际意义,这里只是希望程序开始运行以后,每个2秒钟闪烁一下反光二极管,以表示程序正在运行。然后再看配置组件: configuration TempRadioSndAppC {} implementation {components TempRadioSndC as AppC;components MainC, LedsC;components new TimerMilliC() as Tcomponents new SensirionSht11C() as Scomponents new AMSenderC( AM_RADIO_MSG );components ActiveMessageC; AppC.Boot-& MainC.BAppC.Leds-& LedsC.LAppC.Timer-& Timer.TAppC.Read-& Sense.TAppC.Packet-& AMSenderC.PAppC.AMSend-& AMSenderC.AMSAppC.RadioControl-& ActiveMessageC.SplitC}唯一需要注意的就是Sense,这里使用了SensirionSht11C组件来测量数据,这也是TelosB所配备的温度和湿度测量装置。并且为了书写方便,这个组件被重命名为Sense。 数据的接受和处理当发送方开始检测、发送数据以后,另一头需要有一个和电脑直接连接的传感器,负责负责接收、处理数据,并且通过串口通讯,将数据发回电脑。module TempRadioRcvC {uses {interface Binterface Timer&TMilli&;interface Linterface SplitControl as RadioCinterface SplitControl as SerialCinterface Rinterface AMSinterface P}} 这里唯一需要注意的是两个SplitControl接口,他们一个负责启动无线通讯,一个负责启动串口通讯,所以两者被分别重命名为RadioControl和SerialControl。他们一个由ActiveMessageC组件提供,另一个由SerialActiveMessageC提供。和发送端一样,Timer和Leds只是用于定时点亮、熄灭发光二极管。数据的处理从温度传感器返回的数值,称之为RAW值,意为未经任何处理、加工的数值,是“毛坯”。通常这类数值是无法被直接理解的,因为他们只是被简单地从模拟信号传唤成数字信号。例如温度,如果不对感应到的数值进行处理,返回的则是一串奇怪的16进制数值。通过更换环境,我们可以看到这串16进制数值的变化,但是不是我们通常可以直接理解的摄氏温度(或者华氏)。RAW值到摄氏温度的转换,根据感应设备不同而不同。这里TelosB使用的是Sensirion SHT11,于是我就Google了SHT11的Datasheet,里面有输出信号转换成摄氏温度的公式。因为这里负责测温的感应器是用干电池供电的,所以我们摄影供电电压为3V,则转换公式为:-40.1 + 0.01 * val,其中val为直接从感应器读取的RAW值。多部传感器同时工作在TinyOS官方的文档内,每当无线通讯部分的代码,调用AMSend的send命令时,使用的地址均为AM_BROADCAST_ADDR。也就是“广播”,是不取分对象的发送数据。那如果有两个不同的传感器分别检测不同地区的温度,那一“广播”,两头的数据就会混在一起。Google一通之后发现,send命令其实是可以指定地址的,通常可以使用接收方的ID,该ID可以编译时指定,使用TOS_NODE_ID常量变可调用。例如我send的时候,指定地址为1,那只有ID为1的传感器会接收到该数据。在编译接收方程序的时候,指定其ID: make telosb install,2 /dev/ttyUSB0这里就把这个传感器编号为2。然后发送的时候,只需要指定接收方为2即可: #define DESTINATION_ADDR 2... ...call AMSend.send( DESTINATION_ADDR,&radio_packet,sizeof(temp_msg_t)); 测试首先从一对传感器开始。一部传感器直接和电脑连接,负责接受数据并且将数据返回至计算机。在计算机上则直接使用TinyOS自带的MsgReader程序来查看接受到的数据(图1)。 Fig1:数据接收方然后另一头是数据的采集方,并且负责将数据发送给接收方。正好最近在下雪,撑着雪还没融尽,把传感器放到窗台上试试效果(图2)。为了观察温度的变化,此后再将传感器放置到暖气片上(图3)。 Fig2:感知寒冷的TelosB & Fig3:感知温暖的TelosB 然后看一下返回的数据情况(图4、图5)。 包含各类专业文献、中学教育、应用写作文书、高等教育、文学作品欣赏、行业资料、生活休闲娱乐、17TinyOS下编写简单的温度检测程序等内容。 
 本章简单介绍 TinyOS 的基本概念和其编写语言:nesC...所以在一定竞争情况下,nesC 程序 是很容易受到影响,...它可选择地安装的湿度、温度和光线感应器。Telos ...  温度、湿度、噪声、 光强度、压力、土壤成分、移动...只有少数例子 在 TinyOS 中没有,已编写了尽量简短...1.7 检测软件安装情况安装完 TinyOS 等软件包之后,...  例如温度,然后等温度读取完毕之后,系统返回一个 read...其中包括我们自己 编写的 BlinkC 模块。还有负责提供...TinyOS NesC小结 9页 1下载券 TinyOS、NesC程序开发...  Tinyos 调度机制 TinyOS 中的调度机制比较简单,它仅...的程序时 也可以接收到数据但接收到的数据没有编写...命令进入到 /tmp 路径下, 使用 ls 命令可以查看...  (hardware event handler)的,在编译时会检测数据争...在这个例子中,一般: 提供简单的接口实例类型 Std...一边编写程序,同时要了解一下 TinyOS 这一 操作系统...  Application */ Sense 是一个简单的感应实例程序。她...查看 tinyos-2.x/doc/html/tutorial/lesson5.html...“温度数据是被解释成(interpreted in)摄 氏度还是...  实验2用C语言编写简单程序_其它_高等教育_教育专区。...在窗口下方的“信息查看栏”中,出现了编译错误信息,...计算公式如下,其中:c 表示摄氏温度,f 表示华氏 ...  温度检测与控制程序框图 、编写温度检测与 三、设计...空闲模式下,CPU停止工作,允许RAM、定时器/计数器、...内部的温度情况; 3) 不需专业的知识,操作简单; 4...  1下载券 单片机频率温度检测系统... 31页 2下载券...计软件程序,画主程序,子程序流程图,编写 程序清单...并且可根据实际要求通过简单的编程实现 9~12 位的...JAVA题:编写一个能够转换华氏温度和摄氏温度的程序。在“摄氏温度”文本域输入一个值并点击华氏按钮(两_百度知道
JAVA题:编写一个能够转换华氏温度和摄氏温度的程序。在“摄氏温度”文本域输入一个值并点击华氏按钮(两
import&java.awt.Cimport&java.awt.event.ActionEimport&java.awt.event.ActionLimport&javax.swing.JBimport&javax.swing.JFimport&javax.swing.JTextFpublic&class&TemperatureFrame&extends&JFrame&implements&ActionListener&{&&&&private&JButton&transformFButton&=&new&JButton(&摄氏转华氏&);&&&&private&JButton&transformCButton&=&new&JButton(&华氏转摄氏&);&&&&private&JTextField&fTextField&=&new&JTextField();&&&&private&JTextField&cTextField&=&new&JTextField();&&&&float&c,&f;&&&&public&TemperatureFrame()&{&&&&&&&&super(&华氏温度摄氏温度转换&);&&&&&&&&try&{&&&&&&&&&&&&init();&&&&&&&&}&catch&(Exception&e)&{&&&&&&&&&&&&e.printStackTrace();&&&&&&&&}&&&&}&&&&private&void&init()&{&&&&&&&&fTextField.setBounds(10,&30,&100,&25);&&&&&&&&cTextField.setBounds(130,&30,&100,&25);&&&&&&&&transformCButton.setBounds(10,&58,&100,&25);&&&&&&&&transformFButton.setBounds(130,&58,&100,&25);&&&&&&&&transformCButton.addActionListener(this);&&&&&&&&transformFButton.addActionListener(this);&&&&&&&&Container&c&=&getContentPane();&&&&&&&&c.add(fTextField);&&&&&&&&c.add(cTextField);&&&&&&&&c.add(transformCButton);&&&&&&&&c.add(transformFButton);&&&&&&&&c.setLayout(null);&&&&&&&&this.setSize(250,&150);&&&&&&&&this.setResizable(false);&&&&&&&&this.setLocationRelativeTo(null);&&&&&&&&this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&&&&&&&&this.setVisible(true);&&&&}&&&&public&static&void&main(String[]&args)&{&&&&&&&&new&TemperatureFrame();&&&&}&&&&public&void&actionPerformed(ActionEvent&e)&{&&&&&&&&//华氏温度F与摄氏度C&&&&&&&&//F=&C*&9/5&+&32&&&&&&&&//C=(F-32)*5/9&&&&&&&&if&(e.getSource()&==&transformFButton)&{&&&&&&&&&&&&try&{&&&&&&&&&&&&&&&&c&=&Float.parseFloat(cTextField.getText());&&&&&&&&&&&&&&&&f&=&c&*&9&/&5&+&32;&&&&&&&&&&&&&&&&fTextField.setText(String.valueOf(f));&&&&&&&&&&&&}&catch&(Exception&ex)&{&&&&&&&&&&&&&&&&ex.printStackTrace();&&&&&&&&&&&&}&&&&&&&&}&&&&&&&&if&(e.getSource()&==&transformCButton)&{&&&&&&&&&&&&try&{&&&&&&&&&&&&&&&&f&=&Float.parseFloat(fTextField.getText());&&&&&&&&&&&&&&&&c&=&(f&-&32)&*&5&/&9;&&&&&&&&&&&&&&&&cTextField.setText(String.valueOf(c));&&&&&&&&&&&&}&catch&(Exception&ex)&{&&&&&&&&&&&&&&&&ex.printStackTrace();&&&&&&&&&&&&}&&&&&&&&}&&&&}}
其他类似问题
为您推荐:
将华氏温度转换成摄氏温度的Java程序如下:import java.util.Spublic class Fahrenheit { public static void main (String []args) {
Scanner input =new Scanner(System.in);
System.out.print(&Enter a degree in Fahrenehit: &);
int Fahrenehit= input.nextInt();
int Celsius= (int)((Fahrenehit-32)*(5.0/9));
System.out.println(Fahrenehit + & Fahrenehit is &+ Celsius + & Celsius&); }}运行结果:Enter a degree in Fahrenehit: 5050 Fahrenehit is 10 Celsius
有转换的算法有嘛?
华氏温度的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言编写的小程序 的文章

 

随机推荐