基于单片机毕业答辩的多功能窗毕业设计 急急急!!!!!!

基于51单片机多功能实验板设计(可编辑),单片机实验板,单片机实验报告,单片机实验..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于51单片机多功能实验板设计(可编辑)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口求大神们景观毕业设计一份,CAD和效果图!!!急急急!!!_百度知道
求大神们景观毕业设计一份,CAD和效果图!!!急急急!!!
我有更好的答案
这个估计难找
所以说还是自己做吧,我有视频教程你要吗?
现在做来不及了
其他类似问题
为您推荐:
效果图的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁毕业设计(论文)毕业设计(论文)课 题 名 称 学 生 姓 名 学 号 信息工程系p07 级电子科学与技术专业 基于单片机的智能多功能窗户的设计系、年级专业 指 导 教 师 职 称2011 年 5 月 28 日PAGE1 毕业设计(论文)
摘要随着高新技术及电子器件的发展,光控窗帘应运而生,给人们的生活带来了很 多方便。同时,也为人们的生活环境以及智能家居的实现提供了依据,为此,研究 与设计光控智能窗帘控制系统具有深远的现实意义。 本电路根据生活环境需要,采用 AT89C51 单片机控制系统,利用 P3 口的特 殊功能与 P1 口的空闲模式和掉电模式,根据其不同控制模式,实现半自动控制、 自动控制、定时控制的相互转换控制窗帘机。该设计包括光电开关电路、系统主控 模块、电源转换电路、保护电路等组成,可实现窗帘自动升降。关键词:AT89C51;单片机;定时控制;光电开关;步进电机PAGE2 毕业设计(论文)AbstractWith the development of high-tech and electronic devices, light control, temperature control and remote control curtains came into being, to bring a lot of people's lives easy. At the same time, but also for people's living environment and the realization of smart home provides the basis for this, research and design intelligent control system curtain profound practical significance According to the requirements of office and living environment, this design made use of the SCM (Single Chip Micyoco ) controlling system of AT89C51, the special function at P3, the idleness mode and lose-electric mode at P1. Based on the different controlling mode, we realize to control the curtain machine by mutual transformation of semiautomatic and automatic controlling and infrared remoter. This design is made up of infrared remote circuit, systematic controlling mode, electrical source transformation, protective circuit, etc. It can reach the achievement of automatically rising and falling of the curtain.Key words: AT89C51;SCM;timing control;photoelectric switch;steppingmotorPAGE3 毕业设计(论文)目录TOC \o &1-2& \h \z \u HYPERLINK \L &_TOC& 摘 要 PAGEREF _TOC \H 1 ............................ HYPERLINK \L &_TOC&ABSTRACT PAGEREF _TOC \H 2HYPERLINK \L &_TOC& 1.1 课题背景 PAGEREF _TOC \H 1 HYPERLINK \L &_TOC& 1.3 课题的研究工作 PAGEREF _TOC HYPERLINK \L &_TOC& 第 2 章 方案设计与论证 HYPERLINK \L &_TOC& 2.1 设计思路 PAGEREF _TOC \H 4HYPERLINK \L &_TOC& 1.2 国内外概况 PAGEREF _TOC \H 1PAGEREF _TOC294124HYPERLINK \L &_TOC& 2.2 系统方案一 PAGEREF _TOC \H 4 HYPERLINK \L &_TOC& 2.4 方案论证 PAGEREF _TOC \H 5 HYPERLINK \L &_TOC& 第 3 章 硬件电路设计HYPERLINK \L &_TOC& 2.3 系统方案二 PAGEREF _TOC \H 4PAGEREF _TOCHYPERLINK \L &_TOC& 3.1 AT89C51 单片机硬件结构 PAGEREF _TOC294 HYPERLINK \L &_TOC& 3.2 晶振电路 PAGEREF _TOC \H 10 HYPERLINK \L &_TOC& 3.3 时钟电路 PAGEREF _TOC \H 11 HYPERLINK \L &_TOC& 3.4 步进电机电路 PAGEREF _TOC \H HYPERLINK \L &_TOC& 3.6 A/D 转换电路 PAGEREF _TOC \H HYPERLINK \L &_TOC& 第 4 章 软件设计 HYPERLINK \L &_TOC& 4.1 程序设计 PAGEREF _TOC \H 17HYPERLINK \L &_TOC& 3.5 传感器电路 PAGEREF _TOC \H 1PAGEREF _TOC \HHYPERLINK \L &_TOC& 4.2 主程序设计 PAGEREF _TOC \H 1 HYPERLINK \L &_TOC& 4.4 显示程序 PAGEREF _TOC \H 20 HYPERLINK \L &_TOC& 4.5 数据存储程序 HYPERLINK \L &_TOC& 第 5 章 系统仿真与调试HYPERLINK \L &_TOC& 4.3 DS1302 的控制程序 PAGEREF _TOC2941245PAGEREF _TOCPAGEREF _TOC294124HYPERLINK \L &_TOC& 5.1 PROTUES 仿真平台 HYPERLINK \L &_TOC& 5.2 部分模块电路仿真PAGEREF _TOC294124PAGEREF _TOC29412HYPERLINK \L &_TOC& 5.3 仿真结果分析及问题解决方PAGE4 毕业设计(论文)案 ......................... HYPERLINK \L &_TOC& HYPERLINK \L &_TOC& HYPERLINK \L &_TOC&PAGEREF _TOC \H 结束语 致谢 附录25 26 28 30PAGEREF _TOC \H PAGEREF _TOC \H PAGEREF _TOC \H第 1 章 绪论1.1 课题背景生活在提高,时代在进步,人类在向文明迈进,不同的时代对居住空间、 环境有不 同的要求,这是社会的必然潮流。单片机控制的自动窗帘遥控系统 [1],既能解决每天 手拉开和关上窗帘的不便,又显示出了生活的档次,同时还可以根据光线的明暗来自 动控制窗帘的开关,以调节室内的光线,更进一步地满足了人们的享受要求。所以该 产品能形成大规模生产,很快会普及全国市场,产生巨大的经济效益;另外,除了广 大市民住宅使用外,该遥控窗帘器还可以广泛应用于别墅、公寓、宾馆、饭店、写字 楼、歌舞厅、影剧院、会议厅、银行、学校、医院等各种公共场所,因此该产品具有 广阔的市场前景。 遥控自动窗帘系统在我国还刚刚兴起,但其发展前景广阔,推广和应用自动窗帘 系统具有重要的现实意义。 其一,改变人们的生活方式。 单片机控制的遥控自动窗帘 系统具有丰富的智能化功能,为家庭用户营造一个高效、舒适、便利、环保的居住环 境。单片机控制的遥控自动窗帘只用一个多功能遥控器就能控制和监测住房的窗帘 开关问题,给人们日上生活带来极大的方便。这些都将改变人们传统的生活方式, 并提高了人们的生活质量。 其二,牵动一大批产业。 单片机控制的遥控自动窗帘产品 面向家庭用户,其应用市场是庞大的,发展前景也是广阔的,必将吸引大批有远见的 各类企业介入,从而牵动一大批产业的发展。 这里最先受益的应该是房地产业, 单片 机控制的遥控自动窗帘不仅是一个很好的概念与 “卖点” 同时也是直接提升住宅档 , 次的一个条件,这将会给房地产商带来新的利润空间。 在家居集成化、 网络化的趋势 下,家居集成也成为一种潮流,许多更专业的、美观的、智能化的家居集成产品相继 出现。其三,开拓一个崭新的市场。遥控自动窗帘系统牵动了许多的行业,它将不仅 仅是目前的 IT 系统集成商或建筑弱电工程总包商的市场,而且是专业公司和智能化 装饰公司的市场。PAGE5 毕业设计(论文)1.2 国内外概况在欧美等发达国家,电动窗帘已广泛应用。在 10 年前,电动窗帘就已经进入我 国,可一直没有大的推广,这两年,随着电控技术的不断提高及价格的不断下降,电动 窗帘热才又卷土重来。 据了解,全国共有 170 多种电动窗帘器获得了国家专利,但就 其技术本身而言,还是大同小异,但售价却有很大差别,贵的要数千元,便宜的只要500 块。尽管遥控自动窗帘系统在国内是一个新兴的行业,但是,它也正以不可抵挡之势 迅速崛起。遥控自动窗帘系统走进中国以来,在短短四年的时间里,遥控自动窗帘系 统生产商由最初的几家公司增加到如今的百余家企业,其行业发展之迅速是目前国 内任何其它行业所无法比拟的。目前,我国遥控自动窗帘系统生产厂商、分销商、集 成商与装饰公司都形成了相当规模,不少国内知名企业纷纷涉足遥控自动窗帘系统 行业,如青岛海尔、 清华同方、 TCL 等,并涌现出一些较具影响力的智能家居专业厂 商,如上海索博智能电子有限公司、 北京九州易居科技有限公司、 天津瑞朗智能家居 电子科技有限公司、深圳市正星特科技有限公司等。自动窗帘产品已开始走进中国 的家庭。具报道,我国 2004 年售出商品房 1.9 亿,如果每 20 平方需要一套窗帘架 产品,仅此一项就可以年新增窗帘架产品近千万套加上。 年新增窗帘架产品市场需求 将不低于 2000 万套。如果单片机控制的遥控自动窗帘,销售占市场的 5%左右,就 可实现年产值上亿元。 随着自动窗帘热潮在世界范围内的日渐兴起,随着中国电子技术的飞速发展、 人们生活水平的不断提高以及智能电子技术在生活中的广泛应用,自动窗帘已经成 为未来家居装饰潮流发展的最新方向,在不久的将来,没有自动窗帘系统的住宅肯定 不合潮流。从目前的发展趋势来看,在未来的 20 年时间里,自动窗帘行业将成为中 国的主流行业之一,其市场的发展前景是非常广阔的。1.3 课题的研究工作智能家居系统是一个大的社会系统工程,我们应当加快我国智能家居标准化进 程。 自动窗帘系统作为智能家居中一个很重要的部分,需要在我国智能家居这一领域, 建立起一个具有中国特色的新兴、健康的产业链。让自动窗帘系统在我国并不是远 在天边,而是近在眼前。现有的电动窗帘机的控制方式有固定式开关控制、遥控、PAGE6 毕业设计(论文)光控、声控等,其中以前两种形式居多。就实用程度和经济角度来说,用固定式开关 控制方式较好, 这是因为窗帘的开闭不像电视机等家电产品开闭得那样频繁,每天开 闭的次数不多,因此安装在固定的地方使用也相当方便, 如把开关装在床头柜等电器 综合控制系统中,睡在床上就能控制窗帘的开闭。利用触摸开关,实现全自动断电, 既安全又节能,但最重要的一点就是没有实现完全的自动化,没的摆脱对人的依赖作 用。 而采用遥控控制时,需要候机电源,不可能完全断电而且增加遥控功能,也增加了 成本,售价也相应提高。 窗帘机的控制方式大体上有三种:声控、 光控、 时控,声控和遥控属于半自动类; 而光控虽属全自动式,但因光敏器件的灵敏度,冬夏等不同季节的光照度的不同,以 及人们对起闭窗帘在时间上的要求不同,而难以实施和普及。 因此, 时控式的全自动 窗帘机便成了专业以及业余电子设计人员的热门课题[2]。根据以上自动窗帘有些不 能实现完全的自动化;有些虽然实现了完全的自动化,但结构复杂,性能不够稳定; 有 些虽然实现了完全的自动化,且性能还可以,但价格昂贵不适合普通消费者使用。所 以我想利用价格相对便宜的红外线遥控发射芯片、 单片机作为主要控制器件,来完成 该系统的设计。该系统主要有如下几方面的特点:(1)通过光照的强度对窗帘的控制。 (2)时间控制开关窗帘。通过对 DS1302 芯片的设定,让用户可以随自己的生活习惯方便的自动开关窗帘,无需手动。(3)另一种控制方式为手动控制方式,防止停电后采用手动控制。 (4)美观,以往的遥控电动窗帘都是向一边拉或向上拉,而本设计为向两边打开,随个人的爱好可以控制其大小。(5)体积小、结构简单、灵敏度高、抗干扰性强、经济实用、工作可靠。第 2 章 方案设计与论证2.1 设计思路根据本设计的要求,构思如下:(1)按键选择工作状态,自动、手动、定时功能。 (2)LCD 液晶显示输状态,但是只是输出显示符号 012。PAGE 7 毕业设计(论文)(3)用光敏电阻模拟光的强度,窗帘关时光敏电阻阻值小,打开时光敏电阻阻值大。(4)窗帘上有真实时钟。软件的设计主要包括按键键盘的读取、单片机扫描分析程序、判断程序和处理 程序。2.2 系统方案一由光电传感器来探测外界的光强,从传感器出来的信号经过信号调理电路的放 大,滤波调理后输入到 A/D 转换器,A/D 转换器件完成一个转换过程需要一定时 间,如果在这段时间内信号的幅度发生变化,转换结果将会受到影响,所以期间要 用到采样保持电路。转换后的信号由单片机控制器,来实现电机的运行与停止。显 示部件用来显示电动窗帘控制器的各种状态信息。按键是主要的输入设备,控制单 片机的各种参量,如图 2.1 方案一原理框图所示。 SHAPE \* MERGEFORMAT图2.1 方案一的原理框图 光电传感器 信号调整电路 AMD 转换器2.3 系统方案二该窗帘控制器采用 STC89C52 单片机的最小系统设计,控制一个 220v 的可 单片机 逆、变速电动机控制窗帘的拉开和关闭。窗帘控制器可以使用红外遥控器进行远程 手动开、手动关和手动停控制;还可以根据室外环境亮度实现环境亮度光控。以及 光控状态下环境亮度的控制参数的调整等等都可以通过遥控器进行设置。该红外遥显示部分 按 键 步进电路控窗帘可谓是一款多功能的窗帘控制器窗帘控制器原理图。如图 2.2 方案二原理框 图所示。 SHAPE \* MERGEFORMAT 遥控器图2.2 方案二的原理框图红外接收模 块2.4 方案论证步进电机 考虑到红外线不易仿真,而光照强度可以用光敏电阻来代替,这样与单片机联 用有较大的活动空间,不但能实现所要求的功能,而且能在很大的程度上扩展功能 及方便地对系统进行升级,实现基本的按键控制功能,感光强度以及定时开关窗帘 的功能。所以我们采用方案一。 STC89C52 单片机PAGE8 毕业设计(论文)第3章 硬件电路设计单 片 微 型 计 算 机 简 称 单 片 机 [3] , 又 称 为 嵌 入 式 微 控 制 器 (Embeddedmicrocontroller)。常用英文字母的缩写 MCU 表示单片机,它最早是被用在工业控 制 领 域 。 单 片 机 由 芯 片 内 仅 有CPU 的 专 用HYPERLINK&/view/50152.htm& \t &_blank&处理器 发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更 小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的 Z80 是最 早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬 镳以大规模集成电路为主组成的微型计算机,它的诞生是计算机发展史上一个新的 里程碑。 单 片 机 比 专 用 处 理 器 更 适 合 应 用 于 HYPERLINK&/view/6115.htm& \t &_blank& 嵌入式系统 ,因此它得 到了最多的应用。事实上单片机是世界上数量最多的 HYPERLINK&/view/3314.htm& \t &_blank& 计算机 。现代人类生活 中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、 HYPERLINKPAGE9 毕业设计(论文)&/view/42510.htm& \t &_blank&计算器 、家用电器、电子玩具、 HYPERLINK &/view/30816.htm& \t &_blank& 掌上电脑 以及鼠标等电脑配件中都配有 1-2 部单片机。而个人电脑中也会有为数 不少的单片机在工作。汽车上一般配备 40 多部单片机,复杂的工业控制系统上甚 至可能有数百台单片机在同时工作!单片机的数量不仅远超过 PC 机和其他计算的 总和,甚至比人类的数量还要多。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算 机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺 少了 I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价 格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算 机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如 CPU,内存,并行总线,还有 和硬盘作用相同的 HYPERLINK &/view/87697.htm& \t&_blank& 存储器 件,不同的是它的这些部件性能都相对我们的家用电脑弱很多, 不过价钱也是低的,一般不超过 10 元即可用它来做一些控制电器一类不是很复杂 的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD 等等的家电里面 都可以看到它的身影,它主要是作为控制部分的核心部件。AT89C51 是一种带 4K字节闪烁可编程可擦除只读存储器的低电压,高性能 CM微处理器,俗称单片机。它是美国ATMEL公司的低电压,高性能CMOS8位单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。该器件采 用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输 出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的89C51是一种高效微控制器,89C2051是它的一种精简版本。3.1 AT89C51 单片机硬件结构 AT89C51 是一种低功耗/低电压、高性能的八位 CMOS 单片机,片内有一个 4KB 的 FLASH 可编程可擦除只读存储器(FPEROM―Flash Programma-ble and Erasable Read Only Memory),它采用了 CMOS 工艺和 ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与 MSC―51 兼PAGE10 毕业设计(论文)容。片内置通用 8 位中央处理器(CPU)和 FLASH 存储单元,片内的存储器允 许在系统内改编程序或用常规的非易失性存储器编程。因此,AT89C51 是一种功 能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。3.1.1 主要特性 (1)与 MCS-51 产品指令系统兼容; (2)4K 字节可编程闪烁存储器; (3)寿命:1000 写/擦循环; (4)数据保留时间:10 年; (5)全静态工作:0Hz-24Hz; (6)三级程序存储器锁定; (7)128*8 位内部 RAM; (8)32 可编程 I/O 线; (9)两个 16 位定时器/计数器; (10)6 个中断源; (11)可编程串行通道; (12)低功耗的闲置和掉电模式; (13)片内振荡器和时钟电路;另外,AT89C51 是用静态逻辑来设计的,其工作频率可下降到零并提供两种 软件的省电方式-空闲方式和掉电方式。在空闲方式中,CPU 停止工作。在掉电方 式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片 内 RAM 中的内容,直到下次硬件复位为止。3.1.2 管脚说明 AT89C2051 的接口线包括:P0、P1、P2、P3 共四个八位口。 (1)P0 口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。P0 口也用以输出外部存储器的低 8 位地图 1 址。由于是分时 输出,故应在外部加锁存器将此地址数据锁存,地址锁存,信号用 ALE。(2)P1 口是专门供用户使用的 I/O 口,是准双向口。 (3)P2 口是从系统扩展时作高 8 位地址线用。不扩展外部存储器时,P2 口PAGE11 毕业设计(论文)也可以作为用户 I/O 口线使用,P2 口也是准双向口。(4) 口是双功能口,该口的每一位均可独立地定义为第一 I/O 功能或第二 P3 I/O 功能。 VCC(40):供电电压,其工作电压为 5V。 GND(20):接地。 P0 端口(P0.0-P0.7) :P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉 高。P1 端口(P1.0-P1.7) :P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。 口管脚写入 1 后, P1 被内部上拉为高电平,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘 故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。P2 端口(P2.0-P2.7) :P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上 拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出 电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数 据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部 上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存 器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 端口(P3.0-P3.7):P3 口管脚是一个带有内部上拉电阻的 8 位 的双向 I/O 端口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后, 它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉 为低电平,P3 口将输出电流(ILL)。P3 口也可作为 AT89C51 的一些 特殊功能口,如表 3.1 所示。复位 RST(9):复位输入。在振荡器运行时,有两个机器周期(24 个振荡周期) 以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51 芯片 便循环复位。复位后 P3.0-P3.7 口均置 1,引脚表现为高电平,程序计数器和特殊PAGE12 毕业设计(论文)功能寄存器 SFR 全部清零。 当复位脚由高电平变为低电平时, 芯片为 ROM 的 00H 处开始运行程序。复位操作不会对内部 RAM 有所影响[4]。表 3.1 功能接口表 EMBED Visio.Drawing.11ALE/PROG (30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作 对外部输出的脉冲或用于定时目的。 然而要注意的是: 每当用作外部数据存储器时, 将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。PSEN (29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期两次 PSEN 有效。 但在访问外部数据存储器时, 这两次有效的 PSEN 信号将不出现。EA/VPP(31):当 EA 保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式 1 时,EA 将内部锁定为 RESET;当 EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出。 3.1.3 硬件电路总图硬件总电路如图 3.1 所示:PAGE13 毕业设计(论文)图 3.1 硬件电路总图3.2 晶振电路电路中的晶振即石英晶体震荡器。由于石英晶体震荡器具有非常好的频率稳定 性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。通过基准 频率来控制电路中的频率的准确性。同时,它还可以产生振荡电流,向单片机发出 时钟信号。 图 3.2 是单片机的晶振电路[5]。电路中的电容 C1 和 C2 的典型值通常选择为30PF 左右,该电容的大小会影响振荡电路频率的高低、振荡器的稳定性和起振的快速性。晶体振荡频率的范围通常在 1.2~12MHz。晶体的频率越高,系统的时钟 频率越快,单片机的运行速度越快。但反过来,运行速度对于存储器的速度要求就 越高,对印刷电路板的工艺要求也就越高,即要求线间的寄生电容要小。晶体和电 容应该尽可能安装得与单片机芯片靠近, 以减少寄生电容, 更好地保证振荡器稳定、 可靠地工作。89C51 常选择振荡频率 12MHz 的石英晶体。图 3.2 晶振电路PAGE14 毕业设计(论文)3.3 时钟电路本设计需要窗帘在给定的时间自动开和关,所以需要用到定时器,而为了保证 单片机与外界时钟一致,要用到一个实时时钟电路。这里使用 DS1302 实时时钟芯 片来完成这项功能。DS1302 是 DALLAS 公司生产的实时日历时钟芯片,其主要功能包括非易失性时日历时钟、报警器、百年历、可编程中断、方波发生器和 114 字节的非易失 静态 RAM。使用 DS1302 时应注意以下几点:Vcc 正常情况下为 5V,当 Vcc 降至 4.25V 时,所有的输入被忽略,输出为高阻状态,Vcc 降至 3V 时,外部电 源被关断,内部锂电池为实时时钟和 RAM 供电,在断电情况下,时钟继续运行, 其中的数据可保存十年以上不会丢失。 DS1302 有两种工作时序, MOTOROLA 即 和 INTEL 时序,由 MOT 引脚的电平指定,当 MOT 引脚为高电平时选择MOTOROLA 时序, MOT 引脚为低电平时选择 INTEL 时序, 当 图中选为 INTEL时序, 这时芯片的 DS 引脚接系统的读信号 R/D, R/W 引脚接系统的写信号 W/R。AS 引脚用于分离数据地址总线 AD7-AD0 上的地址和数据信息, 连接到 MCU 的 ALE 引脚。 RESET 引脚的信号对日历时钟和 RAM 没有影响, 但它影响 DS1302的命令和状态寄存器的内容,在图中直接将 RESET 连至 Vcc ,这样可以保证DS1302 在进入或退出电源失效状态时,其工作状态不受 RESET 引脚的影响。 DS1302 有一个可编程输出方波引脚 SQW, 从该引脚可以输出频率为 2Hz-256Hz的方波,在系统中正是利用此引脚输出周期为 125MS 的方波,作为 MCU 外部中 断 INT0 的中断源实现周期性中断,每当中断发生时,MCU 读一二次输入口,检 查电表是否转过一圈,在整点时还要采一次三相电流和电压。除此之外,DS12887 内部还有 128 字节的 RAM 的单元,如图 3.3 时钟电路所示。图 3.3 时钟电路3.4 步进电机电路步进电机为一种数字伺服执行元件,具有结构简单、运行可靠、控制方便、控 制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。为了实现步 进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专PAGE15 毕业设计(论文)用驱动芯片实现步进电机的速度和位置定位控制[6]。 单片机在本次试验中对步进电机的控制从而达到对转角和位移的控制的方法。 本次设计采用两个型号为 130HZ308-450 的三相反应式步进电机对旋转角度和位 移进行控制,该步进电机力矩大、耐负载冲击、精度高。 其步距角为 1.2°, 即EMBED Equation.KSEE3\* MERGEFORMAT=1.2°,即本次设计的测控系统对回转台转角的控制精度可以达到 1.2°。步进电机的驱动电路是根据控制信号工作的。而本次测控系统是以单片机位控制中 心的,下面将介绍步进电机控制系统。 步进电机控制系统主要由脉冲分配器, 功率驱动电路, 步进电机几部分构成的。 步进电机控制系统的方框图如图 3.4 所示: SHAPE \* MERGEFORMAT 脉冲信号图 3.4 步进电机控制系统方框图3.5 传感器电路脉冲控 制器功率驱动 电路步进 电机电动窗帘要根据光照的情况而自动开关窗帘,因而需要使用到光电传感器。这 里使用光敏电阻。光敏电阻是用光电导体制成的光电器件,又称光导管[7],他是基 于半导体光电效应工作的。光敏电阻没有极性,纯粹是一个电阻器件,使用时可以 加直流偏压,也可以加交流电压。当无光照时,光敏电阻值(暗电阻)很大,电路 中电流很小。当光敏电阻受到一定波长范围的光照时,它的阻值急剧减少,因此电 路中电流迅速增加。光敏电阻具有很高的灵敏度,很好的光谱特性,光谱响应从紫 外区一直到红外区。而且体积小、重量轻、性能稳定。因此在自动化技术中得到广 泛的应用。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换 为电的变化) 。通常,光敏电阻器都制成薄片结构,以便吸收更多的光能。当它受到 光的照射时,半导体片(光敏层)内就激发出电子―空穴对,参与导电,使电路中 电流增强。 根据光敏电阻的光谱特性,可分为三种光敏电阻器: 紫外光敏电阻器:对紫外线较灵敏,包括硫化镉、硒化镉光敏电阻器等,用于 探测紫外线。 红外光敏电阻器:主要有硫化铅、碲化铅、硒化铅。锑化铟等光敏电阻器,广PAGE16 毕业设计(论文)泛用于导弹制导、天文探测、非接触测量、人体病变探测、红外光谱,红外通信等 国防、科学研究和工农业生产中[8]。 可见光光敏电阻器:包括硒、硫化镉、硒化镉、碲化镉、砷化镓、硅、锗、硫 化锌光敏电阻器等。主要用于各种光电控制系统,如光电自动开关门户,航标灯、 路灯和其他照明系统的自动亮灭,自动给水和自动停水装置,机械上的自动保护装 置和“位置检测器” ,极薄零件的厚度检测器,照相机自动曝光装置,光电计数器, 烟雾报警器,光电跟踪系统等方面。这里选用Ф 3 系列的 GL3526,如图 3.5 传感 器电路所示。图 3.5 传感器电路应用光控原理工作,天亮窗帘自动打开,天黑窗帘自动关闭。由运放组成比较 电路,同向输入端有两个电阻分压得到一个电压值,作为基准电压进行比较,而反 相输入端用一个光敏电阻对外部环境的光线进行采集,利用光敏电阻暗时电阻大, 亮时电阻小的特点,来确定反向输入端的电压值。再两者进行比较,比较后的信号 再送入单片机 89C2051 的 P0 口,从而通过单片机来控制电机的正反转。来实现 天亮窗帘自动打开,天黑窗帘自动关闭这一自动控制功能。3.6 A/D 转换电路 A/D 转换的作用是进行模数转换,把接收到的模拟信号转换成数字信号输出。在选择 A/D 转换时,先要确定 A/D 转换的位数,该设计运用的是 8 位 A/D 转换 器 ADC0808,A/D 转换误的位数确定与整个测量控制系统所需测量控制的范围 和精度有关,系统精度涉及的环节很多,包括传感器的变换精度,信号预处理电路 精度 A/D 转换器以及输出电路等。本次设计使用 8 位 A/D 转换器 ADC0808。 关于 ADC0808 的介绍: ADC0808 是 CMOS 单片型逐次逼近式 A/D 转换 器,它由 8 路模拟开关、地址锁存与译码器、比较器、8 位开关树型 D/A 转换器、 逐次逼近,寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0808 可处 理 8 路模拟量输入, 且有三态输出能力, 既可与各种微处理器相连, 也可单独工作。 输入输出与 TTL 兼容。PAGE17 毕业设计(论文)ADC0808 与 MCS-51 单片机的连接如图 3.6 所示。图 3.6 ADC0808 转换A/D 转换后得到的是数字量的模拟量,这些数据应传送给单片机进行处理。数据串的关键是如何确定 A/D 转换完成。因为只有确定数据转换完成后,才进行 传送。为此可采用以下三种方式:(1)定时传送方式对于一种 A 时子程序。A/D 转换启动后,就调动这个子程序,延迟时间一到, 转换肯定已经完成了。接着,就可以进行数据传送,对于 A/D 转换来说,转换时间 作为一项技术指标是已知的和固定的。例如 ADC0808 转换时间为 128us,相当于6MHZ 的 MCS-51 单片机共 60 个机器周期。可根据此设计一个延了。 (2)查询方式 A/D 转换芯片表明有转换完成的状态信号,例如 ADC0808 的 E 端,因此可以通过查询方式用软件测试 EOC 的状态,即可知道转换是否完成,若完成,则 进行数据传送。(3)中断方式中断方式 ADC0808 与 8031 的中断方式接口电路只需将 0808 的 EOC 端经 过一非门连接到 8031 的 INTl 端即可。采用中断方式可大大节省 CPU 的时间, 当转换结束时,EOC 发出一个脉冲向单片机提出中断请求,单片机响应中断请求, 由外部中断 1 的中断服务程序读 A/D 结果,并启动 0808 的下一次转换,外部中 断 1 采用边沿触发方式。 设计中用单片机启动 ADC0808 后,延时 130us,就可以读取正确的 A/D 转 换结果。 下面简要介绍常用的几种类型的基本原理及特点:积分型、逐次逼近型、并行 比较型/串并行型。 积分型 AD 工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频 率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率, 但缺点是由于转换精度依赖于积分时间,因此转换速率极低。初期的单片 AD 转换 器大多采用积分型,现在逐次比较型已逐步成为主流。PAGE18 毕业设计(论文)逐次比较型 AD 由一个比较器和 DA 转换器通过逐次比较逻辑构成,从 MSB 开始,顺序地对每一位将输入电压与内置 DA 转换器输出进行比较,经 n 次比较而 输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辩率 (&12 位)时价格便宜,但高精度(&12 位)时价格很高。 串并行比较型 AD 结构上介于并行型和逐次比较型之间,最典型的是由 2 个n/2 位的并行型 AD 转换器配合 DA 转换器组成,用两次比较实行转换,所以称为 Half flash(半快速)型。还有分成三步或多步实现 AD 转换的叫做 (Multistep / Subrangling)型 AD,而从转换时序角度又可称为流水线(Pipelined)型 AD,现代的分级型 AD 中还加入了对多次转换结果作数字运算而修正特性等功能。 这类AD 速度比逐次比较型高,电路规模比并行型小[9]。第4章4.1 程序设计软件设计程序设计(Programming)是指设计、编制、调试程序的方法和过程[10]。它是目 标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工 作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控 制系统设计中占重要地位。对于本系统,软件也占有重要的地位。 在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据 处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按 一定的方法进行计算,然后再输出,以便控制生产。 为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每 一部分叫做一个模块。把一个程序分成具有多个明确任务的程序模块,分别编制、 调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化PAGE19 毕业设计(论文)程序设计。所谓“模块” ,实质上就是能完成一定功能,并相对独立的程序段,这种 程序设计方法称为模块程序设计法。 模块程序设计法的主要优点是:(1)程序的易读性好; (2)程序的修改可局部化; (3)模块可以共存,一个模块可以被多个任务在不同条件下调用; (4)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 4.2 主程序设计程序的编写是该系统重要的部分,如图 4.1 所示。如果软件编写的科学就能体 现出该系统功能的完整性、实用性、经济性。只有软件和硬件都正确才能使电路正 常工作达到我们想要的效果。本系统的软件编程部分的编写主要分为LCDLM016L 显示程序、时钟芯片 DS1302 控制程序、数据存储程序这三大类来阐述[11]。 对 DS1302 芯片进行初始化,I2C 总线进行单字节数据读写传送、多字节数据 读写传送; 控制程序,根据解码得到的结果去执行需要的操作。 开窗帘、 关窗帘、 停止移动、 调节实时时间、调节开窗帘时间、调节关窗帘时间、时间增加、时间减小、开关自 动开关帘、开关自动关窗帘; 显示电路、实时时钟显示、开窗帘调时显示、关窗帘调时显示。关中断设置堆栈复位,初始化 设定键 显示 设定时间 电机工作 电机控制键有键操作?开始计时 简码分析PAGE 20工作完成?到点了?电机停止 毕业设计(论文)图 4.1 程序总图4.3 DS1302 的控制程序 DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位 MSB(D7)必须为逻辑 1,如果 D7=0,则禁止写 DS1302,即写 保护;D6=0,指定时钟数据,D6=1,指定 RAM 数据;D5~D1 指定输入或输 出的特定寄存器;最低位 LSB(D0)为逻辑 0,指定写操作(输入), D0=1,指定 读操作(输出)。在 DS1302 的时钟日历或 RAM 进行数据传送时,DS1302 必须 首先发送命令字节。若进行单字节传送,8 位命令字节传送结束之后,在下 2 个SCLK 周期的上升沿输入数据字节,或在下 8 个 SCLK 周期的下降沿输出数据字节。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元, 31 个, 共 每个单元组态为一个 8 位的字节,其命令控制字为 C0H~FDH,其中奇数为读操 作, 偶数为写操作; 再一类为突发方式下的 RAM 寄存器, 在此方式下可一次性读、 写所有的 RAM 的 31 个字节。 数据输入时,时钟的上升沿数据必须有效,数据的输出在时钟的下降沿。如果 为低电平,那么所有的数据传送将被中止且 I/0 引脚变为高阻状态。上电时,在Vcc&2.5 伏之前, 必须为逻辑 0。当把驱动至逻辑 1 状态时,SCLK 必须为逻辑 0。单字节数据输入跟随在写命令字节的 8 个 SCLK 周期之后,在控制指令字输 入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即 位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出DS1302 的数据,读出数据时从低位 0 位到高位 7。DS1302 的读写时序如图 4.2PAGE21 毕业设计(论文)所示。图 4.2 DS1302 读、写时序读取实时时间过程流程如框图 4.3 所示:SHAPE \* MERGEFORMAT 图 4.3 DS1302 流程图 开始 变量初始化4.4 显示程序使 DS1302 不具备写保护 显示程序开始后,起始地址 60H 发送到 R0,01H 发送至显示位代码 R2,再将位代码发送到单片机 A 口, 单片机取显示数据查表转换成显示代码发送至单片机复位后产生一个高电平B 口,延时 2ms,指针 R0 加 1,然后判断 6 显示是否完成。如果完成则返回,没写 DS1302 地址 完成则位代码 R2 左移一位,继续显示查表,一直到 6 位显示完成后返回。 向该地址写数据PAGE 22地址增加 毕业设计(论文)显示流程如图 4.4 所示:定时计数器 1 中断N 02H 为 1 否 显示开窗帘时间Y N03H 为 1 否 Y显示关窗帘时间显示正常时间中断返回图4.4 显示流程图4.5 数据存储程序 AT24C02 支持 IC,总线数据传送协议 IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生 串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器 或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1 和 A2 可以实现将最多 8 个 AT24C02 器件连接到总线上,如图 4.5 总线时序采样图。I2C 总线是一种用于 IC 器件之间连接的二线制总线。它通过 SDA(串行数据线)及 SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地 址识别每个器件:不管是单片机、存储器、LCD 驱动器还是键盘接口。AT24C02 的 1、2、3 脚是三条地址线[12],用于确定芯片的硬件地址(实验板中直接接地只有一块器件) ;第 8 脚和第 4 脚分别为正、负电源。第 5 脚 SDA 为串行数据输入/输出,数据通过这条双向 I2C 总线串行传送,SDA 和 SCL 都需 要和正电源间各接一个 5.1K 的电阻上拉。第 7 脚为 WP 写保护端,接地时允许芯PAGE23 毕业设计(论文)片执行一般的读写操作,如图 4.6 写周期时序图。接电源端时不允许对器件写。24C02 中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加 1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低 总的写入时间, 一次操作可写入多达 8 个字节的数据, 如图 4.7 开始、 停止时序图。图 4.5 总线时序图 4.6 写周期时序图 4.7 起始/停止时序AT24C02 读写操作流程图如图 4.8 所示:产生启动条件 产生启动条件给出从地址给出从地址PAGE 24等待接收确认 毕业设计(论文)图 4.8 AT24C02 读写操作流程图第 5 章 系统仿真与调试5.1 proteus 仿真平台PAGE25 毕业设计(论文)在该设计中,利用 Proteus 软件进行仿真。Proteus 是英国 Labcenter 公司开 发的电路分析与仿真软件。 运行于 Windows 操作系统上, 可以仿真、 分析(SPICE) 数字电路、模拟电路、数模混合电路,是目前唯一能实现对 51、PIC、AVR、HC11、ARM 等处理器的仿真软件[13]。该软件的特点是: (1)具有全速、单步、设置断点等多种形式的调试功能。 (2)集原理图设计、仿真和 PCB 设计于一体,真正实现从概念到产品的完整开发工具。(3)具有各种信号源和电路分析所需的虚拟仪表、是电类教学实验与创新的最侍平台。(4)支持 Keil C51 uVision2、MTLAB 等第三方的软件编译和调试环境。 (5)具有强大的原理图到 PCB 板设计功能,可输出多种格式的电路设计报表。(6)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真,是独一无二的支持处理器与外围电路的协同仿真电路设计软件。5.2 部分模块电路仿真 PROTEUS 软件自带编辑器,可以实现对汇编程序的编译,其操作步骤是: (1)新建源文件:点菜单 Source→Add/Remove source Files 在出现的对话框中,选择 ASEM51 编辑器,新建 JIE.asm 源文件。(2)程序设计:点菜单 Source→JIE.asm 打开源文件编辑器,将将附录程序输入到文本中。(3)源程序编译:点菜单 Source→Build ALL 编译汇编源程序,生成目标代码文件 PMD.HEX,若编译失败,可对程序进行修改调试直至编译成功。(4)目标代码加载:在 PROTEUS 编辑环境双击 AT89C51,弹出如图 5.1 所示的对话框,在 PROGRAM FILE 一栏中单击打开按钮,选中 JIE.HEX文件。在 CLOCK FREQUENCY 栏中设置系统工作频率为 12MHz,单击 OK 完成目标代码加载。5.2.1 仿真结果图启动按钮,进入环境监测自动模式,调节光敏电阻电机正反旋转,调节光敏电PAGE26 毕业设计(论文)阻的大小相当于模拟环境中光照强度,当光敏电阻调小时,表示环境光照弱,此时 电机正转,表示窗帘打开;当光敏电阻调大时,表示环境光照强,此时电机反转, 表示窗帘关闭。如图 5.1 仿真结果所示。图 5.1 仿真结果 1当按钮选择进入手动状态 2 时, 分别按正反按钮, 此时, 电机相应的正反旋转, 表示打开和关闭窗帘,如图 5.2 仿真结构所示。图 5.2 仿真结果通过选择按钮选择使显示屏显示 0,如图 5.3 仿真所示。表示窗帘工作在环境 监测模式,此时通过光敏电阻模拟环境光照强度来控制电机的正反转动。图 5.3 工作状态仿真通过选择按钮选择使显示屏显示 1,如图 5.4 仿真所示。显示屏显示 1 表示程 序工作在定时模式,通过程序设置定时开关时间,但到达设置开关时间时,电机就 自动正反旋转,从而实现窗帘的定时自动开关功能。图 5.4 工作状态仿真通过选择按钮选择使显示屏显示 2,如图 5.5 仿真所示。显示屏显示 2 表示工 作在手动模式,手动控制电机的正反旋转。图 5.5 工作状态仿真5.3 仿真结果分析及问题解决方案现象观察:在 MCS-51 仿真器上通过编译、加载、运行后可以观察到,在没有 调时键被按下时,显示屏显示“0”表示电路工作在环境模拟状态,此时,调节光敏 电阻的大小来模拟环境光照强度的强弱从而使电机正反转动,当按下选择按钮时, 显示屏上显示“1”表示电路工作在定时状态中,程序代码中设置有固定的定时转 动电机时间,当到达开关时间时,电机就自动正反转动。当再次按下按钮时,显示PAGE27 毕业设计(论文)屏显示“2”表示电路工作在手动状态,分别按下正反按钮,电机就分别正反转动, 以上过程都能完全实现仿真,这说明程序能够正常的运行,能够使继电器导通,带动 电机向正确的方向转动。 经过在 MCS-51 仿真器上调试运行,此电路及程序基本上达到了预期目的,当 然在程序中也还有很多可以改进的优化设计,也还可以添加一些辅助功能这些都还 有待更好的改进[14]。 在仿真的过程中因自己操作的粗心及对本软件相关知识的掌握不熟悉使得出现 了一些低级问题。 1)如系统工作频率应设置为 12MHz 及程序代码加载时后缀名 ( 应改为 .hex ,可我因没有考虑全面,在一开始总是出不了仿真结果; ( 2 )对PROTEUS 软件上电子元器件的选择不熟悉,使得布线总图退出完成;(3)因仿真时操作不当,造成按键或调节光敏电阻无反应等。后来经过自己慢慢摸索及老师 和同学的帮助,这些问题都得到了一一的解决。PAGE28 毕业设计(论文)结束语经过六个月的资料查找和设计,我已完成了毕业设计的任务。本文设计了基于 单片机的智能多功能窗户的功能项目,系统的介绍了电动窗帘控制器的硬件电路设 计到软件设计的以系列步骤。本设计采用步进电机作为执行元件,以光敏电阻作为 传感元件的传感器作为检测元件,89C51 单片机作为控制芯片,辅助按键和显示, 实现了电动窗帘控制器的多项智能项目。 纵观整个设计系统,单片机使用了熟悉的 89C51 单片机,从而使整个控制芯 片了如指掌。熟悉的控制芯片设计起来也是得心应手。所用芯片简单实用,减少了 开发和硬件开销。传感器部分使用光敏电阻,可以持续性的检测外界光强变化,通 过电桥电路后的信号进入比较器,可以得出一个信号,此信号经过放大,A/D 转换 后进入单片机,通过单片机的脉冲信号进而控制步进电机的运行。本设计的步进电 机可以很好的执行单片机的命令。步进电机为一种数字伺服执行元件,具有结构简 单、运行可靠、控制方便、控制性能好等优点。使得窗帘的开关更加的准确,稳定。 设计的时钟电路配合单片机的定时功能,加上光电传感器的检测光强很好的解决了 自动控制这项功能。 同时,由于设计的时间和能力有限,还有许多功能和技术没有充分研究,如定 时功能没有通过键盘实现,只有在程序代码里设置,其次,没有解决光电开关的滞 回特性,可以使用施密特电路来完成,无奈时间有限。控制器固定,没有蓝牙和红 外控制功能。而且没有完成实物的设计,这不得不说是一个遗憾。但是,一个完整 的毕业设计过程,让我掌握了单片机系统和电子操作软件等方面的知识,尤其在动 手能力方面有很大的提升,也给今后更成功、完善的设计打下坚实的基础。PAGE29 毕业设计(论文)参考文献[1] 邱丽芳.彭志刚.胡汉辉.单片机原理与应用 2005. [2] 李学海.标准 80C51 单片机基础教程―原理篇 2006. [3] 彭伟 单片机 C 语言程序设计实训 100 例.2009. [4] 童诗白.华成英.模拟电子技术(第四版)2006. [5] 阎石.数字电子技术(第五版)2005. [6] 康华光.电子技术基础―模拟部分 2005. [7] 刘叶冰,董欣,张家维.智能园区系统集成技术.工程设计 CAD 与智能建筑,1999. [8] 腾飞.智能家居就在眼前.中国计算机用户,2004. [9] 丁元杰.单片微机原理及应用, 2003 年 7 月. [10] 王明顺,吴省.可涓流充电的串行实时时钟芯片 DS1302 及其应用.电子技术应用,1996. [11] 崔惠柳,串行实时时钟芯片 DS1302 及其应用.广西工业学院,1998. [12] 徐发荣.DS1302、HT1380 时钟芯片与 8031 单片机的接口技术.国外电子原器件,1999. [13] 李光飞,楼然苗,胡佳文等.单片机课程设计实例指导.北京航空航天大学出版社.2004. [14] 邹书文,黄光桂.红外遥控单片机.电脑与信息技术.1995.PAGE30 毕业设计(论文)致谢在论文完成之际,我首先要对我的指导老师刘老师和林老师以及帮助过我的所 有同学及提供给我实验条件的江老师表示最真挚的谢意。在整个论文的选题、理论 研究、 需求分析和系统设计的过程中,他们给了我不少启发, 并对论文的设计方案提 出了许多至关重要的建议,在实验过程中帮我解决了不少的难题。 在论文写作期间曾经遇到过很多的阻力,但是在大家的帮助下总算是顺利地度 过了,现在一切都好了。 在论文的完成过程中,我还要特别感谢许老师给予了我无私的帮助,正是在他的 鼓励和帮助之下,才使得我的实验能顺利的完成。同时,得到了其他许多让我分享他 们宝贵经验和知识的老师以及同学的热心帮助, 向他们表示由衷的感谢;我还要感谢 这一领域的学者们,是他们给我经验和研究方向,文中引用了一些他们研究成果,在 此一并表示衷心的感谢。 由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各 位师长、同行提出宝贵意见。谢谢!姜 春PAGE31 毕业设计(论文)附录#include &REGX52.H& #include &intrins.h& #include &DS1302.h& void DoSpeed(unsigned int uiNumber); unsigned int uiADTransform(); //正转值 #define RIGHT_RUN 1 //反转值 #define LEFT_RUN 0 sbit key=P3^4; sbit up=P3^2; sbit down=P3^3; sbit ST = P3^6; //ATART,ALE接口。0-&1-&0:启动AD转换 sbit EOC = P3^7; //转换完毕由0变1. unsigned char code SpeedChar[]=&Voltage(V):&; unsigned char code StateChar[]=&RUN STATE:&; unsigned char code STATE_CW[]=&CW&; unsigned char code STATE_CCW[]=&CCW&; unsigned char SPEED[3]=&150&; unsigned char RunState=RIGHT_RUN; //运行状态 SYSTEMTIME CurrentT//时间结构体//旋转计数器 unsigned char M; sbit LcdRs = P2^0; //计算速度PAGE32 毕业设计(论文)sbit LcdRw sbit LcdEn 端口= P2^1; = P2^2; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0. 数 据#define DBPort P1void Delay1ms(unsigned int coun) { unsigned int i,j; for(i=0;i&i++) for(j=0;j&120;j++); } // 内 部 等 待 函 数 ************************************************************* ************* unsigned char LCD_Wait(void) { LcdRs=0; _nop_();_nop_(); LcdRw=1; _nop_();_nop_(); LcdEn=1; _nop_();_nop_(); //while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句, 在调用GotoXY()时,会进入死循环, //可能在写该控制字时,该模块没有返回写入 完备命令,即DBPort&0x80==0x80 //实际硬件时打开此语句 LcdEn=0;_nop_();_nop_(); return DBP } // 向 LCD 写 入 0 命 令 或 数 据 ************************************************************ #define LCD_COMMAND // CommandPAGE33 毕业设计(论文)#define LCD_DATA #define LCD_HOMING { LcdEn=0;_nop_();_nop_();1 0x02// Data 0x01 // 清屏 // 光标返回原点#define LCD_CLEAR_SCREENvoid LCD_Write(bit style, unsigned char input)LcdRs=_nop_();_nop_(); LcdRw=0; LcdEn=1; LcdEn=0; LCD_Wait(); } // 设 置 显 0x04 0x00 示 //显示开 //显示关 0x00 0x01 0x00 //无光标 //光标闪动 //光标不闪动 模 式 ************************************************************ #define LCD_SHOW #define LCD_HIDE #define LCD_CURSOR #define LCD_NO_CURSOR #define LCD_FLASH #define LCD_NO_FLASH { LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } // 设 置 输 0x02 0x00 // default 入 模 式 ************************************************************ #define LCD_AC_UP #define LCD_AC_DOWN _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();//注意顺序 _nop_();_nop_();_nop_(); DBPort= _nop_();_nop_();_nop_();//注意顺序0x02 //显示光标void LCD_SetDisplay(unsigned char DisplayMode)PAGE34 毕业设计(论文)#define LCD_MOVE #define LCD_NO_MOVE {0x01 0x00// 画面可平移 //defaultvoid LCD_SetInput(unsigned char InputMode) LCD_Write(LCD_COMMAND, 0x04|InputMode); } // /* #define LCD_CURSOR #define LCD_SCREEN #define LCD_LEFT #define LCD_RIGHT { if(object==LCD_CURSOR) LCD_Write(LCD_COMMAND,0x10|direction); if(object==LCD_SCREEN) LCD_Write(LCD_COMMAND,0x18|direction); } */ // *** void LCD_Initial() { LcdEn=0;_nop_();_nop_(); LCD_Write(LCD_COMMAND,0x38); 显示,5*7点阵 //8位数据端口,2行 初 始 化 LCD********************************************************* 0x02 0x08 0x00 0x04 移 动 光 标 或 屏 幕 ************************************************************void LCD_Move(unsigned char object, unsigned char direction)PAGE35 毕业设计(论文)LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); 标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); } void GotoXY(unsigned char x, unsigned char y) { if(y==0) LCD_Write(LCD_COMMAND,0x80|x); if(y==1) LCD_Write(LCD_COMMAND,0x80|(x-0x40)); } void Print(unsigned char *str) { while(*str!='\0') { LCD_Write(LCD_DATA,*str); str++; _nop_();_nop_(); } } { if(RunState!=RIGHT_RUN) { P2_3=RunS count=0; RunState=RIGHT_RUN; //中断0: 正转 void t_0(void) interrupt 0 //清屏 //AC递增, 画面不动 //开启显示, 无光PAGE36 毕业设计(论文)} } { if(RunState!=LEFT_RUN) { P2_3=RunS RunState=LEFT_RUN; count =0; } } //定时器0中断程序: void SpeedUp() interrupt 1 { TH0=; TL0=; if(count&50) { count++; P2_4=P2_4^0x01; } } //AD转换函数,返回转换结果。 //转换结果是3位数,小数点在百位与十位之间。 unsigned int uiADTransform() { unsigned int uiR ST=1; ST=0; //启动AD转换。 //中断1:反转 void t_1(void) interrupt 2PAGE37 毕业设计(论文)while(EOC==0); uiResult=P0; return uiR }//等待转换结束。 //出入转换结果。uiResult=(100*uiResult)/51;//处理运算结果void DoSpeed(unsigned int uiNumber) { unsigned char ucaNumber[3]; if(uiNumber&999) uiNumber=999; ucaNumber[0]=uiNumber/100; //把计算数字的每个位存入数组。 ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10; ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1 ]; SPEED[0]=ucaNumber[0]+'0'; SPEED[1]=ucaNumber[1]+'0'; SPEED[2]=ucaNumber[2]+'0'; } void Scan_key() { if(key==0) { Delay1ms(10); { if(key==0) { M++; if(M==3) M=0; //0 自动模式,1定时模式,2手动模式PAGE38 毕业设计(论文)while(!key); } } } } void zidong() { EX0=0; EX1=0; if((uiADTransform()&256)&(RunState!=LEFT_RUN)) //AD 转 换 { P2_3=RunS RunState=LEFT_RUN; count =0; } else if((uiADTransform()&=256)&(RunState!=RIGHT_RUN)) { P2_3=RunS count=0; RunState=RIGHT_RUN; } } void dingshi() { EX0=0; EX1=0; if((CurrentTime.Hour==5)&(CurrentTime.Minute==30)&(RunState! =LEFT_RUN)) //5:30可以调整时间 改成你要的时间 //关外部中断0: //关外部中断0:PAGE39 毕业设计(论文){ P2_3=RunS RunState=LEFT_RUN; count =0; } if((CurrentTime.Hour==18)&(CurrentTime.Minute==35)&(RunState!= RIGHT_RUN)) { P2_3=RunS count=0; RunState=RIGHT_RUN; } } void shoudong() { EX0=1; EX1=1; } main() { LCD_Initial(); Initial_DS1302(); TMOD=0x01; TH0=; TL0=; //20MS ET0=1; TR0=1; IT0=1; //开外部中断0:加速 //18:35可以调整时间 改成你要的时间PAGE40 毕业设计(论文)EX0=1; IT1=1; EX1=1; EA=1; while(1) { GotoXY(0, 0); Print(SpeedChar); GotoXY(12, 0); LCD_Write(LCD_DATA,SPEED[0]); GotoXY(13, 0); LCD_Write(LCD_DATA,'.'); GotoXY(14, 0); LCD_Write(LCD_DATA,SPEED[1]); GotoXY(15, 0); LCD_Write(LCD_DATA,SPEED[2]); DoSpeed(uiADTransform()); GotoXY(0, 1); Print(StateChar); GotoXY(10, 1); LCD_Write(LCD_DATA,M+'0'); // if(RunState) // Print(STATE_CW); // else // Print(STATE_CCW); if(M==0)zidong(); else if(M==1)dingshi(); else if(M==2)shoudong(); Scan_key();PAGE41 毕业设计(论文)DS1302_GetTime(&CurrentTime); DateToStr(&CurrentTime); TimeToStr(&CurrentTime); } }PAGE42
基于单片机的智能多功能窗户的设计―汇集和整理大量word文档,专业文献,应用文书,考试资料,教学教材,办公文档,教程攻略,文档搜索下载下载,拥有海量中文文档库,关注高价值的实用信息,我们一直在努力,争取提供更多下载资源。

我要回帖

更多关于 基于单片机毕业论文 的文章

 

随机推荐