首页

> 期刊投稿知识库

首页 期刊投稿知识库 问题

51单片机的毕业论文题目

发布时间:

51单片机的毕业论文题目

单片机控制自动恒温箱的设计(电路图+原理图+程序) 双坐标步进电机控制系统的设计(论文) 原材料仓物位智能检测系统的设计 单片机多用宽频转速计的设计 智能家居安防红外报警器设计(附protel文件) 基于单片机的多功能信号发生器设计(新品) 数字示波器的设计(AVR单片机)(新品) 基于单片机的中文输入系统设计(程序+电路原理图+PCB图) 农业暖棚(温室)温湿度控制系统的设计 基于单片机喷泉控制系统的设计 基于单片机的多功能转速表的设计 仓库温湿度的监测系统的设计 单片机的数字钟的设计 可预置的定时显示报警系统的设计 MCS-51单片机智能温度控制系统设计 单片机实现的步进电机控制系统设计 基于单片机多功能智能信号发生器 智能型充电器的电源和显示的设计 基于AT89C2051单片机自行车里程速度表的设计 基于单片机定时控制器的设计 更多的单片机毕业设计题目请参考56毕业设计网

TOP1.基于51单片机人脸简易识别系统TOP2.基于51单片机智能非特定人声语音识别系统TOP3.基于51单片机指纹考勤系统TOP4.基于51单片机智能小型穿戴手表TOP5.基于51单片机智能家居12防卫报警TOP6.基于51单片机8位16位门禁系统

电子信息工程的 毕业 论文写作中,论文的题目起着画龙点睛的作用,要重视论文的题目。下面是我带来的关于电子信息工程毕业论文题目的内容,欢迎阅读参考!电子信息工程毕业论文题目(一) 1. 基于80C51的智能汽车自控系统的设计 2. PLC实现十字路交通灯自动控制 3. 智能型充电器的电源和显示设计 4. 基于单片机的电子时钟设计及应用 5. 基于单片机的智能电子时钟的设计及应用 6. 超外差中波调幅收音机组装及调试 7. 基于USB接口的步进电机控制的研究与实现 8. 基于单片机的电子琴设计 9. 基于FPGA的直序扩频通信研究与设计 10. 基于单片机的发射机控制系统 11. 声光报警器的设计与研究 12. 单片机电源 13. 基于P87LPC768的电机控制系统 14. 基于单片机的LCD电子钟设计 15. 音响放大器的设计 16. 超外差收音机制作及分析研究 17. 2DPSK频带传输系统的设计与实现 18. 基于单片机智能电子钟的设计 19. USB与串行接口转换器的设计 20. 基于FPGA的数字频率计的设计 电子信息工程毕业论文题目(二) 1. 家庭防盗报警系统 2. 单片机实现单步进电机及8位流水灯控制的设计 3. 篮球 竞赛计时系统 4. 单片机89C51在直流调速控制系统中的应用 5. 八路数字抢答器 6. 基于51机的直流电机设计 7. 基于51单片机的步进电机控制系统 8. 基于一种DC-DC模块电源系统的设计 9. 基于555定时器闪光灯的设计 10. 多功能稳压电源的制作 11. 直流稳压电源的制作 12. 步进电机的单片机控制系统 13. 单片机交通灯管理系统 14. AT89S51单片机交通灯控制系统制作 15. 基于单片机的步进电机系统设计 16. 基于WML的学生网站开发 17. 基于单片机的电子密码锁 18. 单片机驱动步进电机控制系统的设计 19. 基于单片机的流水灯设计 电子信息工程毕业论文题目(三) 1. 基于单片机的火灾报警器设计 2. 基于NE555的触摸式报警器 3. 数字密码锁设计 4. 基于单片机智能电子时钟设计及应用 5. 流水灯控制电路设计 6. 简易单片机控制电路实验开发板 7. 全自动洗衣机自动控制电路部分设计 8. 基于单片机的八路抢答器的设计及PCB板的设计 9. 基于单片机的数字温度计的设计 10. 仓库温湿度的监测系统 11. 电子门铃的设计 12. 基于单片机的步进机电路设计 13. 交通灯控制电路设计 猜你喜欢: 1. 电子信息毕业论文范文 2. 电子信息工程论文范文 3. 电子信息工程发展现状 4. 最新版网络工程专业毕业论文题目 5. 电子信息工程毕业论文范文 6. 电子信息工程论文题目大全

太简单的,我帮你。

本科51单片机毕业论文

单片机毕业论文答辩陈述

难忘的大学生活将要结束,毕业生都要通过最后的毕业论文,毕业论文是一种有计划的检验大学学习成果的形式,那么毕业论文应该怎么写才合适呢?以下是我为大家收集的单片机毕业论文答辩陈述,仅供参考,希望能够帮助到大家。

单片机毕业论文答辩陈述

各位老师好!我叫刘天一,来自**,我的论文题目是《基于AVR单片机的GSM—R基站天线倾角测量系统》。在这里,请允许我向宁提纲老师的悉心指导表示深深的谢意,向各位老师不辞劳苦参加我的论文答辩表示衷心的感谢。

下面我将从论文的背景意义、结构内容、不足之处三个方面向各位老师作一大概介绍,恳请各位老师批评指导。

首先,在背景和意义上,移动通信网络建设初期,基站站间距大、数量少、站型也不大,并且频率资源相对比较丰富。在这一阶段的网络规划时很少对天线的倾角做详细的规划,基站功率常常以满功率发射。对于越区覆盖则主要通过增加邻区的办法予以解决。

但随着网络的迅速发展,城市中的基站越来越密集,在一个中等城市通常分布着数十个基站,在省会城市更是达到了数百个基站之多,并且基站的密度越来越高,站型也越来越大,如果对越区覆盖的问题仍然釆用老办法解决,那么网络质量将难以保证。因此有必要在规划阶段就对基站天线的倾角、基站静态发射功率等进行更加细化合理的规划,从而减轻优化阶段的工作量。

合理设置天线下倾角不但可以降低同频干扰的影响,有效控制基站的覆盖范围,而且可以加强本基站覆盖区内的信号强度。通常天线下倾角的设定有两方面侧重,一方面侧重于干扰抑制,另一方面侧重于加强覆盖。这两方面侧重分别对应不同的下倾角算法。一般而言,对基站分布密集的地区应该侧重于考虑干扰抑制(大下倾角);而基站分布比较稀疏的地方则侧重于考虑加强覆盖(小下倾角)。

规划阶段进行的倾角设计,在实际施工过程中会出现一定的偏差,在使用的过程中,由于季节变化或风、雨、雪、温度、湿度等自然条件影响,基站天线倾角会发生变化,进而影响场强质量。而移动通信已经是人类日常生活中不可或缺的一部分,正常的通信离不开基站的建设与维护,因此,基站天线倾角的实时、精确测量就显得尤为重要了。但现阶段移动通信基站的天线方位角、下倾角等基本是依靠人工现场通过罗盘、坡度仪等仪器进行测量得到的,而且由于基站的数量巨大,因而测量耗费了大量的时间、人力、物力,并且存在较大的测量人员人身安全隐患。因此,实现一种省时、省力的自动化测量仪器是非常亟需的。

为此,拟研发GSM—R基站天线倾角测量系统,实现不登塔作业即可完成基站天线倾角的测量工作,并可对各基站测试点进行联网,实现对基站天线倾角的实时监测。本系统可以大大降低GSM—R系统现场维护作业的人身安全风险和作业难度、强度,具有很高的实用性和安全性。

其次,在结构内容上,论文主要对基站倾角测量系统进行设计,主要研宄内容为:

(1)根据控制要求,选用倾角测量模块;学会使用并通过使用手册深入学习其特性及原理。

(2)采用ATmegal62作为控制芯片,进行倾角测量系统的硬件电路设计。整个系统分为主板和从板,通过芯片内置的TWI串行总线传输接口进行通信,由主板将数据通过无线模块发送给手持终端。

(3)采用JZ863数传模块,将其与上位机控制芯片、下位机控制芯片的异步串行接收/发送器USART连接,进行上位机与下位机的无线数据通信。

(4)在硬件平台基础上根据模块化思想进行倾角测量系统的软件程序设计。

(5)在设计好的软硬件平台上进行相关实验,实现控制系统设计目标和要求。

本文各章节安排如下:

第1章“引言”,对倾角测量系统进行了简要概述,介绍了研宄背景,并对本文的内容作了简介。

第2章“倾角测量传感器”,主要分析了本系统比较重要的倾角测量模块的原理以及SCA100T—D01倾角测量芯片,对其各个引脚的功能以及通信协议等进行了阐述,为后面的具体实现打下了基础。

第3章“ATmegal62微处理器结构及原理”,分析了本毕设使用的核心单片机芯片ATmegal62,包括它的各个引脚以及I/O端口,并且分析了本论文主要使用的通信协议,即同步串行SPI接口和USART串行口。

第4章“倾角测量系统软硬件实现”,本章首先对系统的总体设计进行了实现,包括主要的技术指标、主要的功能模块等。接着进行了本系统的硬件实现和软件实现。硬件实现包括各个功能模块的具体电路设计以及最后的PCB电路板制作,软件实现包括各个功能模块的程序设计。

第5章“倾角测量系统调试及实验”,本章主要进行了硬件电路的调试,并介绍了通过AVR Studio进行软件仿真以及下载,最后在搭建的系统软硬件平台的基础上,进行调试和实验,以此来验证基站倾角测量系统的硬件与软件设计。

第6章“结论”,本章主要总结了本论文的研究结果,并阐述了系统的不足之处和对以后工作的展望。

最后,在不足之处上,这篇论文的写作以及修改的过程,也是我越来越认识到自己知识与经验缺乏的过程。虽然,我尽可能地收集材料,竭尽所能运用自己所学的知识进行论文写作,但论文还是存在许多不足之处,有待改进。请各位评委老师多批评指正,让我在今后的学习中学到更多。

[知识拓展]

论文答辩提问方式

在毕业论文答辩会上,主答辩老师的提问方式会影响到组织答辩会目的的实现以及学员答辩水平的发挥。主答辩老师有必要讲究自己的提问方式。

1、提问要贯彻先易后难原则。主答辩老师给每位答辩者一般要提三个或三个以上的问题,这些要提的问题以按先易后难的次序提问为好。所提的第一个问题一般应该考虑到是学员答得出并且答得好的问题。学员第一个问题答好,就会放松紧张心理,增强“我”能答好的信心,从而有利于在以后几个问题的答辩中发挥出正常水平。反之,如果提问的第一个问题就答不上来,学员就会背上心理包袱,加剧紧张,产生慌乱,这势必会影响到对后面几个问题的答辩,因而也难以正确检查出学员的答辩能力和学术水平。

2、提问要实行逐步深入的方法。为了正确地检测学员的专业基础知识掌握的情况,有时需要把一个大问题分成若干个小问题,并采取逐步深入的提问方法。如有一篇《浅论科学技术是第一生产力》的论文,主答辩老师出的探测水平题,是由以下四个小问题组成的。

(1)什么是科学技术?

(2)科学技术是不是生产力的一个独立要素?在学员作出正确回答以后,紧接着提出第三个小问题:

(3)科学技术不是生产力的一个独立要素,为什么说它也是生产力呢?

(4)你是怎样理解科学技术是第一生产力的?通过这样的提问,根据学员的答辩情况,就能比较正确地测量出学员掌握基础知识的扎实程度。如果这四个小问题,一个也答不上,说明该学员专业基础知识没有掌握好;如果四个问题都能正确地回答出来,说明该学员基础知识掌握得很扎实;如果能回答出其中的2—3个,或每个小问题都能答一点,但答得不全面,或不很正确,说明该学员基础知识掌握得一般。倘若不是采取这种逐步深入的提问法,就很难把一个学员掌握专业基础知识的情况准确测量出来。假如上述问题采用这样提问法:请你谈谈为什么科学技术是第一生产力?学员很可能把论文中的主要内容重述一遍。这样就很难确切知道该学员掌握基础知识的情况是好、是差、还是一般。

3、当答辩者的观点与自己的观点相左时,应以温和的态度,商讨的语气与之开展讨论,即要有“长者”风度,施行善术,切忌居高临下,出言不逊。不要以“真理”掌握者自居,轻易使用“不对”、“错了”、“谬论”等否定的断语。要记住“是者可能非,非者可能有是”的格言,要有从善如流的掂量。如果作者的观点言之有理,持之有据,即使与自己的观点截然对立,也应认可并乐意接受。倘若作者的观点并不成熟、完善,也要善意地、平和地进行探讨,并给学员有辩护或反驳的平等权利。当自己的观点不能为作者接受时,也不能以势欺人,以权压理,更不要出言不逊。虽然在答辩过程中,答辩老师与学员的地位是不平等的(一方是审查考核者,一方是被考核者),但在人格上是完全平等的。在答辩中要体现互相尊重,做到豁达大度,观点一时难以统一,也属正常。不必将自己的观点强加于人,只要把自己的观点亮出来,供对方参考就行。事实上,只要答辩老师讲得客气、平和,学员倒愈容易接受、考虑你的观点,愈容易重新审视自己的观点,达到共同探索真理的目的。

4、当学员的回答答不到点子上或者一时答不上来的问题,应采用启发式、引导式的提问方法。参加过论文答辩委员会的老师可能都遇到过这样的情况:学员对你所提的问题答不上来,有的就无可奈何地“呆”着;有的是东拉西扯,与你绕圈子,其实他也是不知道答案。碰到这种情况,答辩老师既不能让学员尴尬地“呆”在那里,也不能听凭其神聊,而应当及时加以启发或引导。学员答不上来有多种原因,其中有的是原本掌握这方面的知识只是由于问题完全出乎他的意料而显得心慌意乱,或者是出现一时的“知觉盲点”而答不上来。这时只要稍加引导和启发,就能使学员“召回”知识,把问题答好。只有通过启发和引导仍然答不出或答不到点子上的,才可判定他确实不具备这方面的知识。

【拓展】

单片机毕业论文开题报告参考

1. 课题名称:

数字钟的设计

近年来,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋广泛,特别是工业测控、尖端武器和日常家用电器等领域更是因为有了单片机而生辉增色,不少设备、仪器已经把单片机作为核心部分。单片机应用技术已经成为一项新的工程应用技术。尤其是Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉等优点,在我国得到了广泛的`应用,在智能仪器仪表机电一体化等方面取得了令人瞩目的成果。现在单片机可以说是百花齐放,百家争鸣,世界上各大芯片制造公司都推出了自己的单片机,从8位,16位,到32位,数不胜数,应有尽有由于主流C51兼容的,也有不兼容的,但他们各具特色,互成互补,为单片机的应用提供了广泛的天地。在高节奏发展的现代社会,以单片机技术为核心的数字钟越来越彰显出它的重要性。

3. 设计目的和意义:

单片机的出现具有划时代的意义。它的出现使得许多原本花费很高的复杂电路以及繁多的电气元器件都被取缔,取而代之的是一块小小的芯片。伴随着计算机技术的不断发展,单片机也得到了相应的发展,而且其应用的领域也得到更好的扩展。在民用,工用,医用以及军用等众多领域上都有所应用。为了,能够更好的适应这日新月异的社会,我们应当充实我们的知识面,方能不被时代的潮流踩在脚下。

介于单片机的重要性,我们应当对单片机的原理,发展以及应用有着一定的了解。所以,我们应当查阅相关资料,从而能够对单片机有个全方位的了解。进而将探讨的领域指向具体的国内,从而能够在科技与经济飞速发展的当今社会更好的应用这项技术。事实上,该项技术在国内有着极为广泛的发展前景,因此,通过对本课题的研究,我们因当能够充分认识到单片机技术的重要性,对单片机未来的发展趋势有所展望。

单片机的形成背景:

1.随着微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平不断提高。硅材料与人类智慧的结合,生产出大批量的低成本、高可靠性和高精度的微电子结构模块,推动了一个全新的技术领域和产业的发展。在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实现硬件的功能。微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用,开创了一个崭新的应用世界,以至广泛影响着并在逐步改变着人类的生产、生活和学习等社会活动。

2.计算机硬件平台性能的大幅度提高,使很多复杂算法和方便使用的界面得以实现,大大提高了工作效率,给复杂嵌入式系统辅助设计提供了物理基础。

3.高性能的EDA综合开发工具(平台)得到长足发展,而且其自动化和智能化程度不断提高,为复杂的嵌入式系统设计提供了不同用途和不同级别集编辑、布局、布线、编译、综合、模拟、测试、验证和器件编程等一体化的易于学习和方便使用的开发集成环境。

4.硬件描述语言HDL(Hardware Description Language)的发展为复杂电子系统设计提供了建立各种硬件模型的工作媒介。它的描述能力和抽象能力强,给硬件电路,特别是半定制大规模集成电路设计带来了重大的变革。

5.软件技术的进步,特别是嵌入式实时操作系统EOS(Embedded Operation System)的推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台。EOS是一种功能强大、应用广泛的实时多任务系统软件。它一般都具有操作系统所具有的各种系统资源管理功能,用户可以通过应用程序接口API调用函数形式来实现各种资源管理。用户程序可以在EOS的基础上开发并运行。

单片机的发展历史:20世纪70年代,微电子技术正处于发展阶段,集成电路属于中规模发展时期,各种新材料新工艺尚未成熟,单片机仍处在初级的发展阶段,元件集成规模还比较小,功能比较简单,一般均把CPU、RAM有的还包括了一些简单的I/O口集成到芯片上,它还需配上外围的其他处理电路方才构成完整的计算系统。类似的单片机还有Z80微处理器。

1976年INTEL公司推出了MCS-48单片机,这个时期的单片机才是真正的8位单片微型计算机,并推向市场。它以体积小,功能全,价格低赢得了广泛的应用,为单片机的发展奠定了基础,成为单片机发展史上重要的里程碑。

在MCS-48的带领下,其后,各大半导体公司相继研制和发展了自己的单片机。到了80年代初,单片机已发展到了高性能阶段,象INTEL公司的MCS-51系列,Motorola公司的6801和6802系列等等,此外,日本的著名电气公司NEC和HITACHI都相继开发了具有自己特色的专用单片机。

80年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个系列,300多个品种,此时的单片机均属于真正的单片化,大多集成了CPU、RAM、ROM、数目繁多的I/O接口、多种中断系统,甚至还有一些带A/D转换器的单片机,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间甚至可达64kB,可以说,单片机发展到了一个全新阶段,应用领域更广泛,许多家用电器均走向利用单片机控制的智能化发展道路。

1982年以后,16位单片机问世,代表产品是INTEL公司的MCS-96系列,16位单片机比起8位机,数据宽度增加了一倍,实时处理能力更强,主频更高,集成度达到了12万只晶体管,RAM增加到了232字节,ROM则达到了8kB,并且有8个中断源,同时配置了多路的A/D转换通道,高速的I/O处理单元,适用于更复杂的控制系统。

九十年代以后,单片机获得了飞速的发展,世界各大半导体公司相继开发了功能更为强大的单片机。美国Microchip公司发布了一种完全不兼容MCS-51的新一代PIC系列单片机,引起了业界的广泛关注,特别它的产品只有33条精简指令集吸引了不少用户,使人们从INTEL的111条复杂指令集中走出来。PIC单片机获得了快速的发展,在业界中占有一席之地。

随后的事情,熟悉单片机的人士都比较清楚了,更多的单片机种蜂拥而至,MOTOROLA公司相继发布了MC68HC系列单片机,日本的几个著名公司都研制出了性能更强的产品,但日本的单片机一般均用于专用系统控制,而不象INTEL等公司投放到市场形成通用单片机。例如NEC公司生产的uCOM87系列单片机,其代表作uPC7811是一种性能相当优异的单片机。MOTOROLA公司的MC68HC05系列其高速低价等特点赢得了不少用户。

1990年美国INTEL公司推出了80960超级32位单片机引起了计算机界的轰动,产品相继投放市场,成为单片机发展史上又一个重要的里程碑。

我国开始使用单片机是在1982年,短短五年时间里发展极为迅速。1986年在上海召开了全国首届单片机开发与应用交流会,有的地区还成立了单片微型计算机应用协会,那是全国形成的第一次高潮。截止今日,单片机应用技术飞速发展,我们上因特网输入一个“单片机”的搜 索,将会看到上万个介绍单片机的网站,这还不包括国外的。随着微电子技术的高速发展,单片机在国民经济的各个领域得到了广泛的应用。首先,单片机技术不断进步,出现了许多新的技术和新的产品。本文以Intel MCS-51系列单片机为模型,阐述单片机的一般原理、应用以及单片机的影响,较为详细地介绍当前主要单片机厂家的产品系列及发展动向。主要内容包括:单片机的基本原理、硬件结构、发展趋势以及具体的应用介绍。本文主要目的是想让大家对单片机有一个更为深入的了解。

科技的进步需要技术不断的提升。试想,曾经一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,一定会带来意想不到的惊喜。

数字钟的发展:1350年6月6日,意大利人乔万尼·德·党笛制造了世界上第一台结构简单的机械打点多功能数字钟,由于数字钟报价便宜,功能齐全,因此很快受到众多用户的喜爱。1657年,荷兰人惠更斯率先把重力摆引入机械钟,进而才创立了摆钟。

到了20世纪以后,随着电子工业的快速发展,电池驱动钟、交流电钟、电机械表、指针式石英电子钟表以及数字显示式石英钟表相继问世,数字钟报价非常合理,再加上产品的不断改良,多功能数字钟的日差已经小于0.5秒,因此受到广大用户的青睐。尤其是原子钟的出现,它是使用原子的振动来控制计时的,是目前世界上最精准的时钟,即使经过将近100万年,其偏差也不可能超过1秒钟。

多功能数字钟最早是在欧洲中世纪的教堂,属于完全机械式结构,动力使用重锤,打点钟声完全使用人工进行撞击铸钟,所以当时一个多功能数字钟工程在建筑与机械结构方面是非常复杂的,进而影响了数字钟报价。进入电子时代以后,电子多功能数字钟也相继问世。我国电子多功能数字钟行业从80年代开始渐渐成长壮大,目前不仅数字钟报价合理,在技术和应用水平上也已经达到世界同类水平。

4. 国内外现状和发展趋势:

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

1.低功耗CMOS化

MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。

2.微型单片化

现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

3.主流与多品种共存

现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。

用单片机进行温度的控制及LCD显示系统的设计论文编号:JD909 包括开题报告,任务书。 论文字数:14253,页数:45摘 要 温度测量与控制是工程实践中常见的问题,在工业生产中有着广泛的应用。针对此领域的发展方向,本论文设计了一个基于单片机的智能温度测量系统。本系统以AT89C51单片机为微控制器,采用数字温度传感器DS18B20作为测温元件, 温度传感器DS18B20采集温度信号送给单片机处理,单片机再把处理后的温度数据送到LCD上显示出来。 能够实现快速、准确的测温功能和越限声光报警功能。本论文完成了系统硬件电路的设计,给出了软件流程框图,并编写了相关的软件程序。 关键词:温度测量;传感器 ;单片机;LCD显示 Abstract Temperature measuring and the controlling are very common in the project practice and are widely adopted in the industry production . In view of development direction of this domain, this paper introduces a temperature measuring system which take the AT89C51 single chip microcontroller as an controlling unit and the digital temperature sensor --DS18B20, as temperauture measuring transducer. The collected temperature signals of the digital temperature transducer--DS18B20 are processed by the single chip microcontroller. The processed temperature signals are displayed on the LCD.This system has achieved prompt and precise temperature measuring and the super warnning function by sound and light .This paper has finished the design of hardware curcuit and compiled related software program.. Key word: Temperature measuring;Sensor;Single Chip Microcontroller ;LCD Display 目 录摘 要 IAbstract II绪 论 11系统的设计方案 32硬件设计2.1 单片机的选用 42.2 温度检测电路的设计 62.3 键盘模块的设计 102.4 液晶显示模块的设计 122.5 声光报警电路的设计 163软件设计3.1 程序设计语言和软件开发环境 173.2 软件程序设计 184抗干扰设计4.1. 硬件方面的措施 264.2 软件抗干扰技术 26结 论 28致 谢 29参考文献 30附录: 源程序 31以上回答来自:

51单片机优秀毕业论文

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

新款的单片机都可以设置密码

用汇编还是用C语言.

一、毕业设计题目及要求 (2个) 1、基于单片机控制的电动机Y-△启动的设计 要求:1)控制器为单片机,电动机为三相异步电动机;2)启动时间为3秒;3)由按键设置电动机Y-△运行、停止。 2、基于单片机控制的可调直流稳压电源的设计 要求:1)控制器为单片机,电压输出范围为0-10V,电压精度为0.1V;2)通过数码管显示电压值;3)由按键设置电压值。 二、毕业设计用到的主要软件(及功能) 毕业设计用到的主要软件(及功能):Keil 51(源程序编译),Proteus(电路仿真),AutoCAD(绘图), Visio(绘流程图), Protel 99SE(原理图电路设计,PCB板制作) 三、单片机方面毕业设计要求 1、学会编写程序(用C语言或汇编语言),用Keil 51软件对源程序进行编译。 2、学会用Proteus电路仿真软件对所设计的硬件电路进行仿真。 3、在写毕业论文时,学会用Word、AutoCAD, Visio,Protel 99SE等软件对程序流程图、电路原理图等进行绘制。 相关答案 ↓位朋友,以51单片机为例。51现在很多都是用仿真器来进行在线调试的,而每个公司的仿真器都会有自带的编程软件,当然,跟keil是差不了多少的。 步骤大体如下: 1.新建,进行程序的编写 2.连上仿真器或烧写器,这一步有可能要对仿真器或烧写器进行设置,具体可看它们的使用说明 3.对程序进行编译,这一步会自动检测你的程序有没错,如果有错,是不能进入下一步的.如果你用的是仿真器,这一步编译成功后就可以直接运行进行在线调试了。 4.如果用的是烧写器,那就进行烧写 各个软件和调试方法会有些不同,但大体就是这样,一些调试工具的说明书也有很详细的说明。 学参数测量技术涉及范围广,特别是微电压、微电流、高电压以及待测信号强弱相差极大的情况下,既要保证弱信号的测量精度又要兼顾强信号的测量范围,在技术上有一定的难度。传统的低成本仪表在测量电压、电阻时都采用手动选择档位的方法来转换量程。在使用中,当忘记转换档位时,会造成仪表测量精度下降或损坏。 现代电子测量对系统的精度要求越来越高且智能化程度也越来越高。全量程无档自动量程转换电压表和电阻表是在保证测量精度不下降的前提条件下省去手动转换量程的工作,得到了广泛应用。 本文介绍了一种基于AT89S52 单片机 的智能多用表。该表能在单片机的控制下完成直流电压、电阻和直流电流的测量。测量电流部分采用了简单的I/V转换电路完成测试;测量电压部分结合模拟开关CD4051和运算放大器OP07构成程控放大器,实现了自动量程转换;测量电阻部分也由模拟开关CD4051和运算放大器OP07相结合,在单片机控制下完成了自动量程转换。电流、电压和电阻的最终测量信号都在单片机的控制下由12位A/D转换器TLC2543进行采集,采集的信号经单片机数据处理后通过LCD(12864)显示出来,测量结果还可以由带有串行EEPROM的CPU存储器和监控器的X25045进行多个数据保存。 关键词:TLC2543 自动量程转换 程控增益放大器 电压 电阻 电流 目录 摘要1 Abstract 2 第一章 绪论 5 1. 1 概述 5 1. 2 智能仪器/仪表国内外发展概况 5 1. 3 课题研究目的及意义 6 第二章 系统结构及功能介绍 8 2. 1 系统功能和性能指标 8 2. 1. 1 仪表功能 8 2. 1. 2 性能指标 8 2. 1. 3 本机特色 8 2. 1. 4 系统使用说明 9 2. 2 系统工作原理概述 9 第三章 方案设计与论证 11 3. 1 量程选择的设计与论证 11

51单片机论文答辩

单片机答辩不需要现场演示。单片机答辩先要介绍一下论文的概要,这就是所谓“自述报告”,须强调一点的是“自述”而不是“自读”。这里重要的技巧是必须注意不能照本宣读,这一部分的内容可包括写作动机、缘由、研究方向、选题比较、研究范围、围绕这一论题的最新研究成果、自己在论文中的新见解、新的理解或新的突破。做到概括简要,言简意赅。不能占用过多时间,一般以十分钟为限,尽量做到词约旨丰,一语中的。要突出重点,把自己的最大收获、最体会、最精华与最富特色的部分表述出来。忌主题不明、内容空泛、没有重点。

一般会问,为什么选这个题目,有什么有意义。。发展怎么样、 你自己的思路是什么 ,,,程序自己写的么? 分析一下。。电路自己知道吗? 分析一下原理,差不多了。

36个单片机新手入门问题: 1.C语言和汇编语言在各有哪些优缺点? 2.初学者到底是应该先学C还是汇编? 3.400减50,程序语句上如何SUBB实现呢? 4.C或汇编语言可以用于单片机,C++能吗? 5.学了电子线路、C语言,感觉很迷茫怎么办? 6.8位机还能延续多久? 7.搞单片机开发,一定要会C吗? 8.请问作为学生,如何学好单片机? 9.单片机的生命期还有多长? 10.当开发项目时,用C还是用汇编开发好? 11.如何才能才为单片机的高手啊? 12.符合44PIN的80系列8位单片机的MCU有哪些? 13.请问那里可以找到关于这方面的书或资料? 14.女性是否适合单片机软件编程这个行业? 15.从51转到ARM会有困难吗? 16.利用单片机来检测手机电池的充放电时间? 17.商业级芯片和工业及芯片区别? 18.低辐射MCU方法可以减少,有什么别的方法? 19.96单片机开发系统时,有那些注意事项? 20.在demo板上采样电压,不稳定,如何消除? 21.在车载DVD系统中,如何设计电子防震系统? 22.电子防震技术中,那些IC或器件可供选择? 23.如何进行编程可以减少程序的bug? 24.有没有解决加密问题又不破坏MCU的方法? 25.如何使生成的代码具有和汇编一样的效率? 26.ARM单片机和哪种内核的单片机比较接近? 27.测试中如何用一些比较短的时间来工作? 28.怎样学51系列和cygnal系列单片机? 29.MCU的C汇编优化,有没有通用的原则? 30.估计一个算法的MIPS,有什么好的途径? 31.AT89S51,复位RAM中数据被修改怎么回事? 32.如何正确的使用IO功能? 33.频率100kHz,atiny15那样怎么办? 34.单片机应注重哪几个方面的学习? 35.汽车电子用的单片机是8位多,还是32位? 36.复用技术的使用在实际应用? 单片机开发与测试中的若干问题: 1.Delta-Sigma软件测量方式,是什么概念? 2.要同时用到3个counter,该怎么办? 3.有那些是衡量系统的稳定性的标准? 4.芯片封装及设计过程中需要注意哪些问题? 5.抗干扰技术对软件的可靠性怀疑。怎么办? 6.12M的晶振,如何实现480MB/S数据传输率呢? 7.当今世界单片机的应用与发展有什么不同? 8.在中国,单片机在哪方面有较好的前景? 9.高性能要求选用32位单片机这样认为对吗? 10.51系统过渡到ARM系统,要注意哪些事情? 11.能否用PSoC嵌入式代替部分单片机系统呢? 12.如何理解如下概念? 13.选用什么型号的仿真器和编程器比较好? 14.C语言是否有关于位操作地址的指令 15.运行以后看到从R0到R7都被占用,为什么? 16.发电机系统,如何设计复位电路? 17.PWM做到100kHz(8bit上)的方法有哪些? 18.医疗电子应用的最多是几位单片机? 19.单片机对modem要进行哪些初始化操作? 20.各种各样的输入怎么样与MCU进行通讯? 21.两个串口、16KEPROM、512个字节的RAM? 22.在嵌入式开发中软件抗干扰有哪些问题? 23.语音识别会不会是单片机下个消费热点? 24.如何设计实现低成本测量电池组电压的装置? 25.调用函数会不会影响定时/计数器的中断? 26.LM4915是什么IC? 27.被嵌套高优先级中断程序怎样返回主程序? 28.介绍单片机系统的故障自诊断的知识? 29.如何使照的相片可存储,看的时候可调用? 30.将Wafer切割成Die后对单个Die进行? 31.测试整个MCU的功能是否正确? 32.如何测试程序达到较高的测试覆盖度? 33.MCU逻辑电路是测试合格的,如何解决呢? 34.cpu一直工作在复位状态,会不会有问题? 35.单片机系统的故障相关问题如何解决? holtek单片机常见问题汇总: 1.Holtek的数据手册在哪里下载? 2.学单片机缺乏实践经验请问该怎么办? 3.A/D,D/A的采样速率有什么优势? 4.学习ARM是否比学习单片机更有使用前景? 5.遥控的编解码思路和设计流程是怎样的? 6.Holtek的编程语句是否就是C51或是相关? 7.介绍一下MCU的测试方法。 8.如何理解预分频,12时钟模式等概念? 9.请推荐配套的编译仿真烧录的硬软件? 10.在ARM编程中又应当如何? 11.采用什么方法来测试单片机系统的可靠性? 12.Holtek如何解决测试问题? 13.如何使PIC16F87X宽温度内误差尽量小呢? 14.如何适当的喂狗,判定软体的运行时间? 15.RISC架构的单片机它的主要特点是什么? 16.RISC和CISC内核的MCU,代码量哪个更大? 17.单片机的I/O口何种状态能获得最低功耗? 18.Holtek和AT系列编程有何不同? 19.Holtek和AT系列有FLASH可电擦写的型号? 20.Holtek的单片机能符合该项应用要求吗? 21.WATCHDOG功能的单片机,如何确认其起作用? 22.能否推荐一个DSP或现在的高速单片机? 24.HT48系列单片机支持串行通信吗? 24.返回指令能用跳转指令替代到主程序中? 8051单片机设计教程与实例---指令基础教程 1.什么是嵌入式系统? 2.单片机的技术发展历史 3.单片机应用模式 4.单片机的开发过程 5.单片机基本结构与工作原理 6.单片机内部资源的配置 7.单片机的外部特性 8.80C51的SFR运行管理模式 9.单片机I/O端口及应用特性 10.80C51单片机存储器系统及操作方式 11.单片机的指令系统 12.指令系统的分类与速解 13.指令的应用例子 14.定时器/计数器的基本结构与操作方式 15.定时器/计数器的SFR 16.定时器/计数器的工作方式 17.定时器/计数器的编程和使用 18.定时器应用举例 19.中断系统的基本组成 20.中断系统中的SFR 21.中断响应的自主操作过程 22.串行口的基本结构与操作方式 23.串行口的特殊功能寄存器 24.串口的工作方式 25.汇编语言应用程序设计的一般格式 26.汇编语言程序的设计方法 27.常用的伪指令 28.简单结构程序 29.分支结构程序 30.循环结构程序 31.子程序结构程序 32.查表程序 33.查键程序 8051单片机设计教程与实例---实战程序设计 1.显示程序 2. 闪烁LED小灯的设计 3.闪烁LED控制程序 4.闪烁LED小灯主程序图 5.数码管时钟电路的设计 6.8*8点阵LED字符显示器的设计 7.数码管时钟电路的主程序 8.8路输入模拟信号数值显示电路的设计 9.8路输入模拟信号数值显示电路程序 10.单键学习型遥控器的设计 11.单键学习型遥控器的程序 12.电路主要性能指标 13.15路电器遥控器的设计 14.系统的功能实现方法 15.遥控发射及接收控制程序流程图 16.自行车里程/速度计的设计 17.系统内存的规划 18.系统内存设计的程序 19.自动往返行驶小汽车的设计 20.系统内存资源的分配 21.系统内存资源的程序 22.遥控小汽车的设计 23.发射板控制程序的设计 24.汽车行驶信息发送与接收器的设计 25.数据帧的编码格式及发送/接收过程 26.汽车行驶信息发送与接收器的程序 27.系统调试中的问题及解决方法 28.数控调频发射台的设计 29.内存单元的使用要求 30.W78E516B的功能特点 31.W78E516B中的几个特殊寄存器 32.W78E516B在线编程的规则 33.W78E516B在线编程的硬件电路 34.W78E516B应用系统的程序设计 35.电子定时器的设计 36.电子定时器的程序 37.电子定时器的程序流程图 单片机相关资料 (1)单片机的图形化编程方法探讨 (2)单片机应用编程技巧 (3)单片机自身的抗干扰若干措施 (4)单片机编音乐程序 (5)用89C51做直流稳压电源 (6)王款主流CMMB调谐器的特性比较 (7)红外遥控器控制的风扇温控器 (8)用单片机89S52制作计算器 (9)用单片机89C51制作程控交换机 (10)数据采集和记录系统单片机AT89C51 (11)简单的制作AT89SXX的单片机教程板 (12)热敏电阻温度计:液晶版 (14)热敏电阻温度计 (15)使用DS1307的数字闹钟 (16)SPI闪存编程器的制作 (17)8051SBC单片机微处理器学习板 (18)Atmel 89系列编程器的制作 (19)ISP微控制器编程 (20)制作简单的S51学习板 (21)89S52单片机开发板 (22)keil 与protues安装的详细步骤和说明 详见:

51单片机计算器毕业论文

1、硬件仿真图

硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。

2、主程序流程图

程序的主要思想是:将按键抽象为字符,然后就是对字符的处理。将操作数分别转化为字符串存储,操作符存储为字符形式。然后调用compute()函数进行计算并返回结果。具体程序及看注释还有流程图。

3、Altium Designer画的PCB图

4、程序源代码

#include #include

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar operand1[9], operand2[9];

uchar operator;

void delay(uint);

uchar keyscan();

void disp(void);

void buf(uint value);

uint compute(uint va1,uint va2,uchar optor);

uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,0xff};

uchar dbuf[8] = {10,10,10,10,10,10,10,10};

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

uchar keyscan()

{

uchar skey;

P1 = 0xfe;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xee: skey = '7'; break;

case 0xde: skey = '8'; break;

case 0xbe: skey = '9'; break;

case 0x7e: skey = '/'; break;

default:   skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

P1 = 0xfd;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xed: skey = '4'; break;

case 0xdd: skey = '5'; break;

case 0xbd: skey = '6'; break;

case 0x7d: skey = '*'; break;

default:   skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

P1 = 0xfb;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xeb: skey = '1'; break;

case 0xdb: skey = '2'; break;

case 0xbb: skey = '3'; break;

case 0x7b: skey = '-'; break;

default: skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

P1 = 0xf7;

while((P1 & 0xf0) != 0xf0)

{

delay(3);

while((P1 & 0xf0) != 0xf0)

{

switch(P1)

{

case 0xe7: skey = '$'; break;

case 0xd7: skey = '0'; break;

case 0xb7: skey = '='; break;

case 0x77: skey = '+'; break;

default:   skey = '#';

}

while((P1 & 0xf0) != 0xf0)

;

}

}

return skey;

}

void main()

{

uint value1, value2, value;

uchar ckey, cut1 = 0, cut2 = 0;

uchar operator;

uchar i, bool = 0;

init:

buf(0);

disp();

value = 0;

cut1 = cut2 = 0;

bool = 0;

for(i = 0;i < 9;i++)

{

operand1[i] = '\0';

operand2[i] = '\0';

}

while(1)

{

ckey = keyscan();

if(ckey != '#')

{

if(isdigit(ckey))

{

switch(bool)

{

case 0:

operand1[cut1] = ckey;

operand1[cut1+1] = '\0';

value1 = atoi(operand1);

cut1++;

buf(value1);

disp();

break;

case 1:

operand2[cut2] = ckey;

operand2[cut2+1] = '\0';

value2 = atoi(operand2);

cut2++;

buf(value2);

disp();

break;

default: break;

}

}

else if(ckey=='+'||ckey=='-'||ckey=='*'||ckey=='/')

{

bool = 1;

operator = ckey;

buf(0);

dbuf[7] = 10;

disp();

}

else if(ckey == '=')

{

value = compute(value1,value2,operator);

buf(value);

disp();

while(1)

{

ckey = keyscan();

if(ckey == '$')

goto init;

else

{

buf(value);

disp();

}

}

}

else if(ckey == '$')

{    goto init;}

}

disp();

}

}

uint compute(uint va1,uint va2,uchar optor)

{

uint value;

switch(optor)

{

case '+' : value = va1+va2;    break;

case '-' : value = va1-va2;    break;

case '*' : value = va1*va2;    break;

case '/' : value = va1/va2;    break;

default :  break;

}

return value;

}

void buf(uint val)

{

uchar i;

if(val == 0)

{

dbuf[7] = 0;

i = 6;

}

else

for(i = 7; val > 0; i--)

{

dbuf[i] = val % 10;

val /= 10;

}

for( ; i > 0; i--)

dbuf[i] = 10;

}

void disp(void)

{

uchar bsel, n;

bsel=0x01;

for(n=0;n<8;n++)

{

P2=bsel;

P0=table[dbuf[n]];

bsel=_crol_(bsel,1);

delay(3);

P0=0xff;

}

}

扩展资料:

PROTEUS 是单片机课堂教学的先进助手

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台

随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。

使用Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;

在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。

实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。

参考资料来源:百度百科-protues

刚做过,发给你参考下

这是原理图

51单片机简易计算器程序:

#include 

#include 

#define uchar unsigned char

#define uint unsigned int

//---------定义引脚--------------------

bit clr=0;

bit ok=0;

bit xiaoshu=0;

bit jiego=0;

bit first_1=1;

bit first_2=1;

sbit dout = P3^2;

sbit load = P2^0;

sbit din  = P2^1;

sbit dclk = P2^2;

sbit beer=P0^1;

sbit LCD1602_RS=P2^3;

sbit LCD1602_RW=P2^4;

sbit LCD1602_E=P2^5;

//---------定义变量--------------------

uchar ch451_key=0xff;

uchar yun_sign;

uchar xiabiao=0;

uchar tab[32];

uchar tab1[]={"welcome to use!"};

uchar tab2[]={" make by JunRu!"};

uchar tab3[]={"ERR0R"};

float opr_1=0,opr_temp=0,end=0,a;

//---------声明函数--------------------

void ch451_init(void);     //CH451初始化

void ch451_write(uint  command);//写命令或数据到ch451

uchar ch451_read(void);        //读按键值

uchar get_char(void);

void LCD_init(void);//初始化;

void delay(unsigned int k);//延时程序

void LCD_inter_command(unsigned char command);//写入控制字

void LCD_inter_dat(unsigned char dat);//写入要显示的数据

void set_xy(unsigned char x,unsigned char y);//找地址

void write(unsigned char date);//写入字符

void lcdbusy();//查忙时

void display(void);

void spec(void);

void get_end(void);

void hun_he(uchar n);

//-------- 主函数----------------------

void main()

{

uchar i;

LCD_init();//LCD初始化;

ch451_init();//CH451初始化

EA = 1;//打开中断

LCD_inter_command(0x01);//清屏

for(i=0;i<=14;i++)

{

LCD_inter_dat(tab1[i]);

beer=0;

delay(4000);//延时

beer=1;

}

LCD_inter_command(0xc0);//从第二行开始显示

for(i=0;i<=14;i++)

{

LCD_inter_dat(tab2[i]);

beer=0;

delay(4000);//延时

beer=1;

}

delay(0xffff);

delay(0xffff);

LCD_inter_command(0x01);

while(1)

{

if(ok)

{

display();

ok=0;clr=1;

}

}

}

//----------子函数--------------------

void hun_he(uchar n)

{int j;

switch(n)

{

case '+':opr_temp=opr_temp+opr_1;break;

case '-':opr_temp=opr_temp-opr_1;break;

case '*':opr_temp=opr_temp*opr_1;break;

case '/':

{

if(a==0)//减数为零显错

{ LCD_inter_command(0xc0);

for(j=0;j<=4;j++)

{

LCD_inter_dat(tab3[j]);

beer=0;

delay(4000);//延时

beer=1;

}

}

else

{opr_temp=opr_temp/opr_1;}

break;

}

default:break;}

}

void ch451_init(void)//CH451初始化

{

EX0 = 1;

din = 0;

din = 1;

ch451_write(0x403);   //开显示

ch451_write(0x580);   //BCD译码方式

}

void ch451_write(uint  command)//写命令或数据到ch451

{  uchar i;

EX0 = 0;

load = 0;

for(i=0;i<12;i++)

{

din = command&1;

dclk = 0;

command>>=1;

dclk = 1;

}

load = 1;

EX0 = 1;

}

uchar ch451_read(void)//读按键值

{ uchar key=0x07;

uchar i;

EX0=0;

load = 0;

for(i=0;i<4;i++)        //将0111读入

{

din = key &1;

dclk = 0;

key>>=1;

dclk =1;

}

load = 1;

key = 0;

for(i=0;i<7;i++)         //从CH451读出按键值

{

key<<=1;

key|= dout;

dclk =0;

dclk =1;

}

EX0 =1;

return key;

}

void EX0_ISR(void)interrupt 0 //中断程序

{

uchar temp;

ch451_key=ch451_read(); //将读出的按键值赋给变量

spec();

if(clr) {LCD_inter_command(0x01);clr=0;}

temp=get_char();

if(temp){tab[xiabiao++]=temp; LCD_inter_dat(temp);}

if(xiabiao>=16)LCD_inter_command(0xc0);//若大于16,则从第2行开始显示

if(ok) get_end();

beer=0;

delay(3000);

beer=1;

}

uchar get_char(void)

{

uchar dis=0;

uint temp=0,temp1=0;

switch(ch451_key)

{

case 0x40:dis='1';break;

case 0x41:dis='2';break;

case 0x42:dis='3';break;

case 0x48:dis='4';break;

case 0x49:dis='5';break;

case 0x4A:dis='6';break;

case 0x50:dis='7';break;

case 0x51:dis='8';break;

case 0x52:dis='9';break;

case 0x58:dis='0';break;

case 0x43:dis='+';break;

case 0x4B:dis='-';break;

case 0x53:dis='x';break;

case 0x5B:dis='/';break;

case 0x44:dis='!';break;

case 0x5A:dis='=';

ok=1;                      //遇到“=”,开始运算

break;

case 0x59:dis='.';break;     //小数点

case 0x5C:                    //删除键

LCD_inter_command(0x01);

xiabiao=0;

break;

default: break;

}

return dis;

}

void spec(void)                   //特殊功能键

{

switch(ch451_key)

{

case 0x4C:LCD_inter_command(0x10);{if(xiabiao>0)xiabiao-=1;}break; //左移

case 0x54:LCD_inter_command(0x14);{xiabiao+=1;}break;  //右移

default:break;

}

}

void delay(unsigned int k)//延时程序

{

while (k--);

}

void LCD_inter_command(unsigned char command)//写入控制字

{

delay(5000);

LCD1602_RS=0;

LCD1602_RW=0;

LCD1602_E=1;

P1=command;

LCD1602_E=0;

lcdbusy();

}

void LCD_init(void)//初始化;

{delay(5000);

LCD_inter_command(0x01);//清屏

delay(5000);

LCD_inter_command(0x38);//设置为8位的数据接口,两行显示,5、7点字符

delay(5000);

LCD_inter_command(0x0E);//显示打开,光标开并闪烁

delay(5000);

}

void LCD_inter_dat(unsigned char dat)//写入要显示的数据

{

delay(5000);

LCD1602_RS=1;

LCD1602_RW=0;

LCD1602_E=1;

P1=dat;

LCD1602_E=0;

lcdbusy();

}

void lcdbusy()//查忙

{

P1=0xFF;

LCD1602_RS=0;

LCD1602_RW=1;

LCD1602_E=1;

while((P1&0x80)==1);

}

void display(void)            //转化在LCD上显示计算结果

{

int temp=end;  //浮点数

int i;

uint xiao_temp;

uint xx; //浮点数的整数部分

if (end>-32769&&end<32768)

{

xx=fabs(end);

xiao_temp=(fabs(end)-xx)*1000;//取出浮点数的小数部分

LCD_inter_command(0xc0);

if(end<0) LCD_inter_dat('-');beer=0;delay(4000); beer=1;//判断是否为负数,若是则显示负号

if(xx>9999) LCD_inter_dat((xx/10000)%10+'0'); beer=0;delay(4000);beer=1;

if(xx>999) LCD_inter_dat((xx/1000)%10+'0');beer=0;delay(4000);beer=1; //在LCD上显示千位的数

if(xx>99)LCD_inter_dat((xx/100)%10+'0');  beer=0;delay(4000);beer=1;//百位

if(xx>9)LCD_inter_dat((xx/10)%10+'0');beer=0;delay(4000); beer=1;//十位

LCD_inter_dat(xx%10+'0');beer=0;delay(4000); beer=1;//个位

if(xiao_temp!=0)  //显示小数部分

{

LCD_inter_dat('.');beer=0;delay(4000);beer=1;

LCD_inter_dat((xiao_temp/100)%10+'0');beer=0;delay(4000);beer=1;

LCD_inter_dat((xiao_temp/10)%10+'0');beer=0;delay(4000);beer=1;

LCD_inter_dat(xiao_temp%10+'0');beer=0;delay(4000);beer=1;

}

}

else {LCD_inter_command(0xc0);//从第二行开始显示

for(i=0;i<=4;i++)

{   LCD_inter_dat(tab3[i]);

beer=0;

delay(4000);//延时

beer=1;

}

}

}

void get_end(void)//计算子程序

{ float xiaoshu=1;

uchar fu_flag=0;

uchar xiao_flag=0;

uchar lianji_sign;

uchar i=0;

uchar j;

uchar n;//正负标记符

while(i<=xiabiao)

{

while(tab[i]<=0x39&&tab[i]>=0x30)

{

n=0;

opr_1*=10;

opr_1+=tab[i++]-0x30;

n='+';

}

switch(tab[i])

{

case '.':  xiao_flag=1;break;//遇到小数点跳到“if(xiao_flag)”里

case '!':  fu_flag=1;break;

case '+':  xiaoshu=1;yun_sign='+';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);opr_1=0;lianji_sign='+'; break;

case '-':  xiaoshu=1;yun_sign='-';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);opr_1=0;lianji_sign='-'; break;

case 'x':  xiaoshu=1;yun_sign='x';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);opr_1=0;lianji_sign='*';break;

case '/':  xiaoshu=1;yun_sign='/';if(opr_temp==0){end=opr_temp=opr_1;}else hun_he(lianji_sign);a=opr_1;opr_1=0;lianji_sign='/';break;

case '=':

switch(yun_sign)//进行运算

{

case '+':end=opr_temp+opr_1;break;

case '-':end=opr_temp-opr_1;break;

case 'x':end=opr_temp*opr_1;break;

case '/':{

if(a==0)//减数为零显错

{ LCD_inter_command(0xc0);

for(j=0;j<=4;j++)

{

LCD_inter_dat(tab3[j]);

beer=0;

delay(4000);//延时

beer=1;

}

}

else

{end=opr_temp/opr_1;}

break;

}

default:break;

}

ok=1;//开始进行显示,标志位置1

xiabiao=0;//小数的标志位清零

break;

default:break;

}

i++;

if(xiao_flag)//表示小数

{

while(tab[i]<=0x39&&tab[i]>=0x30)

{

xiaoshu*=0.1;

switch(n)

{

case '+': opr_1=opr_1+(tab[i++]-0x30)*xiaoshu;break;

case '-':  opr_1=opr_1-(tab[i++]-0x30)*xiaoshu; break ;

default:break; }

xiao_flag=0;

}

}

if(fu_flag)

{

while(tab[i]<=0x39&&tab[i]>=0x30)

{

n=0;

opr_1=-opr_1*10;

opr_1=-(opr_1+(tab[i++]-0x30));

n='-';

fu_flag=0;

}

}

}

opr_1=0;

opr_temp=0;

xiabiao=0;

xiaoshu=1;

}

1、首先第一步就是要进行查找元器件并放入到原理图中,如下图所示。

2、接着就是要进行原理图连接根据网络标签的方式即可。

3、然后就是要进行编写程序,

程序源代码

#include #include

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar operand1[9], operand2[9];

uchar operator;

void delay(uint);

uchar keyscan();

void disp(void);

void buf(uint value);

4、最后一步就是进行验证正确后编译程序在protues中加载HEX观察仿真结果是否正确,如下图所示。

一、毕业设计题目及要求 (2个) 1、基于单片机控制的电动机Y-△启动的设计 要求:1)控制器为单片机,电动机为三相异步电动机;2)启动时间为3秒;3)由按键设置电动机Y-△运行、停止。 2、基于单片机控制的可调直流稳压电源的设计 要求:1)控制器为单片机,电压输出范围为0-10V,电压精度为0.1V;2)通过数码管显示电压值;3)由按键设置电压值。 二、毕业设计用到的主要软件(及功能) 毕业设计用到的主要软件(及功能):Keil 51(源程序编译),Proteus(电路仿真),AutoCAD(绘图), Visio(绘流程图), Protel 99SE(原理图电路设计,PCB板制作) 三、单片机方面毕业设计要求 1、学会编写程序(用C语言或汇编语言),用Keil 51软件对源程序进行编译。 2、学会用Proteus电路仿真软件对所设计的硬件电路进行仿真。 3、在写毕业论文时,学会用Word、AutoCAD, Visio,Protel 99SE等软件对程序流程图、电路原理图等进行绘制。 相关答案 ↓位朋友,以51单片机为例。51现在很多都是用仿真器来进行在线调试的,而每个公司的仿真器都会有自带的编程软件,当然,跟keil是差不了多少的。 步骤大体如下: 1.新建,进行程序的编写 2.连上仿真器或烧写器,这一步有可能要对仿真器或烧写器进行设置,具体可看它们的使用说明 3.对程序进行编译,这一步会自动检测你的程序有没错,如果有错,是不能进入下一步的.如果你用的是仿真器,这一步编译成功后就可以直接运行进行在线调试了。 4.如果用的是烧写器,那就进行烧写 各个软件和调试方法会有些不同,但大体就是这样,一些调试工具的说明书也有很详细的说明。 学参数测量技术涉及范围广,特别是微电压、微电流、高电压以及待测信号强弱相差极大的情况下,既要保证弱信号的测量精度又要兼顾强信号的测量范围,在技术上有一定的难度。传统的低成本仪表在测量电压、电阻时都采用手动选择档位的方法来转换量程。在使用中,当忘记转换档位时,会造成仪表测量精度下降或损坏。 现代电子测量对系统的精度要求越来越高且智能化程度也越来越高。全量程无档自动量程转换电压表和电阻表是在保证测量精度不下降的前提条件下省去手动转换量程的工作,得到了广泛应用。 本文介绍了一种基于AT89S52 单片机 的智能多用表。该表能在单片机的控制下完成直流电压、电阻和直流电流的测量。测量电流部分采用了简单的I/V转换电路完成测试;测量电压部分结合模拟开关CD4051和运算放大器OP07构成程控放大器,实现了自动量程转换;测量电阻部分也由模拟开关CD4051和运算放大器OP07相结合,在单片机控制下完成了自动量程转换。电流、电压和电阻的最终测量信号都在单片机的控制下由12位A/D转换器TLC2543进行采集,采集的信号经单片机数据处理后通过LCD(12864)显示出来,测量结果还可以由带有串行EEPROM的CPU存储器和监控器的X25045进行多个数据保存。 关键词:TLC2543 自动量程转换 程控增益放大器 电压 电阻 电流 目录 摘要1 Abstract 2 第一章 绪论 5 1. 1 概述 5 1. 2 智能仪器/仪表国内外发展概况 5 1. 3 课题研究目的及意义 6 第二章 系统结构及功能介绍 8 2. 1 系统功能和性能指标 8 2. 1. 1 仪表功能 8 2. 1. 2 性能指标 8 2. 1. 3 本机特色 8 2. 1. 4 系统使用说明 9 2. 2 系统工作原理概述 9 第三章 方案设计与论证 11 3. 1 量程选择的设计与论证 11

相关百科

热门百科

首页
发表服务