课程单片机设计论文基于STC89C2051单片机温度显示器_第1页
课程单片机设计论文基于STC89C2051单片机温度显示器_第2页
课程单片机设计论文基于STC89C2051单片机温度显示器_第3页
课程单片机设计论文基于STC89C2051单片机温度显示器_第4页
课程单片机设计论文基于STC89C2051单片机温度显示器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、武夷学院单片机原理与应用课程设计报告基于stc89c2051单片机温度显示器院 系 :机电工程学院专业(班级):11电子信息工程(1)班姓名:xx学号:xx指导教师:xx职称:助教完成日期: 2013 年 12 月 20 日目 录1 引 言12功能介绍23 设计思路24总体设计方案35 硬件电路设计35.1 单片机最小系统35.1.1 复位电路45.1.2 时钟电路45.2 温度感应电路55.3 独立式按键键盘电路65.4 数码管显示电路66 系统调试76.1 软件调试76.2 硬件调试87结论88致谢9参 考 文 献10附录a 电路原理图11附录b 实物图12附录c 源程序13数字温度1 引

2、 言此次设计提出了利用stc89c2051单片机为核心控制元件,设计一个简易的数字温度显示器。本方案以stc89c2051单片机作为主控核心,与温度感应器ds18d20,led发光二极管,数码管等构成数字温度显示器,利用了单片机的延时电路、复位电路、时钟电路、定时/中断等电路,设计的数字温度显示器,该器件能测出当前温度,并且具有高温报警功能,在温度高于所设定的温度时,led发光二极管就会亮起提醒温度过高的功能。本次设计的数字温度显示器具有较高的实用功能,可以用于各个领域的温度测控,操作又相对简单,当按下第一个键位时,数码管上会显示出当前的温度,再次按下第一个键位时数码管会闪烁,此时可以调制我们

3、所需要报警的温度,下面的两个键位,一个是增加温度,另一个是降低温度,如果你设置21报警时,当温度超过21,led发光二极管就会亮起显示报警,即实现全部功能。2 功能介绍它的功能实现:当我们按下“开关设置键”,按一下是开启温度显示模式,再按一下进入预警温度设置,此时控制“+按键”和“-按键”即可实现预警温度的设置。当环境温度超过预警温度,启动温度预警功能,此时led发光二极管得到命令发光预警,即实现全部功能。功能简明易懂,操作简单,实用性很强。3 设计思路系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线

4、路图,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。在系统设计中设计方法的选用是系统设计能否成功的关键。硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,据电路图在仿真机上进行调试,发现设计不当

5、及时修改,最终达到设计目的。软件设计的方法与开发环境选取有着直接的关系,本系统由于是采用stc89c52单片机,使用汇编语言进行开发。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,达到设计功能要求。4总体设计方案温度感应电路电源电路stc89c205151最小系统数码管显示独立式按键键盘 图4-总体电路设计框图总体程序设计思路图为如图4-1所示。5 硬件电路设计5.1 单片机最小系统stc89c52是stc公司生产的一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash存储器。stc89c52使用经典的mcs-51内核,但做

6、了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得stc89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节flash,512字节ram, 32 位i/o 口线,看门狗定时器,内置4kb eeprom,max810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 stc89c52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继

7、续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35mhz,6t/12t可选。5.1.1 复位电路复位电路是最小系统的组成部分。单片机的第9脚rst为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路如图5-1所示。图5-1复位电路5.1.2 时钟电路时钟电路是最小系统的组成部分,单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如图5-2所示。图5-2 时

8、钟电路5.2 温度感应电路环境的温度要在数码管上显示出来,首先我们要有一个能感知温度的器件就是我们要用到的温度感应器ds18d20,通过它应对不同的环境温度变换出的不同状态再经过单片机编程模拟出各个状态既可以得到较为准确的当前环境温度。其电路结构如图5-3所示。图5-3 温服感应电路5.3 独立式按键键盘电路s1是“开关设置键”,s2是“加按键”,s3是“减按键”其电路如图5-4所示。图5-4 开关按键和设置按键5.4 数码管显示电路数码显示管用来作为选手号数及时间显示输出,一般用7段数码显示管。本次设计中采用7段共阳数码管,该数码管应用简单、可靠性高、成本低,作为显示输出。电路如图5-5所示

9、。图5-5 数码管显示电路6 系统调试6.1 软件调试1、打开keil软件后,在project菜单中选择new project命令,打开一个新项目。保存此项目,输入工程文件名后,并保存工程文件的目录。 2、为项目文件选择目标器件。 3、上述设置好后,创建源程序文件并输入程序代码。输入好代码后点击“文件/保存”。 4、把源文件添加到项目中,用鼠标指在目标工作区的目标1,点击右键在弹出的菜单中选择添加文件到源代码组,在弹出的添加文件框中,选择需要添加到项目中的文件。5、开始编译,对项目文件进行编译。若没有错误后进行硬件调试 。6.2 硬件调试1、按下开关键s1, 数码管显示“当前温度”。 与程序代

10、码比较,结果正确。2、再次按下s2进入预警温度设置模式,数码管闪动显示当前的温度预警温度上限。3、按下s2加按键预警温度加上1度,之后每次按下一次就加一度依次累加,同理s3减按键每按下一次就减去一度,依次累减,数码管显示设置的温度度数,要注意的是显示器要闪动显示,设置好温度以后再次按下开关就可复位到温度显示状态。4、当我们的较为干燥温暖的手指轻轻接触在温度感应器,可以看到数码管显示的温度慢慢上升最后趋向稳定,如果此时设置的温度小于环境的温度,级开启预警模式,led开关二极管点亮。7 结论经历过这么多天不间断的课程设计,我们有挺多感触的,从最基本上说我们看到了,也意识到了自己的不足,对于不断克服

11、的各种阻碍也让我们体会到了课程设计的意义所在。对于只接触课本只动笔杆的我们,面临实际的设计尺寸,让我们很是尴尬,都说理论联系实际,真正到联系的时候才发现挺困难的,不过正是理论知识的各种补充才让我们能最终完成任务,然后深深地体会到理论对现实的指导作用。我们现在最缺乏的就是实际工作经验,而理论联系实践并不像我们想象的那么简单,他需要坚实的理论基础和实际工作经验。坚实的理论基础决定了我必须坚持学习新的知识新的理论,完善了自己的知识结构,才能在以后的实际中轻松面对,才能设计出更好的更有益于人们生活与工作的机械,才能跟上时代的步伐,不被淘汰。在这个一边忙着复习忙着考试又要准备课程设计的日子里,真真正正的

12、体会到了时间的宝贵,有点像高中忙忙碌碌的生活,不过能按时完成课程设计对我们来说也是一个莫大的安慰。在设计中要严谨和细心,对于机械、原理、软件、硬件是不能出差错的,任何的微小误差都可能产生不可预计的后果。不过,困难虽是难免的,但我们有信心就能并且已经战胜了困难,完成了这个无比揪心的课程设计。程设计全方位的培养和考察我们解决问题以及处理将理论应用到实际当中的能力。在设计编程的过程中,我们既经过了独立思考,也经过了团体协作。我们必须在短期内锻炼迅速掌握一门语言的能力,并学会利用其他的资料与书籍。可见课程设计的意义是十分重大和深远的。8 致谢此次单片机课程设计是在张淏老师的细心指导下完成的,老师治学严

13、谨的态度,渊博的知识感染着我,是我学习的榜样,使我受益无穷。在此,特向老师表达诚挚的谢意。除此之外,在课程设计过程中,还得到了其他老师、学长等得细心指导和诸多帮助。他们的无私帮助也是我得以完成本次课程设计的关键。在此,我向他们表示由衷的感谢和深切的问候。我还要感谢我的一些同学,他们在我最需要帮助的时候无私的伸出了援助之手。在此,对于他们的无私帮助我表示深深的感谢。真诚的感谢所有帮助过我的老师们和同学们。参 考 文 献1 何立民.单片机应用系统设计m.北京:北京航空航天大学出版社,1990:34-35.2 徐惠民,安德宁. 单片微型计算机原理接口及应用m.北京:北京邮电大学出版社,2000:12

14、6-129.3 付晓光.单片机原理与应用技术m.北京:清华大学出版社,2004:138-141.4 李维祥.mcs-51单片机原理与应用m.天津:天津大学出版社,2002:55-56.5 李广弟,朱月秀,王秀山.单片机基础m.北京:北京航空航天大学出版社,2001:44-47.6 沙占友,葛家怡,马洪涛.集成化智能传感器原理与应用j.北京:电子工业出版社,2004:74-81.7 张伟.单片机原理及应用m.北京:机械工业出版社,2002:174-180.8 李玉峰,倪虹霞.mcs-51系列单片机原理与接口技术m.北京:人民邮电出版社,2004:128-129.9 李勋,刘源.单片机实用教程m.

15、北京:北京航空航天大学出版社,2006:11-12.10 陈光东.单片微型计算机原理与接口技术.武汉:华中理工大学出版社,1999:64-71.附录a 电路原理图附录b 实物图正面背面附录c 源程序flag1 bit f0 ;ds18b20存在标志位flag2 equ 27h dq bit p3.7temper_l equ 29htemper_h equ 28ha_bit equ 35hb_bit equ 36h ;*程序起始* org 0000h ajmp main org 0100h;*主程序开始*main: lcall init_18b20 lcall re_config lcall g

16、et_temper ajmp change;*ds18b20复位程序*init_18b20: setb dq nop clr dq mov r0,#0fbh tsr1: djnz r0,tsr1 ;延时 setb dq mov r0,#25h tsr2: jnb dq ,tsr3 djnz r0,tsr2 tsr3: setb flag1 ;置标志位,表明ds18b20存在 ajmp tsr5 tsr4: clr flag1 ljmp tsr7 tsr5:mov r0,#06bh tsr6:djnz r0,tsr6 tsr7:setb dq ;表明不存在 ret;*设定ds18b20暂存器设定

17、值*re_config: jb flag1,re_config1 retre_config1: mov a,#0cch ;放跳过rom命令 lcall write_18b20 mov a,#4eh lcall write_18b20 ;写暂存器命令 mov a,#00h ;报警上限中写入00h lcall write_18b20 mov a,#00h ;报警下限中写入00h lcall write_18b20 mov a,#1fh ;选择九位温度分辨率 lcall write_18b20 ret;*读转换后的温度值*get_temper: setb dq lcall init_18b20 jb

18、 flag1,tss2 ret ;若不存在则返回 tss2: mov a,#0cch ;跳过rom lcall write_18b20 mov a,#44h ;发出温度转换命令 lcall write_18b20 lcall d1ms ;延时 lcall init_18b20 mov a,#0cch ;跳过rom lcall write_18b20 mov a,#0beh ;发出读温度换命令 lcall write_18b20 lcall read2_18b20 ;读两个字节的温度 ret;*写ds18b20程序* write_18b20: mov r2,#8 clr c wr1: clr d

19、q mov r3,#6 djnz r3,$ rrc a mov dq,c mov r3,#23 djnz r3,$ setb dq nop djnz r2,wr1 setb dq ret ;*读18b20程序,读出两个字节的温度* read2_18b20: mov r4,#2 mov r1,#29h ;低位存在29 h,高位存在28h re00: mov r2,#8 re01: clr c setb c nop nop clr dq nop nop nop setb dq mov r3,#7 djnz r3,$ mov c,dq mov r3,#23 djnz r3,$ rrc a djnz

20、r2,re01 mov r1,a dec r1 djnz r4,re00 ret ;*读出的温度进行数据转换*change: clr flag2.0 mov a,28h subb a,#0f8h jc tem0 ;判断温度值是否为负,若不是则跳转 setb flag2.0 ;是,置标志位flag2 mov a,28h cpl a mov 28h,a mov a,29h cpl a inc a mov 29h,a tem0: mov a,29h mov c,28h.0 ;将28h中的最低位移入c rrc a mov c,28h.1 rrc a mov c,28h.2 rrc a mov c,28h.3 rrc a mov 29h,a lcall display ;调用数码管显示子程序 ljmp main ;*display* display: mov a,29h;将29h中的十六进制数转换成10进制 mov b,#10 ;10进制/10=10进制 div ab mov b_bit,a ;十位在a mov

温馨提示

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

评论

0/150

提交评论