桂林航专电子工程系

上传人:shich****u123 文档编号:46285249 上传时间:2021-12-11 格式:DOC 页数:39 大小:1.01MB
返回 下载 相关 举报
桂林航专电子工程系_第1页
第1页 / 共39页
桂林航专电子工程系_第2页
第2页 / 共39页
桂林航专电子工程系_第3页
第3页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
桂林航专电子工程系单片机课程设计与制作说明书设计题目:数字温度计专业年级: 学 号: 姓 名: 同组姓名: 指导教师: 2008年07月7日单片机课程设计与制作成绩评定表设计题目:数字温度计学号: 姓名:项目评 语成绩设计表现(20)设计说明书(40)实物评价(40)综合评定教师签名年 月 日单片机课程设计与制作任务书专业:电子信息工程技术 学号: 姓名:一、设计题目:数字温度计二、设计要求:1、 具有对温度测量,不在温度测的范围报警及显示功能;2、 温度采用一组LED数码管显示,有最高和最低的温度显示标志;3、 能够用简单的按键对温度下限和上限进行手动设定,复位或调整;4、 测量温度步进为1度。三、设计内容:硬件设计、软件设计及样品制作四、设计成果形式:1、 设计说明书一份(不少于4000字);2、 样品一套。五完成期限: 2008年07月12日指导教师: 年 月 日教研室: 年 月 日桂林航天工业高等专科学校单片机课程设计目录一、 前 言21.1 单片机简介21.2单片机的产生与发展21.3 单片机的运用31.4 LED显示控制技术4二、总体设计方案52.1数字温度计设计方案论证52.2方案二的总体设计框图5三、proteus仿真113.1 利用伟福软件编译程序113.2 安装proteus仿真软件113.用proteus绘制原理图113.4 proteus仿真12四、硬件电路设计194.1 AT89C51的介绍194.2 振荡器特性204.3 单片机芯片的擦除214.4 单片机的时钟电路214.5 单片机的复位电路214.6 AT89C51的最小应用系统22五、系统整体硬件电路235.1 主板电路235.2 显示电路235.3 传感器数据采集电路24六、系统软件算法分析256.1主程序256.2读出温度子程序256.3温度转换命令子程序266.4计算温度子程序276.5 温度数据显示子程序27七、样品制作与调试287.1原材料的选择与采购287.2 印刷电路板的设计与制作287.3 单片机测试287.4 硬件及软件调试297.5整机的调试与测试过程29八、使用说明31九、结束语32十、参考文献33附录一、元器件清单34附录二、 原理图35附录三、 PCB图36附录四 原程序37一、 前 言1.1 单片机简介当今在全世界范围内,已经形成了以计算机(Computer)通信(Communication)和消费类电子(Consumptive Electron)三足鼎立的发展新格局,而作为做21世纪的电子专业工科大学生,无论是从事科学研究工作,还是开办电子电器制造企业,抑或是经营电子元器件贸易,不仅要熟练地使用通用微机进行各种数据处理,还要把计算机技术运用到本专业领域或相关领域,即具有“开发”能力。所以新世纪的工科大学生既要掌握通用微机,又要掌握“单片机”。 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。正是因为单片机功能之强大,应用范围之广,我们要努力掌握它。我们虽然在校学习了一些很基础的知识,但只有通过虽然不断的学习和实践才能成长,这回的毕业设计,让我好好地重新认识了单片机重要性,让我的单片机知识有了新的飞跃!1.2单片机的产生与发展1974 年,美国仙童(Firchild)公司研制的世界第一台单片微型机F8.该机有两块集成电路芯片组成,结构奇特,具有与众不同的指令系统,深受民用电器和仪器仪表领域的欢迎和重视.从此,单片机开始迅速发展,应用领域也在不断扩大.现已成为微型计算机的重要分支,单片机的发展过程通常可以分为一下几个发展过程.(1)第一代单片机(1974-1976):这是单片机发展的起步阶段.在这个时期生产的单片机特点是,制造工艺落后和集成度低,而且采用了双片形式.典型的代表产品有Fairchild公司的F8和Mostek387公司的3870等.(2)第二代单片机(1976-1978):这是单片机的第二发展阶段.这个时代生产的单片机随眼已能在单块芯片内集成CPU,并行口,定时器,RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广,典型的产品有Inrel公司的MCS-48系列机. (3)第三代单片机(1979-1982):这是八位单片机成熟的阶段.这一代单片机和前两代相比,不仅存储容量和寻址范围大,而且中断源,并行I/O口和定时器/计数器个数都有了不同程度的增加,更有甚者是新集成了全双工穿行通信接口电路.在指令系统方面,普遍增设了惩处法和比较指令.这一时期生产的单片机品种齐全,可以满足各种不同领域的需要.代表产品有Intel公司的MCS-51系列机,Motorola公司的MC6801系列机,TI公司的TMS7000系列机,此外,Rockwell,NS,GI和日本松下等公司也先后生产了自己的单片机系列。(4)第四代单片机(1983年以后):这是十六位单片机和八位高性能单片机并行发展的时代,十六位机的特点是,工艺先进,集成度高和内部功能强,加法运算速度可达到1us以上,而且允许用户采用面向工业控制的专用语言,如PL/MPLUS C和Forth语言等.代便产品有intel公司的MCS-96系列,TI公司的TMS9900,NEC公司的783系列和NS公司的HPC16040等。然而,由于十六位单片机价格比较贵, 销售量不大,大量应用领域需要的是高性能,大容量和多功能新型八位单片机.这些单片机有Intel公司的88044(双CPU工作),Zilog公司的Super8(含DMA通道),Motorola公司的MC68CH11(内含E2prom及A/D电路)和WDC公司的65C124(内含网络接口电路),等等。1.3 单片机的运用单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。1.4 LED显示控制技术LED的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术等。1.4.1 串行传输与并行传输技术LED的数据传输方式主要有串行和并行两种。日前普遍采用串行控制技术,显示屏每个单元内部的不同驱动电路和各级联单元之间,每个时钟仅传送一位数据。采用这种方式的驱动IC种类较多,不同显示单元之间的联线较少,可减少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比,具体工程实现也较为容易。1.4.2 动态扫描与静态锁存技术LED控制系统实现显示信息的刷新技术有动态扫描和静态锁存两种方式。一般室内显示屏多采用动态扫描技术,即一行发光二极管共用一行驱动寄存器,根据共用一行驱动寄存器的发光二极管像素数目,分为1/4,1/16扫描等。室外显示屏基本上采用静态锁存技术,即每一个发光二极管都对应有一个驱动寄存器,无需时分工作,从而保证了每一个发光二极管的亮度占空比为100%。动态扫描法可以大大减少控制器的I/O口,因此应用较广。二、总体设计方案2.1数字温度计设计方案论证2.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。2.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。2.2方案二的总体设计框图温度计电路设计总体设计框图如图2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以并口传送数据实现温度显示。主 控 制 器LED显示温 度 传 感 器单片机复位时钟振荡报警点按键调整 图2.1 总体设计方框图2.2.1 主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.2.2 显示电路显示电路采用3位共阳LED数码管,利用动态扫描方式,从P0口输出段码,P2口的P2.5、P2.6、P2.7输出位码。2.2.3温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图2.2所示。I/OC64位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd图2.2 DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图2.3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图2.3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRCTMR1R011111图2.3 DS18B20字节定义由表2.1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。表2.1 DS18B20温度转换时间表R1R0分辨率/位温度最大转换时间/MS00993.750110187.510113751112750高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB式表示。当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。分别说明如下:1 初始化 单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。2 ROM操作命令 总线主机检测到DS18B20的存在 便可以发出ROM操作命令之一 这些命令表2.2:表2.2 ROM操作命令指 令代 码Read ROM(读ROM)33HMatch ROM(匹配ROM)55HSkip ROM(跳过ROMCCHSearch ROM(搜索ROM)F0HAlarm search(告警搜索)ECH 3 存储器操作命令如表2.3: 表2.3 存储器操作命令指令代码Write Scratchpad(写暂存存储器)4EHRead Scratchpad(读暂存存储器)BEHCopy Scratchpad(复制暂存存储器)48HConvert Temperature(温度变换)44HRecall EPROM(重新调出)B8HRead Power supply(读电源)B4H 4 时序 主机使用时间隙(time slots)来读写DS18B20的数据位和写命令字的位(1)初始化 图2.4 初始化时序时序见图2.4,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号),接着在tl时刻释放总线并进入接收状态。DS18B20在检测到总线的上升沿之后等待15-60us,接着DS18B20在t2时刻发出存在脉冲(低电平 持续60-240 us)。如图中虚线所示: (2)写时间隙 图2.5.1 写0时序 图2.5.2 写1时序当主机总线t o时刻从高拉至低电平时,就产生写时间隙见图2.5.1和图2.5.2。从to时刻开始15us之内应将所需写的位送到总线上,DSl820在t o后15-60us间对总线采样。若低电平,写入的位是0,见图2.5.1。若高电平写入的位是1见图2.5.2。连续写2位间的间隙应大于1us。 (3)读时间隙 图2.6 读时序见图2.6,主机总线to时刻从高拉至低电平时,总线只须保持低电平l us。之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t 2时刻前有效,t 2距to为15us。也就是说t 2时刻前主机必须完成读位,并在t o后的60us一120us内释放总线,读位子程序(读得的位到C中)。DSl820多路测量简介 初始化跳过ROM变换温度等待1S初始化设置1820个数匹配ROM读存储器存放在缓冲区指针增1初始化b-1=0?否是图2.7 DSl820原理框图每一片DSl820在其ROM中都存有其唯一的48位序列号,出厂前已写入片内ROM 中,主机在进入操作程序前必须逐一接入DS18B20用读ROM(33H)命令将该DS18B20的序列号读出并登录。当主机需要对众多在线DS18B20的某一个进行操作时,首先要发出匹配ROM命令(55H),紧接着主机提供64位序列(包括该DS18B20的48位序列号)。之后的操作就是针对该DS18B20的。而所谓跳过ROM命令即:MOV A,#0CCH。图2.7中先有跳过ROM,即是启动所有DS18B20进行温度变换,之后通过匹配ROM 再逐一地读回每个DS18B20的温度数据。在DS18B20组成的测温系统中,主机在发出跳过ROM命令之后,再发出统一的温度转换启动码44H,就可以实现所有DS18B20的统一转换,再经过1s后,就可以用很少的时间去逐一读取。这种方式使其T值往往小于传统方式。(由于采取公用的放大电路和A/D转换器只能逐一转换)。显然通道数越多,这种省时效应就越明显。三、proteus仿真利用proteus单片机仿真软件对电路及程序进行仿真3.1 利用伟福软件编译程序 用伟福软件编译温度计程序伟为16进制,后缀名为HEX3.2 安装proteus仿真软件下图为proteus为装完后的图标图3.1 proteus软件图标3.用proteus绘制原理图再proteus中绘制电路图,并设置好各个元器件的参数,该参数包括电阻阻值、容值、元件标号、震荡频率以及使用到的程序,如下图3.2所示:图3.2 在proteus中绘制原理图3.4 proteus仿真编写好程序以后,点击运行,则会出现如图3.3所示:图3.3 在proteus中仿真37按SW1时设置最低温度,数码管第一个显示0,如下所示:再按SW1时设置最高温度,数码管第一个显示H,如下所示:四、硬件电路设计4.1 AT89C51的介绍AT89C51芯片采用高速制造工艺,通用型为40脚双列直插封装形式。其管脚结构如图4.1。图4.1 89C51管脚(1)40脚 VCC:供电电压; 20脚 GND:接地。(2)P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。(3)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。(4)P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。设计中未用P2口。(5)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。同时,P3口还具有第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。(6)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(7)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。(8)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。(9)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。(10)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。(11)XTAL2:来自反向振荡器的输出。4.2 振荡器特性XTAL1和XTAL2的反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4.3 单片机芯片的擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。AT89C51的稳态逻辑可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。4.4 单片机的时钟电路图4.2 片内振荡电路的时钟电路AT89C1单片机内部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89C51的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。即利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图4.2电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为6MHz的石英晶体,电容器一般选择30PF左右。4.5 单片机的复位电路图4.3 AT89C51的复位电路本设计中AT89C51是采用上电自动复位和按键复位两种方式。最简单的复位电路如图4.3所示。上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R1和R2分别选择200和1K的电阻,电容器一般选择22F。4.6 AT89C51的最小应用系统AT89C51是片内有程序存储器的单片机,要构成最小应用系统时只要将单片机接上外部的晶体或时钟电路和复位电路即可,如图4.4所示。这样构成的最小系统简单可靠,其特点是没有外部扩展,有可供用户使用的大量的IO线。图4.4 AT89C51单片机构成的最小系五、系统整体硬件电路5.1 主板电路图5.1 主板电路系统整体硬件电路包括传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路,电源电路等。如图5.1所示图5.1中有四个独立式按键可以分别调整温度计的上下限报警设置,可以任意调整报警上下限。图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音。LED数码管将当前被测温度值显示,从而测出被测的温度值。图5.1中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。5.2 显示电路显示电路是采用P0口输出段码至LED,P2口控制位选通的动态扫描显示方式,排显数码管用NPN型三极管驱动,这种显示方式的最大优点是显示清晰,软件设计简单,连线较少,容易控制。如图5.2所示:图5.2 显示电路5.3 传感器数据采集电路传感器数据采集电路主要指DS18B20温度传感器与单片机的接口电路。DS18B20可以采用两种方式供电,一种是采用电源供电方式,如图5.3所示,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图2.11所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。考虑到实际应用中寄生电源供电方式适应能力差且易损坏,此处采用电源供电方式,I/O口接单片机的P2.0口。图5.3 电源供电方式六、系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。NYNY按键子程序初始化得出温度总子程序报警子程序调显示子程序S1键按下否?开始 温温度比较子程序是否超出上下限返回图6.1 主程序流程6.1主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图6.1所示。6.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图6.2所示发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNYY图6.2 读出温度子程序流程6.3温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图,如图6.3所示发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图6.3 温度转换流程图6.4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图6.4所示。开始N温度零下?Y置“+”标志温度值取补码置“-”标志计算小数位温度BCD值 计算整数位温度BCD值 结束图6.4 计算温度流程图 6.5 温度数据显示子程序显示数据子程序主要是对显示缓冲器中的显示数据进行刷新操作,查表送段码至LED,开位码显示,采用动态扫描方式。七、样品制作与调试7.1原材料的选择与采购本次设计在原材料的选择与采购上做到了设计最优化,即用最小的开支,获得性价比较高的元器件和材料。设计中,印刷电路板可采用单面板或是采用双面板。选元器件时,尽量选择能使电路简化的器件。例如,为了不增大电路板的体积及减小功耗,本设计采用ATMEL公司的89S51单片机,体积小,工作电压低。7.2 印刷电路板的设计与制作在PCB图的设计中,我们组的三个人可是尽心尽力,出谋划策。自从大二第一学期起我们就很少接触protel这个软件。所以我们刚开始画的时候总是毛手毛脚的,对其中的很多功能是不了解,画出来的图不仅不美观而且很多地方的布线不符合实际的要求。最后在多次请教老师和同学之后,我们终于克服了这几方面的问题,也许是电路有点复杂的问题我们不管怎么画跳线总是避免不了,但是为了整个布局的美观我们把跳线全部隐藏在数码管底下,为了使电路得挑线尽量减少,我们使用了数码管排显作为显示器,这样可以减少布线的难度。同时还为了避免出现短路现象,设计中采用了两个8路接线器,通过它们,可以大大减少跳线的数量,从而使电路板的整体效果看起来很紧凑。PCB图画好以后,就是制板。将打印好的PCB图紧贴到单面板覆铜的一面,在这里特别要注意的就是把PCB紧贴到铜板上是要对齐,否则制出来的电路板将不太美观。经压板机压板,然后将电路图印到单面板上。凉了以后,检查线条是否断,如果断了,需要用油墨笔将线条补上,在确认没有线条断开的情况下将板放入三氯化铁溶液中进行腐蚀,此时注意的就是要使三氯化铁溶液的浓度和温度适中,这样能加快铜板的腐蚀也能提高制板的成功率,也可以使的电路板已经不好的线完整。制好板以后,将电路板上的墨刮掉,这样整个制板过程就结束了。板制好以后,下面就是安装和焊接元件了。安装和焊接其实是并行的。在这个过程中,各类元件一定要按顺序进行,即要先焊跳线,再个小的元件,接着就是那些中等一些的,然后就是那些大的元件。这样会使所制的板更加容易,板面完善。7.3 单片机测试判断单片机芯片及时钟系统是否正常工作有一个简单的办法,就是用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。7.4 硬件及软件调试硬件调试,第一步是目测,在印好电路板之后,先检查印制线是否有断线、是否有毛刺、是否与其它线或焊盘粘连、焊盘是否有脱落、过孔是否有未金属化现象。而在目测的过程中,我们发现有一条印制线断开,因此我们用焊锡使这条断线连在一起。第二步是用万用表测量。在目测完之后,利用万用表来测量连线和接点,检查它们的通断状态是否和设计一样。再检查各种电源线和地线是否有短路现象,在检查的过程中,发现不管是连线还是接点都符合设计规定,电源和地线也没有短路现象。第三步是加电检查。给印制板加电时,我们检查到的器件的电源端符合要求的电压值+5V,同时接地端的电压为0。第四步是联机检查。利用系统和单片机开发系统用仿真电缆连接起来,发现联机检查完后以上是连接都正确、畅通、可靠。软件调试,第一步是在具有汇编软件的主机上和用户系统连接起来,进行调试准备。第二步是单步运行。第三步是系统连调,即进行软件和硬件联合调试。经调试,软件运行良好。7.5整机的调试与测试过程此次设计硬件采用印刷电路板,需自行制作并焊接元件。在做好硬件电路以后,进入软件调试阶段首先是测试显示电路的正确性,根据硬件写好一段显示程序,写入单片机中。安装好硬件,上电,显示正常,达到预期效果。证明显示电路正常。按下复位按键,LED无显示,松开,显示正常,证明复位电路正常。然后测试得到温度程序,将初始化程序,DS18B20正常工作的初始化程序、写DS18B20程序、读DS18B20程序,得到温度子程序,温度转换子程序,数据转换子程序,显示子程序正确编排后写入单片机中,上电后,显示当前温度。证明温度传感器DS18B20工作正常,各部分子程序运行正常。最后是按键子程序及报警子程序的调试,接通电源后其显示的温度就是室内温度27度,为了确定显示的温度的正确性就用另一个酒精温度计测量该室内温度,其温度显示为27.3度,误差是0.3度,误差在允许的范围之内(允许误差为0.5度)。按下S1键进入温度上下限设置,第以下是设置下限值,由于程序设置的最低温度是25度,所以在进入时显示就是25度,再按下S2加一三次之后显示就是28度,就把下限值设置为28度,在按下S4键退出,此时蜂鸣器就会发出滴滴声,因为设置的下限值为28度而实际温度只有27度,在程序中已设定当低于下限值就会发出报警声。则说明设置下限值以及报警电路能正常工作。上限值的调试与下限值的调试方法一样。程序的烧写没有出现问题,在程序中通过可以改写一些数字来设置不同的最低测量温度以及最高温度,前提在温度计的测量量程之内。以上调试结果显示各功能均能正常工作!八、使用说明本电路额定工作直流电压为+5V,有极性判别保护功能,采用7805集成稳压芯片以保证电路的供电稳定,用户输入电源在7-25V均可正常工作。电路中有五个按键,从左到右依次为S1、S2、S3、S4、RESET,介绍如下:S1为设置温度上下限设置状态进入按键,第一次按下进入低限设置,按下S4后,再次按下S1进入高限设置。S2为设置温度上下限的+键,每按下一次上下限值加一S3为设置温度上下限的-键,每按下一次上下限值减一S4为温度上下限设置状态的退出或确定按键RESET为复位按键使用方法及报警电路说明:接通电源,红色指示灯亮,表明电源正常。此时数码管应显示初值025,由于显示时间稍短,一闪即过。接下来显示当前温度,若不显示则说明硬件有问题,此时蜂鸣器将报警,绿色指示灯也会点亮。硬件正常,LED就会显示当前温度。若此时检测到当前环境温度不在原来设定的上下限范围之内,蜂鸣器也将报警同是绿灯点亮。直到采取措施改变环境温度在上下限范围内或调整温度上下限。九、结束语在三个人的配合下,这一期的单片机课程设计取得了圆满成功。看到自己的作品成功的那一刻。我们激动得跳起来了,也说出我们人生中难以说出来的一句话我们成功了!这一期的课程设计我们早已经做好了充分的准备。当老师一把课程设计的题目与要求公布出来我们就开始分工合作。首先我们就是开始找电路,我们三个分别在网上,图书馆查找资料,把那些认为可以做的电路找出来,然后集中在一起,由我们三个人共同讨论。最后我们一致决定做一个数字温度计。于是我就真正的开始分工合作了,我和我的一个室友画PCB另一个同学负责买元件然后检查PCB是否有误。在经过两天的奋斗我们终于把PCB给完成了。接下来我们就是做板了,在所有的程序中制板是最容易的,由我们其中的一个人就完成了。做完板之后我们就是焊接,我发现焊接这道程序是最有意思的,我们这组的人都要挣着弄,最后我们一致决定三个人分别焊接三个不同的部位。在不知不觉中这道程序也就完成了。接下来的任务我们就只剩下了调试。我们来到实验室,在经过一个同学的指导下,我们的调试成功,这也预言着我们单片机课程设计圆满成功!最后的任务就是写实验报告!在整个过程中,我从中学到了不少东西,更深一步掌握了单片机电路,更深的了解设计中所用到本电路的工作原理,同时也掌握了单片机各引脚的功能及用途。在用Protel制作电路图时,我掌握了制图的一些技巧及在画图时要注意的一些问题,同时也使我更能熟练地操作此软件。在自己动手制作实物多问多动脑多做,切切实实掌握了很多东西,比如焊接器件时要注意的一些事项及技术,硬件检测时所遇到的问题及解决运用的技术!做一次课程设计不仅要有实物而且还需要有论文。论文的撰写需要大量的资料,在查找资料的过程中,又培养了我从文献、科学实验、生产实践、和调查研究中获取知识的能力,提高了我从别人的经验、从其它学科找到解决问题新途径的悟性。在设计过程中,因为工作量较大,所以一定要分块进行,即每一阶段都有侧重点,然而,当中很可能会出现一些变化,这就要求你要根据条件变化而调整工作重点的应变能力。一个课程设计它构成了我们人生最精彩的一部分,因为我们从中经历我们以前没有接触过的许多事情。他使我们懂得什么叫做团结合作;使我们懂得了为什么认真、谨慎是做好一件事情的关键;它也使我思想变得们的更加的成熟与稳重!十、参考文献1 马潮 詹卫前 耿德跟 ATMEGA8原理及应用手册清华大学出版社,2003年2 何立民单片机中级教程原理与应用北京航空航天大学出版社,2000年3 何立民MCS-51单片机应用系统设计北京航空航天大学出版社,2000年4 王嘉陵毕业论文写作与答辩四川大学出版社,2003年5 赵润林 张迎辉单片机原理与应用教程北京大学出版社,20056 周立功单片机原理及接口技术机械工业出版社,2002年附录一、元器件清单元件类型型号备注电阻4.7k5个1k2个4702个3003个排阻4.7k1个电容30p2个22u2个10p1个100u1个三极管80503个85501个4位连体排显数码管共阳极3个温度传感器DS18B201个晶振12MHZ1个蜂鸣器额定电压5V1个发光二极管红色1个绿色1个稳压管78051个四脚开关5个排针带孔排针1排三脚电源插座大1个单片机(带底座)89C511块铜板100mm*160mm1块附录二、 原理图附录三、 PCB图附录四 原程序TEMPUTER EQU 29H;温度存储单元TEMPH EQU 27H;温度上限标志位TEMPL EQU 26H;温度下限标志位SIGN EQU 5BH;按键S1按下次数标志位,为1时设置下限,为2时设置上限S1 BIT P1.0;定义S1按键为温度上下限进入按键S2 BIT P1.1;定义S2按键为温度上下限加一按键S3 BIT P1.2;定义S3按键为温度上下限减一按键S4 BIT P1.3;定义S4按键为温度上下限退出按键ORG 0000HLJMP MAINORG 0030HMAIN: MOV SP,#60H MOV 26H,#25;温度下限初值 MOV 27H,#99;温度上限初值 MOV SIGN,#00H MOV 37H,#2 MOV 36H,#5 MOV 38H,#0;上电复位后显示初值 LCALL DISPLAY ;主程序;MAIN0: JB S1,NET1;判断S1是否按下,按下则顺序执行,否则跳转 LCALL D12MS;消抖动 JB S1,NET1;再次判断S1是否按下 JNB S1,$;等待S1抬起 INC SIGN;S1标志位加1 MOV A,SIGN CJNE A,#1,TIAO;S1标志位与1比较,相等顺序执行,不等则跳转 LCALL TIAOTLTIAO: CJNE A,#2,NET1;S1标志位与2比较,相等顺序执行,不等则跳转 MOV SIGN,#0;S1标志位置0 LCALL DISPLAY LCALL TIAOTH ;温度比较子程序;NET1: MOV A,TEMPUTER CLR C SUBB A,TEMPH JNC BJ;当测试温度高于上限时报警 MOV A,TEMPUTER CLR C SUBB A,TEMPL JC BJ;当测试温度低于下限时报警 LCALL GET_TEMPER LJMP MAIN0 ;报警子程序;BJ: CLR P2.1 LCALL DISPLAY LCALL D12MS LCALL DISPLAY LCALL D12MS LCALL DISPLAY LCALL D12MS LCALL GET_TEMPER LJMP MAIN0 ;得出温度总子程序;GET_TEMPER: SETB P2.0 LCALL INIT_18B20 JB 20H.1,TSS2;检测DS18B20是否再线 RET TSS2:SETB P2.1 MOV A,#0CCH;跳过ROM匹配 LCALL WRITE_18B20 MOV A,#44H;发出温度转换命令 LCALL WRITE_18B20 LCALL INIT_18B20 MOV A,#0CCH;跳过ROM匹配 LCALL WRITE_18B20 MOV A,#0BEH;发出读取温度命令 LCALL WRITE_18B20 LCALL READ_18B20 RET ;DS18B20初始化子程序;INIT_18B20:SETB P2.0 NOP NOP CLR P2.0 MOV R1,#03HTSR1: MOV R0,#6BH DJNZ R0,$ DJNZ R1,TSR1;主机发置位脉冲持续600us左右 SETB P2.0;主机释放总线,P1.0口改为输入口 NOP NOP NOP MOV R0,#25H NOP NOP NOP NOPTSR2: JNB P2.0,TSR3;DS18B20数据线应变低,如果没变低,说明没准备好,需重来 DJNZ R0,TSR2;DS18B20等待64us LJMP TSR4TSR3: SETB 20H.1;不存在则置标志位 LJMP TSR5;不存在则重来TSR4: CLR 20H.1;存在则清标志位 LJMP TSR7TSR5: MOV R0,#6BH;重装初值
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!