单片机数字温度计产品报告_第1页
单片机数字温度计产品报告_第2页
单片机数字温度计产品报告_第3页
单片机数字温度计产品报告_第4页
单片机数字温度计产品报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西安科技大学高新学院实 验 报 告 册20142015学年第一学期 学 院:机电信息学院专业班级: 微电子 1201 课 程: 电子产品设计姓 名: XXXX 学 号: 实验教师: X X X 目录1、 元器件清单2、 原理图3、 Proteus仿真图4、 PCB图5、 软件代码6、 个人体会一、元器件清单产品名称序号元器件名称单位规格数量备注单片机数字温度计开发板1极性电容uf100uf15*112极性电容uf10uf14*73瓷片电容pf10464瓷片电容pf30pf25发光二极管三红一绿46二极管IN414817D型插头9针*母头18排针(40针)12.54MM9排针针槽(40针)12.

2、54MM10电阻(金属膜)1/4WK1K411电阻(金属膜)1/4WK10K1012电阻(金属膜)1/4WK0113电阻(金属膜)1/4WK4.7K114轻触开关4腿6*6*6115复位开关(带锁)6腿7*7*7116单片机STC89C52RC117单片机插座同上配套118MAX232119MAX232插座同上配套120DS18B20121晶振MHZ11.0592MHZ122USB转串口9针*公头123电位器K3296W-103(10K)124电源座DC005 DC2.115.5*2.1 DC25液晶屏16021蓝屏蓝底白字二、原理图一 单位:XXX小组尺寸:1:1编号:02修订: XXX日期

3、:2014年12月16日文件页数:1文件存储:绘图人员:XXX说明:单片机数字温度计开发板电原理图电原理图二 单位:XXX小组尺寸:1:1编号:02修订: XXX日期:2014年12月16日文件页数:1文件存储:绘图人员:XXX说明:单片机数字温度计开发板电原理图三、Proteus仿真图Proteus仿真图单位:单位:XXX小组编号:1修订:XXX日期:2014年12月16日文件张数:1文件储存:2014年12月16日绘图人员:XXX结构图说明:单片机数字温度计开发板电Proteus仿真图四、PCB图(示意图)PCB图单位:单位:XXX小组比例: 1:1编号:1修订:XXX 日期:2014/1

4、2/16文件张数:1文件储存:2014/12/16绘图人员:XXX结构图说明:单片机数字温度计开发板PCB图五、软件代码/*简要说明:使用DS18b20A/D转化器,P20接数据I/O口DQ, P10-P17接1602的D0-D7,P21接rs,P23接r/w,P25接en函数列表:void delay(int a);延时,以us计算 void delayms(int z);延时,以ms计算 unsigned char reset(void)复位程序 unsigned char read_bit(void)从DS18b20读一个位 unsigned char read_byte(void)从D

5、S18b20读一个字节 void write_bit(char bitval)向DS18b20写一个位 void write_byte(char val)向DS18b20写指令一个字节 void tmconvert(void) 温度转化*/#include <reg51.h>#define uchar8 unsigned char #define uint16 unsigned intuchar8 dis6 = 0, 0, 0, 0, 0, 0 ;uchar8 code wendu=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;

6、 /0到9的代码uchar8 code name="DS18B20 is OK!"uchar8 flag,sig; /flag用于判定是否有中断,sig判定温度符号sbit rs = P10; /1602 数据/命令sbit rw = P11; / 读/写sbit en = P12; / 使能端sbit DQ = P33; /18b20与单片机连接的DQ总线/*延时函数*/void delay (int us) /DELAY-11.0592MHZ 调用程序大约为24us,每次循环为16usint s;for(s=0;s<us;s+);void delayms(int

7、z)/z为毫秒数int x,y;for(x=z;x>0;x-)for(y=125;y>0;y-);/*函数名称:写指令输入参数:指令输出参数:数据口输出指令功能:对1602执行特定命令*/void write_com(uchar8 com) /写指令 delayms(5); rs = 0; /选择写指令 rw = 0; P0 = com; en = 1; /en先1后0为高脉冲 delayms(5); en = 0; /*函数名称:写数据输入参数:数据,字母则是ASCIL值输出参数:数据口输出数据功能:令1602显示数据*/void write_dat(uchar8 dat) /写

8、数据 delayms(5);rs = 1; /选择写数据rw = 0;P0 = dat;en = 1; /en先1后0为高脉冲delayms(5);en = 0;/*函数名称:初始化输入参数:无输出参数:无调用函数:void w_cmd(uchar cmd)功能:对1602进行初始化,具体过程应严格参照产品说明书*/void init1602(viod) /初始化TMOD=0x01; /定时器0设为工作方式1TH0 =0x3c; /(65536-50000)/256; TL0 =0xb0; /(65536-50000)%256;EA=1; /开总中断ET0=1; /开定时器0中断TR0=1;

9、/启动定时器0 rw = 0; /读/写置低write_com(0x38); /设置16x2显示,5x7点阵,8位数据口write_com(0x08); /显示关闭write_com(0x01); /显示清屏,数据指针以及所有显示清零write_com(0x06); /读写数据,光标及数据指针加一write_com(0x0c); /开显示,光标不显示/*函数名称:写字符串输入参数:字符串首地址输出参数:无功能:使1602显示字符串*/void write_char(uchar8 *cha)/字符串的输入 uchar8 i = 0;while (chai != 0) write_dat(chai

10、); /写一个数据 i+; /i自加一次 delayms(50); /延时50ms/*复位程序*/unsigned char reset(void)uchar8 presence;DQ=0; /拉低总线。当总线停留在低电平480us-960us ,总线上所以器件都将被复位delay(30); /保持低电平504usDQ=1; /释放总线,让其恢复高电平delay(3); /等待芯片应答信号presence=DQ; /获取应答信号delay(25); /延时以完成整个时序return(presence);/返回应答信号。有芯片应答返回0,否则返回1。/*写一位数据*/void write_bit

11、(char bitval)DQ=0; /拉低DQ总线,开始时序if(bitval=1) /如果写入的为1,则返回高电平DQ=1;delay(5); /延时104us,以完成整个时序DQ=1;/*写一字节数据*/void write_byte(char val)uchar8 i,commend;for (i=0;i<8;i+) /写入一个字节的数据,一个时序中写一次 commend=val>>i; /右移i位 commend&=0x01; /复制那位数据到temp write_bit(commend); /调用write_bit()delay(5); /延时104us以

12、完成此次时序,之后再写下一数据/*读一位数据*/uchar8 read_bit(void) uchar8 i; DQ=0; /拉低DQ,开始读时序 DQ=1; /释放DQ总线 for(i=0;i<3;i+);/从时序开始延时15us return(DQ); /返回DQ值/*读一字节数据*/uchar8 read_byte(void)uchar8 i,value=0;for(i=0;i<8;i+)if(read_bit() /读一字节数据,一个时序中读一次,并作移位处理 value|=0x01<<i; delay(6);/延时以完成此次读时序,之后再读下一数据return

13、(value);/*温度转化*/void tmconvert(void)reset(); /复位delay(1);write_byte(0xcc); /仅一个DS18b20 ,跳过ROMwrite_byte(0x44); /温度变换/*读取温度*/long gettm(void)uchar8 LSB=0,MSB=0; /用于存储读取的温度long temp;reset(); /复位write_byte(0xcc); /写指令,跳过ROM,仅一个DS18b20write_byte(0xbe); /写指令,读暂存存储器LSB = read_byte(); /读LSBMSB = read_byte(

14、); /读MSBsig=(MSB>>4=0X0F);if(sig) /判断符号位是否为负值,是负值了,转去处理 LSB=LSB; /温度处理 MSB=MSB; LSB=LSB+1; temp=MSB*256+LSB; /十六进制转换为10进制temp=temp*100/16; /12位精度,最小分辨率为0.0625°Creturn temp; /获得0.01°C 的精度并返回void display(long m) uchar8 i; /分离各数位 dis1 = m/10000; /百位 dis2 = (m%10000)/1000; /十位 dis3 = (m%

15、1000)/100; /个位 dis4 = (m%100)/10; /小数第一位 dis5 = m%10; /小数第二位 delayms(30); write_com(0x80); /0x80+地址码,设置数据地址指针(显示第一行:0-0fH,第二行:40-4fH;)if(sig) write_dat(0x2d);/如果sig=1,显示负号;否则显示正号else write_dat(0x2b); for(i=1; i<6; i+)write_dat(wendudisi);/显示温度if(i=3) write_dat(0x2e); /显示小数点 write_dat(0xdf);/显示&qu

16、ot;"write_dat(0x43);write_com(0x80+0x40); /显示第二行,设定开始为首位write_char(name);void main(void) init1602(); /初始化 while(1) if(flag=1) /是否有中断产生flag=0; /中断标志位清零tmconvert(); /开始温度转化gettm(); /读取温度display(gettm(); /显示温度 void timer0() interrupt 1 /定时器0 中断 TH0 =(65536-50000)/256; TL0 =(65536-50000)%256;flag=1

17、; 六、个人体会 本次电子产品设计与制作让我收获颇丰。这次电子作品的设计与制作是每三个人一组,这次的作品我们三人齐心协力共同完成了设计与制作的全过程。 这次电子作品是单片机数字温度计,在所需元器件还未到手之前,我们在老师的指引下,学习了Altium软件,并用此软件画出了单片机数字温度计的原理图和PCB图。随后,我们在网上开始找商家,定制我们的PCB板,经过一周之后,我们的PCB板到手了,此时由班委负责统一买的元器件也回来了。拿到元器件之后,我们进行了元器件的焊接,我们先把元器件进行分类,把同一类的放在一起,再用万用表对各种元器件进行检测确保每个元器件的功能都正常,然后按先从易到难、从小到大、先

18、远后进的顺序进行焊接。焊接完后检查是否有漏焊、空焊、虚焊、短路、桥连等现象并进行改正。进行通电实验,测试调试电路的功能是否实现,查看电路是否正常运行或有什么异常现象,如果电路不能实现我们预定的功能我们要进行调试或改进,最后实现单片机数字温度计的功能,这样就完成了电子设计作品硬件制作的过程。经过这次单片机数字温度计作品设计与制作让我收获很多:一、让我明白了“三个臭皮匠顶一个诸葛亮”和“团结就是力量”等名言名句的道理,让我明白只要我们团结协作没有什么困难是战胜不了的,团结让我们成功,团结让我们胜利,团结让我们的力量更大;二、增进我和老师同学之间的友谊情感,在与老师互动学习的过程中使我体会了老师解决

19、问题的方法与思路,让我领会了解决问题精髓,使我们学习更有活力更有信心更有自信,培养了我们的协助合作能力;三、培养了我们的动手能力和独立解决问题的能力;四、培养了我们的自主学习能力和利用网上这个广阔平台的学习能力;五、使我学会了用专用的画图工具和画图软件Altium画电路图的能力,通过这次作品的制作使我对Altium原来的不会应用到现在的比较熟练掌握;六、锻炼了我们的焊接技术和焊接工艺,使我的焊接能力上了一个台阶。另一方面,也让我明白了,一个项目的执行,需要有2个角色:项目经理+产品经理。项目经理:正确地做流程;产品经理:正确地做产品。 由于人的精力有限,需要有人专注某一领域,协调项目

20、的进展。项目经理更注重流程,制定并把握项目的进度,安排合适的人做正确的事,而产品经理则注重产品的质量,如网页的界面、功能,后台的数据库等,安排合适的人把事情做正确!  (1)制定合理的进度表,确保各项内容安排得当。       确定的起始时间应注意:      第一,包括一个缓冲期。为了避免拖拉,延误了整个项目的时间,需将起始时间设定在底限的时间的前1-3天。例如1号开始画pcb图,底线是10号交最终版的样图。在确定起始时间,应当设定为1-7号。因为返工修改与可能会

21、出现拖拉的这2个因素,空出3天这样一个弹性时间。假如设定时间是1-10号,有可能10号晚上拿到的pcb图就非常满意,不需要一点点修改?      第二,时间的最终确定需所有成员清楚并同意。为了增加成员对项目的认同感,也为了尊重成员,避免成员在情感上认为上级又布置了一个任务,只能选择接受。由于每个人有各种私人的事情,还有可能有选修课、实验课等等不定因素,所以大家的时间比较零碎。此时,可以先按理想中的情况安排起始时间,再在会议上让成员商议,在每个人确保自己能完成任务的时间的情况下,再确定一份最终版的时间表(当然不能超过底限时间),最后要强调这份时间

22、表是所有成员做出的承诺,如果完成不了再进行问责! 确定任务的参与人时,应充分考虑到他的技能水平、时间安排能否按时按质完成。但现实情况是很难有一个量化标准来衡量一个成员,因此在安排时可适当降低标准,只要不底于底限即可。 (2)开会进行任务安排,明确每个人的职责。       为了避免会议冗长、低效,小团队(8-12人)开会时,全部人站着开会且开会时间尽量控制在20分钟之内。会议上无法达成协议的,由双方会后再协商,不能因为个人浪费大家时间。      在部署任务时      第一,讲清我的期望与衡量标准。可以让成员从思想上重视,且知道怎么做才能满意,更具方向性。      第二,讲清楚做这件事对其个人能力成长有什么帮助。      第三,关于做事情的方法和思路,如何去做,因人而异:对于新手,就直接讲明应该如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论