MSP430单片机温度单片机课程设计报告书_第1页
MSP430单片机温度单片机课程设计报告书_第2页
MSP430单片机温度单片机课程设计报告书_第3页
MSP430单片机温度单片机课程设计报告书_第4页
MSP430单片机温度单片机课程设计报告书_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、理工大学计算机学院课程设计单片机系统设计班 级 计科1104姓 名学号指导教师 业德韩慧。一四 年十课程设计任务书及成绩评定课题名称度测试系统设计I、题目的目的和要求:利用温度传感器和 MSP43单片机设计一个温度测试系 统,将测试结果(十进制)在LEDh显示出来,并定义一个保 持按键,当按下该键时,将当前测试值保持不变 (按键不动 作时为正常测量显示)。温度显示格式为:XXX C。II、 设计进度及完成情况日期容11.10选取题目,进行资料搜集和系统分析工作11.14进行单独程序设计以及完成单独接口电路11.16将全部程序综合并进行整体程序调试和连接整体接口电路11.18书写课程设计报告并写

2、下相关问题总结11.20进行课程设计答辩,并打印上交III、主要参考文献及资料MSP43系列16位低功耗单片机原理及应用 DS18B2温度传感器的使用 智能仪器原理及应用学科部主任 业德成绩评定:设计成绩: (教师填写)指导老师: (签字)二O 年 月 日目录I 、 题目的目的和要求: 2II 、 设计进度及完成情况 2III 、 主要参考文献及资料 3W、 成绩评定:3目录 . 4本次课程设计的目的和意义 5设计题目 . 6系统的主要功能、作用以及主要技术性能指标 7总体设计方案、工作和组成原理 8系统设计 . 11设计总结 . 22作品的使用或操作说明 23设计图纸或图表 . 24本次课程

3、设计的目的和意义巩固加课程设计是让我熟练掌握了课本上的一些理论知识, 课程设计也是一个学习新知识、 深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。 加深我们对单片机原理与应用课程的理解设计题目温度测试系统设计:利用温度传感器DS18B2C和MSP43C单片机设计一个温度测试系统,将测试结果(十进制) 在LED上显示出来,并定义一个保持按键,当按下该键时,将当前测试值保持不变 (按键 不动作时为正常测量显示)。温度显示格式为:XXX C。系统的主要功能、作用以及主要技术性能指标系统的主要功能是单片机实时从温度传感器读取温度数据信息, 并在数码管显示, 同 时

4、扫描是否有保持按键按下,如果按下则不再继续从温度传感器读取温度数据信息,保 持温度值不变。作用是可以实时读取环境中的温度信息, 供用户查看,同时当用户需要观察某温度时, 可以按下按键保持温度不变。主要技术指标:1. 基本围OC -99 C2. 精度误差小于0.5 C3. LED 数码直读显示4. 扫描按键保持数值总体设计方案、工作和组成原理数字温度计设计方案论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比

5、较麻烦。万案进而考虑到用温度传感器,在单片机电路设计中, 大多都是使用传感器, 所以这是非常容易想到,所以可以采用一只温度传感器DS18B2Q此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。主控制器单片机采用MSP43C单片机,处理能力强,功耗低,实现该功能仅需一个按键,8位数码管显示,以及DS18B2Q温度传感器。显示电路:显示电路采用8位共阴LED数码管,从P4 口输出段码。图一总体设计框图温度传感器:DS18B2Q温度传感器是美国 DALLAS半导体公司最新推出的一种改进型智能

6、温度传感器,与传统 的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B2Q的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B2Q可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压围为3.Q5.5 V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20部结构框图如图2所示。64位ROM勺结构开始8位是产品类型的编号,接着是每个器件的

7、惟一的序号,共有 48位,最后8位是前面56位的CRC检验码,这也是多个 DS18B20可以采用一线进 行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM高速暂存RAM勺结构为8字节的存储器,结构如图3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。 第5个字节,为配置寄存器,它的容用于确定温度值的数字转换分辨率。 DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模

8、式位,用于设置DS18B20在工作模式还是在测试模式,DS18B2 0出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。EJ2 DS18B20a3结构ITT E匸注丿JSliGRC 生屈*S4位屮ROW和时单屮接屮口屮温度传感器连接如下图所示,DC引脚与单片机的P5.3相连:系统设计接口电路设计,程序设计(程序框图和程序清单及注释)其他有关的理论分析和计算 接口电路设计:IIffi Hkl|l AVtCZ1匚5心点1urn%1DC偲iMLIK4I5-sRFT1VRLF-f7RFV !: 1VRhh11KEYtJ12kYl-14m1$KFY4I呱CVee Ph

9、.WAS hi.*A4Pfi.WAiPb.tfAC Pte-亦?VKLIXINXO. T TCLX VekLF-VBU WtKEI - PI .1X1 MIX n.VTAOP 2/TAP1.3fTA2 Pl.iSMLLlC1二4妗xlJ*W2X7Am打.回JlRO34uj|帖ODAH CIKjUAf CS主控制器MSP430IXTIICJK温度传感器訂5以(INDH U6 JOVrw ”fl KU*tlL幷)1 M mv占|,savg siE IC1 巾1i JQV:TQAnaua F55kp5二亠一一LaJJijU tI0-wm n7x 訂X匸匸F “1J 4时9OVHIYKAtCYP?-S

10、OVIOQOY啊Mn塔血K1黑心劭_ 祜坎接血0心 说-ki亠丿i-_-JM7上=訂X_g丄FOOiTTtx眄int-口亍flrrIY泪gya知闭旳站la90490 810也10gn9m1Mhw191wLIIM(ElS-J0*Jn广4_ j1JT匸4S-J0*Jn广4_ j1JT匸4程序框图:总体设计流程图埃读取谥屢俞狰14f漢取撫作CRC枝號32 手特:rt节一*静入溫度1存器异-C 4*枣2读取温度传感器数据流程图Na数码管温度显示程序设计:*#defi ne LED8P0RTP20UT#defi ne LED8SELP2SEL#defi ne LED8DIRP2DIR定义引脚*P2接8个

11、LED灯P2接8个LED灯P2接8个LED灯#defi ne DATAPORTP4OUT/#defi ne DATASELP4SEL/#defi ne DATADIRP4DIR/#defi ne CTRPORTP6OUT/#defi ne CTRSELP6SEL/#defi ne CTRDIRP6DIR/数据口所在端口 P4数据口功能寄存器,控制功能模式 数据口方向寄存器控制线所在的端口 P6控制口功能寄存器,控制功能模式控制口方向寄存器#defi ne DCTR0#defi ne DCTR1#defi ne WCTROP6OUT &= BIT4/P6OUT |= BIT4 /P6OUT &=

12、 BIT3/#defi ne WCTR1P6OUT |= BIT3 /数码管段控制位信号置低 数码管段控制位信号置高 数码管位控制位信号置低 数码管位控制位信号置高按键所在的端口 P1控制口功能寄存器,控制功能模式 控制口方向寄存器键盘扫描判断需要读取IO 口状态值 键值变量#defi ne KEYPORTP1OUT/#defi ne KEYSELP1SEL/#defi ne KEYDIRP1DIR/#defi ne KEYINP1IN/uchar key=OxFF;/uint temp_value;float truetemp;uint temp,A1,A2,A3;/ 定义的变量 , 显示数

13、据处理/* 共阴数码管显示的断码表 * uchar table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;系统时钟初始化 */ * void Clock_Init() uchar i; BCSCTL1&=XT2OFF;BCSCTL2|=SELM1+SELS;doIFG1&=OFIFG; for(i=0;i100;i+)_NOP(); while(IFG1&OFIFG)!=0); IFG1&=OFIFG; /* MSP430 void WDT_Init()WDTCTL = WDT

14、PW + WDTHOLD; /* MSP430IO void Port_Init() LED8SEL = 0x00;LED8DIR = 0xFF; LED8PORT = 0xFF;/MCLK/P2打开 XT2 振荡器为 8MHZ SMCLK为 8MHZ清楚振荡器错误标志如果标志位 1,则继续循环等待部看门狗初始化 */ 关闭看门狗口初始化 *设置 IO 口为普通 I/O 设置 IO 口方向为输出 口初始设置为 FF模式,此句可省DATASEL = 0x00;DATADIR = 0xFF;DATAPORT = 0xFF;/P4设置 IO 口为普通 I/O 设置 IO 口方向为输出 口初始设置为

15、FF模式,此句可省CTRSEL = 0x00;CTRDIR |= BIT3 + BIT4 +BIT2;CTRPORT = 0xFF;/P6模式,设置 IO 口方向为输出 口初始设置为 FF设置 IO 口为普通 I/O此句可省, 控制口在 P63,P64KEYSEL = 0x00;KEYDIR = 0x0F;KEYPORT= 0xF0;/* 74HC573 void Display_Key(uchar num) uchar i,j;j=0x01;for(i=0;i8;i+)DCTR1;WCTR1;/设置 IO 口为普通 I/O 模式, 高四位输入模式,低四位输出模式,外部上拉电阻 初始值 0xF

16、0此句可省控制数码管动态扫描键值显示函数 *此数据用来控制位选 个数码管依次显示控制数码管段数据的 74HC573的LE管脚置高 控制数码管位的74HC573的LE管脚置高/8DATAPORT=j; / WCTR0;/DATAPORT=tablenum; / DCTR0;/j=j1; / delay_us(500);/Close_LED();/设置要显示的位,也就是哪一个数码管亮 锁存位数据,下面送上段数据以后,就显示出来了 送要显示的数据,这里是键值 锁存段数据,数码管亮一个时间片刻 移位,准备进行下一位的显示显示一个时间片刻,会影响亮度和闪烁性 显示完 8 个数码管后关闭数码管显示, 否则

17、可能导致各个数码管亮度不一致 /* uchar Key_Scan(void)uchar key_check; uchar key_checkin; key_checkin=KEYIN; key_checkin&= 0xF0; if(key_checkin!=0xF0)delay_ms(20); key_checkin=KEYIN; if(key_checkin!=0xF0) key_check=KEYIN;键盘扫描子程序,采用逐键扫描的方式/IO/switch (key_check & 0xF0) /*/ 读取 IO 口状态,判断是否有键按下/ 屏蔽掉低四位的不确定值 口值发生变化则表示有键按

18、下/ 键盘消抖,延时 20MS 再次读取 IO 口状态 确定是否真正的有键按下有键按下,读取端口值判断是哪个键按下case 0xE0:key=1;break;case 0xD0:key=2;break;case 0xB0:key=3;break;case 0x70:key=4;break;else无键按下,返回 FFkey=0xFF; /return key;/*74HC573 控制数码管动态扫描显示函数,显示采集到的温度 * void Display_DS18B20(uint data_b,uint data_s,uint data_g)uchar i,j;j=0x01; / for(i=0

19、;i3;i+) / DCTR1;WCTR1;DATAPORT=j;WCTR0;此数据用来控制位选 用后 3 位数码管来显示j=(j1);DATAPORT=0x00; /DCTR0;delay_ms(2);DCTR1; /WCTR1;DATAPORT=j;WCTR0;j=(j1);/DATAPORT=tableA1;DATAPORT=tabledata_b;DCTR0;delay_ms(1);DCTR1; /WCTR1;DATAPORT=j;WCTR0;j=(j1);/DATAPORT=tableA2|0x80; / DATAPORT=tabledata_s|0x80; / DCTR0;dela

20、y_ms(1);DCTR1; /WCTR1;DATAPORT=j;WCTR0;j=(j1);/DATAPORT=tableA3;DATAPORT=tabledata_g;DCTR0;delay_ms(1);DCTR1; /WCTR1;DATAPORT=j;WCTR0;j=(j1);/DATAPORT=tableA3;DATAPORT=0x63;DCTR0;delay_ms(1);DCTR1; /WCTR1;DATAPORT=j;WCTR0;j=(j480uS)if (i)return 0x00;elsereturn 0x01;/* DS18B20unsigned char ds1820_rea

21、d_byte(void)unsigned char i;unsigned char value = 0;for (i = 8; i != 0; i-)value = 1;DQ_OUT;DQ_CLR;delay_us(4); /*DQ_SET;DQ_IN;delay_us(10); /* if (DQ_R) value|=0x80;delay_us(60); /*一个字节函数 *延时 4uS延时 10uS延时 60uS return(value);18B20 写一个字节函数 */*/*DS18B20 字节写入函数 */ void ds1820_write_byte(unsigned char v

22、alue)unsigned char i;for (i = 8; i != 0; i-)DQ_OUT;DQ_CLR; delay_us(4);if (value & 0x01)DQ_SET; delay_us(80);DQ_SET;value = 1;/* /* 启动 ds1820 转换 */ void ds1820_start(void)DS18B20_Reset();/ 延时 4uS/ 延时 80uS/ 位结束发送温度转换命令*ds1820_write_byte(0xCC);ds1820_write_byte(0x44);/* DS8B20 unsigned int ds1820_read

23、_temp(void) unsigned int i;unsigned char buf9;/勿略地址/启动转换读取温度信息*勿略地址读取温度不是乘以 0.0625 的原因是为了把小数点后一位数比如温度本身为 27.5 度,为了在后续的数据处理程序中得然后在显示的时候确定小数点的位置即可, 就能显DS18B20_Reset(); ds1820_write_byte(0xCC);/ds1820_write_byte(0xBE);/for (i = 0; i 9; i+)bufi = ds1820_read_byte();i = buf1;i = 8;i |= buf0;temp_value=i;

24、 temp_value=(uint)(temp_value*0.625); / 据也转化为可以显示的数据/到BCD码,我们先放大到 275/示出 27.5 度了return i;温度数据处理函数*void data_do(uint temp_d)A3=temp_d%10; / temp_d/=10;A2=temp_d%10;A1=temp_d/10;/*void handletemp()ds1820_start(); ds1820_read_temp(); data_do(temp_value); truetemp=0.1*temp_value;/judgeAlarm();/*void sho

25、wtemp()分出百,十,和个位处理温度数据*/启动一次转换/读取温度数值/ 处理数据,得到要显示的值/ 判断是否触发警报 / 已将其添加至按键程序显示温度*uchar j;for(j=0;j100;j+)Display_DS18B20(A1,A2,A3); / 显示温度值 处理判断警报 , 然后显示 ,handletemp();showtemp();/delay_ms(100); / /* void main(void)uchar flag1,flag2,flag3,flag4;延时 100ms主程序*/uint key_store=0x00; /WDT_Init();/Clock_Init

26、();/Port_Init(); / /Close_LED();DS18B20_Reset(); / delay_ms(100); / while(1)Key_Scan(); / if(key!=0xff) /switch(key)没有按键按下时,默认显示 1 看门狗初始化 时钟初始化 端口初始化,用于控制 IO 口输入或输出复位 D18B20延时 100ms键盘扫描,看是否有按键按下如果有按键按下,则显示该按键键值14温度数据处关闭警测试警 报case 2: LED8PORT=0xf3;flag1=0;flag2=1;flag3=0;flag4=0;break;/ 理判断警报 , 关闭显示

27、, 节省电源 ,handletemp();Close_LED();case 3: LED8PORT=0xcf;flag1=0;flag2=0;flag3=1;flag4=0;break;/ 报,SOUNDOFF;ha ndletemp();case 4:LED8PORT=0x3f;flag1=0;flag2=0;flag3=0;flag4=1;break;/SOUNDON;elseLED8PORT&=0xff; /if(flag1=1)/handletemp();showtemp();if(flag2=1)handletemp();showtemp();if(flag3=1)SOUNDOFF; handletemp();if(flag4=1)SOUNDON;设计总结对整个设计工作过程进行归纳和综合,对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议和对这次设计实践的认识、收获和提高。在本次设计的过程中,我发现很多的问题,也学到了许多东西。虽然我以前也做过类似的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论