1、实践任务要求1、制作电子温度计。使用双7段数码管显示器显示温度。采用2051单片机及温度传感器18B20设计电子温度计,实时显示当前温度值(两位),所示的温度范围为0~99。2、采用Protues软件画出“电子温度计”原理图。3、查找资料,编写软件程序。4、在电子温度计的基础上,加上一个小开关,实现用开关控制电子温度计与计数器的切换功能。计数器范围为0~992、硬件原理图使用AT89C2051实现显示温度,其中LG为2位共阳极数码管。用DXP绘制的原理图,如下图1所示:第1页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共10页图1硬件原理图3、硬件仿真图用Protues软件进行仿真,如图2(1)、2(2)所示:图2(1)电子温度计仿真图第2页共10页第1页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共10页图2(2)秒表仿真图4、PCB板图硬件PCB板图,如图3所示:第3页共10页第2页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共10页图3硬件PCB板图5、产品实物图做出的产品实物图,如图4所示:图4产品实物图第4页共10页第3页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第4页共10页6、器件明细表所需要的元器件见表1。表1元器件明细表序号标号型号器件名称数量1R1~R7、R12200电阻82R8、R91K电阻23R1010K电阻14R112K电阻15C1、C230PF瓷片电容26C333uf电解电容17DIP-2020脚单片机芯片座18AT89C2051AT89C205151单片机芯片19LG562118脚,共阳数码管11012M12MHZ晶振11118b2018b20温度传感器112Q1、Q29013三极管2133节电池电池盒114S1开关17、软件流程图软件流程图,如图5所示:第5页共10页第4页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第5页共10页图5软件流程图8、软件程序(秒表+温度计)#include//51单片机头文件,包含了特殊寄存器的说明#include#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;x>0;x--)for(y=110;y>0;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];第6页共10页第5页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第6页共10页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;delay(8);DQ=0;delay(80);DQ=1;delay(8);sample=DQ;//return(sample)带返回检测器件响应delay(4);}voidwr_ds18b20(uchardat)//写数据{uchari;for(i=0;i<8;i++){DQ=0;DQ=dat&0x01;delay(4);DQ=1;dat>>=1;}第7页共10页第6页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第7页共10页delay(4);}ucharre_ds18b20(void)//读数据{uchari;ucharresult;for(i=0;i<8;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);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定时器第8页共10页第7页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第8页共10页EX0=1;//允许外部中断响应外部设备的触发信号IT0=1;//单脉冲下降沿触发中断有效while(1){if(flag==0){TR0=0;P1=0XFF;delay(1);miao=...