【报名阶段需要填写的内容】
1. 参赛者姓名(必填项):杜娟花开
2. 单位或学校名称(选填项):杜娟花开
3. 当前职务或职称(选填项):自由职业者
4. 参赛作品的名字(必填项):使用MSP430F447制作MBUS/RS485温度采集器
5. 简要陈述您的idea和作品(必填项):使用MSP430F447制作温度采集器,充分使用MSP430芯片的低功耗,直接驱动段码液晶,,使用MBUS/RS485远程通信,配合DS18B20实时采集温度,并将一天划分为十二个定时时段来分别控制不同的温度
6. 拟用到的立创商城在售物料(必填项):MSP430F447 TSS721 max485 lm117-3.3 稳压芯片,DS18B20温度传感器 线路板报及阻容元件
7. 拟用到的非立创商城物料或其它补充(必填项):外壳,液晶
8. 拟用到的EDA工具软件名称(必填项):立创EDA AD9
【作品正式发表(报名成功后进入设计阶段)需要填写的内容】
一、作品简介
例如,可以包括但不局限于以下内容:
1.作品的整机外观图片或焊接组装好的PCBA图片;
2.作品的研究背景、目的和功能、市场应用前景:目前在智能家居中有许多温度控制器功能简单,也不带通信功能,无法把采集到的温度数据上传到控制服务器上进行集中管理。而在工程使用中,MBUS总线比RS485总线性以有优越,带负载能力大,且不受总线形式影响,抗干扰性能比485强很多,因此,这个温度采集器使用了两种通信总线:RS485和MUBUS仪表总线
3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现?采用比较大的液晶以更直观地显示温度信息,工作参数以及时间等数据,采用了RS485和MDUS两种不同的总线。在使用MBUS总线时,可以直接使用MBUS总线供电,可以很方便地集成到温度采集系统中去。
二、系统构架图
用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。
以MSP430F447主核心,驱动段码液晶显示相关数据信息,通过按钮来设置参数或选择需要的功能,温度采集采用DS18B20数据温度传感器,通信可选MBUS或者RS485通信。在使用RS485通信时,供电部分需要真流7.5-5V电源或二节五号电池供电;当采用MBUS通信时,直接采用MBUS给系统供电。
三、硬件部分的描述
1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的;
2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。
3.注明所用到的EDA工具软件名称并附上设计链接。
本设计使用的相关软件有 MX CUBE MDK5 立创EDA http://club.szlcsc.com/forum/97_0_1.html
四、材料清单(BOM列表)
列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。
如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。
五、软件部分的描述(选填)
如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。
以下为液晶驱动的代码:
#include <msp430x44x.h>
#define Old_Lcd 1
#define New_Lcd 2
#define Lcd_Tpye New_Lcd
const unsigned char Lcd_Table1[]={ 0x01,0x02,0x03,0x08,0x10,0x20,0x40,0x80};
//=============LED 1-8=======================================
#define h 0x80
#define c 0x04
#define b 0x02
#define a 0x01
#define f 0x10
#define e 0x40
#define g 0x20
#define d 0x08
#define Space 0x00
//=============LED 9-11=======================================
//#define h 0x08 //其它符号 d
//#define c 0x40 e
//#define b 0x20 g
//#define a 0x10 f
//#define f 0x01 a
//#define e 0x04 c
//#define g 0x02 b
//#define d 0x80 h
const char char_gen[] = { // As used in 430 Day Watch Demo board
a+b+c+d+e+f, // Displays "0"
b+c, // Displays "1"
a+b+d+e+g, // Displays "2"
a+b+c+d+g, // Displays "3"
b+c+f+g, // Displays "4"
a+c+d+f+g, // Displays "5"
a+c+d+e+f+g, // Displays "6"
a+b+c, // Displays "7"
a+b+c+d+e+f+g, // Displays "8"
a+b+c+d+f+g, // Displays "9"
a+b+c+e+f+g, // Displays "A"
c+d+e+f+g, // Displays "B"
d+e+g, // Displays "C"
b+c+d+e+g, // Displays "D"
a+d+e+f+g, // Displays "E"
a+e+f+g, // Displays "F"
g, // Displays "-"
Space, //Displays " "
a+e+f+d , // [
a+b+c+d // ]
};
const char char_gen1[] = { // As used in 430 Day Watch Demo board
f+g+e+h+c+a, // Displays "0"
g+e, // Displays "1"
f+g+h+c+b, // Displays "2"
f+g+e+h+b, // Displays "3"
g+e+a+b, // Displays "4"
f+e+h+a+b, // Displays "5"
f+e+h+c+a+b, // Displays "6"
f+g+e, // Displays "7"
f+g+e+h+c+a+b, // Displays "8"
f+g+e+h+a+b, // Displays "9"
f+g+e+c+a+b, // Displays "A"
e+h+c+a+b, // Displays "B"
h+c+b, // Displays "C"
g+e+h+c+b, // Displays "D"
f+h+c+a+b, // Displays "E"
f+c+a+b, // Displays "F"
b, // Displays "-"
Space //Displays " "
};
//=====================================================================
#define col1_on LCDMEM[0]|=0X01 //分与时间间封号
#define col1_off LCDMEM[0]&=~0X01
#define S27_on LCDMEM[0]|=0X02 //剩余
#define S27_off LCDMEM[0]&=~0X02
#define S28_on LCDMEM[0]|=0X04 //热量
#define S28_off LCDMEM[0]&=~0X04
#define S29_on LCDMEM[0]|=0X08 //冷量
#define S29_off LCDMEM[0]&=~0X08
#define col2_on LCDMEM[0]|=0X10 //分与秒间封号
#define col2_off LCDMEM[0]&=~0X10
#define S36_on LCDMEM[0]|=0X20 //MJ符号
#define S36_off LCDMEM[0]&=~0X20
#define S31_on LCDMEM[0]|=0X40 //功率
#define S31_off LCDMEM[0]&=~0X40
#define S30_on LCDMEM[0]|=0X80 //流量
#define S30_off LCDMEM[0]&=~0X80
//=========================================================================
#define S37_on LCDMEM[1]|=0X01 //MW。H符号
#define S37_off LCDMEM[1]&=~0X01
#define S41_on LCDMEM[1]|=0X02 //KW后的H字符
#define S41_off LCDMEM[1]&=~0X02
#define S40_on LCDMEM[1]|=0X04 //KW后的。字符
#define S40_off LCDMEM[1]&=~0X04
#define S43_on LCDMEM[1]|=0X08 //M3后的/h字符
#define S43_off LCDMEM[1]&=~0X08
#define S35_on LCDMEM[1]|=0X10 //Gj行号
#define S35_off LCDMEM[1]&=~0X10
#define S46_on LCDMEM[1]|=0X20 //KW中的K符号
#define S46_off LCDMEM[1]&=~0X20
#define S47_on LCDMEM[1]|=0X40 //KW中的W符号
#define S47_off LCDMEM[1]&=~0X40
#define S48_on LCDMEM[1]|=0X80 //M3字符
#define S48_off LCDMEM[1]&=~0X80
#define S16_on LCDMEM[11]|=0X08 //进水文文字
#define S16_off LCDMEM[11]&=~0X08
#define S19_on LCDMEM[16]|=0X80 // 回水文字
#define S19_off LCDMEM[16]&=~0X80
#define S24_on LCDMEM[8]|=0X80 //时间
#define S24_off LCDMEM[8]&=~0X80
#define S25_on LCDMEM[7]|=0X80 //购买
#define S25_off LCDMEM[7]&=~0X80
#define S26_on LCDMEM[6]|=0X80 //累积
#define S26_off LCDMEM[6]&=~0X80
//=========================================================================
#define Q1_on LCDMEM[10]|=0X01 //上字
#define Q1_off LCDMEM[10]&=~0X01
#define S32_on LCDMEM[10]|=0X02 //本
#define S32_off LCDMEM[10]&=~0X02
#define S33_on LCDMEM[10]|=0X04 //试
#define S33_off LCDMEM[10]&=~0X04
#define S22_on LCDMEM[10]|=0X08 //编号
#define S22_off LCDMEM[10]&=~0X08
#define S2_on LCDMEM[10]|=0X10 //电池外框
#define S2_off LCDMEM[10]&=~0X10
#define SS1_on LCDMEM[10]|=0X20 //电池一
#define SS1_off LCDMEM[10]&=~0X20
#define SS_on LCDMEM[10]|=0X40 //电池二
#define SS_off LCDMEM[10]&=~0X40
#define S14_on LCDMEM[10]|=0X80 //电池二
#define S14_off LCDMEM[10]&=~0X80
//=============================================
#define S1_on LCDMEM[14]|=0X08 //星期字
#define S1_off LCDMEM[14]&=~0X08
#define S3_on LCDMEM[15]|=0X01 //齿轮符号
#define S3_off LCDMEM[15]&=~0X01
#define Q3_on LCDMEM[15]|=0X02 //电话符号
#define Q3_off LCDMEM[15]&=~0X02
#define S4_on LCDMEM[15]|=0X04 //欠费
#define S4_off LCDMEM[15]&=~0X04
#define S23_on LCDMEM[15]|=0X08 //日期
#define S23_off LCDMEM[15]&=~0X08
#define S5_on LCDMEM[15]|=0X10 //天线信号一
#define S5_off LCDMEM[15]&=~0X10
#define S12_on LCDMEM[15]|=0X20 //天线信号二
#define S12_off LCDMEM[15]&=~0X20
#define S13_on LCDMEM[15]|=0X40 //天线信号三
#define S13_off LCDMEM[15]&=~0X40
#define S6_on LCDMEM[15]|=0X80 //天线信号三
#define S6_off LCDMEM[15]&=~0X80
//===========================================================
#define S20_on LCDMEM[19]|=0X10 //设定
#define S20_off LCDMEM[19]&=~0X10
#define S18_on LCDMEM[19]|=0X20 //进水温度符号
#define S18_off LCDMEM[19]&=~0X20
#define S10_on LCDMEM[19]|=0X40 //进水温度符号
#define S10_off LCDMEM[19]&=~0X40
#define S11_on LCDMEM[19]|=0X80 //阀关
#define S11_off LCDMEM[19]&=~0X80
//===========================================================
#define sig_12a LCDMEM[17]|=0X01 //小字 LED13
#define sig_12b LCDMEM[17]|=0X02
#define sig_12c LCDMEM[17]|=0X04
#define sig_12d LCDMEM[17]|=0X08
#define sig_12f LCDMEM[16]|=0X10 //小字 LED14
#define sig_12g LCDMEM[16]|=0X20
#define sig_12e LCDMEM[16]|=0X40
#define S19 LCDMEM[16]|=0X80 //回水汉字
//===========================================================
#define sig_13a LCDMEM[18]|=0X01 //小字 LED13
#define sig_13b LCDMEM[18]|=0X02
#define sig_13c LCDMEM[18]|=0X04
#define sig_13d LCDMEM[18]|=0X08
#define sig_13f LCDMEM[17]|=0X10 //小字 LED14
#define sig_13g LCDMEM[17]|=0X20
#define sig_13e LCDMEM[17]|=0X40
#define sig_14a LCDMEM[19]|=0X01 //小字 LED14
#define sig_14b LCDMEM[19]|=0X02
#define sig_14c LCDMEM[19]|=0X04
#define sig_14d LCDMEM[19]|=0X08
#define sig_14f LCDMEM[18]|=0X10 //小字 LED14
#define sig_14g LCDMEM[18]|=0X20
#define sig_14e LCDMEM[18]|=0X40
#define S21_on LCDMEM[18]|=0X80 //回水温度符号
#define S21_off LCDMEM[18]&=~0X80 //回水温度符号
#define P2_on LCDMEM[17]|=0X80 //回水温度小数点符号
#define P2_off LCDMEM[17]&=~0X80 //回水温度小数点符号
//===========================================================
#define P1_on LCDMEM[13]|=0x08; //出水温度小数点符号
#define P1_off LCDMEM[13]&=~0x08; //出水温度小数点符号
#define S17_on LCDMEM[12]|=0X08 //室温符号
#define S17_off LCDMEM[12]&=~0X08
#define S9_on LCDMEM[16]|=0X01 //方块符号
#define S9_off LCDMEM[16]&=~0X01 //方块符号
#define S8_on LCDMEM[16]|=0X02 //月亮符号
#define S8_off LCDMEM[16]&=~0X02 //
#define S8_on LCDMEM[16]|=0X02 //月亮符号
#define S8_off LCDMEM[16]&=~0X02 //
#define W_on LCDMEM[16]|=0X04 //月亮符号
#define W_off LCDMEM[16]&=~0X04 //
#define S7_on LCDMEM[16]|=0X08 //太阳符号
#define S7_off LCDMEM[16]&=~0X08 //
#define h5_on LCDMEM[5]|=0X80 //万分位小数点
#define h5_off LCDMEM[5]&=~0X80 //
#define h6_on LCDMEM[4]|=0X80 //千分位小数点
#define h6_off LCDMEM[4]&=~0X80 //
#define h7_on LCDMEM[3]|=0X80 //百分位小数点
#define h7_off LCDMEM[3]&=~0X80 //
#define h8_on LCDMEM[2]|=0X80 //十分位小数点
#define h8_off LCDMEM[2]&=~0X80 //
六、作品演示
请上传您的作品的功能演示到腾讯视频,并编辑到本楼(或附上视频链接)。按要求上传视频可获得10分,具体详见活动规则。
https://v.qq.com/x/page/k0753903ym7.html
七、总结
例如您在完成该作品过程中的一些体会、碰到的技术问题或调试经验、作品的未来规划,及对我们主办方的建议和意见等。
经过这次参与,让我深深地感到:
1、立创EAD是一个非常不错的开发工具。尽管尽管目前使用时还存在许多不便,但随着时间的延续,相信这个EAD会越来越完善。也相信会有更多我的设计开发人员来用这个软件。值得肯定的是这个软件的库文件作的非常人性化,也方便了广大设计人员,再也不会为一些库封装头疼了;
2、这是一个非常不错的交流平台,愿它越办越好,原在这里学习了很多优秀的设计产品与思路,也感到自己知识的不足,也认识 到自己的不足,能力与水平有限;