




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业设计(论文)毕业设计(论文)专专 业业 电子信息工程技术电子信息工程技术 班班 次次 _ 姓姓 名名 _ 指导老师指导老师 _ 成都工成都工业业学院学院二 0 一 二 年成都工业学院 通信工程系毕业设计论文I基于单片机的电子万年历设计基于单片机的电子万年历设计与实现与实现摘要摘要: : 随着半导体技术的迅速发展,特别是大规模集成电路出现,给人类生活带来了很多的改变。尤其是单片机技术的应用产品已经随着社会前进的步伐走进我们的生活。电子产品的应用可谓多不胜数,电子万年历就是其中的一种。电子万年历的出现给人们的生活带来的极大的方便。电子万年历以硬件汇编语言为主体进行软件设计,增加了程序的可读性和
2、可移植性。系统通过数码管输出显示数据,可以显示当前时间、公农历日期、星期、温度。本设计着重要描述的就是基于 AT89S52 的单片机的电子万年历。本文首先描述系统硬件工作原理,随后介绍了本系统所应用的各硬件接口技术(即芯片驱动程序)和各个接口模块的功能及工作过程。本设计的主导思想是软硬件相结合来进行各功能模块的编写。 关键词关键词 单片机;万年历;AT89S52;DS1302;成都工业学院 通信工程系毕业设计论文II目目 录录第第 1 1 章章 绪论绪论.1 11.1 设计开发背景.11.2 国内外研究现状.11.3 设计需要解决的主要问题.11.4 本文主要工作.21.5 本文的组织结构.2
3、第第 2 2 章章 方案选择与论证方案选择与论证.3 32.1 单片机芯片的选择与论证.32.2 显示模块选择方案和论证.32.3 时钟芯片的选择方案和论证.32.4 温度传感器的选择方案与论证.42.5 电路设计最终方案决定.4第第 3 3 章章 系统的设计与实现系统的设计与实现.5 53.1 电路设计框图.53.2 主要电路模块的设计.53.2.1 单片机主控制模板.53.2.2 时钟模块电路的设计.73.2.3 公历与农历转换模块.93.2.4 DS18B20 温度模块 .123.2.5 时间可调模块.143.2.6 显示模块的设计.14第第 4 4 章章 系统调试与分析系统调试与分析.
4、16164.1 系统软件开发.164.2 系统硬件开发.174.3 测试分析及设计发展.174.3.1 测试分析.174.3.2 本设计的发展.18结结 语语.1919致致 谢谢.2020参考文献参考文献.2121附附 录录.2222成都工业学院 通信工程系毕业设计论文1第 1 章 绪论1.1 设计开发背景近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作
5、为一个核心部件来使用,再根据具体硬件结构,以及针对具体应用对象的特点与软件结合,以作完善。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是电子万年历,电子万年历是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。电子万年历是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、 码头
6、办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得电子万年历的精度,远远超过老式的计时方法, 电子万年历的数字化给人们生产生活带来了极大的方便,而且大大地扩展了原先的报时功能。因此,研究电子万年历及扩大其应用,有着非常现实的意义。1.2 国内外研究现状近年来,随着科学技术的迅速发展,无论在国内还是国外,电子万年历的设计方案已经越发成熟,稳定性及实用性有很大的提高,电子万年历也发展成为由原来的只能实现基本功能到现在市面上集娱乐性于一身的常见电子产品。现在的电子万年历产品基本都采用了集成度极高的专用芯片,这大大地降低了产品的设计难度,同时也缩
7、短了产品的生产周期。正是基于电子万年历很好的开放性和可发挥性,多种多样的电子万年历被设计出来。目前市场上有普通万年历,温度万年历,计算器万年历,天气预报万年历,多功能万年历,世界时万年历,掌心万年历等等。然而,现代的数码产品市场更新换代的周期越来越短,所以在设计万年历产品的时候在完成一些基本功能的情况下,在控制好生产成本的前提下,往产品内加入更多的娱乐功能已经成为一种趋势,这也会成为制约万年历产品的受欢迎程度的一个重要因素。1.3 设计需要解决的主要问题本设计的主要问题是公历转农历的算法问题和时间可调问题,这两个问题是否能够成功解决关系到本次设计的成败。公历与农历是我国目前并存的两种历法,各有
8、其固有的规律。农历与月球的运行相对应其影响因素多,它的大小月和闰月与天体运行有关计算十分复杂,成都工业学院 通信工程系毕业设计论文2且每年都不一致。因此要用单片机实现公历与农历的转换用查表法是最方便实用的办法。按日查表是速度最快的方法,但单片机寻址能力有限,不可能采用按日查表的方法。除按日查外,我们可以通过按年查表的方法,再通过适当的计算,来确定公历日所对应的农历日期。时间可调可以说本研究关键的一步。由于系统要在供电状态才工作,若断电一段时间后再通电,时间不能实时显示。所以通过按键来调时,可达到实时显示时间数据的功能。1.4 本文主要工作通过查询多方面的信息,设计一款读取方便、显示直观,功能多
9、样、电路简洁、成本低廉的电子万年历。 本设计要求的电子万年历不仅能显示时间、星期、公历日期信息,还能显示农历信息(因为在我们国家,很多节日都是定在农历的,如年初一、七夕、八月十五等)以及实现实时温度显示等功能。在这个万年历设计系统中,还具有时间可调功能,比如我们想知道某一年的某一天的农历时间,我们可以调到相应的公历日,则农历就会根据公历日期被系统自动转换过来,再显示相应的农历信息。1.5 本文的组织结构本设计先对系统所需要的主要芯片进行选择和论证,确定了选用AT89S52单片机作为系统的主要控制芯片,时钟芯片DS1302提供时钟,数字式温度传感器实现实时温度显示,而显示部分采用的是LED数码管
10、动态显示。接着重点对相应主要模块的硬件进行详细的讲解,比如AT89S52、DS1302、DS18B20 和显示部分 7SEG-MPX8-CA 等芯片的引脚功能和工作原理,有利于对各模块的理解。然后简要地介绍了系统的调试工具,并进行相应的测试分析。在最后给出电路原理图,以及主程序和部分子程序。成都工业学院 通信工程系毕业设计论文3第 2 章 方案选择与论证2.1 单片机芯片的选择与论证 方案一: 采用 89C51 芯片作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储空间,能于 3V 的超低压工作,而且与 MCS-51 系列单片机完全兼容,但是运用于电路设计中时由于不具备 I
11、SP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。 方案二:采用 AT89S52,片内 ROM 全都采用 Flash ROM;能以 3V 的超底压工作;同时也与 MCS-51 系列单片机完全该芯片内部存储器为 8KB ROM 存储空间,同样具有 89C51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 所以选择采用 AT89S52 作为主控制系统。2.2 显示模块选择方案和论证 方案一: 采用 LED
12、 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED 液晶显示屏. 方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示. 方案三: 采用 LED 数码管动态扫描,LED 数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。 所以采用了 LED 数码管作为显示。2.3 时钟芯片的选择方案和论证 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日
13、、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。 方案二: 采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的 RAM 做为数据暂存区,工作电压 2.5V5.5V 范围内,2.5V 时耗电小于300nA。 所以采用 DS1302 作为时钟芯片。成都工业学院 通信工程系毕业设计论文42.4 温度传感器的选择方案与论证 方案一: 使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,
14、采集这两个电阻变化的分压值,并进行 A/D 转换。 。此设计方案需用 A/D 转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。 方案二: 采用数字式温度传感器 DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除 A/D 模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。 所以采用 DS18B20 作为本次设计的温度传感器。2.5 电路设计最终方案决定 综上各方案所述,对此次设计的方案选定: 采用 AT89S52 作为主控制系统; DS1302 提供时钟;DS18B
15、20 数字式温度传感器;LED 数码管动态显示作为显示模块。成都工业学院 通信工程系毕业设计论文5第 3 章 系统的设计与实现3.1 电路设计框图本系统以集成芯片为主,以汇编语言为开发语言,通过对硬件进行软件编程实现所需要的功能。系统的模块图如图 31 所示,以下的内容就是根据模块逐步实现的。图 3-1 系统模块图模块说明: DS1302 时钟模块可以输出其当前日期及时间;键盘输入电路可以调整日期,时间及整体的转换;DS18B20 温度模块可以测量当前室内的温度;显示电路则显示当前的系统运行情况。3.2 主要电路模块的设计3.2.1 单片机主控制模板1、AT89S52 的简介AT89S52 是
16、一种低功耗,高性能的 CMOS 8 位微处理器,内部有 8K 字节的闪速 PEROM ,该芯片采用 ATMEL 公司高密度、非挥发性存储器工艺制成且与工业标准的 MCS-51 系列的引脚及指令兼容,FLASH 系列存储器为快速擦写存贮器。相对于 MCS-51 系列芯片而言,其特点如下 :1、可擦写 1000 次2、全静态操作:0Hz.24MHz3、32 根可编程 I/O 口线4、内部 RAM 为 256 字节5、三个 16 位的定时/计数器6、8 个中断源AT89S52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2个外中断口,3 个 16 位可编程定时计数器,2 个
17、全双工串行通信口,2 个读写口线,AT89S52 可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。AT89S52 芯片图如图 3-2 所示。AT89S52主控制模 块DS1302 时钟模块LED 数码管动态扫描显示模块温度采集模块键盘模块成都工业学院 通信工程系毕业设计论文6图 3-2 AT89S52 芯片图2、AT89S52 芯片的管脚、引线与功能(1) 输入输出(I/O)引脚介绍:P0 口(32 脚39 脚):是双向 8 位三态 I/O 口,在外接存储器时,与地址总线的低 8 位及数据
18、总线复用,能以吸收电流的方式驱动 8 个 TTL 负载。P1 口(1 脚8 脚):是 8 位准双向 I/O 口。由于这种借口输出没有高阻状态,输入也不能锁存,故不是真正的双向 I/O 口。P1 口能驱动(吸收或输出电流)4 个 TTL 负载。P2 口(21 脚28 脚):是 8 位准双向 I/O 口。访问外部存储器时,它可以作为高 8 位地址总线送出高 8 位地址。P2 可以驱动(吸收或输出电流)4 个TTL 负载。P3 口(10 脚17 脚):是 8 位准双向 I/O 口,P3 口能驱动(吸收或输出电流)4 个 TTL 负载。P3 口除了作为一般的准双向通用 I/O 口使用外,每个引脚还有第
19、二功能。P3 口的 8 条线都定义有第二功能,如表 31 所列。表 31 P3 口的第二功能表引脚第二功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2INT0(外部中断 0 请求输入端,低电平有效)P3.3INT1(外部中断 0 请求输入端,低电平有效)P3.4T0(定时器/计数器 0 的技数脉冲输入端)P3.5T1(定时器/计数器 0 的技数脉冲输入端)P3.6WR(片外数据存储器写选通信号输出端,低电平有效)成都工业学院 通信工程系毕业设计论文7P3.7RD(片外数据存储器写选通信号输出端,低电平有效)3、AT89S52 的总线结构AT89S52 的管脚除了电源、复
20、位、时钟接入、用户 I/O 口部分 P3外,其余管脚都是为实现系统扩展而设置的。这些管脚构成了三总线形式,即:(1)地址总线(AB):地址总线宽度为 16 位,因此,其外部存储器直接地址外围为 64K 字节。16 位地址总线由 P0经地址锁存器提供低 8 位地址(A0A7) ;P2口直接提供高 8 位地址(A8A15) 。(2)数据总线(DB):数据总线宽度为 8 位,由 P0口提供。(3)控制总线 (CB):由部分 P3口的第二功能状态和 4 根独立控制线RESET、EA、ALE、PSE 组成。AT89S52 结构框图如图 3-3 所示。图 3-3 AT89S52 结构框图3.2.2 时钟模
21、块电路的设计1、DS1302 简介DS1302 是 DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和 31 字节静态 RAM。通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供秒分时日月年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过 AM/PM 指示决定采用 24 或 12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线。1.RES 复位,2.I/O 数据线,3.SCLK 串行时钟。时钟/RAM 的读/写数据以一个字节或多达 31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1
22、mW。具有如下性能:(1)实时时钟具有能计算 2100 年之前的秒,分,时,日,星期,月,年的能力,还有闰年调整的能力。(2)31*8 位暂存数据存储 RAM(3)串行 I/O 口方式使得管脚数量最少(4)宽范围工作电压:2.0V5.5V(5)工作电流:2.0V 时,小于 300nA(6)读/写时钟或 RAM 时,有两种传送方式:单字节传送和多字节传送.(7)8 脚 DIP 封装或可选的 8 脚 SOIC 封装(8)简单的 3 线串行 I/O 接口(9)与 TTL/COMS 兼容(VCC=5V 时)(10)可选工业级温度范围:-40oC+85oC成都工业学院 通信工程系毕业设计论文82、DS1
23、302 结构与工作原理(1)DS1302 引脚功能如表 3-2 所示。表 3-2 DS1302 引脚功能引脚号引脚名称功能1Vcc2主电源引脚2,3X1,X2振荡源,外接 32.768KHz 晶振4RST接地5GND复位/片选端6I/O串行数据输入/输出端(双向)7SCLK串行时钟输入端8Vcc1备用电源(2)时钟芯片 DS1302 的工作原理:DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置 “0” ,接着把 RST 端置“1” ,最后才给予 SCLK 脉冲;DS1302 的控制字节,此控制字的位 7 必须置 1,若为 0 则不能把对 DS1302 进行读写数据。对于位
24、 6,若对程序进行读/写时 RAM=1,对时间进行读/写时,CK=0。位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行读操作时,该位为 1;该位为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。 “CH”是时钟暂停标志位,当该位为 1 时,时钟振荡器停止,DS1302 处于低功耗状态;当该位为 0 时,时钟开始运行。 “WP”是写保护位,在任何的对时钟和 RAM 的写操作之前,WP 必须为 0。当“WP”为 1 时,写保护位防止对任一寄存器的写操作。(3)DS1302 的控制字节DS1302 的控制字如表 3-3 所示。控制字节的最高有效位(位 7)必须是逻辑
25、 1,如果它为 0,则不能把数据写入到 DS1302 中;位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。表 3-3 控制字节命令的格式表D7 D6 D5 D4 D3 D2 D1 D01RAM/CKA4A3A2A1A0RD/ W(4) 数据输入输出(I/O)在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入DS1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读
26、出 DS1302 的数据,读出数据时从低位 0 位到高位7。如图 3-4。成都工业学院 通信工程系毕业设计论文9图 3-4 DS1302 读/写时序图(5) DS1302 的寄存器DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式,其日历、时间寄存器及其控制字见表 3-4。表 3-4 DS1302 的日历、时间寄存器此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 R
27、AM单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。3.2.3 公历与农历转换模块1、概述公历是全世界通用的历法,以地球绕太阳的一周为一年。一年 365 天分为12 个月,1、3、5、7、8、10、12 月为 31 天,2 月为 28 天,其余月份为 30天。事实上地球绕太阳一周共 365 天 5 小时 48 分 46 秒,比公历一年多出 5 小时 48 分 46 秒,为使年误差不累积公历年用闰年
28、法来消除年误差。由于每年多出 5 小时 48 分 46 秒,每 4 年累计多出 23 小时 15 分 4 秒,接近 1 天。天文学家就规定每 4 年有一个闰年把 2 月由 28 天改为 29 天,凡是公历年代能被 4 整除的那一年就是闰年。但是这样一来每 4 年又少了 44 分 56 秒为了更准确地计时天文学家又规定凡能被 100 整除的年份只有能被 400 整除才是闰年,即每 400 年要减掉 3 个闰年,经过这样处理后实际上每 400 年的误差只有 2 小时 53 分 20 秒,已相当准确了。 成都工业学院 通信工程系毕业设计论文10农历与公历不同,农历把月亮绕地球一周作为一月。因为月亮绕
29、地球一周不是一整天,所以农历把月分为大月和小月。大月 30 天,小月 29 天。通过设置大小月使农历日始终与月亮与地球的位置相对应。为了使农历的年份与公历年相对应,农历通过设置闰月的办法使它的平均年长度与公历年相等。农历是中国传统文化的代表之一,并与农业生产联系密切,中国人民特别是广大农民十分熟悉并喜爱农历。公历与农历是我国目前并存的两种历法,各有其固有的规律。农历与月球的运行相对应其影响因素多,它的大小月和闰月与天体运行有关计算十分复杂,且每年都不一致。因此要用单片机实现公历与农历的转换用查表法是最方便实用的办法。51 系列单片机因其在功能上能满足大部份对速度要求不高的应用场合的要求且价格低
30、廉开发工具普及程度高,是目前应用最多的单片机之一。本文介绍一种用 51 单片机实现从 1901 年到 2099 年 199 年公历日到农历日及星期的转换方法。2、基本原理实现公历与农历的转换,一般采用查表法,按日查表是速度最快的方法,但单片机寻址能力有限,不可能采用按日查表的方法。除按日查外,我们可以通过按年查表的方法,再通过适当的计算,来确定公历日所对应的农历日期,最大限度地减少表格所占的空间。对于农历来说,大月为 30 天,小月为 29 天,这是固定不变的,这样我们就可用 1 个 BIT(1 位)表示大小月信息。农历一年,如有闰月为 13 个月,否则是 12 个月,所以一年需要用 13 个
31、 BIT,闰月在农历中所在的月份并不固定,大部分闰月在农历 2-8 月,但也有少量年份在 9 月以后。所以要表示闰月的信息,至少要 4BIT,在这里我们用 4BIT 的值来表示闰月的月份。值为 0 表示本年没有闰月。有了以上信息,还不足以判断公历日对应的农历日,因为还需要个参照日,我们选用农历正月初一所对应的公历日期作参照日,公历日最大为31 日,需要 5 BIT 来表示,而春节所在的月份不是 1 月就是 2 月,用 1 BIT 就够了,考虑到表达方便,我们用 2 BIT 的值直接表示月份。这样一年的农历信息只用 3 个字节就全部包括了。每年对应的 3 字节数据格式说明如下: 第一字节 BIT
32、74 位表示闰月月份,值为 0 为无闰月,BIT30 对应农历 第 14 月的大小。 第二字节 BIT7-0 对应农历第 512 月大小。 第三字节 BIT7-7 表示农历第 13 个月大小,BIT6-5 表示春节的公历月份,BIT40 表示春节的公历日期。 月份对应的位为 1 表示本农历月大(30 天),为 0 表示小(29 天)计算公历对应的农历日期的方法:先计算出公历日离当年元旦的天数,然后查表取得当年的春节日期,计算出春节离元旦的天数,二者相减即可算出公历日离春节的天数,以后只要根据大小月和闰月信息,减月天数,调整农历月份,即可推算出公历日对应的农历日期。如果公历日不到春节日期,农历年
33、要比公历年小一年,农历大小取前一年的信息。农历月从 12 月向前推算。公历日是非常有规律的,所以公历日所对应的星期天可以通过计算直接得到,理论上公元 0 年 1 月 1 日为星期日,只要求得公历日离公元 0 年 1 月 1 日的天数,除 7 后的余数就是星期天,为了简化计算,采用月校正法,根据公历的年月日可直接计算出星期天。其算法是:日期+年份+所过闰年数+月较正数之和除 7 的余数就是星期天,但如果是在闰年又不到 3 月份,上述之和要减一天成都工业学院 通信工程系毕业设计论文11再除 7。其 1-12 月的校正数为:6,2,2,5,0,3,5,1,4,6,2,4。年份和闰年数只计算 1900
34、 年以后的年份和闰年数,实际校正数为:0,3,3,6,1,4,6,2,5,0,3,5。举例说明:用查表法得出公历 2008 年 3 月 9 日对应的农历及星期信息。1) 查表得 2008 年的数据为0 x09,0 x2d,0 x47(0000,1001;0010,1100;0100,0111) 。该数据表示该年无闰月,农历月的 2,3,5,6,8,11,12 月为小月 29 天,1,4,7,9,10 月为大月 30 天。该年春节在公历 2 月 7 日。2) 计算公历日(2008 年 3 月 9 日)离当年元旦的天数:30+29+968。3) 计算春节离元旦的天数:30+737。4) 算出公历日
35、(2008 年 3 月 9 日)离春节的天数:683731。5) 调整农历月份:因为 31301,所以相对应的农历月份是 2 月,农历日是1+12。6) 计算星期(日期+年份+所过闰年数+月较正数之和除 7 再求余数):9+(20081900)+(20081900)/4+370综上所述,公历日 2008 年 3 月 9 日对应的是农历 2008 年 2 月 2 日星期天。3、程序流程图成都工业学院 通信工程系毕业设计论文12图 3-5 公农历转换程序流程图3.2.4 DS18B20 温度模块1、概述美国 DALLAS 公司生产的单线数字温度传感器 DS18B20,可把温度信号直接转换成串行数字
36、信号供微机处理。由于每片 DS18B20 含有唯一的硅串行数,所成都工业学院 通信工程系毕业设计论文13以在一条总线上可挂接任意多个 DS18B20 芯片。从 DS18B20 读出的信息或写入DS18B20 的信息,仅需要一根口线(单线接口) 。读写及温度变换功率来源于数据总线,总线本身也可以向所挂接的 DS18B20 供电,而无需额外电源。DS18B20可提供 912 位温度读数,构成多点温度检测系统而无需任何外围硬件。因此,DS18B20 具有如下性能优点:单线接口:仅需一根口线与 MCU 连接进行通信。多个 DS18B20 可以并联在惟一的 3 线上,实现多点组网功能。无需外围元件可通过
37、数据线供电,电压范围为 3.05.5V。零待机功耗测温范围:-55 125 。固有测温分辨率为 0.5 。通过编程可实现 912 位的数字读数方式用户可自设定非易失性的报警上下限值支持多点组网功能,多个 DS18B20 可以并联在惟一的三线上,实现多点 测温。报警搜索命令可识别哪片 DS1820 超温度限负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2、DS18B20 的内部结构图 3-6 是 DS18B20 的内部结构图。 I/OC VDD图 3-6 DS18B20 内部结构(1) 64 位 ROM 结构分为 8 位检验 CRC、48 位序列号、8 位工厂代码(10H)。
38、开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后8 位是前 56 位的 CRC 校验码,这也是多个 DS18B20 可以采用一线进行通信的原因。 (2) 高速暂存存储器DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 E2PROM。高速 RAM 包含 9 字节存储器,前两个字节包含测得的温度信息。第 3 和第 4 字节是 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第 5 个字节是配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20 工作时按此寄存器中的分辨率将温度转换为相应精度的数值。低 5 位
39、一直都是 1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。64 位 ROM和单线接口存储器与控制逻辑高速缓存温度传感器低温触发器高温触发器8 位 CRC 发生器成都工业学院 通信工程系毕业设计论文14高速暂存 RAM 第 68 字节未用,表现为全逻辑 1;第 9 字节读出的是前面所有8 个字节的 CRC 码,可用来保证通信正确。 3、DS18B20 的测温原理DS18B20 的测温原理如图 3-7,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的
40、脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,先将-55所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55所对应的一个基数值。 停止图 3-7 DS18B20 测温原理减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数
41、到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图 3-7 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20 的各种操作必须按协议进行。操作协议为:初始化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。4、DS18B20 与单片机的接口设计DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20的 1 脚接
42、地,2 脚作为信号线,3 脚接电源;另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够的电流,可用一个 MOSFET 管来完成对总线的上拉。当 DS18B20 处于写存储器操作和温度 A/D 变换操作时,总线上必须有强的上拉,上拉开启时间最大为 10s。采用寄生电源供电方式是 VDD 和 GND 端均接地。由于单线制只有一根线,因此发送接收口必须是三态的。本设计采用电源供电方式,设计电路如图 3-8 所示。斜率累加器计数比较器预置减法计数器 1低温系数振荡器预置减到 0温度寄存器高温度系数振荡器减法计数器2减到 0成都工业学院 通信工程系毕业设计
43、论文15图 3-8 DS18B20 温度采集引脚连接3.2.5 时间可调模块1、键盘扫描原理如图 3-9 所示,键盘是由多个按键组成。首先将与按键相接的单片机接口都置高电平,当没有按键按下时,单片机和地线之间是不相连的,若第 N 个键被按下,则接这个键的单片机接口为低电平,通过查询接到按键的单片机接口,就知道是第 N 个按键被按下,从而进行相应程序处理。图 3-9 按键电路设计按键说明: “设置”:选择要改变的量,依次为年、月、日、星期、时、分、秒。 “加”:按一次数值加一,依次递增。 “减”:按一次数值减一,依次递减。2、按键的软件设计思路首先判断是否有键按下,如果有则延时一段时间,再判断是
44、否有键按下,其目的是为了消除电路抖动和消除干扰信号。一般按键的时间至少有十几毫秒,而干扰信号的时间都很短,只要两次判断都有按键按下,才被确认为真有键按下。当确认有按键按下后,进行相应的程序处理。3.2.6 显示模块的设计本设计的显示模块采用动态扫描显示,3-8 译码器 74LS138 接非门,然后再接到共阳数码管的 COM 端作为选通位码信号,每位选择相应的列。74ls47 接共阳的 LED 数码管的断码。显示连接部分如图 3-10 所示。图 3-10 显示连接部分1、7SEG-MPX8-CA 数码管7SEG-MPX8-CA 是共阳极数码管显示器,它左下侧的 abcdefg dp 是 LED
45、数码管显示器的 I/O 口,是段选信号,右下侧的 12345678 是它的位选信号,就是从左成都工业学院 通信工程系毕业设计论文16到右分别是第一位到第八位,段选信号与位选信号分别接到单片机的不同输出口。本设计段选信号接到 P1 口,位选信号接到 P2 口。图 3-10 是其引脚图。图 3-11 7SEG-MPX8-CA2、74LS47 芯片74LS47 是 BCD-7 段数码管译码器/驱动器,74LS47 的功能用于将 BCD 码转化成数码块中的数字,通过它解码,可以直接把数字转换为数码管的显示数字,从而简化了程序,节约了单片机的 IO。图 3-11 为其引脚图图 3-12 74LS47 引
46、脚其中,A 到 D 引脚分别接单片机 IO 口,BI/RBO、RBI、LT 接高电平,QA 到QG 依次接数码管的段选端。3、74LS138 芯片4LS138 为 3 线8 线译码器,其工作原理:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。 利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。若将选通端中的一个作为数据输入端时,74LS138 还可作数据分配器。其引脚图如下图。图 3-13 74LS138 引脚成都工业学院
47、通信工程系毕业设计论文17第 4 章 系统调试与分析4.1 系统软件开发一、KEIL 开发工具KEIL S52 标准 C 编译器为 81 微控制器的软件开发提供了汇编和 C 语言环境,同时保留了汇编代码高效,快速的特点。S52 编译器的功能不断增强,使你可以更加贴近 CPU 本身,及其它的衍生产品。S52 已被完全集成到 uVision3 的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision3 IDE 可为它们提供单一而灵活的开发环境.它可以支持所有 S52 的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,S52 V
48、7 版本无疑是 AT89S52 开发用户的最佳选择。二、uVision3 集成开发环境 1、项目管理工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。 一个单一的 uVision3 工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组” 。开发工具选项可以对应目标,组或单个文件。 uVision3 包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求,uVision3 可以为片外存储器产生必要的连接选项:确定起始地址和规模。图 4-1 uVision3 工作界面2、集成功能
49、uVision3 的强大功能有助于用户按期完工,具有以下功能:(1)、集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。(2)、文件寻找功能:在特定文件中执行全局文件搜索。(3)、工具菜单:允许在 V3 集成开发环境下启动用户功能。(4)、可配置 SVCS 接口:提供对版本控制系统的入口。成都工业学院 通信工程系毕业设计论文18(5)、PCLINT 接口:对应用程序代码进行深层语法分析。(6)、Infineon 的 DAVE 功能:协助用户的 CPU 和外部程序。DAVE 工程可被直接输入 uVision3。4.2 系统硬件开发Proteus ISIS
50、 是英国 Labcenter 公司开发的电路分析与实物仿真软件。它运行于 Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和 SPICE 电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16系列、PIC18 系列、Z80 系列、HC11 系
51、列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision3 等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能极其强大。图 4-2 是 Proteus ISIS 软件的工作界面。图 4-2 Proteus ISIS 工作界面4.3 测试分析及设计发展4.3.1 测试分析电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。电子成年
52、历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:1烧入程序后,LED 数码管显示闪动,而且亮度不均匀。解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由成都工业学院 通信工程系毕业设计论文19于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。2修改时间、日期时没有农历没有自动对应上。解决:把不相关的程序
53、暂时屏蔽,对农历的子程序独立调试,发现在调用农历自动更新时,对十进制和十六进制处理不好,所以会造成错乱。最后把相应的十进制进行修改,使得可以与十六进制对应,最后解决了此问题。4.3.2 本设计的发展首先,是解决软件上的设计问题,通过编程实现闹铃可以实现语音整点报时以及实时显示温度可精确到一个小数位。其次,用贴片芯片代替直插元件,降低系统的设计成本。最后,实现以下三种创新功能:具有上、下课响铃功能具有防御报警功能具有娱乐功能成都工业学院 通信工程系毕业设计论文20结 语本设计以 ATMEL 公司的 AT89S52 为主控芯片,配合专用的时钟芯片及软件能稳定地显示当前时间,室内温度及完成公农历转换
54、。本设计的方案选择与当前主流的设计思想吻合,所用到的模块具有很高的实用性。由于硬件设备问题,所以设计的硬件以单片机专用仿真软件 Protues ISIS 6.9 SP4 为开发平台,软件以 keil51 为开发平台,这为系统的软硬件调试提供了很大方便。与市面上的大多数万年历以分立元件为主不同,本设计大多使用集成芯片。集成芯片的稳定性,可靠性及资源利用率都远优于分立元件。这对系统的长时间稳定工作有决定性的作用。相对于市面上的万年历只能简单显示公立日期,本设计通过按键转换可以查询当前的农历日期。另外,为了充分利用 89S52 及提高系统的实用性,使用了 Dallas 公司的温度传感器 DS18B2
55、0,使系统在完成基本功能的同时能显示当前温度。当然,任何事情都有双面性,系统采用了大规模集成模块在提高稳定性的时候,也大大地增加了系统的设计成本。这对于生产应用是致命的。另外,硬件仿真的时候采用大多采用了直插封装,这对于系统的模型设计有很大的不利,在生产应用中,现在的直插元件用得越来越少,取而代之的是贴片芯片。在软件的设计方面,由于实力问题,有些问题还是得不到根本的解决,比如说在显示模块上和按键切换上就有一定的缺陷。温度只能实时的显示当前的整数温度,不能精确到小数位,显示的温度数据误差较大。相信在以后的工作中会不断提高的软硬件问题的能力。通过这次的锻炼,我不仅动手能力得到了加强,更重要的是学到
56、了很多新的专业技能知识,经验也更加丰富了。我觉得我还有很多不足的地方,如:基本知识掌握不牢固、动手能力不强、知识面不够宽。我争取在以后的学习当中弥补它,不断的完善自己。虽然期间我们遇到了不少的难题,但是经过自己的努力和他人的帮助,最终还是克服了很多意想不到的困难。 成都工业学院 通信工程系毕业设计论文21致 谢 论文经过三个月后终于完成,在做论文期间,问题一个接着一个,但在宿舍同学的帮助下,问题最后也能迎刃而解。在此对他们的帮助表示最诚挚的感谢。本论文是在我的导师王飞老师的悉心指导下完成的。在此,特别要向本人的指导教师王飞老师致以诚挚的谢意。他严谨的治学精神,精益求精的工作作风,让我学到了许多
57、。从课题的选择到论文的最终完成,王老师都始终给予我细心的指导。在论文的修订上,亦给予了我许多宝贵的修改意见,使我在此期间获益良多,顺利的完成了毕业论文工作。成都工业学院 通信工程系毕业设计论文22参考文献1 王质朴,吕运鹏. MCS-51 单片机原理接口与应用.北京理工大学出版社,2009.2 谭浩强. C 程序设计(第三版).北京:清华大学出版社,2007.3 鲁广英. 基于单片机电子万年历的设计与实现.4 应锟. 中国科技博览.2011 年第 15 期.5 周民标. 电子世界.2002 年第 6 期.6 沈红卫. 基于单片机的智能系统设计与实现,北京:电子工业出版社.7 李全利. 迟荣强等
58、.单片机原理及接口技术. 北京:高等教育出版社,2004.18 万福君,潘松峰. 单片微机原理系统设计与应用.北京:中国科学技术大学出版社,2005成都工业学院 通信工程系毕业设计论文23附 录附录一:系统电路图成都工业学院 通信工程系毕业设计论文24附录二:系统程序清单CONFIG12 EQU 7FH TEMPH EQU 21H TEMPL EQU 20H REG2 EQU 22H REG3 EQU 23H REG4 EQU 24H DAT EQU P0.7 SCLK EQU P3.4 IO EQU P3.3 RST EQU P3.2 year DATA 66H month DATA 65H
59、 week DATA 64H day DATA 63H hour DATA 62H minute DATA 61H second DATA 60HDS1302_ADDR DATA 32HDS1302_DATA DATA 31H bb bit p3.7 XSOUT BIT P3.6 ORG 0000H LJMP START ORG 001BH LJMP INTT1START: ;初值 LCALL ZJ SETB EA MOV TMOD,#10H ;计数器 1,方式 1 MOV TL1,#00H MOV TH1,#00H MOV 32H,#8EH MOV 31H,#00H ;允许写 1302 LC
60、ALL WRITE MOV 32H,#90H MOV 31H,#0A6H ;1302 充电,充电电流 1.1MA LCALL WRITE ;主程序MAIN1: MOV 32H,#8DH ;读出年 LCALL READ MOV year,31H MOV 32H,#8BH;读出星期 LCALL READ MOV week,31H MOV 32H,#89H ;读出月 LCALL READ MOV month,31H MOV 32H,#87H ;读出日 LCALL READ MOV day,31H MOV 32H,#85H;读出小时 LCALL READ MOV hour,31H MOV 32H,#8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药物外渗护理不良事件
- 西藏那曲地区安多县2025届三下数学期末教学质量检测试题含解析
- 6S基本知识培训课件
- 云南省昆明市五华区2024-2025学年高三元月三诊一模语文试题文试题含解析
- 河南省安阳市林州第一中学2025届高三5月全程模拟考试数学试题试卷含解析
- 商水县2025届数学四年级第二学期期末统考试题含解析
- 2025年江苏省南京市玄武区溧水高中第二学期高三第一次模拟考试数学试题含解析
- 中国农业大学《写意人物》2023-2024学年第二学期期末试卷
- 厦门医学院《遥感影像处理与分析》2023-2024学年第二学期期末试卷
- 2025年广州市番禹区重点中学初三下学期模拟测试(三)化学试题含解析
- 稳固结构的探析-说课课件
- 八大作业票证的安全管理制度
- 手术基本操作培训课件
- 淘宝客服操作流程
- GB 1886.358-2022食品安全国家标准食品添加剂磷脂
- GB/T 31117-2014船用辅锅炉安全技术要求
- GA/T 832-2014道路交通安全违法行为图像取证技术规范
- 以问题为导向的健康照顾教学课件
- 新版《土地开发整理项目预算定额标准》讲解
- 乌灵胶囊幻灯课件
- DB44∕T 1188-2013 电动汽车充电站安全要求
评论
0/150
提交评论