




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于CAN总线的温湿度及光感度测量摘要随着我国工业生产的发展和自动化程度的不断提高,迫切需要对各种生产过程中的物理量进行精确检测。温度、湿度作为大多数生产过程中的重要物理量,对它们的精确检测和远传越来越受到人们重视。因此,研制一种高精度、高稳定性、低成本的温湿度仪表将具有重要意义,必将拥有广阔的市场前景。同时,由于工业现场对抗电磁干扰和传输距离有比较高的要求,所以本文设计了一种基于CANCONTROLAREANETWORK局域网控制总线的远程实时温湿度数据采集系统。该系统主要由两大模块构成,分别是数据现场采集模块、和显示处理模块。本设计使用C语言进行了各个模块软件的设计,完成对传感器信号的处理和CAN模块报文的发送和接收。关键词430CANDHT11温湿度光感度1设计方案论证11主控芯片选择(1)用可编程逻辑器件设计。可采用ALTERA公司的FLEX10K系列PLD器件。设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。从成本上来讲,用可编程逻辑器件来设计也没有什么优势。(2)用MSP430F149作主控芯片,编程简单,功能丰富,速度很快,功耗很低。因此选择430作为数据采集和显示处理的主控芯片。2显示部分的方案选择(1)数码管显示方式采用八段数码管经济实惠,亮度高,对比度高,显示清晰;但操作很复杂,占用很多CPU时间。(2)液晶显示方式液晶显示效果出众,操作简单,输入完显示信息后不占用CPU时间,显示容量也大,因此采用1602液晶显示器。3传感器选择(1)采用DS18B20数字温度传感器,精度高,灵敏度高;但不能采集湿度信息;(2)采用DHT11数字温度传感器,可同时测量温度和湿度,精度和灵敏度,转换速度也都能满足本次系统要求,而且DHT11采用单总线通信模式,占用IO口少。因此选用DHT11数字温湿度传感器。2系统设计采用MSP430F149作为数据采集和接收处理显示模块的主控芯片,430和各种传感器通信读出各种测量参数,通过CAN控制器将信息发送到CAN总线上;数据接收模块从CAN总线上读取各种信息并通过显示模块显示出来。传感器数据采集数据接收显示模块CAN总线图1远程温湿度数据采集3单元电路设计31温湿度采集系统DHT11数字温湿度传感器BH1750FVI环境光强度传感器MSP430F149SJA1000CAN控制器TJAL050收发器CANBUS图2远程温湿度数据采集模块由图2所示,温湿度数据采集模块的硬件由以下四部分构成传感器DHT11,微控制器MSP430F149,CAN控制器和CAN收发器。微控制器MSP430F149主要负责对传感器输出的两路模拟信号进行循环采集并AD转换,SJAL000的初始化,通过控制JAL000实现数据的发送和接收。SJAL000负责数据链路层的工作,把发送缓冲器的数据经过处理后送到TJAL050,信息经过处理后放到接收缓冲器等待微处理器的读取。TJA1050提供SJA1000与物理总线之间的接口。32数据处理显示模块SJA1000CAN控制器TJAL050收发器CANBUS图3数据接收处理显示模块MSP430F149ENC/SR/W1602液晶显示器如图3所示TJA1050收发器将信号差分放大去除噪声后送给SJA1000控制器,控制器将接到的报文处理后提取数据给430,430将数据显示到1602显示器上。4系统功能本文设计的系统能实时测量远程温湿度及光强度。测量范围温度050,湿度2090RH,光强1LX65535LX;分辨率温度1,湿度/2,光强1LX;测量距离1KM5程序模块流程图开始初始化系统初始化SJA1000是否中断接收一个字节数据转存开始初始化系统初始化SJA1000是否发完发送一个字节图4数据接收模块程序流程图图5数据发送模块程序流程图参考文献1李正军编著现场总线及其应用技术M北京机械工业出版社200512任广永等基于AT89C55和CAN总线的远程数据采集系统的设计J电脑学习200723潘琢金,施国君C8051FXXX高速SOC单片机原理及应用M北京北京航空航天大学出版社20024吴文珍,韩玉祥,司光宇等基于CAN总线智能检测仪的设计D大庆石油学院学报2005,2955SJAL000独立CAN控制器数据手册广州周立功单片机发展有限公司心得体会谢广昊通过此次毕业设计,使我更加扎实的掌握了有关CAN总线方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在毕业设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次毕业设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可马少波我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。回顾起此毕业设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次毕业设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。张巨龙回顾起此次单片机毕业设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次毕业设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题。最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢附录一元件清单器件数量MSP430F149芯片2SAJ1000CAN控制器2BH1750光强度传感器1DHT11温湿度传感器11602液晶显示器1排线5840排针5840电阻2K4红色发光二级管4BUTTON(复位开关)2附录二系统程序清单MAINCINCLUDEINCLUDE“SJA1000H“INCLUDE“DHT11H“INCLUDE“BH1750H“INCLUDE“IICH“/精确延时DEFINECPU_FDOUBLE8000000DEFINEDELAY_USX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000000DEFINEDELAY_MSX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000/DEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHARDEFINERCV_FLAG0X01/接收中断标志DEFINEERR_FLAG0X02/错误中断标志DEFINEOVER_FLAG0X04/CAN总线超载标志VOIDINIT_BH1750/BH1750初始化VOIDSJA_PROCESSVOIDVOIDINIT_CPUVOID/初始化MSP430UCHARSEND_FLAG0/CAN总线发送标志UNSIGNEDCHARCAN_INT_DATA0/用于存储SJA1000的中断寄存器数据,430中不能位寻址/UCHARRCV_DATA10/接收数据数组/VOIDMAINVOIDWDTCTLWDTPWWDTHOLD/STOPWATCHDOGTIMERTOPREVENTTIMEOUTRESETUCHARSJA_STATUSINIT_CPU/初始化MSP430INIT_BH1750/初始化BH1750DODELAY_MS10/小延时SJA_STATUSINIT_SJA1000WHILESJA_STATUS/初始化SJA1000CAN_INT_DATA0/CAN中断变量清零DELAY_MS1000_EINT/开总中断WHILE1UCHARREAD_BUF20,0/读回BH1750数据变量READ_TRH/读取温湿度传感器DELAY_MS120READ_1BYTE_CURRENTADDRESSREAD_BUF/读回BH1750数据SEND_DATA6READ_BUF0SEND_DATA7READ_BUF1SEND_FLAG1SJA_PROCESS/SJA最终处理/函数原型VOIDINIT_BH1750函数功能BH1750初始化/VOIDINIT_BH1750WRITE_1BYTE0X01/通电,等待测量指令WRITE_1BYTE0X07/通电后,重置数字寄存器WRITE_1BYTE0X10/连续H分辨率模式/函数功能SJA_1000最终处理函数/VOIDSJA_PROCESSVOIDIFCAN_INT_DATA/清除接收标志位SJA_RCV_DATARCV_DATA/接收CAN总线数据到RCV_DATA数组IFSEND_FLAG/发送中断SEND_FLAG0/清除发送标志位SJA_SEND_DATASEND_DATA/把SEND_DATA数组中数据写入到发送缓冲区IFCAN_INT_DATA/清除溢出标志位CAN_DATA_OVERIFCAN_INT_DATA/清除错误标志位CAN_ERROR/函数功能初始化MSP430/VOIDINIT_CPUVOID/下面六行程序关闭所有的IO口/P1DIR0XFFP1OUT0XFFP2DIR0XFFP2OUT0XFFP3DIR0XFFP3OUT0XFFP4DIR0XFFP4OUT0XFFP5DIR0XFFP5OUT0XFFP6DIR0XFFP6OUT0XFF/P6DIR|BIT2P6OUT/打开电平转换/P2DIR|BIT3P2OUT/电平转换方向33V5V/P17外部中断/P1DIR/设置P17为输入P1IES|BIT7/设置为下降沿中断P1IE|BIT7/允许P17中断/切换时钟/UNSIGNEDINTJBCSCTL1/XT2ON,MAXRSELDOIFG1FORJ0XFFJ0JWHILEIFG1BCSCTL2|SELSDIVS_0/SMCLKXT2SMCLK8MHZBCSCTL2|SELM_2DIVM_0/MCLKXT2MCLK8MHZ/定时器设置/TACCTL0CCIE/使能CCR0中断CCR02048/设定周期1STACTLTASSEL_1ID_3MC_1/定时器A的时钟源选择ACLK,增计数模式_EINT/开总中断/PRAGMAVECTORPORT1_VECTOR/P1口中断源_INTERRUPTVOIDP1_ISRVOID/中断名P1_ISRVOIDIFP1IFGP1IFG0SJA1000CINCLUDEINCLUDE“SJA1000H“/精确延时DEFINECPU_FDOUBLE8000000DEFINEDELAY_USX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000000DEFINEDELAY_MSX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000/UCHARSEND_DATA10/发送数据数组/函数原型UNSIGNEDCHARREAD_REGUNSIGNEDCHARREG函数功能读取SJA1000寄存器中的值参数说明REG寄存器地址/UNSIGNEDCHARREAD_REGUNSIGNEDCHARREGUNSIGNEDCHARREG_DATAC_ALES_RDS_WRS_CSS_ALE_NOPPORTDIR0XFF/P2OUT/电平转换方向33V5VPORTOUTREG_NOPC_ALE_NOPC_CS_NOPC_RD_NOP_NOP/P2OUT|BIT3/电平转换方向5V33VPORTDIR0X00REG_DATAPORTINS_RD_NOPS_CSRETURNREG_DATA/函数原型VOIDWRITE_REGUNSIGNEDCHARREG,UNSIGNEDCHARREG_DATA函数功能向SJA1000寄存器中写值参数说明REG寄存器地址REG_DATA要写入的值/VOIDWRITE_REGUNSIGNEDCHARREG,UNSIGNEDCHARREG_DATAC_ALES_CSS_RDS_WRS_ALE_NOP/P2OUT/电平转换方向33V5VPORTDIR0XFFPORTOUTREG_NOPC_ALE_NOPC_CS_NOPC_WR_NOPPORTOUTREG_DATA_NOP_NOPS_WR_NOPS_CS_NOP_NOPS_ALE/函数原型CHARCREATE_COMMUNICATIONVOID函数功能用于SJA1000在复位模式下,检测CAN控制器SJA1000的通信是否正常,只用于产品的测试,如果在正常模式下使用这个寄存器进行测试,将导致设备不可预测的结果。返回值说明0表示SJA1000建立通信正常1表示SJA1000与处理器通信异常/CHARCREATE_COMMUNICATIONVOIDWRITE_REGTEST,0XAA/向TEST寄存器中写入0XAAIFREAD_REGTEST0XAARETURN0/读测试正确ELSERETURN1/函数原型CHARENTER_RSTVOID函数功能用于SJA1000进入复位工作模式返回值说明0表示SJA1000成功进入复位工作模式1表示SJA1000进入复位模式失败/CHARENTER_RSTVOIDUNSIGNEDCHARMID_DATA/定义一个字节变量,用于存储从SJA1000控制寄存器读出的数据MID_DATAREAD_REGCONTROL/访问SJA1000控制寄存器,保存原始值WRITE_REGCONTROL,MID_DATA|0X01/置位复位请求IFREAD_REGCONTROL/表示SJA1000成功进入复位工作模式ELSERETURN1/函数原型CHARQUIT_RSTVOID函数功能用于SJA1000退出复位工作模式返回值说明0表示SJA1000成功退出复位工作模式1表示SJA1000退出复位模式失败/CHARQUIT_RSTVOIDUNSIGNEDCHARMID_DATA/定义一个字节变量,用于存储从SJA1000控制寄存器读出的数据MID_DATAREAD_REGCONTROL/访问SJA1000控制寄存器,保存原始值WRITE_REGCONTROL,MID_DATA/置位复位请求IFREAD_REGCONTROL/0表示SJA1000成功退出复位工作模式ELSERETURN1/函数原型CHARSET_RATEUNSIGNENCHARCAN_RATE_NUM函数功能用于设置CAN总线的通信波特率,只能在SJA1000进入复位模式下使用参数说明参数CAN_RATE_NUM用于存放CAN通信波特率的数组列表中的系列号,范围为012返回值说明0波特率设置成功1波特率设置失败/UNSIGNEDCHARRATE_TAB0X53,0X2F,/20KBIT/S的波特率预设值0X87,0XFF,/40KBIT/S0X47,0X2F,/50KBIT/S0X83,0XFF,/80KBIT/S0X43,0X2F,/100KBIT/S0X03,0X1C,/125KBIT/S0X81,0XFA,/200KBIT/S0X01,0X1C,/250KBIT/S0X80,0XFA,/400KBIT/S0X00,0X1C,/500KBIT/S0X80,0XB6,/666KBIT/S0X00,0X16,/800KBIT/S0X00,0X14/1000KBIT/S/CHARSET_RATEUNSIGNEDCHARCAN_RATE_NUMCHARWRONG_FLAG1UNSIGNEDCHARBIT0_DATA,BIT1_DATA/用于存放从波特率数组中读出来的数值UNSIGNEDCHARWRONG_COUNT32/32次报错次数IFCAN_RATE_NUM12/设置数组列表中的序列号范围为012WRONG_FLAG1/如果超出范围,报警,波特率设置失败ELSEWHILEWRONG_COUNT/最多32次设置SJA1000内部寄存器BIT0和BIT1BIT0_DATARATE_TABCAN_RATE_NUM2BIT1_DATARATE_TABCAN_RATE_NUM21/将波特率的设置值从数组中读出WRITE_REGBIT_0,BIT0_DATA/访问CAN总线定时寄存器0,写入参数IFREAD_REGBIT_0BIT0_DATACONTINUE/校验写入值WRITE_REGBIT_1,BIT1_DATA/访问CAN总线定时寄存器1,写入参数IFREAD_REGBIT_1BIT1_DATACONTINUE/校验写入值WRONG_FLAG0BREAK/WHILE结束RETURNWRONG_FLAG/函数原型CHARSET_ACR_AMRUNSIGNENCHARACR_DATA,UNSIGNENCHARAMR_DATA函数功能用于设置验收代码寄存器(ACR),屏蔽寄存器(AMR)只能在SJA1000进入复位模式下使用参数说明ACR_DATA用于存放验收代码寄存器(ACR)的参数值AMR_DATA用于存放验收代码寄存器(AMR)的参数值返回值说明0通信对象设置成功1通信对象置失败/CHARSET_ACR_AMRUNSIGNEDCHARACR_DATA,UNSIGNEDCHARAMR_DATA/滤波器设计WRITE_REGACR,ACR_DATA/访问CAN总线验收代码寄存器,写入参数IFREAD_REGACRACR_DATA/校验写入值RETURN1WRITE_REGAMR,AMR_DATA/访问CAN总线验收代码寄存器,写入参数IFREAD_REGAMRAMR_DATA/校验写入值RETURN1RETURN0/函数原型CHARSET_CLKUNSIGNEDCHARSJA_OUT_MODE,UNSIGNEDCHARSJA_CLOCK_OUT函数功能用于设置输出寄存器(OCR)的参数、时钟分频寄存器(CDR)的参数,只能在SJA1000进入复位模式下使用参数说明SJA_OUT_MODE用于存放输出寄存器(OC)的参数SJA_CLOCK_OUT用于存放时钟分频寄存器(CDR)的参数返回值说明0设置(OCR)和(CDR)寄存器成功1设置(OCR)和(CDR)寄存器失败/CHARSET_CLKUNSIGNEDCHARSJA_OUT_MODE,UNSIGNEDCHARSJA_CLOCK_OUTWRITE_REGOCR,SJA_OUT_MODE/访问输出控制寄存器,写入设置的OCR参数值IFREAD_REGOCRSJA_OUT_MODE/校验写入值RETURN1WRITE_REGCDR,SJA_CLOCK_OUT/访问输出控制寄存器,写入设置的CDR参数值/IFREAD_REGCDRSJA_CLOCK_OUT/校验写入值/RETURN1RETURN0/函数原型CHARSJA_SEND_DATAUNSIGNEDCHARSENDDATABUF函数功能用于发送CAN总线一帧数据(数据帧或远程帧)到SJA1000的发送缓冲区,数据帧长度不大于8字节参数说明SENDDATABUF指向的用于存放发送数据的数组的首址返回值说明0将发送数组的数据成功送至SJA1000的发送区1SJA1000正在接收信息,或SJA1000的发送缓冲区被锁定,或上一次发送的一帧数据还没有完成发送/CHARSJA_SEND_DATAUNSIGNEDCHARSENDDATABUF/GAIUNSIGNEDCHARSEND_NUM,STATUS_DATAUNSIGNEDCHARISTATUS_DATAREAD_REGSTATUS/读取状态寄存器数值到STATUS_DATAIFSTATUS_DATA/STATUS_DATA4,表示SJA1000在接收信息IFSTATUS_DATAIFSTATUS_DATASENDDATABUF00XACSENDDATABUF10X06WRITE_REGTXBUFFER1,SENDDATABUF0WRITE_REGTXBUFFER2,SENDDATABUF1IFSENDDATABUF1/是数据帧,则取一帧CAN数据的第2字节的低4位,/计算得出发送数据的长度IFSEND_NUM8/发送最大长度为8个字节SEND_NUM8FORI0I8RCV_NUM8FORI0IINCLUDE“DHT11H“INCLUDE“SJA1000H“/精确延时DEFINECPU_FDOUBLE8000000DEFINEDELAY_USX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000000DEFINEDELAY_MSX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000/DEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHARDEFINEDHT11_OUTPUTP3DIR|BIT5DEFINEDHT11_INPUTP3DIRUCHARTEMPH_R,TEMPL_R,HUMDH_R,HUMDL_R,CHECK,CALUCHARCOM_DATA0/函数原型VOIDREAD_TRHVOID函数功能与DHT建立通讯/VOIDREAD_TRHVOIDUCHARRESPOND0DHT11_OUTPUT/设置P20输出DHT11_H/输出高DELAY_US10DHT11_LDELAY_US2000DHT11_HDELAY_US30/DATA总线由上拉电阻拉高主机延时20USDHT11_INPUTDELAY_US60/此时P20应该为低IFDHT11_INRESPOND2/判断DHT11发出80US的低电平响应信号是否结束WHILEDHT11_INRESPOND2/判断从机是否发出80US的高电平,如发出则进入数据接收状态WHILEDHT11_IN/数据接收状态HUMDH_RRECEIVE/湿度高8位HUMDL_RRECEIVE/湿度低8位TEMPH_RRECEIVE/温度高8位TEMPL_RRECEIVE/温度高8位CHECKRECEIVE/校验位DELAY_US50/一次采集数据结束,等待从机拉低50USDHT11_OUTPUT/设置P20输出DHT11_H/P20输出高,释放总线IFCHECKHUMDH_RHUMDL_RTEMPH_RTEMPL_RSEND_DATA2HUMDH_R/湿度高8位SEND_DATA3HUMDL_R/湿度低8位SEND_DATA4TEMPH_R/温度高8位SEND_DATA5TEMPL_R/温度低8位/函数原型CHARRECEIVEVOID函数功能接收DHT数据/UCHARRECEIVEVOID/接收DHT数据UCHARTEMP,CNT0FORCNT0CNTINCLUDE“IICH“DEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHARDEFINESCL_HP3OUT|BIT6DEFINESCL_LP3OUTSCL_HSDA_H/函数名称DELAY功能延时约15US的时间参数无返回值无/VOIDDELAYVOIDUCHARIFORI0I0IIFWDATAELSEWRITE0WDATAINCLUDE“SJA1000H“INCLUDE“CRY1602H“/精确延时DEFINECPU_FDOUBLE8000000DEFINEDELAY_USX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000000DEFINEDELAY_MSX_DELAY_CYCLESLONGCPU_FDOUBLEX/10000/DEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHARDEFINERCV_FLAG0X01/接收中断标志DEFINEERR_FLAG0X04/错误中断标志DEFINEOVER_FLAG0X08/CAN总线超载标志VOIDINIT_CPUVOID/初始化MSP430CHARINIT_SJA1000VOID/初始化SJA1000VOIDCAN_ERROR/CAN总线错误中断处理VOIDCAN_DATA_OVER/CAN总线溢出中断处理VOIDCAN_DATA_RCV/接收CAN总线数据到RCV_DATA数组VOIDCAN_DATA_SEND/通过CAN总线发送SEND_DATA数组中的数据VOIDSJA_PROCESSVOIDVOIDBH1750_CONVERSIONUCHARTEMP_DATA2/数据转换出个,十,百,千,万VOIDINIT_DISPLAYVOID/显示单位UCHARSEND_FLAG0/CAN总线发送标志UNSIGNEDCHARCAN_INT_DATA0/用于存储SJA1000的中断寄存器数据,430中不能位寻址/UINTGE,SHI,BAI,QIAN,WAN/显示变量/VOIDMAINVOIDUCHARREAD_BUF21,2/读回BH1750数据变量UCHARSENSOR_DATA8/温湿度数据INIT_CPU/初始化MSP430INIT_DISPLAYUCHARSJA_STATUSDODELAY_MS20/小延时SJA_STATUSINIT_SJA1000WHILESJA_STATUS/初始化SJA1000CAN_INT_DATA0/CAN中断变量清零/_EINT/开总中断WHILE1SJA_PROCESSREAD_BUF0RCV_DATA6READ_BUF1RCV_DATA7BH1750_CONVERSIONREAD_BUF/数据转换出个,十,百,千,万DISP1CHAR3,1,WANDISP1CHAR4,1,QIANDISP1CHAR5,1,BAIDISP1CHAR6,1,SHIDISP1CHAR7,1,GESENSOR_DATA0CHAR0X30RCV_DATA2/10/湿度整数部分SENSOR_DATA1CHAR0X30RCV_DATA210SENSOR_DATA2CHAR0X30RCV_DATA3/10/SENSOR_DATA3CHAR0X30RCV_DATA310SENSOR_DATA4CHAR0X30RCV_DATA4/10/温度整数部分SENSOR_DATA5CHAR0X30RCV_DATA410SENSOR_DATA6CHAR0X30RCV_DATA5/10/SENSOR_DATA7CHAR0X30RCV_DATA510DISP1CHAR0,0,SENSOR_DATA0/显示湿度DISP1CHAR1,0,SENSOR_DATA1DISP1CHAR3,0,SENSOR_DATA2DISP1CHAR9,0,SENSOR_DATA4/显示温度DISP1CHAR10,0,SENSOR_DATA5DISP1CHAR12,0,SENSOR_DATA6/函数原型VOIDINIT_DISPLAYVOID函数功能LCD_1603显示初始字符/VOIDINIT_DISPLAYVOIDDISP1CHAR2,0,0X2E/小数点DISP1CHAR4,0,0X25/“DISP1CHAR5,0,0X52/“R“DISP1CHAR6,0,0X48/“H“DISP1CHAR11,0,0X2E/小数点DISP1CHAR13,0,0XDF/ODISP1CHAR14,0,0X43/CDISP1CHAR8,1,0X6C/LDISP1CHAR9,1,0X78/X/函数原型BH1750_CONVERSIONUINTTEMP_DATA2函数功能BH1750数据转换/VOIDBH1750_CONVERSIONUCHARTEMP_DATA2/数据转换出个,十,百,千,万UINTDIS_DATA/变量DIS_DATATEMP_DATA0DIS_DATADIS_DATA5VLCDRESET/初始化LCD1602/P17外部中断/P1DIR/设置P27为输入P1IES|BIT7/设置为下降沿中断P1IE|BIT7/允许P27中断/切换时钟/UNSIGNEDINTJBCSCTL1/XT2ON,MAXRSELDOIFG1FORJ0XFFJ0JWHILEIFG1BCSCTL2|SELSDIVS_0/SMCLKXT2SMCLK8MHZBCSCTL2|SELM_2DIVM_0/MCLKXT2MCLK8MHZ/定时器设置/TACCTL0CCIE/使能CCR0中断/CCR04096/设定周期1S/TACTLTASSEL_1ID_3MC_1/定时器A的时钟源选择ACLK,增计数模式/PRAGMAVECTORPORT1_VECTOR/P1口中断源_INTERRUPTVOIDP1_ISRVOID/中断名P1_ISRVOIDIFP1IFGP1IFG0CRY1602CINCLUDEINCLUDE“CRY1602H“TYPEDEFUNSIGNEDCHARUCHARTYPEDEFUNSIGNEDINTUINT/宏定义/DEFINEDATADIRP4DIRDEFINEDATAPORTP4OUTDEFINEBUSY0X80DEFINECTRLDIRP3DIRDEFINECLR_RSP3OUT/RSP30DEFINESET_RSP3OUT|BIT0DEFINECLR_RWP3OUT/RWP31DEFINESET_RWP3OUT|BIT1DEFINECLR_ENP3OUT/ENP32DEFINESET_ENP3OUT|BIT2/函数名称DISPNCHAR功能让液晶从某个位置起连续显示N个字符参数X位置的列坐标Y位置的行坐标N字符个数PTR指向字符存放位置的指针返回值无/VOIDDISPNCHARUCHARX,UCHARY,UCHARN,UCHARPTRUCHARIFORI0INIDISP1CHARX,Y,PTRIIFX0X0FX0Y1/函数名称LOCATEXY功能向液晶输入显示字符位置的坐标信息参数X位置的列坐标Y位置的行坐标返回值无/VOIDLOCATEXYUCHARX,UCHARYUCHARTEMPTEMPXYIFYTEMP|0X40/如果在第2行TEMP|0X80LCDWRITECOMMAND
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电商代理佣金结算及财务管理合同
- 车辆无偿租赁及保养服务合同
- 光电治疗后的护理
- 车辆抵押担保汽车维修保养服务合同
- 供应链金融财务担保合同负债风险控制与合规操作协议
- 高端餐厅租赁合同范本包含租金支付方式
- 草原生态补偿与承包合作合同范本
- 车辆抵押贷款车辆保险代缴合同
- 高端商务区商铺出售及十年包租合作协议范本
- 成都市中心高端商铺租赁及品牌形象打造合同
- 四川省巴中市2023-2024学年七年级下学期期末生物试题
- 国家开放大学电大《11846商法》期末终考题库及答案
- 2024成都语文中考试题研究备考 第五部分 古诗文阅读 教材文言文考点讲解-写景篇【课件】
- 涉企行政执法自查报告市场监管
- 《化工和危险化学品生产经营单位重大生产安全事故隐患判定标准(试行)》解读课件
- 人工造雪技术培训课件
- 国家开放大学《Python语言基础》实验4:条件分支结构基本应用参考答案
- 北京市海淀区2022-2023学年三年级下学期数学期末考试试卷
- 根据中国非遗书法从保护的角度讨论中国书法
- 漏电检测报告
- 安全风险防控培训课件
评论
0/150
提交评论