下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
搭建可燃气体监测系统——程序开发新建工作区、工程和源文件,并对工程进行相应的配置搭建可燃气体监测系统——程序开发搭建可燃气体监测系统——程序开发/*包含头文件*/#include"ioCC2530.h"#include<stdio.h>#defineLED1P1_0//P1_0定义为P1_0led灯端口#defineuint16unsignedshort#defineuint32unsignedlongunsignedcharSprintfAsciiResult[20];//存放转换后的ASCII字符串unsignedcharProtocolBuff[9];//推送到网关的协议帧uint16counter=0;//统计溢出次数unsignedcharAsciiStr[8];//定义一个数组大小为8unsignedcharCHK(unsignedchar*buf,intlen);voidInitLED(){P1SEL&=~0x01;P1DIR|=0x01;LED1=0;}voidadc_Init(void){APCFG|=0x01;//使能P0模拟外设功能,指定P0_0P0SEL|=0x01; //设置P0_0为外设口
P0DIR&=~0x01; //设置p0_0为输入口}/*************************************************************名称get_adc*功能读取ADC通道0电压值*入口参数无*出口参数16位电压值,分辨率为10mV***************获取ADC通道0电压值************************/uint16get_adc(void){ uint32value; ADCIF=0;//清ADC中断标志ADCCON3=0x90;while(!ADCIF);value=ADCH;value=value<<8;value|=ADCL;value=(value*330);//返回分辨率为10mV的电压值
value=value>>15;//除以32768return(uint16)value;}/**********串口通信初始化************************/voidinitUART0(void){ PERCFG&=~0x01; P0SEL=0x3c; //由考生设置串口相关参数,要求波特率115200U0CSR|=0x80;U0BAUD=216;U0GCR=11;U0UCR|=0x80;
UTX0IF=0;//清零UART0TX中断标志
EA=1;//使能全局中断}/**************************************************函数名称:initTimer1*功能:初始化定时器T1控制状态寄存器******************定时器初始化*****************************/voidinitTimer1(){CLKCONCMD&=0x80;T1CTL|=0x0E;T1CCTL0|=0x04;T1CC0L=50000&0x00ff;T1CC0H=(50000&0xff00)>>8;T1IF=0;//清除timer1中断标志(同IRCON&=~0x02)T1STAT&=~0x01;//清除通道0中断标志
TIMIF&=~0x40;//不产生定时器1的溢出中断
//定时器1的通道0的中断使能T1CCTL0.IM默认使能
IEN1|=0x02;//使能定时器1的中断
EA=1;//使能全局中断}/**************单片机发送协议帧数据到串口******************/voidUART0SendData(unsignedchar*str,intlen){for(inti=0;i<=len;i++){U0DBUF=str[i];//将要发送的1字节数据写入U0DBUFwhile(!UTX0IF);//等待TX中断标志,即U0DBUF就绪
UTX0IF=0;//清零TX中断标志UART0SendByte(*str++);}}/**************构建发送电压值到物联网网关的协议帧******************/voidBuildProtocolFrame(uint16voltage){ProtocolBuff[0]=0xDD;ProtocolBuff[1]=0x03;ProtocolBuff[2]=0x00;ProtocolBuff[3]=0x01;ProtocolBuff[4]=0x09;ProtocolBuff[5]=0x04;ProtocolBuff[6]=voltage>>8;ProtocolBuff[7]=voltage&0xFF;ProtocolBuff[8]=CHK(ProtocolBuff,8);}/**************和校验函数******************/unsignedcharCHK(unsignedchar*buf,intlen){unsignedcharRX_CHX=0;while(len--){RX_CHX+=*buf;buf++;}returnRX_CHX&=0xff;}/**************获取电压值并处理数据******************/voidGet_AsciiValue(){uint16sensor_val;sensor_val=get_adc();AsciiStr[0]=sensor_val/100+'0';AsciiStr[1]='.';AsciiStr[2]=sensor_val/10%10+'0';AsciiStr[3]=sensor_val%10+'0';AsciiStr[4]='V';AsciiStr[5]='\n';}/*******************************************功能:定时器T1中断服务子程序************************************/#pragmavector=T1_VECTOR//中断服务子程序__interruptvoidT1_ISR(void){ EA=0;//禁止全局中断
counter++; T1STAT&=~0x01;//清除通道0中断标志
EA=1;//使能全局中断}//LED1闪烁时间延迟voiddelay(inttime){for(inti=0;i<=time;i++){for(intj=0;j<=240;j++);}}/*******************************************函数名称:main*功能:main函数入口*入口参数:无*出口参数:无*返回值:无**************************************************/voidmain(void){InitLED();initTimer1();//初始化Timer1initUART0();//UART0初始化
adc_Init();//ADC初始化
while(1) { if(counter>=10)//定时器每0.2S溢出中断计次
{ counter=0;//清标志位
LED1=1;//指示灯点亮
Get_AsciiValue();#ifdefdebugsprintf(SprintfAsciiResult,"传感器电压值:%s",AsciiStr);UART0SendData(SprintfAsciiResult,s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年珠海市金湾区基层服务岗位招募笔试真题
- 2023年温州市瓯新资管服务有限公司招聘笔试真题
- 2023年普定县招聘城市社区工作者笔试真题
- 2023年湖北武汉洪山区招聘社区干事笔试真题
- 2023年安义县自然资源和规划局招聘笔试真题
- 2024年天津客运员考试题目及答案
- 人才招聘行业发展现状及潜力分析研究报告
- 2024年武汉客运考试模拟
- 2024年浙江客运安全员考试题库
- 2024年玉林客运从业资格证考试培训试题和答案
- 硬笔书法练习纸 米字格
- 一体化手术室比较表
- 国华电力班组建设与管理模式
- 康宽产品介绍
- [2002]1980号-招标代理收费标准
- 宝钢技术创新战略分析
- 浅谈习题课的讲评策略
- 木门及门套专项施工方案
- C反应蛋白的临床应用研究进展
- 房屋委托看护协议.doc
- 二年级作文之二年级古诗文诵读串词
评论
0/150
提交评论