您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子温度计与秒表专业实践报告
1、实践任务要求1、制作电子温度计。使用双7段数码管显示器显示温度。采用2051单片机及温度传感器18B20设计电子温度计,实时显示当前温度值(两位),所示的温度范围为0~99。2、采用Protues软件画出“电子温度计”原理图。3、查找资料,编写软件程序。4、在电子温度计的基础上,加上一个小开关,实现用开关控制电子温度计与计数器的切换功能。计数器范围为0~992、硬件原理图使用AT89C2051实现显示温度,其中LG为2位共阳极数码管。用DXP绘制的原理图,如下图1所示:图1硬件原理图-1-3、硬件仿真图用Protues软件进行仿真,如图2(1)、2(2)所示:图2(1)电子温度计仿真图-2-图2(2)秒表仿真图4、PCB板图硬件PCB板图,如图3所示:-3-图3硬件PCB板图5、产品实物图做出的产品实物图,如图4所示:图4产品实物图6、器件明细表所需要的元器件见表1。表1元器件明细表序号标号型号器件名称数量1R1~R7、R12200电阻82R8、R91K电阻23R1010K电阻14R112K电阻15C1、C230PF瓷片电容26C333uf电解电容17DIP-2020脚单片机芯片座18AT89C2051AT89C205151单片机芯片19LG562118脚,共阳数码管11012M12MHZ晶振11118b2018b20温度传感器112Q1、Q29013三极管2133节电池电池盒114S1开关1-4-7、软件流程图软件流程图,如图5所示:图5软件流程图8、软件程序(秒表+温度计)#includereg52.h//51单片机头文件,包含了特殊寄存器的说明#includeintrins.h#defineucharunsignedchar//定义无符号字符型#defineuintunsignedint//定义无符号整型Ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uinttempe;uintmiao=0;uintj=0;uintflag=0;sbitDQ=P3^7;sbitp=P3^1;sbitq=P3^0;sbitkey=P3^2;uintshi=0;uintge=0;voiddelay1(uintz)//延时函数{uintx,y;for(x=z;x0;x--)-5-for(y=110;y0;y--);}voiddelay(uintt){while(t--);}voiddisplay1(){shi=miao/10;ge=miao%10;p=1;q=0;P1=table[shi];delay1(5);p=0;q=0;q=1;p=0;P1=table[ge];delay1(5);q=0;p=0;}voiddisplay(void){p=1;q=0;P1=table[tempe/10];delay1(5);p=0;q=0;q=1;p=0;P1=table[tempe%10];delay1(5);q=0;p=0;}voidinit_ds18b20(void)//DS18B20的初始化函数{ucharsample;DQ=1;-6-delay(8);DQ=0;delay(80);DQ=1;delay(8);sample=DQ;//return(sample)带返回检测器件响应delay(4);}voidwr_ds18b20(uchardat)//写数据{uchari;for(i=0;i8;i++){DQ=0;DQ=dat&0x01;delay(4);DQ=1;dat=1;}delay(4);}ucharre_ds18b20(void)//读数据{uchari;ucharresult;for(i=0;i8;i++){DQ=0;result=1;_nop_();DQ=1;if(DQ)result|=0x80;delay(4);}return(result);}ucharrd_temperature(void){uchara,b;init_ds18b20();wr_ds18b20(0xcc);//跳过ROMwr_ds18b20(0x44);//启动温度测量delay(300);-7-init_ds18b20();wr_ds18b20(0xcc);wr_ds18b20(0xbe);a=re_ds18b20();b=re_ds18b20();b=4;b+=(a&0xf0)4;return(b);}voidmain(){TMOD=1;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;//总中断允许ET0=1;//开启T0定时器的溢出中断允许位TR0=1;//启动T0定时器EX0=1;//允许外部中断响应外部设备的触发信号IT0=1;//单脉冲下降沿触发中断有效while(1){if(flag==0){TR0=0;P1=0XFF;delay(1);miao=0;tempe=rd_temperature();//温度计display();delay(5);display();delay(5);}if(flag==1){tempe=0;P1=0XFF;delay(1);TR0=1;display1();delay(1);display1();-8-delay(5);display1();delay(5);}}}voidtimer()interrupt1//秒表{TH0=(65536-50000)/256;TL0=(65536-50000)%256;j++;if(j==20){j=0;miao++;if(miao==60)miao=0;}}voidexter()interrupt0{flag=!flag;}9、实践总结通过本次实验,完成实现温度传感器的设计与制作,让我们更加深刻的了解了现实生活与我们电子技术的息息相关,更我们把从课本上学习的只是转化为我们的实践经验。但是在制作过程中暴漏出很多问题:首先,我们学的基础知识还是不是很牢固,有时候一些实际中用到的知识我们还得重新去温习那些知识才能更好的完成实践中的任务;对于制版焊接方面,我们缺少太少的练习机会,以至于我们在焊接的时候焊接的不是很美观;数码管的各个管脚位置不是很清楚,导致一开始制作的板子数码管所接线路是错的(后来用万用表测试好各个管脚后重新连线,这才终于成功了)。在这次试验中最重要的还让我领悟了团队合作的重大作用,大家互相取长补短,充分发挥自己的特长,使得任务进程更加顺利。此次的实践大大的提高了我们的动手能力与运用所学知识解决实际问题的素质,为了以后的实践积累了宝贵的经验,而且我还学会了如何去培养我们的不畏困难的挑战精神,从而不断地战胜自己,超越自己,我们在这一设计过程中,学会了坚持不懈,不轻易言弃。10、教师评语
本文标题:电子温度计与秒表专业实践报告
链接地址:https://www.777doc.com/doc-75937 .html