您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 单片机原理及应用课程设计.pdf
2013级单片机原理及应用课程设计数字温度计的设计与制作姓名:宋昊明专业:电子信息科学与技术学号:201340620124指导教师:周小波二零一五年十二月数字温度计的设计与制作数字温度计1.设计任务与要求1.1设计要求1、设计一个能显示当前环境温度的数字温度计;2、拟定设计步骤和测试方案;3、根据设计要求和技术指标设计好电路,选好元件及参数;4、绘出原理图,画出PCB图,并制出实物;5、撰写设计报告;6、预留相关技术指标的测试端口。2.总体方案设计概述2.1系统总体方案设计本设计以检测温度并显示温度为目的,按照系统设计功能的要求,确定系统由三个模块组成:主控器、测温电路、显示电路。系统以STC12C5404AD为主芯片,对热敏电阻传入的温度值进行处理,由单片机程序控制,将处理后的温度用四位一体的数码管显示出来。2.2各功能模块2.2.1温度检测由热敏电阻感知环境温度,改变自身阻值,通过分压法来测出电压值,从而测出温度大小。2.2.2温度显示将数据用四位一体数码管显示,处理过程主要由单片机程序控制3.硬件系统设计3.1总体电路设计总电路原理图和PCB图如下-1-数字温度计的设计与制作-2-数字温度计的设计与制作3.2主控制器STC12C5404ADSTC12C5410系列单片机是单时钟/机器周期的兼容8051内核单片机,是高速/低功耗的新一代8051单片机,全新的流水线/精简指令集结构,内部集成MAX810专用复位电路。3.3测温电路工作原理3.3.1测温电路的选择①恒流源法-3-数字温度计的设计与制作②电桥法:精度高但电路较为复杂③分压法:电路简单但精度差综合考虑,本设计选择分压法下图为本实验测温电路原理图分压电路ADC7热敏电阻R14,R16不能太大,否则会分流-4-数字温度计的设计与制作3.4显示电路工作原理数码管驱动电路如图所示4个三极管所在电路为数码管位选端驱动电路,端口分别为W1,W2,W3,W4。其余A-H为数码管段选段3.5下载电路电脑USB接口供电,约5V。TXD、RXD接口用于下载程序。-5-数字温度计的设计与制作4.程序设计#includereg51.h#includeintrins.h#includemath.htypedefunsignedcharBYTE;typedefunsignedintWORD;/*DeclareSFRassociatedwiththeADC*/sfrAUXR=0x8e;sfrADC_CONTR=0xC5;//ADCcontrolregistersfrADC_DATA=0xC6;//ADChigh8-bitresultregistersfrADC_LOW2=0xBE;//ADClow2-bitresultregistersfrP1M0=0x91;//P1modecontrolregister0sfrP1M1=0x92;//P1modecontrolregister1#defineADC_POWER0x80//ADCpowercontrolbit#defineADC_FLAG0x10//ADCcompleteflag#defineADC_START0x08//ADCstartcontrolbit#defineADC_SPEEDLL0x00//1080clocks#defineADC_SPEEDL0x20//810clocks#defineADC_SPEEDH0x40//540clocks#defineADC_SPEEDHH0x60//270clocksvoidDelay(WORDn);voidInitADC();voiddelay_s(unsignedintN);voiddisplay(unsignedcharnum,unsignedx);voiddisplay_num(unsignedintnum);voidget_data();unsignedchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0x84,0xf5,0x89,0xc1,0xf0,0xc2,0x82,0xe5,0x80,0xe00xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90floatwendu;unsignedinttemp=0;floatR=0;unsignedcharflag=0;BYTEch=7;//ADCchannelNO.-6-sbitpoint=P3^7;//小数点sbitW1=P3^2;//数码管位选sbitW2=P3^3;sbitW3=P3^4;sbitW4=P3^5;数字温度计的设计与制作voidmain(){InitADC();//InitADCsfrAUXR|=0x10;//setEADCIIE=0xa0;//EnableADCinterruptandOpenmasterinterruptswitchwhile(1){display_num(wendu);}}/*----------------------------ADCinterruptserviceroutine----------------------------*/voidadc_isr()interrupt5using1{flag++;ADC_CONTR&=!ADC_FLAG;//ClearADCinterruptflagtemp=ADC_DATA;temp=temp2;temp=temp|ADC_LOW2;if(flag==10){flag=0;if(temp451)//TEMP=10240/(R+10)wendu=(42.16-11059.2/temp)*100;//-720c;38.3988K12.69K,TEMP(211,451)T=31.36-1.08*Relseif(451=temp=518)wendu=(61.91-18944.0/temp)*100;//2025c;12.65k,10kTEMP(451,512)T=43.41-1.85*Relseif(512=temp=655)wendu=(96.87-37478.4/temp)*100;//2640c;9.5762k,5.734kTEMP(523,651)T=60.269-3.66576*Relseif(655=temp=800)wendu=(149.53-72089.6/temp)*100;//4160c;5.54.5k,2.825kTEMP(659,798)T=79.134-7.04*Relsewendu=(291.23-185856.0/temp)*100;//6190c;2.7762k1.236kTEMP(801,911)T=109.731-18.147*R}-7-数字温度计的设计与制作ADC_CONTR=ADC_POWER|ADC_SPEEDHH|ADC_START|ch;}voidInitADC(){P1=P1M0=P1M1=0xff;//SetallP1asOpen-DrainmodeADC_DATA=0;//ClearpreviousresultADC_CONTR=ADC_POWER|ADC_SPEEDL|ADC_START|ch;Delay(2);//ADCpower-ondelayandStartA/Dconversion}voidSendData(BYTEdat){while(!TI);//WaitforthepreviousdataissentTI=0;//ClearTIflagSBUF=dat;//Sendcurrentdata}voidget_data(){floatval=0.0;floatr=0.0;temp=ADC_DATA;temp2;temp=temp|ADC_LOW2;wendu=(35.28-1.1*r)*10;//35.28-1.1*10240/TEMP+1146.28-11264/TEMP}voidDelay(WORDn){WORDx;while(n--){x=5000;while(x--);}}voiddelay_s(unsignedintN){while(N--);}voiddisplay(unsignedcharnum,unsignedx)-8-数字温度计的设计与制作{switch(x){case1:W1=0;W2=1;W3=1;W4=1;point=1;P1=tab[num];break;case2:W1=1;W2=0;W3=1;W4=1;point=0;P1=tab[num];break;case3:W1=1;W2=1;W3=0;W4=1;point=1;P1=tab[num];break;case4:W1=1;W2=1;W3=1;W4=0;point=1;P1=tab[num];break;//default:P1=0x00;P3=0x00;break;}delay_s(300);}voiddisplay_num(intnum){unsignedcharg,s,b,q;if(num=0){q=num/1000;b=num/100%10;s=num/10%10;g=num%10;display(q,1);P1=0xff;display(b,2);P1=0xff;display(s,3);P1=0xff;display(g,4);P1=0xff;}else{num=0-num;//q=num/1000;b=num/100%10;s=num/10%10;g=num%10;display(10,1);P1=0xff;display(b,2);P1=0xff;display(s,3);P1=0xff;-9-数字温度计的设计与制作display(g,4);P1=0xff;}}5.制作过程5.1选择测温度电路——分压法5.2选择及购买实验器材5.3设计实验原理图5.4PCB工程制图5.5制作电路板:打印打孔,泡溶液,焊接元器件,下载程序,检测调试,成品5.6制作后续材料5,7相关图片:-10-6.心得体会通过此次课程设计,使我更加扎实的掌握了单片机制作方面的知识,“纸上得来终觉浅,绝知此事要躬行”在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了问题所在,也暴露出了我这方面的知识欠缺和经验不足。通过亲自动手制作,使我们掌握的知识更佳灵活的运用。在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情。在设计过程中,相互探讨,相互学习,相互监督。学会了合作,学会了相互学习。课程设计是我们专业课程知识综合应用的实践训练。在这次设计过程中,体现出自己单独设计能力以及综合运知识的能力,体会了学以致用、收获自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,加以弥补。在这次设计制作过程中,我也发现了作为一个实验人员应当具备眼镜细心耐心的工作和学习的态度,比如焊接电路时需要耐心和细心,注意不能焊成短路和断路。而且在调试电路接通电源前一定要反复检查焊接是否有误。在做pcb板时也没有注意到焊盘问题,导致最后焊接十分麻烦。总而言之,这次课程设计受益匪浅,收获很多,感谢老师和同学的帮助,同时感谢自己的努力,坚持到底,不放弃的精神。6.参考资料《单片机原理及应用》(第二版)张毅刚等著-11-
本文标题:单片机原理及应用课程设计.pdf
链接地址:https://www.777doc.com/doc-3746296 .html