首页

> 期刊论文知识库

首页 期刊论文知识库 问题

监测系统单片机论文文献

发布时间:

监测系统单片机论文文献

【1】V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 【2】 Yeager to troubleshoot your electronic scale[J].. Powder and Bulk Engineering. 1995 【3】Meehan Joanne,Muir in Merseyside SMEs:Benefits and barriers[J].. TQM Journal. 2008 [1] Behzad of Analog CMOS Integrated Circuits[M]. . 2001 [2] Rhee of high-performance CMOS charge pumps inphase-locked loops. IEEE International Symposium on Cir-cuits and Systems. 1999 [3] Todd Charles design techniques for delay cell based VCOs and frequency synthesizers[C]//PHDthesis. . 1998 [4] George Lee,Karina Ng,Edmond of ring oscillator based voltage controlled oscillator. Project Final Report[R]. 2005 [5] T. C. Weigandt,B. Kim,and P. R. of Timing Jitter in CMOS Ring Oscillators. IEEE International Symposium on Circuits and Systems. 1994

楼上的,人家说要外文、

[1] 李东升等.protel 99SE电路设计教程.电子工业出版社,[2] 藏春华等.电子线路设计与应用.高等教育出版社,[3] 李学海.16位单片机SPCE061A使用教程——基础篇.人民邮电出版社,2007[4] 张琳娜,刘武发.传感检测技术及应用.中国计量出版社,1999[5] 邵敏权,刘刚.单片机原理实验及应用.吉林科学技术出版社,[6] 杨振江等.智能仪器与数据采集系统中的新器件及应用.西安电子科技大学出版 社,[7] 罗亚非等.凌阳16位单片机应用基础.北京航空航天大学出版社,[8] 刘笃仁,韩保君.传感器原理及应用技术。机械工业出版社,[9] 薛筠义,张彦斌.凌阳16位单片机原理及应用,[10] 徐爱卿.Intel 16位单片机,[11] 霍孟友等,单片机原理与应用机械工业出版社, [12] 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,[13] 许泳龙等,单片机原理及应用,机械工业出版社, [14] 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版 [15] 薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社.

单片机的参考文献1[1]田闯,.直流电源屏电池单片机监测系统[J].西铁科技,2001,(1).[2]陈国先,.语音芯片与PIC单片机的应用接口[J].福建信息技术教育,2005,(2).[3]孙玉艳,.实现PC机与单片机的数据通信与控制[J].广东白云职业技术学院广州白云工商高级技工学校学报,2002,(4).[4]陈兴祥,.MC7705芯片对单片机的动态掉电保护[J].宁夏机械,2002,(3).[5]田志华,.电池供电单片机的低功耗设计[J].宁夏机械,2002,(4).[6]李学军,.如何用MCS-51单片机扩展串口进行通讯[J].宁夏机械,2003,(2).[7]李海涛,.关于如何提高单片机系统可靠性的探讨[J].宁夏机械,2005,(3).[8]高彦波,李岩,毕晓燕,.PC与单片机之间的远距离并行通讯卡[J].电站设备自动化,2001,(3).[9]李艳红,.单片机I/O口不宜用作直接驱动出口[J].电站设备自动化,2003,(2).[10]彭同明,杨少华,.“单片机原理及应用”课程改革的分析[J].武汉电力职业技术学院学报,2004,(1).[11]宋青松,张旭东,王立贤,眭众国,.MCS—96系列单片机与IBM-PC系列微机之间通讯的实现[J].电站设备自动化,2001,(1).[12]顾勇,*,.基于MC68HC908单片机的伸缩自动门控制系统[J].通信与广播电视,2003,(4).[13]桂绍勇,彭同明,何新洲,.基于MEGA103单片机的数控系统研制[J].武汉电力职业技术学院学报,2005,(4).[14]李占芳,黄嘉兴,.面向煤炭应用型人才的单片机课程教学改革探索[J].价值工程,2011,(7).[15]石明江,顾亚雄,张禾,.单片机原理与应用课程教学改革与实践[J].计算机教育,2011,(6).[16]翟永前,蒋芳芳,.基于MSP430单片机的智能数字电压表设计[J].化工自动化及仪表,2011,(3).[17]许超,吴新杰,张丹,.基于Proteus和Keil的单片机课程教学改革[J].辽宁大学学报(自然科学版),2011,(1).[18]李林,.基于单片机的野外作业移动库房安防系统设计[J].工矿自动化,2011,(4).[19]李林,王心刚,.FPGA与单片机在RLC测量系统设计中的应用[J].化工自动化及仪表,2011,(3).[20]李玮华,杨秦建,.基于单片机的多轴运动数控系统跟随误差补偿器的设计[J].机床与液压,2011,(4).单片机的参考文献2[1]李广弟等,单片机基础北京航空航天出版社,[2]楼然苗等,51系列单片机设计实例北京航空航天出版社,[3]唐俊翟等单片机原理与应用冶金工业出版社,[4]刘瑞新等单片机原理及应用教程机械工业出版社,[5]吴国经等单片机应用技术*电力出版社,[6]李全利,迟荣强编著单片机原理及接口技术高等教育出版社,[7]侯媛彬等,凌阳单片机原理及其毕业设计精选2006年,科学出版社[8]罗亚非,凌阳十六位单片机应用基础2003年北京航空航天大学出版社[9]北京北阳电子有限公司,061A凌阳单片机及其附带光盘2003年[10]张毅刚等,MCS-51单片机应用设计,哈工大出版社,2004年第2版[11]霍孟友等,单片机原理与应用,机械工业出版社,[12]霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,[13]许泳龙等,单片机原理及应用,机械工业出版社,[14]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版[15]薛均义张彦斌虞鹤松樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社单片机的参考文献3[1]王青云.基于单片机的温度测量系统[J]2010,(05).[2]彭立,张建洲,王少华.自适应温度控制系统的研制[J]东北师大学报(自然科学版),1994,(01).[3]JackShandle.即将来临的32位浪潮——ARM构架在32位微控制器领域的应用[J]单片机与嵌入式系统应用,2004,(03).[4]刘侃,张永泰,刘洛琨.ARM程序设计优化策略与技术[J]单片机与嵌入式系统应用,2004,(04).[5]何立民.从Cygnal80C51F看8位单片机发展之路.单片机与嵌入式系统应用[M],2002年,第5期:P5~8[6]夏继强.单片机实验与实践教程.北京:北京航空航天大学出版社,2001[7]徐惠民、安德宁.单片微型计算机原理接口与应用.第1版[M].北京:北京邮电大学出版社,1996[8]张媛媛,何怡刚,徐雪松.基于C8051F020的温湿度控制箱设计[J]国外电子元器件,2004,(10).[9]江孝国,王婉丽,祁双喜.高精度PID温度控制器[J]电子与自动化,2000,(05).[10]于洋.高低温试验箱微机自动控制系统的设计[J]工业仪表与自动化装置,2003,(02).[11]沈聿农.传感器及应用技术[M].北京:化学工业出版社,2001.[12]范晶彦.传感器与检测技术应用[M].北京:机械工业出版社,2005.[13]王俊峰,孟令启.现代传感器应用技术[M].北京:机械工业出版社,2007.[14]金发庆.传感器技术与应用[M].北京:机械工业出版社,2006.[15] Goldman JM, Petterson MT, Kopotic RJ, Barker extraction pulse oximetry[J].J Clin Monit ;16(7):7 5-83.[16] D. Tulone. On the feasibility of global time estimation under isolation conditions in wireless sensor networks.[17]王春晖.环境试验箱中制冷系统的原理分析及优化概述[J]电子质量,2003,(12)[18]李建中.单片机原理及应用[M]西安电子科技大学出版社,2010.(02)[19]周航慈.单片机应用程序设计技术[M].北京:北京航空航大大学出版社,2005.[20]何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2001.[21]夏继强.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2001.[22]徐惠民,安德宁.单片微型计算机原理接口与应用[M].北京:北京邮电大学出版社,1996.[23]李广第.单片机基础[M].北京:北京航空航天大学出版社,1999.[24]赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2001.[25]杨清梅,孙建民.传感器与测试技术[M].哈尔滨:哈尔滨工程大学出版社,2005.[26]范晶彦.传感器与检测技术应用[M].北京:机械工业出版社,2005.[27]王俊峰,孟令启.现代传感器应用技术[M].北京:机械工业出版社,2007.[28]宋文绪,杨帆.自动检测技术[M].北京:高等教育出版社,2000.单片机的参考文献3篇扩展阅读单片机的参考文献3篇(扩展1)——单片机课程报告3篇单片机课程报告1一、 实训目的和要求:(1) 熟练掌握keil c51集成开发环境的使用方法(2) 熟悉keil c51集成开发环境调试功能的使用和dp?单片机仿真器、编程器、实验仪三合一综合开发*台的使用。(3) 利用单片机的p1口作io口,学会利用p1口作为输入和输出口。(4) 了解掌握单片机芯片的烧写方法与步骤。(5) 学会用单片机汇编语言编写程序,熟悉掌握常用指令的功能运用。(6) 掌握利用protel 99 se绘制电路原理图及pcb图。(7) 了解pcb板的制作腐蚀过程。二、实训器材:pc机(一台)pcb板(一块)520ω电阻(八只)10k电阻(一只)led发光二极管(八只)25v 10μf电容(一只)单片机ic座(一块)at89c51单片机芯片(一块)热转印机(一台)dp?单片机仿真器、编程器、实验仪三合一综合开发*台(一台)三、实训步骤:(2)将流水灯程序编写完整并使用tkstudy ice调试运行。(4)打开电源,将编写好的程序运用tkstudy ice进行全速运行,看能否实现任务要求。(6)制板。首先利用protel 99 se画好原理图,根据原理图绘制pcb图,然后将绘制好的pcb布线图打印出来,经热转印机转印,将整个布线图印至pcb板上,最后将印有布线图的pcb板投入装有三氯化铁溶液的容器内进行腐蚀,待pcb板上布线图外的铜全部后,将其取出,清洗干净。(7)焊接。将所给元器件根据原理图一一焊至pcb板相应位置。(8)调试。先把at89c51芯片插入ic座,再将+5v电源加到制作好的功能板电源接口上,观察功能演示的整个过程(看能否实现任务功能)。(流水灯控制器原理图)四、流水灯控制器程序的主程序:org 0000hsjmp startorg 0030hstart: mov a,#0ffhmov r0,#1chmov r2,#12hclr cloop1: acall delaydjnz r0,loop,尽在。单片机课程报告2通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。相信这对我们以后的学习和工作都会有很大的帮助。我们一定要在最短的时间里对这些不足加以改正!首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。换是我们认识到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。特别是protues软件的功能是我们了解了当今开发系统的新方向,简直太不可思议啦!单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是非常必要的。如:LED显示器、键盘和显示器的应用和原理。在被刺实训中我们每个人通过一个八位流水灯的制作,使我们深深地体会到了单片机在现实生活中的'小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。更让我们体会到了单片机手动的开始*台的完善与成熟。只要你有想法,单片机就有可能让他成为现实。这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。这对我以后的工作一定会有帮助的。在这次试训中不仅只对单片机编程有了新的认识,还对整个单片机的开发*台都有了一厅的了解,这是一笔不错的收获。通过这几天的试训,使我的感触很深,真实“条条大路通罗马”,要达到目的,不同的人就有不同的方法。只要你的方法不错!五花八门都可以,而且是各有特色。走出来的结果都有各自的独到之处。在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单片机留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。在试训中有苦有甜,当我们为一个很难攻破的程序找出路时,心情烦躁,感觉自己很不可理喻,当程序一点一点编好后,自己从心底感觉到一点小小的安慰,看着自己的成果。感觉很欣慰,有一丝丝的甜意,几天的实训使自己的思维逻辑也有了小小的进步。单片机实训报告一、实验目的和要求。二、实验仪器设备。三、实验设计及调试:(一)实验内容。(二)实验电路:画出与实验内容有关的简单实验电路。(三)实验设计及调试步骤:(1 )对实验内容和实验电路进行分析,理出完成实验的设计思路。(2)列出程序设计所需的特殊标志位、堆栈、内部ram、工作寄存器等资源的分配列表,分配列表时注意考虑资源在程序执行过程可能会出现冲突的问题。(3)画出程序设计流程图,包括主程序和各子程序流程图。(4)根据(2)、(3)的内容写出实验程序。(5)调试程序(可以使用模拟仿真器)。a、根据程序确定调试目的,即调试时所需观察的内容结果。b、根据各调试目的分别选择调试所需的方法,如单步、断点等命令,分别列出各调试方法中所需要关注记录的内容。c、调试程序,按各种调试方法记录相应的内容。d、分析调试记录的内容和结果,找出程序中可能出错的地方,然后修改程序,继续调试、记录、分析,直到调试成功。(四)实验调试过程中所遇到的问题、解决问题的思路和解决的方法。单片机课程报告3这周我们进行了单片机实训,一周中我们通过七个项目 :P 口输入输出2:继电器控制3音频控制4:子程序设计5:字符碰头程序设计6:外部中断7:急救车与交通信号灯,练习编写了子程序、熟悉了人工会汇编方法、设计和调试方法。学习了P 口、IO端口、外部中断技术的基本的使用方法及输入输出端口控制方法。而且初步掌握了大型程序的调试方法。实训中首先对MCS-5 单片机开发试验系统键盘监控操作、使用及配套的仿真软件的应用进行了熟悉和了解。该实验仪提供了许多基本实验电路和实验插孔,对于基本的实验只需要少量连线就可以进行,减少了繁琐的实验连线过程,以减轻工作量,突出实验的内涵,达到培养实际动手能力,加强对实验电路的理解。通过本实验仪器进一步了解了单片机存储器的组织结构、单片机片内片外数据存储器读写方法、工作寄存器的应用、单片机对简单编程及调试方法进一步的掌握了调试软件的操作方法和编程环境。编写并调试完成一个实验项目总概括起来有五大步骤: 、立项目2、查找数据3、画流程图、4根据流程图进行编程5、编完后进行修改、调试、编译等。最终要达到会写、会做、会说,编写开始几个项目的程序还比较顺利,到了编写LED灯碰头程序、字符碰头程序、急救车与交通灯呈程序时遇到了好多困难,本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提.不过经过我们最后在全组人竭尽全力,老师的精心指导下,花费的时间与精力终于没有白费,效果渐渐地出现了.这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费,我们从中学到了很多知识.,也让我们对单片机有了更深一步的了解.虽然最后结果是出来了,可这与老师的精心指导是分不开的。这次实训虽然其中会有些错误和失败,但总的来说是受益匪浅,在运用中发现问题,解决问题,就是最大的收获。专心做自己的事,是一种乐趣;互相交流,是大家一起进步的必要过程;上网查阅资料,是获得所需信息的有效途径。我想,这些练习和经验都将是我以后最宝贵的财富!

单片机温度检测系统毕业论文

温度相关的毕业设计 ·基于单片机的数字温度计的设计·基于MCS-51数字温度表的设计·单片机的数字温度计设计·基于单片机的空调温度控制器设计·基于数字温度计的多点温度检测系统·设施环境中温度测量电路设计·DS18B20数字温度计的设计·多点温度采集系统与控制器设计·基于PLC和组态王的温度控制系统设计·温度监控系统的设计·用单片机进行温度的控制及LCD显示系统的设计·单片机电加热炉温度控制系统·全氢罩式退火炉温度控制系统·数字温度计的设计·基于单片机AT89C51的语音温度计的设计·基于单片机的多点温度检测系统·基于51单片机的多路温度采集控制系统·基于单片机的数字显示温度系统毕业设计论文·基于MCS51单片机温度控制毕业设计论文·西门子S7-300在温度控制中的应用·燃气锅炉温度的PLC控制系统·焦炉立火道温度软测量模型设计·温度检测控制仪器·智能温度巡检仪的研制·电阻炉温度控制系统·数字温度测控仪的设计·温度测控仪设计·多路温度采集系统设计·多点数字温度巡测仪设计·LCD数字式温度湿度测量计·64点温度监测与控制系统·温度报警器的电路设计与制作·基于单片机的数字温度计的电路设计·全氢煤气罩式炉的温度控制系统的研究与改造·温度检测与控制系统·红外快速检测人体温度装置的设计与研制·具有红外保护的温度自动控制系统的设计·基于单片机的温度测量系统的设计·数字温度计设计·DS18B20温度检测控制·PN结(二极管)温度传感器性能的实验研究·多功能智能化温度测量仪设计·软胶囊的单片机温度控制(硬件设计)·空调温度控制单元的设计·大容量电机的温度保护——软件设计·大容量电机的温度保护 ——硬件电路的设计·基于DS18B20温度传感器的数字温度计设计·热轧带钢卷取温度反馈控制器的设计·基于单片机的温度采集系统设计·多点温度数据采集系统的设计·基于单片机的数字式温度计设计·18B20多路温度采集接口模块·基于单片机的户式中央空调器温度测控系统设计·单片机电阻炉温度控制系统设计·基于单片机的电阻炉温度控制系统设计·基于ARM的嵌入式温度控制系统的设计·基于DS18B20的多点温度巡回检测系统的设计·基于单片机的多点无线温度监控系统·基于MSC1211的温度智能温度传感器·用集成温度传感器组成测温控制系统·室内温度控制报警器·自动温度控制系统·烤箱温度控制系统·基于单片机的电加热炉温度控制系统设计·基于PLC的温度监控系统设计·基于无线传输技术的室温控制系统设计——温度控制器软件设计·温度箱模拟控制系统·基于无线传输技术的室温控制系统设计——温度控制器硬件设计·数字式温度计的设计·温度监控系统设计·基于单片机的电阻炉温度控制系统·基于plc的温度湿度检测和显示系统设计·基于单片机的3KW电炉温度控制系统的设计·腔型肿瘤热疗仪温度控制系统设计·基于AT89S51单片机的数字温度计设计·吹塑薄膜挤出机温度控制与检测系统设计·电加热炉PLC温度自适应控制系统的研究·高压母线温度自动监测装置的设计·高压母线温度自动检测装置·小型热水锅炉单片机温度控制系统·消毒柜单片机温度控制·嵌入式系统在多点温度控制中的应用·单片机温度控制系统·上下限温度报警器的设计·基于单片机的饮水机温度控制系统设计·基于单片机的温度测量系统设计

这是我自己用DS18B20做的温度检测程序,复制给你看看,我这是通过串口可以在电脑上的串口助手上显示出实时的温度:#include<>#include<>#define uint unsigned int#define uchar unsigned charsbit ds=P1^0;bit flag;uchar count_t0;float f_temp;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=122;y>0;y--);}void init() // 串口初始化{TMOD=0x21;SCON=0x50;TH0=0x4c;TL0=0x00;TH1=0xf3;TL1=0xf3;EA=1;ET0=1;TR0=1;TR1=1;}void timer0() interrupt 1{TH0=0x4c;TL0=0x00;if(++count_t0>=20){count_t0=0;flag=1;}}void dsreset(){uint i;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bit read_bit(){uint i;bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return dat;}uchar read_byte(){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=read_bit();dat=(j<<7)|(dat>>1);}return dat;}void write_byte(uchar dat){uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}void begin_change(){dsreset();delay(1);write_byte(0xcc);write_byte(0x44);}float get_temp(){uchar a,b;uint temp;float f_temp;dsreset();delay(1);write_byte(0xcc);write_byte(0xbe);a=read_byte();b=read_byte();temp=b;temp<<=8;temp=temp|a;f_temp=temp*;temp=f_temp*10+;f_temp=f_temp+;return f_temp;}void main(){init();while(1){if(flag==1){flag=0;begin_change();TI=1;printf("The tempeature is %f\n",get_temp());while(!TI);TI=0;}}}

已把我毕业论文的一部分发给你了,应该是你想要的。还需要其它的说一声

“温度控制系统”应该是一个可以恒温的系统,或者根据一定的情况(时间等)实时的进行调整,那么这肯定就需要一个温度检测器件(一般温度要求不高的话可以考虑用18B20芯片或者精度高点的AD590),然后是温度增减的执行部分(比如空调的制冷和制热控制,最简单的是电风扇的风速控制),这是一个闭环控制,如果需要控制的量比较少,而且想省钱的话就用普通的51系列单片机就OK了,祝你成功!

单片机温度检测系统有关论文

用DS18B20做的电子温度计,非常简单。#include <> #include\"\"#include <>#include <>//********************************************************#define Seck (500/TK) //1秒中的主程序的系数#define OffLed (Seck*5*60) //自动关机的时间5分钟!//********************************************************#if (FHz==0) #define NOP_2uS_nop_()#else #define NOP_2uS_nop_();_nop_()#endif//**************************************#define SkipK 0xcc //跳过命令#define ConvertK 0x44 //转化命令#define RdDs18b20K 0xbe //读温度命令//*******************************************extern LedOut(void);//*************************************************sbit PNP1=P3^4;sbit PNP2=P3^5;sbit BEEP=P3^2;//***********************************#defineDQ PNP2 //原来的PNP2 BEEP//***********************************static unsigned char Power=0;//************************************union{ unsigned char Temp[2]; //单字节温度 unsigned int Tt; //2字节温度}T;//***********************************************typedef struct{ unsigned char Flag; //正数标志 0;1==》负数 unsigned char WenDu; //温度整数 unsigned int WenDuDot; //温度小数放大了10000}WENDU; //***********************************************WENDU WenDu;unsigned char LedBuf[3];//----------------------------------//功能:10us 级别延时// n=1===> 6Mhz=14uS 12MHz=7uS//----------------------------------void Delay10us(unsigned char n){ do{ #if (FHz==1) NOP_2uS;NOP_2uS; #endif }while(--n);}//-----------------------------------//功能:写18B20//-----------------------------------void Write_18B20(unsigned char n){ unsigned char i; for(i=0;i<8;i++){ DQ=0; Delay10us(1);//延时13us 左右 DQ=n & 0x01; n=n>>1; Delay10us(5);//延时50us 以上 DQ=1; }}//------------------------------------//功能:读取18B20//------------------------------------unsigned char Read_18B20(void){ unsigned char i; unsigned char temp; for(i=0;i<8;i++){ temp=temp>>1; DQ=0; NOP_2uS;//延时1us DQ=1; NOP_2uS;NOP_2uS;//延时5us if(DQ==0){ temp=temp&0x7F; }else{ temp=temp|0x80; } Delay10us(5);//延时40us DQ=1; } return temp;}//-----------------------------------void Init (void){ DQ=0; Delay10us(45);//延时500us DQ=1; Delay10us(9);//延时90us if(DQ){ //0001 1111b=1f Power =0; //失败0 }else{ Power++; DQ=1; }}//----------------------------------void Skip(void){ Write_18B20(SkipK); Power++;}//----------------------------------void Convert (void){ Write_18B20(ConvertK); Power++;}//______________________________________void Get_Ds18b20L (void){ [1]=Read_18B20(); //读低位 Power++;}//______________________________________void Get_Ds18b20H (void){ [0]=Read_18B20(); //读高位 Power++;}//------------------------------------//规范化成浮点数// sssss111;11110000// sssss111;1111()//------------------------------------void ReadTemp (void){ unsigned char i; unsigned intF1=0; char j=1; code int Code_F[]={6250,1250,2500,5000}; ; if ([0] >0x80){ //负温度 =~; //取反+1=源吗 +符号S ; } <<= 4; //左移4位 [0]; // 温度整数 //************************************************** [1]>>=4; //--------------------------- for (i=0;i<4;i++){ //计算小数位 F1 +=([1] & 0x01)*Code_F; [1]>>=1; } ; //温度的小数 Power=0;}//----------------------------------void Delay1S (void){ static unsigned int i=0; if (++i==Seck) {i=0ower++;}}//----------------------------------void ReadDo (void){ Write_18B20(RdDs18b20K); Power++;}/**********************************函数指针定义***********************************/code void (code *SubTemp[])()={ Init,Skip,Convert,Delay1S,Init,Skip,ReadDo,Get_Ds18b20L, Get_Ds18b20H,ReadTemp};//**************************************void GetTemp(void){ (*SubTemp[Power])();}//---------------------------------------------------//将温度显示,小数点放大了 GetBcd(void){ LedBuf[0]= / 10; LedBuf[1]= % 10 +DotK; LedBuf[2]=()%10; if(LedBuf[0]==0)LedBuf[0]=Black; if() return; if(LedBuf[0] !=Black){ LedBuf[2]=LedBuf[1]; LedBuf[1]=LedBuf[0]; LedBuf[0]=Led_Pol; //'-' }else{ LedBuf[0]=Led_Pol; //'-' }}/*//---------------------------------------------------void JbDelay (void){ static long i; if (++i>=OffLed){ P1=0xff; P2=0xff; PCON=0x02; }}*//*****************************************************主程序开始1:2002_10_1 设计,采用DS18B20测量2:采用函数数组读取数码管显示正常!3:改变FHz可以用6,12MHz工作!******************************************************/code unsigned char Stop[3] _at_ 0x3b;void main (void){ P1=0xff; ; while (1){ GetTemp(); GetBcd(); // JbDelay(); LedOut(); }}复制代码 20091012_8b1ef92155560c13b5807ZmoDVSacjwD[1].jpg (12 KB) 2009-10-21 23:21 上传下载次数:0

必须要有实物啊,理论的东西都是要靠实物来验证的啊。温度控制系统不难吧,学过电子、单片机的都很轻松的,同学看来你大学过得还挺滋润的啊。去文库看看,基本都会有资料参考的。知识要点:1,AD采样,也就是温度的数据采集。2,中断,采集数据后比较,做相应的处理。

价格合理!信工毕业 就会单片机

我做的课程设计,用的数码管,也做了protues仿真,你有需要的话,我邮箱是。希望对你有帮助,#include<>sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;/////数码管1断码控制///////////////sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit P32=P3^2;/////数码管2段码控制////////////////sbit up=P3^7;sbit down=P3^6; ////按键操作端口//////////////////sbit P35=P3^5; ////////控制晶闸管端口/////////sbit DQ =P3^3; ///////温度传感器端口///////// #define THCO 0xee#define THLO 0x00unsigned char code duan[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,}; //////////////////////////////////////////int b=0;char pwm=0;int k;char r=0,q=0;static char wendu_1;char hao=20;//////////////////////////////////////////////void delay(unsigned int i){while(i--);}//////////////////////////////////////////Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay(8); //稍做延时DQ = 0; //单片机将DQ拉低delay(80); //精确延时 大于 480usDQ = 1; //拉高总线delay(14);x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);}////////////////////////////////////////////ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(4);}return(dat);}////////////////////////////////////////////////WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}//delay(4);}/////////////////////////////////////////////////DS18B20程序读取温度ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*;return(t);}xianshi(){/////////////////当前温度显示///////////////////////////// P11=1; P0=duan[wendu_1/1000]; for(k=0;k<1000;k++); P1=0;P12=1; P0=duan[wendu_1/100%10]; for(k=0;k<1000;k++); P1=0;P13=1; P0=duan[wendu_1%100/10]; for(k=0;k<1000;k++); P1=0;P14=1; P0=duan[wendu_1%10]; for(k=0;k<1000;k++); P1=0; ///////////////////////////目标电压显示/////////////// P15=1; P2=duan[hao/1000]; for(k=0;k<1000;k++); P1=0;P16=1; P2=duan[hao/100%10]; for(k=0;k<1000;k++); P1=0;P17=1; P2=duan[hao%100/10]; for(k=0;k<1000;k++); P1=0;P32=1; P2=duan[hao%10]; for(k=0;k<1000;k++); P32=0;////////////////////////////////////////////////////////// }/////////////////////////////////////////////////////////// main(void){ P11=0; P12=0; P13=0; P14=0; P15=0; P16=0; P17=0; P32=0; P35=0; /////////////////////////////////////////////////////////// while(1){ wendu_1=ReadTemperature()/16;//读温度 xianshi(); ///显示系统数据/////////////////////////////////////操作函数//////////////////////////////////// if(down==0) {hao--;} if(up==0){hao++;} ///////////////////////////////////////////////////////////////////hao为理想温度/////wendu_1为实际环境温度/////////////////////////////////////////////////////////////////P35为高时 led灯工作///////////////////////////////////// P35=0; pwm=hao-wendu_1; if(pwm>0) {P35=1;} if(pwm<0) {P35=0;} if(pwm==0) {P35=0;}///////////////////////////////////////////////////////////////// }}

单片机的温度检测系统设计论文

用DS18B20做的电子温度计,非常简单。#include <> #include\"\"#include <>#include <>//********************************************************#define Seck (500/TK) //1秒中的主程序的系数#define OffLed (Seck*5*60) //自动关机的时间5分钟!//********************************************************#if (FHz==0) #define NOP_2uS_nop_()#else #define NOP_2uS_nop_();_nop_()#endif//**************************************#define SkipK 0xcc //跳过命令#define ConvertK 0x44 //转化命令#define RdDs18b20K 0xbe //读温度命令//*******************************************extern LedOut(void);//*************************************************sbit PNP1=P3^4;sbit PNP2=P3^5;sbit BEEP=P3^2;//***********************************#defineDQ PNP2 //原来的PNP2 BEEP//***********************************static unsigned char Power=0;//************************************union{ unsigned char Temp[2]; //单字节温度 unsigned int Tt; //2字节温度}T;//***********************************************typedef struct{ unsigned char Flag; //正数标志 0;1==》负数 unsigned char WenDu; //温度整数 unsigned int WenDuDot; //温度小数放大了10000}WENDU; //***********************************************WENDU WenDu;unsigned char LedBuf[3];//----------------------------------//功能:10us 级别延时// n=1===> 6Mhz=14uS 12MHz=7uS//----------------------------------void Delay10us(unsigned char n){ do{ #if (FHz==1) NOP_2uS;NOP_2uS; #endif }while(--n);}//-----------------------------------//功能:写18B20//-----------------------------------void Write_18B20(unsigned char n){ unsigned char i; for(i=0;i<8;i++){ DQ=0; Delay10us(1);//延时13us 左右 DQ=n & 0x01; n=n>>1; Delay10us(5);//延时50us 以上 DQ=1; }}//------------------------------------//功能:读取18B20//------------------------------------unsigned char Read_18B20(void){ unsigned char i; unsigned char temp; for(i=0;i<8;i++){ temp=temp>>1; DQ=0; NOP_2uS;//延时1us DQ=1; NOP_2uS;NOP_2uS;//延时5us if(DQ==0){ temp=temp&0x7F; }else{ temp=temp|0x80; } Delay10us(5);//延时40us DQ=1; } return temp;}//-----------------------------------void Init (void){ DQ=0; Delay10us(45);//延时500us DQ=1; Delay10us(9);//延时90us if(DQ){ //0001 1111b=1f Power =0; //失败0 }else{ Power++; DQ=1; }}//----------------------------------void Skip(void){ Write_18B20(SkipK); Power++;}//----------------------------------void Convert (void){ Write_18B20(ConvertK); Power++;}//______________________________________void Get_Ds18b20L (void){ [1]=Read_18B20(); //读低位 Power++;}//______________________________________void Get_Ds18b20H (void){ [0]=Read_18B20(); //读高位 Power++;}//------------------------------------//规范化成浮点数// sssss111;11110000// sssss111;1111()//------------------------------------void ReadTemp (void){ unsigned char i; unsigned intF1=0; char j=1; code int Code_F[]={6250,1250,2500,5000}; ; if ([0] >0x80){ //负温度 =~; //取反+1=源吗 +符号S ; } <<= 4; //左移4位 [0]; // 温度整数 //************************************************** [1]>>=4; //--------------------------- for (i=0;i<4;i++){ //计算小数位 F1 +=([1] & 0x01)*Code_F; [1]>>=1; } ; //温度的小数 Power=0;}//----------------------------------void Delay1S (void){ static unsigned int i=0; if (++i==Seck) {i=0ower++;}}//----------------------------------void ReadDo (void){ Write_18B20(RdDs18b20K); Power++;}/**********************************函数指针定义***********************************/code void (code *SubTemp[])()={ Init,Skip,Convert,Delay1S,Init,Skip,ReadDo,Get_Ds18b20L, Get_Ds18b20H,ReadTemp};//**************************************void GetTemp(void){ (*SubTemp[Power])();}//---------------------------------------------------//将温度显示,小数点放大了 GetBcd(void){ LedBuf[0]= / 10; LedBuf[1]= % 10 +DotK; LedBuf[2]=()%10; if(LedBuf[0]==0)LedBuf[0]=Black; if() return; if(LedBuf[0] !=Black){ LedBuf[2]=LedBuf[1]; LedBuf[1]=LedBuf[0]; LedBuf[0]=Led_Pol; //'-' }else{ LedBuf[0]=Led_Pol; //'-' }}/*//---------------------------------------------------void JbDelay (void){ static long i; if (++i>=OffLed){ P1=0xff; P2=0xff; PCON=0x02; }}*//*****************************************************主程序开始1:2002_10_1 设计,采用DS18B20测量2:采用函数数组读取数码管显示正常!3:改变FHz可以用6,12MHz工作!******************************************************/code unsigned char Stop[3] _at_ 0x3b;void main (void){ P1=0xff; ; while (1){ GetTemp(); GetBcd(); // JbDelay(); LedOut(); }}复制代码 20091012_8b1ef92155560c13b5807ZmoDVSacjwD[1].jpg (12 KB) 2009-10-21 23:21 上传下载次数:0

这是我自己用DS18B20做的温度检测程序,复制给你看看,我这是通过串口可以在电脑上的串口助手上显示出实时的温度:#include<>#include<>#define uint unsigned int#define uchar unsigned charsbit ds=P1^0;bit flag;uchar count_t0;float f_temp;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=122;y>0;y--);}void init() // 串口初始化{TMOD=0x21;SCON=0x50;TH0=0x4c;TL0=0x00;TH1=0xf3;TL1=0xf3;EA=1;ET0=1;TR0=1;TR1=1;}void timer0() interrupt 1{TH0=0x4c;TL0=0x00;if(++count_t0>=20){count_t0=0;flag=1;}}void dsreset(){uint i;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bit read_bit(){uint i;bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return dat;}uchar read_byte(){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=read_bit();dat=(j<<7)|(dat>>1);}return dat;}void write_byte(uchar dat){uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}void begin_change(){dsreset();delay(1);write_byte(0xcc);write_byte(0x44);}float get_temp(){uchar a,b;uint temp;float f_temp;dsreset();delay(1);write_byte(0xcc);write_byte(0xbe);a=read_byte();b=read_byte();temp=b;temp<<=8;temp=temp|a;f_temp=temp*;temp=f_temp*10+;f_temp=f_temp+;return f_temp;}void main(){init();while(1){if(flag==1){flag=0;begin_change();TI=1;printf("The tempeature is %f\n",get_temp());while(!TI);TI=0;}}}

我做的课程设计,用的数码管,也做了protues仿真,你有需要的话,我邮箱是。希望对你有帮助,#include<>sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;/////数码管1断码控制///////////////sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit P32=P3^2;/////数码管2段码控制////////////////sbit up=P3^7;sbit down=P3^6; ////按键操作端口//////////////////sbit P35=P3^5; ////////控制晶闸管端口/////////sbit DQ =P3^3; ///////温度传感器端口///////// #define THCO 0xee#define THLO 0x00unsigned char code duan[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,}; //////////////////////////////////////////int b=0;char pwm=0;int k;char r=0,q=0;static char wendu_1;char hao=20;//////////////////////////////////////////////void delay(unsigned int i){while(i--);}//////////////////////////////////////////Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay(8); //稍做延时DQ = 0; //单片机将DQ拉低delay(80); //精确延时 大于 480usDQ = 1; //拉高总线delay(14);x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);}////////////////////////////////////////////ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(4);}return(dat);}////////////////////////////////////////////////WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}//delay(4);}/////////////////////////////////////////////////DS18B20程序读取温度ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*;return(t);}xianshi(){/////////////////当前温度显示///////////////////////////// P11=1; P0=duan[wendu_1/1000]; for(k=0;k<1000;k++); P1=0;P12=1; P0=duan[wendu_1/100%10]; for(k=0;k<1000;k++); P1=0;P13=1; P0=duan[wendu_1%100/10]; for(k=0;k<1000;k++); P1=0;P14=1; P0=duan[wendu_1%10]; for(k=0;k<1000;k++); P1=0; ///////////////////////////目标电压显示/////////////// P15=1; P2=duan[hao/1000]; for(k=0;k<1000;k++); P1=0;P16=1; P2=duan[hao/100%10]; for(k=0;k<1000;k++); P1=0;P17=1; P2=duan[hao%100/10]; for(k=0;k<1000;k++); P1=0;P32=1; P2=duan[hao%10]; for(k=0;k<1000;k++); P32=0;////////////////////////////////////////////////////////// }/////////////////////////////////////////////////////////// main(void){ P11=0; P12=0; P13=0; P14=0; P15=0; P16=0; P17=0; P32=0; P35=0; /////////////////////////////////////////////////////////// while(1){ wendu_1=ReadTemperature()/16;//读温度 xianshi(); ///显示系统数据/////////////////////////////////////操作函数//////////////////////////////////// if(down==0) {hao--;} if(up==0){hao++;} ///////////////////////////////////////////////////////////////////hao为理想温度/////wendu_1为实际环境温度/////////////////////////////////////////////////////////////////P35为高时 led灯工作///////////////////////////////////// P35=0; pwm=hao-wendu_1; if(pwm>0) {P35=1;} if(pwm<0) {P35=0;} if(pwm==0) {P35=0;}///////////////////////////////////////////////////////////////// }}

二.系统软件设计图4 系统程序流程图 系统程序流程图系统程序流程图如图4所示。 温度部分软件设计DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。程序主要函数部分如下:(1)初始化函数//读一个字节函数ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){ DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(4);}return(dat);}//写一个字节函数WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}}(2)读取温度并计算函数ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*;t= tt*10+; //放大10倍输出并四舍五入---此行没用(3)主程序部分见前return(t);}三. 结束语AT89C2051单片机体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好。即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量来开发所希望的单片机应用系统。本文的温度控制系统只是单片机广泛应用于各行各业中的一例,相信读者会依靠自己的聪明才智使单片机的应用更加广泛化。另外对本例子可以作一些扩展,单片机的应用越来越广泛,由于单片机的运算功能较差,往往需要借助计算机系统,因此单片机和PC机进行远程通信更具有实际意义。目前此设计已成功应用于钻井模拟器实验室室温控制。本文作者创新观点:采用的单片机AT89C2051性价比高,而且温度传感器DS18B20转化温度的方法非常简洁且精度高、测试范围较广。参考文献[1]林伸茂.8051单片机彻底研究基础篇 北京:人民邮电出版社 2004[2]范风强等.单片机语言C51应用实战集锦 北京:电子工业出版社 2005[3]谭浩强.C语言程序设计(第二版) 北京:清华大学出版社 1999[4]夏路易等.电路原理图与电路板设计教程 北京:北京希望电子出版社 2002[5]赵晶.Protel99高级应用 北京:人民邮电出版社 2000[6]聂毅.单片机定时器中断时间误差的分析及补偿[J] 微计算机信息 2002,18(4):37~38

单片机最小系统毕业论文

毕业设计竟然是单片机最小系统?不可理解,这么简单的事要拿来写毕业论文,晕啊,100字就说明白了

试题: A甲1025参赛试题: 点阵电子显示屏(A题)参赛学生:冯元伟 物理与微电子学院 关童 物理与微电子学院 田立志 材料学院包装工程 参赛学校:山东大学 指导老师:陈延俊 秦峰 王延伟 仪维2006年9月11日目 录第一部分 摘要 ……………………………………………………...3第二部分 1.设计任务………………………………………………..4 基本要求………………………………………………………….........4 发挥部分……………………………………………………………….4 创新部分……………………………………………………………….4 2.方案论证与比较………………………………………5 显示部分……………………………………………………………….5 数字时钟……………………………………………………………….5 温度采集部分………………………………………………………….6 芯片选择……………………………………………………………….6 闹铃方式的选择……………………………………………………….6 止闹方式的选择……………………………………………………….6 串口通讯芯片的选择………………………………………………….6 3. 总体方案……………………………………………….7 工作原理……………………………………………………………….7 总体设计……………………………………………………………….7 4.系统硬件设计…………………………………………7 AT89S52单片机最小系统…………………………………………...8 温度测量模块………………………………………………………...8 时钟模块……………………………………………………………..8 键盘模块……………………………………………………………..9 LED点阵显示模块………………………………………………….10 电源的选择………………………………………………………….11 PC机通讯……………………………………………………………12 整体电路…………………………………………………………….12 5.系统软件设计………………………………………….7 主程序流程………………………………………………………….13 扫描子程序………………………………………………………….14 时间程序…………………………………………………………….15 PC机串口通讯程序…………………………………………………15 亮度调节程序………………………………………………………16 温度程序…………………………………………………………….17 6.测试与结果分析……………………………………...17 基本部分测试与分析……………………………………………….17 发挥部分测试与分析……………………………………………….18 创新部分测试与分析……………………………………………….18 7.设计总结……………………………………………...18 8.参考资料……………………………………………...18附录……………………………………………………………18例程…………………………………………………………......................................18摘要 LED大屏幕显示系统,以AT89S52单片机为核心,由键盘显示、录放音模块、光电开关、温度采集、定时闹铃、LED大屏幕显示等功能模块组成。基于题目基本要求,本系统对时间显示和大屏幕显示进行了重点设计。此外,扩展单片机外围接口、温度采集、非接触式止闹、滚动屏幕显示、语音报时等功能。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,发挥部分也得到完全的实现,而且有一定的创新功能。 关键字:单片机 LED大屏幕 滚屏显示 Abstract This large LED display screen system ,based on chip microcomputer AT89S52,is composed by the following functional modules : keyboard displaying ,sound phonating. photoelectricity untouched switch,temperature gathering ,timing bell, According to the basic requirements of the subject ,our system stresses on the realization of time displaying and large screen displaying ,Furthermore ,we also extend the primary function ,adding new functions ,such as the single chip peripheral ports ,temperature gathering ,untouched ring-stop, scroll screen display, sound timing .and so on. Adopting the idea of hardware-to-software, most of those functions are realized by softwares, which makes the electrocircuit more concise and the system more stable ,The design achieved and even exceeded all the required basic technical indexes Key words: chip microcomputer large screen display system scroll screen display1任务设计 基本要求:设计并制作LED电子显示屏和控制器。 自制一台简易16行*32列点阵显示的LED电子显示屏; 自制显示屏控制器,扩展键盘和相应的接口实现多功能显示控制,显示屏显示数字和字母亮度适中,应无闪烁。 显示屏通过按键切换显示数字和字母; 显示屏能显示4组特定数字或者英文字母组成的句子,通过按键切换显示内容; 能显示4组特定汉字组成的句子,通过按键切换显示内容。发挥部分:自制一台简易16行*64列点阵显示的LED电子显示屏; LED显示屏亮度连续可调。 实现信息的左右滚屏显示,预存信息的定时循环显示; 实现实时时间的显示,显示屏数字显示: 时∶分∶秒(例如 18∶38∶59);增大到10组(每组汉字8个或16个数字和字符)预存信息,信息具有掉电保护;实现和PC机通讯,通过PC机串口直接对显示信息进行更新(须做PC机客户程序); 创新部分 室温的测量 定时闹铃 整点报时 非接触止闹 2、方案论证 显示部分: 显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案: 方案一:静态显示,将一帧图像中的每一个二极管的状态分别用0 和1 表示,若为0 ,则表示L ED 无电流,即暗状态;若为1 则表示二极管被点亮。若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有L ED 的状态保持到下一幅画。对于静态显示方式方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。 方案二:动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。动态显示方式方式,可以避免静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式, 复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素. 我们通过实验发现, 当扫描刷新频率(发光二极管的停闪频率) 为50Hz, 发光二极管导通时间≥1m s 时, 显示亮度较好, 无闪烁感.。 鉴于上述原因, 我们采用方案二 .数字时钟 数字时钟是本设计的重要的部分。根据需要,可利用两种方案实现。 方案一:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。 方案二:本方案采用Dallas公司的专用时钟芯片DS1302。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。 基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。 温度采集部分 能进行温度测量是本设计的创新部分,由于现在用品追求多样化,多功能化,所以我们决定给系统加上温度测量显示模块,方便人们的生活,使该设计具有人性化。 方案一:采用热敏电阻,可满足 40 摄氏度至 90 摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测小于 1 摄氏度的信号是不适用的。 方案二:采用温度传感器DS18B20。DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,增值量为摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。 基于DS18b20的以上优点,我们决定选取DS18b20来测量温度。 芯片的选择 方案一:采取并口输入,占用大量I/O口资源 方案二:选取串口输入,使用较少。所以我们选用串口输入。串口输入我们可以选用芯片有74HC595、74LS164、TPIC6B595。但是74HC595和74LS164两种芯片必须加驱动才能驱动LED,而TI 公司的DMOS 器件TPIC6B595 , 除具有TTL 和CMOS 器件中移位寄存器595 的逻辑功能外, 其最大的特点是驱动功率大, 可直接用作LED的驱动。 综合以上比较,我们选取TPIC6B595来驱动LED点阵。 闹铃方式的选择 方案一:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。采用蜂鸣器闹铃结构简单,控制方便,但是发出的闹铃声音单一。 方案二:采用录音放音芯片1420闹铃,先对录放音设备录入一段音乐,当到设定时间时,单片机控制录放音设备放音。采用录放音电路铃声可以自己预先设定一段自己喜欢的音乐,符合电器设备人性化的要求。且1420芯片可以分段录音,还具有语音报时功能。 基于录音放音芯片1420的以上优点,我们决定采用录放音设备闹铃。 止闹方式的选择 一般钟表都具有闹钟功能,到设定时间,便自动启动闹钟,发出音乐提醒人们,再由人按下止闹按钮停止闹钟工作。 一般每天只能设置一次闹钟、并要由人按下按钮止闹,使用不是很方便。 智能处理器应用可改变这种状况,一天可按自己需要设置闹钟的开关、多次闹钟设置并可用非接触方式止闹。 方案一:采取远程红外遥控止闹,遥控器发出特定红外信号时,单片机接受到信号,向发音设备发出停止信号止闹。红外遥控止闹控制距离远,但是价格昂贵,增加了制造成本。 方案二:采取光电传感器,当用一物体遮挡光电传感光电传感器向单片机接口送出一个低电平,单片机立即向发音设备发出停止信号止闹。光电传感器价格便宜,线路简单,易于控制。 基于以上比较我们决定采用光电传感器止闹。 串口通讯芯片的选择 AT89S52串行口采用的是TTL电平,因此必须的有电平转换电路,可以选择1488,1489,MAX232A. 方案一:采用1488或1489芯片实现电平转换,但在使用中发现这两种芯片可靠性不高,且需要正负12V电源,使用麻烦。 方案二:采用单电源电平转换芯片MAX232A可以使电路变得简单,可靠。 基于以上分析,我们选用方案二,选用芯片 电源模块 方案一:采用干电池作为LED点阵系统的电源,由于点阵系统耗电量较大,使用干电池需经常换电池,不符合节约型社会的要求。点阵系统要悬挂在墙上,电池总量大,使用会有较大安全隐患。 方案二:采用200W/5V直流稳压电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠 基于以上分析,我们决定采用方案二3、总体方案 工作原理: 利用单片机AT89S52单片机作为本系统的中控模块。单片机可把由DS18B20、DS1302读来的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历的显示。点阵LED电子显示屏显示器为主要的显示模块,把单片机传来的数据显示出来,并且可以实现滚动显示。利用光电传感器来实现非接触止闹功能。在显示电路中,主要靠按键来实现各种显示要求的选择与切换。 总体设计 设计总体框图如图14、系统硬件设计(单元电路设计及分析) AT89S52单片机最小系统: 最小系统包括晶体振荡电路、复位开关和电源部分。图2为AT89S52单片机的最小系统。 温度测量模块: 温度测量传感器采用DALLAS公司DS18B20的单总线数字化温度传感器,测温范围为-55℃~125℃,可编程为9位~12位A/D转换精度,测温分辨率达到℃,采用寄生电源工作方式, CPU只需一根口线便能与DS18B20通信,占用CPU口线少,可节省大量引线和逻辑电路。接口电路如图3所示。图3 DS18B20测量电路 时钟模块 时钟模块采用DS1302芯片,DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,其接线电路如图4 图4 时钟电路 键盘模块 键盘、状态显示模块:为了使软件编程简单,本设计利用可编程芯片8255。接法如表1所示。PA口接按键,PC口则用于控制状态显示所用LED点阵。每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。当有键按下时,与该键相连的PA口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵。模块电路如图 LED显示模块 点阵数据串行输入, 器件为 移位寄存器TPIC6B595595, 门控和扫描信号常以16 点阵为一行进行并行处理。在点阵显示中以4×8个L ED 点阵构成一个L ED 显示单元, 采用行共阳列共阴的编排方式。其驱动分为行列两部分, 分别来自于行、列移位寄存器, 行数据是扫描数据, 16 行中每次只有一行被驱动, 采用逐行扫描方式, 列数据则为汉字的点阵码。。对于字符和图形显示也可以用点阵处理, 其显示原理和方法相同.电路如图6 图6 LED显示电路电源选择: 200W/5V的直流稳压电源更加安全电路图如图7图7 电源电路 PC机通讯 MAX232是标准的串口通信接口,对于一般的双向通讯,只需要使用串行输入口RXD(第3脚)、串行输出TXD(第2脚)和地线(第7脚)。MAX232逻辑电平的规定如表2. 表 2 逻辑电平表逻辑值 电平幅值 (v) 0 3+~+15 1 3-~-15 图8 串口通讯整体电路系统整体电路如下: 图9 整体电路5、系统软件设计主程序如图显示子程序流程如图 显示时间子程序流程如图12图12 时间子程序流程图 与PC串口通讯程序 LED亮度调节图 14 LED亮度调节温度测量流程图如图15 图15 温度测量程序流程图6、测量及其结果分析 基本部分测试与分析 测试仪器: 秒表 、温度表、万用电表、WAVE仿真器基本要求部分的测试与分析: (1)系统上电后,全屏点亮,没有暗点。接着显示时间。按“#”键后时扫描键盘,当有1~10键按下时,分别显示十段设定的数字、英文或汉字。 (2)显示时间时通过与秒表对比,测试的系统时间准确。6. 2 发挥部分测试与分析:(1) 当按下#后在按下进入亮度调节,按下“+”键时,亮度增加。按下“—”键时,亮度变弱。(2) 可以实现文字左右移动 (3) 按下“设置时间”键,观察到“钟表” 二极管点亮,此时可对时间进行设置。按下“时间设置“进入时调试,按“+”键时间加。在按下“切换”键时,进入分调整模式,按下“+”键,分增加。按下“选择”键时,分调整模式改为秒调整模式,按下“+”键秒增加。经测试该步可以很好的实现。调整时间完毕后,再按一下“闹钟设置”进入闹铃设置状态,按下“+”键设定“时”增加,在按下“选择”键进入分的设置,按下“+”键设定“分”增加。在按下“选择”键进入秒设置模式,按“+”键秒增加。(4)系统可以显示10组,每组8个汉字,完成要求 创新部分测试与分析(1)温度测量: 键盘切换现场环境温度显示:按“功能”键选择“温度”,将温度传感器和温度计放入不同的测试环境中进行测试,结果如表1所示。 表1 与标准温度计测量值比较表 温度计示值(摄氏度) 温度输出(摄氏度) 10 25 50 70 86 由测试知,数字钟的输出与温度计值基本上相等,误差不大于度。(2) 当到设定时间时,开始访一段音乐,完成定时闹铃功能。(3)当用手遮挡光电传感器后,停止放音。手拿开后,不再放音,直到到设定时间。完成非接触止闹功能7、设计总结 全心准备了整整一个酷暑,9月8日我们终于拿到了试题,我们一致选择控制类题目A(LED点阵),从基本方案的制定,在到硬件电路的选择,到制作电路制作,最后进行程序调试。在此期间我们遇到很多困难,几乎没有说过一次好觉,尽管很艰苦,但是我们各自分工,相互协作,一次又一次品尝到了解决问题的喜悦,最终完成了要求的全部功能,并加入了一些创新的部分。在竞赛中我们发现了自己知识的不足,通过四天三夜的奋斗,也可以说四天三夜的学习,我们学到了很多东西,最重要的是我们学会了一种精神————永不放弃。在以后的时间里面我们会用这种精神去学习,更上一层楼。8、参考资料 [1]《基于单片机结构的智能系统设计与实现》 沈红卫 编 电子工业出版社 [2]《单片机原理与接口技术》 黄惠媛 编 海洋出版社 [3]《单片机应用技术》 周平 伍云辉 编 电子科技大学出版社 [4]《8051单片机实践与应用》 吴金戌 沈金阳 郭庭吉 编 清华大学出版社 [5]《电子设计竞赛赛题解析》 黄正谨等编 东南大学出版社 附录:例:整屏四个字一起显示的程序SER EQU ; TPIC6B595 第3脚OE EQU ;TPIC6B595 第8脚RCK EQU ;TPIC6B595 第12脚MR EQU ;TPIC6B595 第9脚SRCLK EQU ;TPIC6B595 第13脚ORG 0000HLJMP MAINORG 0100H;**************************主程序**********************************MAIN: MOV SP,#70HSETB OE MOV 2BH,#00HMOV 27H,#00HSTART: ;初始化寄存器RAM单元MOV R0, #30HMOV R1,#64H ;30H~6FH单元清零MOV A, #00HST: MOV @R0,A INC R0 DJNZ R1,ST;2Dh------寻址偏址 ;整屏四个字一起显示LOOP:MOV DPTR,#TAB;赋查表初值MOV R3,#56PLAY: MOV 2DH,#00H MOV 2FH,#10HGG: LCALL LINE16;扫描显示一次MOV 2DH,#00HDJNZ 2FH,GGMOV A,DPLCLR CADD A, #16MOV DPL ,AMOV A, DPHADDC A ,#00HMOV DPH, ADJNZ R3,PLAYSJMP STARTLINE16: MOV 2BH,#16;扫16行,2BH放后还剩几行FF: LCALL LINE1;扫描显示一行子程序DJNZ 2BH,FF;扫描行直到16行扫完再转RETLINE1:LCALL MSTR;将显示的内容移入内存单元 LCALL SEND;发送串口子程序 LCALL XH;选通行子程序 RETMSTR: ;显示内容移入内存单元 MOV R0,#30H MOV R4,#9 MOV A,2DH;BB: MOVC A,@A+DPTR MOV @R0,A INC R0 MOV A,2DH ADD A,#16;加16移到下一行 MOV 2DH,A DJNZ R4,BB MOV A,2DH SUBB A,#143 MOV 2DH,A RET;$$$$$$$$$$$$$$$$$$$$$$$$$$$发送数据到串口子程序$$$$$$$$$$$$$$$$$$$$$$$$$SEND:MOV R0,#30H MOV R5,#8 ;一行有8个字节,如每次显示字数不同要作相应改动 SETB OE SETB MR CLR SRCLK CLR RCK SETB SETB : CLR C MOV R2,#8 MOV A,@R0 ; CPL A ;TPIC6B595应该不用这一步 LCALL DD1;调用显示一个字节的子程序 INC R0;指向下一个显示单元 DJNZ R5,LQ RETDD1: CLR SRCLK;清串行CP端 RLC A; MOV SER,C SETB SRCLK ;触发串行CP端 DJNZ R2,DD1;每个字节移8次够了向下执行 RET;选通行子程序XH: CLR RCK ;将输出CP变成低电平为上升沿做准备 NOP SETB RCK CLR ;CLR MOV A,27H MOV P0,A CLR OE LCALL DE25MS INC A SETB OE SETB MOV A,27H ANL A,#0F0H SWAP A ADD A,#01H SWAP A MOV 27H,A CLR MR SETB MR RETDE25MS: MOV R5,#09H DEL2: MOV R6,#0FH DEL3: MOV R7,#01H DJNZ R7,$ DJNZ R6,DEL3 DJNZ R5,DEL2 RETTAB:字库END

单片机的毕业设计,不同的设计要求,难度不一样。你的课题是温度测量与语音播报系统。这个课题的设计思路:(1)温度测量与语音播报系统的电路设计———— 主要需要完成单片机最小系统电路+LCD液晶显示电路+温度传感器采集电路+语音播报电路+报警电路(2)温度测量与语音播报系统的软件程序:———— 主要需要完成LCD液晶显示电路的驱动程序+温度传感器采集电路的驱动程序+语音播报电路的驱动程序+报警电路的驱动程序(3)温度测量与语音播报系统的实物调试———— 购买有关温度测量与语音播报系统的电路设计所需要的电子器件,结合软件程序来调试有关的功能。头像账号也是腾讯账号。有问题可以添加@生活不止有眼前的苟且,还有诗和远方

二、支持stc52系列单片机的 在线下载三、多个电源接线柱,多个地线接线柱,32个I/O口全部配有接线柱四、配有标准232接口,轻松实现单片机与电脑或者其他设备的通信五、可接4~6伏直流电,6、具有手动复位功能六、赠送丰富的学习资料9G的资料光盘,DVD2张:所有单片机资料,单片机视频,模拟电子视频,数字电路视频。七、发货清单1.最小系统板一块(含SST89C52RC一片)2.串口延长线一条(STC下载线)延长线一条的资料光盘,DVD2张:所有单片机资料,单片机视频,模拟电子视频,数字电路视频。5.杜邦线数根需要多的请购买。本产品常用配套可以选配件:1. 杜邦线 一排40个,一排价格15元1. USB转232配件,笔记本用户,价格30元2. 需要AT89S51/52的用户请另行购买 并口AT89S下载线+AT89S52芯片(合计40元)点击查看并口AT89S下载线的详细资料本站专门为该板配套的模块

相关百科

热门百科

首页
发表服务