单片机课程设计仅供参考排版一般内容基本完整得分70_第1页
单片机课程设计仅供参考排版一般内容基本完整得分70_第2页
单片机课程设计仅供参考排版一般内容基本完整得分70_第3页
单片机课程设计仅供参考排版一般内容基本完整得分70_第4页
单片机课程设计仅供参考排版一般内容基本完整得分70_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、大 庆 石 油 学 院课 程 设 计课 程 单片机原理及应用课程设计 题 目 温度采集报警系统的设计 院 系 电子科学学院 专业班级 电子05x班 学生姓名 xxx 学生学号 0 指导教师 2009年2月 日大庆石油学院课程设计任务书课程 单片机原理及应用课程设计 题目 温度采集报警系统的设计 专业 电子科学与技术 姓名 杨 光 学号 9 主要内容、基本要求、主要参考资料等1、主要内容:根据单片机课程所学内容,结合其他相关课程知识,设计一个温度采集报警系统,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础。2、基本要求: 本设计以MCS-51系列单片机为核心,采用

2、常用电子器件设计。要求可以显示被测的温度并存储,可以设置报警温度,到达报警温度时声光报警。3、主要参考资料: 1 张毅坤,陈善久.单片微型计算机原理及应用M.西安:西安电子科技大学出版社,2002. 2 张友德,赵志英,徐时亮.单片微机原理应用与实验M.上海:复旦大学出版社,2000. 3 蔡美琴,张为民,沈新群,张荣娟.MCS-51系列单片机系统及其应用M.北京:高等教育出版社,1992.完成期限 2007年3月9日 指导教师 专业负责人 2007年3 月2日目 录第1章 系统设计11.1温度采集报警系统1第2章 硬件设计22.1测温和控制电路22.2 显示控制电路52.3 声光报警电路6第

3、3章 软件设计8总结9参考文献10附录1 整体电路图11附录2 源程序12第1章 系统设计1.1温度采集报警系统如图1.1所示为温度采集报警系统框图。该课程设计将以单片机控制的温度采集系统为主,利用单片机完成对温度的检测,实现安全温度内正常显示温度值,超出设定的温度上限则进行声光报警。系统在温度采集时主要应用了DS18B20芯片,该器件经过初始化后单片机首先进行ROM匹配,当受到测温器件发回的信号时证明该器件正常工作,接着单片机发送温度转换命令进行温度采集,测温的精确度很高,可以精确到小数点后四位。设计中还应用了HD7279芯片进行数码管显示的驱动,一共应用了6位数码管。报警电路采用由NE55

4、5所组成多谐振荡电路。声光报 警电路控制电路测温电路显示电路显示控制电路 图1.1系统框图第2章 硬件设计2.1测温和控制电路(1) 测温测温使用的DS18B20是典型的应用单总线技术的器件。1-wire单总线是Maxim全资子公司Dallas的一项专有技术。与目前多数标准串行数据通信方式,如SPI/I2C/MICROWIRE不同,它采用单根信号线,既传输数据位,又传输数据位的定时同步信号,而且数据传输是双向的。大多数1-wire器件不需要额外的供电电源,可直接从单总线上获得足够的电源电流(即寄生供电方式)。它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。1-wir

5、e单总线适用于单个主机系统,能够控制一个或多个从机设备。当只有一个从机位于总线上时,系统可按照单节点系统操作;而当多个从机位于总线上时,则系统按照多节点系统操作。为了较为全面地介绍单总线系统,将系统分为三个部分讨论:硬件结构、命令序列和信号方式(信号类型和时序)。硬件结构:顾名思义,单总线只有一根数据线。设备(主机或从机)通过一个漏极开路或三态端口,连接至该数据线,这样允许设备在不发送数据时释放数据总线,以便总线被其它设备所使用。单总线端口为漏极开路,其内部等效电路如图1所示。单总线要求外接一个约5k的上拉电阻;这样,单总线的闲置状态为高电平。不管什么原因,如果传输过程需要暂时挂起,且要求传输

6、过程还能够继续的话,则总线必须处于空闲状态。位传输之间的恢复时间没有限制,只要总线在恢复期间处于空闲状态(高电平)。如果总线保持低电平超过480s,总线上的所有器件将复位。另外,在寄生方式供电时,为了保证单总线器件在某些工作状态下(如温度转换期间、EEPROM写入等)具有足够的电源电流,必须在总线上提供强上拉1。(2) 控制At89S51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机;片内含有4k字节的可反复擦写的只读程序存储器(PEROM)和128字节的随机存取数据存储器(RAM);器件采用AMTEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统;片内置通用2位

7、中央处理器(CPU)和Flash存储单元,功能强大的AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。功能特性概述AT89S51提供以下标准功能:4k字节Flash闪速存储器、128字节内部RAM、32个I/O口线、两个16位定时/计数器、1个5向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路,同时,AT89S51可降至0Hz的静态逻辑操作并支持两种软件可选的节电工作模式;空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作;掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作一直到下个硬件复位2。引脚功能说

8、明 Vcc:电源电压 GND:地 P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口;作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或者程序存储器时,这组口线分时转换地址(低8位)和数据总线复用;在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻P1口:P1是一个带内部上拉电阻的8位双向I/O口;P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口;作输入口

9、使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低会输出一个电流。 Flash编程和程序校验期间,P1接收低8位地址P2口:P2口是一个带有内部上拉电阻的8位双向I/O口;P2的输出缓冲级可驱动个(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口;作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低会输出一个电流。 在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据;在访问8位地址的外部数据存储器(如执行MOVX RI)时,P2口线上的内容(即特殊功能寄存器(SFR)区

10、中的R2寄存器的内容),在整个访问期间不改变; Flash编程或校验时,P2亦接收高位地址和其它控制信号。 P3口:P3口是一个带有内部上拉电阻的8位双向I/O口;P2的输出缓冲级可驱动个(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口;作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低会输出一个电流。 P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能;如下表2-1所示: 表2-1端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD (串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0 (定时

11、/计数器0)P3.5T1 (定时/计数器1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入;当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节;即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的;要注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的

12、D0位置位,可禁止ALE操作,该位置位后,只有一条MOVX和MOVC指令ALE才会被激活,此外该引脚会被微弱拉高,单片机执行外部程序时,应该置ALE无效。EA/VPP:外部访问允许;欲使CPU仅访问外部程学存储器(地址为0000H FFFFH),EA端必须保持低电平(接地)。需要注意的是,如果加密位LB1被编程,复位时内部会锁存EA端的状态3。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。 Flash存储编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTML1:振荡器反相放大器的及内部时钟发生器的输入端。XTML2: 振荡

13、器反相放大器的输出端。 图2.1测温和控制电路2.2 显示控制电路HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64个LED点阵)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵。该芯片内部含有译码器,可直接接受16进制码,HD7279A还同时具有2种译码方式,HD7279(A)还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279与单片机仅需4条接口线,其中CS为片选信号。当MCU访问HD7279时,应将片选端置为低电平。DATA为串行数据/输出端,当向HD7279发送数据时,DATA为输入端;当HD7279A输出键盘代码时,DATA为输出端。其特

14、点为:-串行接口,无需外围元件可直接驱动LED-各位独立控制译码/不译码及消隐和闪烁属性-(循环)左移/(循环)右移指令-具有段寻址指令,方便控制独立LED-64键键盘控制器,内含去抖动电路-有DIP和SOIC两种封装形式供选择图2.2显示控制电路2.3 声光报警电路555集成定时器是一种模拟和数字电路相混合的集成电路。它结构简单,使用灵活,用途十分广泛,可以组成多种波形发生器、多谐振荡器、定时延时电路、双稳触发电路、报警电路、检测电路、频率变换电路等。555定时器的电路原理图及管脚排列图分别如图2.3和2.4所示。5kW-¥+A1-¥+A2-15kW5kWRD-SD-QQ

15、UCC电源地WR485627图2.3 555定时器的原理图路3OUTGNDDISTLTHVC复位端输出端高触发端放电端低触发端电压控制端电源端T55512345678图2.4 555定时器的引脚图555含有两个比较器A1、A2,其中5端为电压控制端,通过外接一个参考电源,可以改变上、下触发电位值,不用时,可通过一个0.01F旁路电容接地。4端为触发器复位端,不用时应接高电平。总之,555相当于一个可用模拟电压来控制翻转的R-S触发器。图2.5就是用555构成的多谐振荡电路,产生的振荡脉冲信号经过三极管放大后驱动扬声器报警,由单片机的P1.5端口输出高电平发出报警。 图2.5 报警电路第3章 软

16、件设计该课程设计中主要利用了DS18B20芯片进行测温,该芯片是单总线器件,顾名思义单总线只有一根数据线,因此在通信时时序就显得十分重要,我们在编程时也要十分注意这一点。在程序中测温时首先要对DS18B20进行初始化,初始化过程由单片机发出的复位脉冲和芯片响应的应答脉冲组成,应答脉冲使主机知道,总线上有从机设备,且准备就绪。由于总线上只挂接了一片测温芯片,因此可直接跳过ROM匹配发出测温命令。该设计可实时显示温度值,便于连续观测。系统源程序见附录2。软件流程图如下所示:启动系统初始化DS18B20跳过ROM发出温度转换命令并读取温度值显示温度值温度是否大于50度声光报警YN图3.1 软件流程图

17、总结这次课程设计使我掌握了很多实践知识,在老师和同学的帮助下对单片机有了进一步的了解。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,进而提高自己的实际动手能力和独立思考的能力。整个设计过程可以说不是很顺利,因为有很多知识已经淡忘,还有很多新的东西没有掌握,所以这次设计在不断的复习、学习中度过,使我受益匪浅,也使我对单片机的运用有了进一步的了解和掌握,也为今后的学习生活和工作打下良好的基础。最后我要衷心感谢老师的辛勤指导,感谢帮助我同学。参考文献1 张毅坤,陈善久.单片微型计算机原理及应用M.西安:西安电子

18、科技大学出版社,2002.2 张友德,赵志英,徐时亮.单片微机原理应用与实验M.上海:复旦大学出版社,2000.3 蔡美琴,张为民,沈新群,张荣娟.MCS-51系列单片机系统及其应用M.北京:高等教育出版社,1992.附录1 整体电路图附录2 源程序TEMPH EQU 35HTEMPL EQU 34HDQ EQU P1.2 ;18B20BIT_COUNT EQU 30HTIMER EQU 31HTEN EQU 32HDATA_IN EQU 20H DATA_OUT EQU 21H TIMER1 EQU 33HDAT BIT P1.0CLK BIT P1.1CS BIT P1.3ORG 0000

19、HAJMP STARTORG 0003HLJMP INT0ORG 0030HMAIN:MOV SP,#60HMOV P1,#11011101START:LCALL GET_TEMPERLCALL CHULI_1 ;36H-37H-38H存有温度值LCALL DELAYLCALL DELAYSETB P1.4 ;报警灯灭CLR P1.5 ;报警铃停AJMP START;-GET_TEMPER:SETB DQLCALL INIT_1820 ;复位MOV A,0CCH ;跳过ROMLCALL WRITE_1820MOV A,#44HLCALL WRITE_1820LCALL DELAYLCALL I

20、NIT_1820 ;复位MOV A,0CCH ;跳过ROMLCALL WRITE_1820MOV A,#0BEH ;读取温度值LCALL WRITE_1820LCALL READ_1820 ;29H(低),28H(高)RET;-INT0:PUSH PSWPUSH ACCMOV DATA_OUT,#15HLCALL SENDLCALL RECEIVESETB CSMOV R2,DATA_INPOP ACCPOP PSWRETI;-发射子程-SEND:MOV BIT_COUNT,#8CLR CSCALL LONG_DELAYSEND_LOOP:MOV C,DATA_OUT.7MOV DAT,CSE

21、TB CLKMOV A,DATA_OUTRL AMOV DATA_OUT,ACALL SHOUT_DELAYCLR CLKCALL SHOUT_DELAYDJNZ BIT_COUNT,SEND_LOOPCLR DATRET;-RECEIVE:MOV BIT_COUNT,#8SETB DATCALL LONG_DELAYRECEIVE_LOOP:SETB CLKCALL SHOUT_DELAYMOV A,DATA_INRL AMOV DATA_IN,AMOV C,DATMOV DATA_IN.0,CCLR CLKCALL SHOUT_DELAYDJNZ BIT_COUNT,RECEIVE_LOO

22、PCLR DATRET;-LONG_DELAY:MOV TIMER,#25 ;50USDELAY_LOOP:DJNZ TIMER,DELAY_LOOPRETSHOUT_DELAY:MOV TIMER,#4 ;8USDELAY_LOOP1:DJNZ TIMER,DELAY_LOOP1RET;-处理的数据从36H 起始-CHULI_1:MOV 36H,#00HMOV 37H,#00HMOV 38H,#00HMOV C,28H.7JC FUSHUMOV TEMPH,28H ;高位MOV TEMPL,29H ;低位INC TEMPH ;修正S1:MOV A,36HADD A,#25HDA AMOV 3

23、6H,AMOV A,37HADDC A,#06HDA AMOV 37H,AMOV A,38HADDC A,#00HDA AMOV 38H,ADJNZ TEMPL,S1DJNZ TEMPH,S1LCALL DISPLAY_1RETFUSHU:MOV TEMPH,28HMOV TEMPL,29HXRL TEMPL,#0FFH ;变为原码XRL TEMPH,#0FFHMOV A,TEMPLADD A,#01HMOV TEMPL,AMOV A,TEMPHADDC A,#00HMOV TEMPH,AINC TEMPH ;修正S2:MOV A,36HADD A,#25HDA AMOV 36H,AMOV A

24、,37HADDC A,#06HDA AMOV 37H,AMOV A,38HADDC A,#00HDA AMOV 38H,ADJNZ TEMPL,S2DJNZ TEMPH,S2LCALL DISPLAY_2RET;-复位子程序- INIT_1820:SETB DQNOPCLR DQ ;主机发出延时480微秒的复位低脉冲MOV R1,#3 TSR1: MOV R0,#80DJNZ R0,$DJNZ R1,TSR1SETB DQ ;然后拉高数据线NOPNOPNOPMOV R0,#25H TSR2:JNB DQ,TSR3 ;等待DS18B20回应DJNZ R0,TSR2LJMP TSR4 ;延时 TS

25、R3:SETB F0 ;置标志位,表示DS1820存在LJMP TSR5 TSR4:CLR F0 ;清标志位,表示DS1820不存在LJMP TSR7 TSR5:MOV R0,#117TSR6:DJNZ R0,TSR6 ;时序要求延时一段时间TSR7:SETB DQRET;-;写DS18B20的子程序(有具体的时序要求) WRITE_1820:MOV R2,#8 ;一共8位数据CLR C WR1:CLR DQ ;置低电平,开始写输出MOV R3,#6DJNZ R3,$RRC AMOV DQ,CMOV R3,#23DJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRET;

26、-;读DS18B20的程序,从DS18B20中读出两个字节的温度数据 READ_1820:MOV R4,#2 ;将温度高位和低位从DS18B20中读出MOV R1,#29H ;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H) RE00:MOV R2,#8 ;数据一共有8位 RE01:CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#9 RE10:DJNZ R3,RE10MOV C,DQMOV R3,#23 RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00R

27、ET;-显示程序-DISPLAY_1:MOV DATA_OUT ,#0A4H ;复位LCALL SENDSETB CSMOV A,36HANL A,#0FHMOV R3,AMOV DATA_OUT,#10000000BLCALL SENDMOV DATA_OUT,R3LCALL SENDMOV A,36HSWAP AANL A,#0FHMOV R3,AMOV DATA_OUT,#10000001BLCALL SENDMOV DATA_OUT,R3LCALL SENDMOV A,37HANL A,#0FHMOV R3,AMOV DATA_OUT,#10000010BLCALL SENDMOV D

28、ATA_OUT,R3LCALL SENDMOV A,37HSWAP AANL A,#0FHMOV R3,AMOV DATA_OUT,#10000011BLCALL SENDMOV DATA_OUT,R3LCALL SENDMOV A,38HANL A,#0FHORL A,#80H ;DP=1MOV R3,AMOV DATA_OUT,#84HLCALL SENDMOV DATA_OUT,R3LCALL SENDMOV A,38HSWAP AANL A,#0FHMOV R3,AMOV DATA_OUT,#85HLCALL SENDMOV DATA_OUT,R3LCALL SEND;判断是否报警,设为50度-38HMOV A,38HANL A,#0F0HSWAP AMOV R4,AMOV A,#00HBCD_H:ADD A,#0AHDJNZ R4,BCD_HMOV 40H,AMOV A,38HANL A,#0FHADD A,40HSUBB A,#32HJC JIXU ;判断温度CLR P1.4 ;报警灯亮SETB P1.5 ;报警JIXU: ;小于50度RET;-DISPLAY

温馨提示

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

评论

0/150

提交评论