网站大量收购独家精品文档,联系QQ:2885784924

电子温度计与秒表专业实践报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE - PAGE 8 - 实践任务要求 1、制作电子温度计。 使用双7段数码管显示器显示温度。采用2051单片机及温度传感器18B20设计电子温度计,实时显示当前温度值(两位),所示的温度范围为0~99。 2、采用Protues软件画出“电子温度计” 原理图。 3、查找资料,编写软件程序。 4、在电子温度计的基础上,加上一个小开关,实现用开关控制电子温度计与计数器的切换功能。计数器范围为0~99 硬件原理图 使用AT89C2051实现显示温度,其中LG为2位共阳极数码管。用DXP绘制的原理图,如下图1所示: 图1 硬件原理图 硬件仿真图 用Protues软件进行仿真,如图2(1)、2(2)所示: 图2(1)电子温度计仿真图 图2(2)秒表仿真图 4、 PCB板图 硬件PCB板图,如图3所示: 图3 硬件PCB板图 5、产品实物图 做出的产品实物图,如图4所示: 图4 产品实物图 6、器件明细表 所需要的元器件见表1。 表1 元器件明细表 序号 标号 型号 器件名称 数量 1 R1~R7、R12 200 电阻 8 2 R8 、R9 1K 电阻 2 3 R10 10K 电阻 1 4 R11 2K 电阻 1 5 C1、C2 30PF 瓷片电容 2 6 C3 33uf 电解电容 1 7 DIP-20 20脚 单片机芯片座 1 8 AT89C2051 AT89C2051 51单片机芯片 1 9 LG5621 18脚,共阳 数码管 1 10 12M 12MHZ 晶振 1 11 18b20 18b20 温度传感器 1 12 Q1、Q2 9013 三极管 2 13 3节电池 电池盒 1 14 S1 开关 1 软件流程图 软件流程图,如图5所示: 图5 软件流程图 软件程序(秒表+温度计) #includereg52.h // 51单片机头文件,包含了特殊寄存器的说明 #include intrins.h #define uchar unsigned char //定义无符号字符型 #define uint unsigned int //定义无符号整型 Uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uint tempe; uint miao=0; uint j=0; uint flag=0; sbit DQ=P3^7; sbit p=P3^1; sbit q=P3^0; sbit key=P3^2; uint shi=0; uint ge=0; void delay1(uint z) //延时函数 { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--) ; } void delay(uint t) { while(t--); } void display1() { 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; } void display(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; } void init_ds18b20(void) //DS18B20的初始化函数 { uchar sample; DQ=1; delay(8); DQ=0; delay(80); DQ=1; delay(8); sample=DQ; //return(sample)带返回检测器件响应 delay(4); } void wr_ds18b20(uchar dat) //写数据 { uchar i; for(i=0;i8;i++) { DQ=0; DQ=dat0x01; delay(4); DQ=1; dat=1; } delay(4); } uchar re_ds18b20(void) //读数据 { uchar i; uchar result; for(i=0;i8;i++) { DQ=0; result=1; _nop_(); DQ=1; if(DQ) resu

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档