您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 温度采集器-课程设计报告书
单片机原理与接口技术课程设计书设计题目:温度采集显示系统课程名称:单片机原理与接口技术课程设计学院:物理与光电工程学院专业班级:11级电子科学技术6班学号:3111008618姓名:关继业联系方式:18826400650任课教师:徐胜2013年12月18日一、设计题目:温度采集显示系统本课程是在前导验证性认知实验以及相关的理论课基础上,进行更高层次命题的设计性的教学环节,是学生在教师指导下独立查阅资料、设计、安装和编程特定功能的电子电路的课程。对于提高学生的电子工程素质和科学实验能力非常重要。本课程旨在培养学生综合数字电路和单片机知识,解决电子信息方面常见实际问题的能力,并了解一般电子电路与单片机构成简单系统及较为复杂的编程的方法。促使学生积累单片机系统的开发经验,准备走向更复杂更实用的应用领域,是参加各类大学生电子竞赛前的技能培训课程。目的在于巩固基础、注重设计、培养技能、追求创新、走向实用。二、设计任务和要求:1.根据设计要求,完成对单路温度进行测量,并用数码管显示当前温度值系统硬件设计,并用电子CAD软件绘制出原理图,编辑、绘制出PCB印制版。要求:(1)原理图中元件电气图形符号符合国家标准;(2)整体布局合理,注标规范、明确、美观,不产生歧义。(3)列出完整的元件清单(标号、型号及大小、封装形式、数量)(4)图纸幅面为A4。(5)布局、布线规范合理,满足电磁兼容性要求。(在元件面的丝印层上,给出标号、型号或大小。所有注释信息(包括标号、型号及说明性文字)要规范、明确,不产生歧义。2.编写并调试驱动程序。功能要求:(1)温度范围0-100℃。(2)温度分辨率±1℃。(3)选择合适的温度传感器。3.撰写设计报告。三、原理电路和程序设计:本设计基于STM8S105C6单片机,程序用C语言编写,并借助单片机开发板进行调试,实物也是按照开发板上的电路图进行焊接的,简明易焊。整个原理电路由温度传感器、数码管显示部分组成。1、温度传感器。本设计的温度传感器用DS18B20。该数字传感温度器接线方便,其引脚及电路图见图1(注:图中有P1.3之类的引脚是因为最初用开发板进行调试的,最后只需将所用单片机所定义的引脚直接连到焊接好的该引脚即可)。由于此芯片结构简单,那么就将在软件上导致了巨大开销了,写程序时根据通讯协议来写即可,同时要注意时序问题(程序中定义了相关的延时函数来解决时序问题)。图1DS18B20温度传感器图2DS18B20暂存寄存器分布根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。写程序时也是根据此时序来写。程序包括了对DS18B20的初始化,写一个字节和读一个字节三个函数。以下是温度传感器的部分程序:voidDS18B20_Init(void)//初始化DS18B20.{PG_DDR=0X02;//定义PG1为18B20的使用引脚PG_CR1=0X02;PG_CR2=0;PG_ODR=0x02;delay_n5us(1);PG_ODR=0;delay_n5us(100);//复位脉冲PG_ODR=0x02;delay_n5us(100);//延时等待(如果初始化成功则在15到60微妙时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起最少要480微秒。}voidDS18B20_WriteByte(unsignedchar_data){unsignedchari=0;PG_DDR=0X02;PG_CR1=0X02;PG_CR2=0;for(i=0;i8;i++){PG_ODR=0;if(_data&0x01){PG_ODR=0x02;}_data=1;//右移指令。按从低位到高位的顺序发送字节(一次只发送一位)delay_n5us(9);PG_ODR=0x02;}}unsignedcharDS18B20_ReadByte(void){unsignedchari=0,_data=0;for(i=0;i8;i++){PG_DDR=0X02;PG_CR1=0X02;PG_CR2=0;PG_ODR=0;_data=1;PG_ODR=0x02;PG_DDR=0XFD;//PG1处于输入状态,其他都是输出。PG_CR1=0XfD;PG_CR2=0X02;if(PG_IDR&0X02){_data|=0x80;}PG_CR1=0X02;PG_CR2=0;PG_ODR=0x02;delay_n5us(12);}return_data;}floatDS18B20_ReadTemperature(void){//DS18B20的操作流程,分为两个周期,每个周期工作时都要复位。unsignedchara,b;floattt;delay_n5us(80);DS18B20_Init();//复位DS18B20_WriteByte(0xcc);//跳过ROMDS18B20_WriteByte(0x44);//发送温度转换指令delay_n5us(80);DS18B20_Init();DS18B20_WriteByte(0xcc);DS18B20_WriteByte(0xbe);//读内部RAM中9字节的内容。只需读前两个字节。(只需测量温度)delay_n5us(80);a=DS18B20_ReadByte();//读取到的第一个字节为温度LSBb=DS18B20_ReadByte();//读取到的第一个字节为温度MSBtem=b;//先把高八位有效数据赋于temptem=8;//把以上8位数据从temp低八位移到高八位tem=tem|a;//两字节合成一个整型变量tt=tem*0.0625;//得到真实十进制温度值//因为DS18B20可以精确到0.0625度//所以读回数据的最低位代表的是0.0625度tem=tt*10+0.5;//放大十倍//这样做的目的将小数点后第一位也转换为可显示数字//同时进行一个四舍五入操作。returntem;}2、数码管显示:这里设计用三个共阳数码管显示所测温度,两位整数和一位小数。通过按键切换得到最高温度和最低温度。不需用到译码器,直接将数码管通过电阻连到单片机上即可,也包括位选(图3)和段选(图4),图4中的是4只数码管连接的,这里是原理,焊接时只需根据实际原理图焊接即可。图数码管连接电路图数码管电路以下是数码管显示的部分程序:voidDisplay(uintt)//显示程序{ucharA1,A2,A3;A1=t/100;//百位A2=t%100/10;//十位A3=t%10;//个位,求余数。PB_DDR=0xff;//推挽输出。PB_CR1=0xff;PB_CR2=0x00;PA_DDR|=0Xf0;//定义PA4,PA5,PA6为位选。PA_CR1|=0Xf0;PA_CR2=0X00;PA_ODR_ODR4=0;PA_ODR_ODR5=1;PA_ODR_ODR6=1;//X110XXXX,第三个数码管显示。PB_ODR=buffer1[A1];//显示十位delay_n5us(500);PA_ODR_ODR4=1;PA_ODR_ODR5=0;PA_ODR_ODR6=1;//X101XXXX,第二个码管显示。PB_ODR=buffer2[A2];//显示个位delay_n5us(500);PA_ODR_ODR4=1;PA_ODR_ODR5=1;PA_ODR_ODR6=0;//X011XXXX,第一个数码管显示。PB_ODR=buffer1[A3];//显示小数点后面一位。delay_n5us(500);}完整的C程序请查阅附录电子文档。四、元件选择:器件名称器件数量器件名称器件数量DS18B20温度传感器18550三极管474LS138芯片14位共阳数码管110uF1104电容210K电阻14.7K电阻5470电阻8板1STM8S105C6单片机1杜邦线、排针、锡若干实物中单片机不需要焊接,用的是另外的最小系统(也是STM8S105C6),只需连线即可。五、AltiumDesigner10PCB印制版五、总结实物的优点是电路结构简单易看明白,程序也不难懂,体积小且实用。线路简单,并且功耗小。缺点是排版不够好,引脚分布得较广,杜邦线跨越多,造成不美观,也需要连接学习板才能运作。若要改进,则用PCB板来做则能改进这一问题,并增加最小系统方便使用。通过这次课程设计,学到了很多东西。原来从课本学到的东西一点也不扎实,认识到学各种计算机语言(汇编、C等)必须要多上机调试才能学好的,如果只是通过课堂听讲和复习而不上机调试,那是不可能学好的。所以,我要继续学好这些有用的语言,也要多上机来学,多思考,多动手。希望学院多些这种课程和活动,促进同学们的专业学识,提高学习兴趣。我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。这个设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。特别是写程序过程中遇到了很多不懂的问题,多得同学们的热心帮助,认识到搞技术不仅需要扎实的专业知识,还需要良好的合作和沟通的精神,多交流,在思想上擦出火花,这样才会更深入的理解和突破,争取共同进步。同时,同学间确实需要互相帮助的。六、参考资料:[1]潘永雄.STM8S系列单片机原理与应用.西安:西安电子科技大学出版社,2011[2]谭浩强.C程序设计.北京:清华大学出版社,2010[3]电子协会资料&百度文库
本文标题:温度采集器-课程设计报告书
链接地址:https://www.777doc.com/doc-2287967 .html