基于msp430g2553和ds18b20的测温系统内容摘要:

源蜂鸣器驱动需要 130mA,所以就要加 9012NPN 三极管来获得大电流。 9012 的常温最大输出 500mA 电流。 6 本设计的不足和反思 最为一个温度监控系统,应该加上按钮,当温度异常,蜂鸣器 报警时,按下复位按钮,蜂鸣器停止报警,但是红灯继续闪烁。 当故障排除后,红灯灭,系统恢复正常。 如果一分钟后故障没有排除,蜂鸣器再次报警。 检测的实时温度应该通过 UART 上传到上位机,记录下来。 12 参 考 文 献 [1] 胡大可 . MSP430系列超低功耗 16位单片机 [M]. 北京航空航天大学出版社 , 2020. [2] 童诗白 , 华成英 . 模拟电子技术基础(第四版) ,清华大学出版社 , 2020. [3] MSP430G2553 Data Sheet. [4] MSP430 中文手册 . [5] Op37 Data Sheet. [6] MSP430G2 系列单片机原理与实践教程 . [7] MSPEXP430G2 系列单片机 试验板使用指南 . 13 附录 附 一 :元器件及仪器明细表 见另外 excel 文档。 附 二 :实验设计程序 /* * */ include include include int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD。 P1DIR =0XFF。 P2DIR = BIT0+BIT1+BIT2+BIT3+BIT4+BIT5。 // P2DIR=BIT3+BIT4+BIT5。 unsigned int t。 LCD1602_Init()。 DS18b20_Init()。 while(1) { P2OUTamp。 =~BIT3。 //红灯灭 P2OUTamp。 =~BIT4。 //绿灯灭 // P2OUTamp。 =~BIT5。 //蜂鸣器关 t=get_one_temperature()。 if(t=300) { P2OUT|=BIT3。 //红灯亮 LCD1602_write_string(1,1,warning!!!!!!!!)。 LCD1602_write_string(2,0,hig)。 LCD1602_display_temperature(2,4,t)。 P2OUT|=BIT5。 //蜂鸣器 kai } if(t=270) { P2OUT|=BIT4。 //绿灯亮 LCD1602_write_string(1,1,warning!!!!!!!!!)。 LCD1602_write_string(2,0,low)。 14 LCD1602_display_temperature(2,4,t)。 P2OUT|=BIT5。 //蜂鸣器 kai } if(t300amp。 amp。 t270) { P2OUTamp。 =~BIT5。 //蜂鸣器关 LCD1602_write_string(1,1,The temprature )。 LCD1602_write_string(2,0,is )。 LCD1602_display_temperature(2,4,t)。 } } } /* * * * Created on: 2020628 * Author: Administrator */ ifndef DS18B20_H_ define DS18B20_H_ include /********************************* ** 引脚定义 ** *********************************/ define DQ_1 P2OUT |= BIT2 define DQ_0 P2OUT amp。 = ~BIT2 define DQ_in P2DIR amp。 = ~BIT2 define DQ_out P2DIR |= BIT2 define DQ_val (P2IN amp。 BIT2) /********************************** **** 命令字符定义 ***** **********************************/ define Read_ROM 0x33 //读 ROM define Match_ROM 0x55 //匹配 ROM define Skip_ROM 0xcc //跳过 ROM define Search_ROM 0xf0 //搜索 ROM define Alarm_Search 0xec //告警搜索 define Convert_Temperature 0x44 //温度转换 define Read_Scratchpad 0xbe //读暂存存储器 9字节内容 define Write_Scratchpad 0x4e //写暂存存储器,写的是 TH and TL ,接着发送两位数据就 15 可以 /********************************* ** 定义变量 ** *********************************/ //extern unsigned int Check_val。 //初始化检测变 量 //extern unsigned int Temp。 //存放温度 //extern unsigned int Temp_l。 //存放温度低四位 //extern unsigned int Temp_h。 //存放温度高四位 /************************************ **** 函数定义 **** ************************************/ extern void DS18b20_Port_Init(void)。 extern unsigned int DS18b20_Init(void)。 extern void DS18b20_write_byte(unsigned int dat)。 extern unsigned int DS18b20_read_byte(void)。 extern unsigned int get_one_temperature(void)。 endif /* DS18B20_H_ */ /* * * * Created on: 2020628 * Author: Administrator */ include /*********************** **** DQ 接 *** ***********************/ include void DS18b20_Port_Init(void) { P2DIR = BIT2。 } /******************************************************************************* DS18b20 操作时序: 初始化 64位 ROM进行操作。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。