基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc

上传人:仙人指路1688 文档编号:4148616 上传时间:2023-04-07 格式:DOC 页数:56 大小:278KB
返回 下载 相关 举报
基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc_第1页
第1页 / 共56页
基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc_第2页
第2页 / 共56页
基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc_第3页
第3页 / 共56页
基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc_第4页
第4页 / 共56页
基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的时钟日历设计电子与通信工程毕业设计论文.doc(56页珍藏版)》请在三一办公上搜索。

1、摘 要论文的研究工作是以单片机技术为背景展开的,并且详细介绍了通过AT89C51单片机控制LCM1602液晶的显示情况,以及单片机与时钟电路、温度传感器之间的通信。以软件形式对系统进行控制,使得系统控制更具灵活与方便。本文在深入分析单片机技术的基础上,解析了LCM显示的单片机控制技术和新型温度传感器DS18B20单片机控制应用,以及LCD显示在各种电子显示中的优势,同时阐述了其在日常显示系统中的应用;并且以Proteus与Keil uVision4软件为基础,编写了AT89C51单片机对LCM1602显示控制的软件,绘制其原理图,并使用Proteus软件与Keil uVision4软件建立联合

2、仿真。论文主要论述了原理图各个模块的作用,控制软件的各个模块的编程。在设计的过程中,以显示日历、时间、温度为主要目的,并能够实现时间调整功能。经过一系列的前提准备,到最后的仿真成功,将理论联系实际,使本设计可以在实际中应用,方便经济实用。【 关键词 】 温度传感器、单片机、万年历AbstractThesis research work is based on single-chip technology expand the background, and described in detail by the the AT89C51 microcontroller control LCM160

3、2 LCD display, as well as single-chip clock circuits, temperature sensor communication. In the form of a software to control the system, making the system more flexible control and convenience.In this paper, based on in-depth analysis of single-chip technology, analytical the LCM display SCM control

4、 technology and a new temperature sensor DS18B20 MCU control applications, and the LCD display advantages in a variety of electronic display, at the same time daily display system ; and to Proteus and Keil uVision4 software-based write a the AT89C51 microcontroller LCM1602 display Control software,

5、draw its schematic and the establishment of a joint simulation using the Proteus software, Keil uVision4 software. Thesis discusses the role of the various modules of the schematic diagram, the control of the various modules of the software programming.In the design process, the main purpose is to d

6、isplay a calendar, time, temperature, and be able to achieve time adjustment function. The series premise preparation to the final success of the simulation, theory with practice, so that the design can be applied in practice, and to facilitate economical and practical.Key words the temperature sens

7、or、Single chip microcomputer、Perpetual calendar目录一、引言1(一)课题背景及研究概述1(二)单片机控制系统简介1(三)课题的建立及论文完成的主要要求1二、开发工具软件介绍2(一) Keil uVision4软件简介2(二) Proteus软件简介2(三) Keil uVision4与Proteus软件联合仿真2三、系统硬件设计实现3(一)电路设计框图3(二)单片机控制系统31、 单片机系统功能介绍32、 AT89C51引脚说明33、单片机最小系统5(三)主要模块设计实现61、LCD显示模块62、时钟芯片DS1302接口设计模块73、温度传感器DS

8、18B20设计模块94、按键控制模块9四、 软件设计10(一)万年历显示程序101、流程图102、源程序代码11(二)温度转换程序111、流程图112、源程序代码11(三)按键扫描程序121、程序结构122、程序功能12(四)主程序121、程序流程图:122、源程序代码。13五、仿真13(一)调试联合仿真13(二)仿真结果13六、总结13致谢14参考文献15附录一:系统电路16附录二:源程序17附录三:温度转换子程序30一、引言(一)课题背景及研究概述随着电子技术的发展,人类不断研究,不断创新纪录。万年历以电脑软件或者电子产品形式出现,目前已经不再局限于以书本形式。万这种年历被称为电子万年历。

9、与书本形式的万年历相比,电子万年历应用越来越广泛,时间显示采用电子时钟已经成为一种时尚。目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单一不能满足人们日常生活需求。本文提出了一种基于AT89C51单片机的万年历设计方案,利采用一个LCD显示。本方案以AT89C51单片机作为主控核心,与时钟芯片DS1302、温度芯片DS18B20、按键、LCD显示等模块组成硬件系统。在硬件系统中设有4个独立按键和一个LCD显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间、温度显示等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合

10、电子仪器仪表的发展趋势,具有广阔的市场前景。(二)单片机控制系统简介AT89C51是一个低电压,高性能的单片机,内含可反复擦写的Flash只读程序存储器,在电子行业中有着广泛的应用。并且,只要在单片机的外围适当加一些必要的扩展电路及通道接口,就可以构成各种应用系统,如工业控制系统、数据采集系统、自动控制系统、自动测试系统、检测监视系统、智能仪表、功能模块等。因此单片机广泛应用于便携式智能产品与家电消费品,以及工业控制,国防装备等领域。总之,单片机控制系统具有功能多样、电路简洁、成本低廉、体积小巧等诸多优点,符合电子技术的发展趋势。(三)课题的建立及论文完成的主要要求本文主要包括以下内容:1、单

11、片机最小控制系统、LCM1602液晶显示模块、DS18B20温度传感器模块、DS1302时钟芯片模块和按键模块的建立。2、编制单片机与各子模块之间的通信程序。实现对LCM1602液晶显示当前时间及温度,按键调节作用,以及按键提示音的控制。 3、用Proteus绘制整个控制系统原理图,使用Keil编译调试程序。可替代实际硬件进行仿真。 二、开发工具软件介绍(一) Keil uVision4软件简介Keil4系列开发系统兼容单片机,C语言软件。和汇编相比,C语言在结构性、功能上、可维护性、可读性上有明显的优势,并能产生HEX文件,因而易学易用。使用过汇编语言,再使用C来开发,体会更加深刻。在研究大

12、型软件时更能体现C语言的优势。Keil 软件提供功能强大的集成开发调试工具和丰富的库函数,语句生成的汇编代码容易理解。而且,该软件不但可以进行程序编译,而且还可以通过其内嵌模块模拟51单片机,实现在不需要连接硬件仿真器的条件下,通过数据线连接硬件系统对项目进行实时仿真。另外,可以与Proteus单片机仿真软件联合实现虚拟硬件仿真。(二) Proteus软件简介Proteus嵌入式系统仿真与开发平台是一款可以实现模拟电路、数字电路、PCB设计微控制器系统仿真等功能的EDA软件。所有的工作先在虚拟环境下进行。提供数码管、显示屏、LED、开关、键盘等。避免了传统电子电路设计中方案更换带来的多次购买元

13、器件及制板,在节省设计时间和金钱的同时,提高了设计效率与质量。Proteus软件可以仿真AT89C51系列单片机,可以直接在电路原理图上进行硬件的模拟仿真,进行程序的调试,并提供进行测试与分析的逻辑分析仪,模拟示波器等模拟仪器及仿真图表。它是目前最好的仿真单片机及外围器件的工具。(三) Keil uVision4与Proteus软件联合仿真Proteus软件与Keil软件之间的联合虚拟仿真,指Keil软件把Proteus软件打开的单片机电路看成一个模拟的硬件电路,使用Keil软件对程序进行编译、调试时连接Proteus软件中的模拟单片机系统,模拟单片机的系统状态和Keil软件对程序调试实时变化

14、。这样,可实现用Proteus软件与Keil uVision4软件联合虚拟硬件仿真。Proteus软件与Keil uVision软件的联合仿真在实际的单片机系统开发中被普遍应用。用Proteus软件与Keil uVision软件联合仿真像实物一样调试,同时在屏幕上可以直观地看到电路输出状态,比较容易读懂并理解所调试的程序,提高学习效率,同时降低了学习所需的硬件成本。三、系统硬件设计实现(一)电路设计框图(如图1)温度采集电路时钟电路按键调整电路单片机最小系统AT89C51单片机LCD显示电路图1 电路设计框图(二)单片机控制系统1、 单片机系统功能介绍AT89C51是一种带4K字节FLASH存

15、储器的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。单片机正常工作时,都需要有一个时钟电路和一个复位电路。本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。复位是单片机的初始化操作,单片机在启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复

16、位的,必须配合相应的外部电路来实现。其主要工作特性是:u 4k字节可编程Flash存储器u 八个中断源u 与MCS-51单片机产品兼容u 全静态操作:0Hz33Hzu 三级加密程序存储器u 32个可编程I/O 口线u 全双工UART串行通道u 低功耗空闲和掉电模式u 掉电后中断可唤醒u 看门狗定时器u 双数据指针u 1000次擦写周期u 掉电标识符u 三个16 位定时器/计数器2、 AT89C51引脚说明AT89C51有40个引脚,如图2所示: 图2 AT89C51芯片P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻

17、抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2E

18、X),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。P1口的第二功能如下:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。访问外

19、部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR),P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)

20、使用,如下表所示。flash编程和校验时,P3口也接收一些控制信号。P3口的二功能如下:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位

21、字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输

22、出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。3、单片机最小系统根据系统设计要求,结合性能分析,通过查阅相关资料及自己的努力思考,把单片机最小系统设计为图3:图3 单片机最小系统(1) 复位电路按键手动复位是通过使复位端经电阻与VCC接通而实现的。(2) 时钟振荡电路考虑系统运行速度,采用12MHZ的石英晶振,并使用两个小电容

23、作为微调电容。(三)主要模块设计实现1、LCD显示模块 (1)方案选择:方案一:采用动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机24个端口,采用间断扫描法功耗小、硬件成本低及整个硬件系统体积相对减小。方案二:采用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,成本低等优点,LCM1602可显示32个字符,采用LCD的缺点是亮度不够。比较以上两种方案:方案一硬件简单、功耗小;方案二硬件简单,显示内容多,功耗小,成本低等。本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求,权衡两种方案,选择方案二。(2)LCM1602的接口信

24、号说明:如表1:表1 LCM1602的接口信号编号引脚符号功能说明编号引脚符号功能说明1VSS电源地9D2DATA I/O2VDD电源正极10D3DATA I/O3VL液晶显示偏压信号11D4DATA I/O4RS数据/命令选择端12D5DATA I/O5R/W读/写选择端(H/L)13D6DATA I/O6E使能信号14D7DATA I/O7D0DATA I/O15BLA背光正极8D1DATA I/O16BLK背光负极(3)基本操作时序:读状态:RS=L,RW=H,E=H写指令:RS=L,RW=L,D0D7=指令码,E=高脉冲读数据:RS=H,RW=H,E=H写数据:RS=H,RW=L,D0

25、D7=数据,E=高脉冲(4) LCM1602与AT89C51的接口电路:如图4所示: 图4 LCM1602与单片机接口电路LCD的D0D7分别接单片机的的P0口,作为数据线,因为P0口内部没有上拉电阻,所以外部另外加上10K的上拉电阻;P2.0P2.2分别接LCD的RS、RW、E三个控制管脚;RV1用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯(图中未画出)。2、时钟芯片DS1302接口设计模块(1)方案选择:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是液晶显示不连

26、续,实现的时间误差较大。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V5.5V范围内,功耗电小。综合考虑制作难度及精度,故采用方案二。(2)DS1302接口说明:如表2表2 接口说明X1,X232.768kHz晶振引脚GND 地线RST复位端I/O数据输入/输出端口SCLK 串行时钟端口VCC1 慢速充电引脚VCC2 电源引脚 (3)DS1302与AT89C51的接口电路:如图5所示 DS1302时钟芯片内主要包括控制逻辑电路、振荡器、移位寄存器

27、。DS1302与单片机系统的数据通信依靠SCLK,RST,I/O,三根线即可完成。其工作过程可概括为:首先给系统RST引脚一个高电平 1,然后在SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入命令或地址字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是非常容易实现的。 图5 DS1302设计DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如图5所示。DS1302的控制字:控制字的位7必须置1,若为0则不能对DS1302进行读写数据。对于位6,

28、若对时间进行读/写时,CK=0,对程序进行读/写时RAM=1。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;进行写操作时,该位为0。控制字节总是从最低位开始输入/输出的。DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,“WP”必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。3、温度传感器DS18B20设计模块(1)方案选择方案一:采用热敏电阻或AD590,再经AD转换得到数字信号,精度较准,但价格昂贵

29、,电路较复杂。方案二:采用数字式温度传感器DS18B20,它能通过单片机直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高。综合考虑,采用方案二,用DS18B20温度芯片,采用单总线访问,降低成本、降低制作难度且可节省单片机宝贵的I/O口资源。(2)DS18B20与AT89C51的接口电路:如图6所示图6 DS18B20接口电路该系统中采用数字式温度传感器DS18B20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,用P2.3与DS18B20的DQ口连接,Vcc接电源,GND接地。4、按键控制模块按键及按键提醒接口电路如图

30、7所示图7 按键控制模块SET键:按下SET键进入时间校准状态,按一下进入秒调整,两下分调整,依此类推可进行各年月日,时分秒以及星期的校准UP键:当SET键按下时,UP进行SET选定项(如:小时)的加操作;DOWN键:当SET键按下时,DOWN进行SET选定项(如:小时)的减操作;按键蜂鸣器提示(第一次按动设置键长鸣一响;后面按动设置键或上调键、下调键都是短鸣一响)(四)完整系统原理图见附录一。四、 软件设计整个软件系统采用C语言编程,主要实现以下功能:1)LCD的驱动2)时间数据的采集3)温度的采集4)按键的识别处理程序从main()函数开始运行,随后对LCD、DS18B20、DS1302等

31、器件进行初始化操作并对标志位赋初值,随后进入while(1)循环中运行按键扫描程序。等待中断产生。开始初始化读日期、时间写日期、时间显示子程序时间修改子程序日期修改子程序显示结果返回开关控制子程序图8 万年历显示控制(一)万年历显示程序1、流程图 如图82、源程序代码参考附录二。(二)温度转换程序为方便程序编写,本程序把温度转换子程序编在DS18B20_3.H文件中。头文件DS18B20_3.H,来源于网网络,十进制温度最后返回到函数ReadTemperature()中,使用时主函数用flag=ReadTemperature()就可将18b2头文件运行返回的函数结果送到变量FLAG中,用于显示

32、。根据单总线操作协议,首先要对DS18B20进行初始化,而初始化有严格的时序控制,如图9所示,即总线控制器(TX)发出一个复位脉冲(至少480us的低电平),然后释放总线进入接收状态,总线由5.1K上拉电阻上拉为高电平,探测到I/O引脚上的上升沿后,DS18B20等待15us60us后,然后发出一个存在脉冲(60us240us的低电平信号)。1、流程图开始发跳过读系列号命令启动温度转换初始化DS18B20初始化DS18B20发跳过读系列号命令读取温度寄存器读取温度值结束图9 温度转换流程图如图9.2、源程序代码见附录三(三)按键扫描程序1、程序结构按键识别程序结构采用:if(*)delay(1

33、0);/调延时,消抖动if(*)switch(key1n)case 1:*;case 2:*;*;2、程序功能能准确清晰地分析全部的按键情况,具有按键消除抖动功能。和按键蜂鸣器提示(第一次按动设置键长鸣一响;后面按动设置键或上调键、下调键都是短鸣一响)开始液晶屏、时钟芯片、温度传感器初始化按键扫描。等待中断产生YN温度读取转换显示温度、时间日期图10 主程序流程图按下SET键进入时间调整选项,按一下调整秒,按两下调整分,在日期时间星期之间转换。按下UP键调整的数据加一。按下DOWN键,调整的数据减一。再按下SET键确认并跳到下一个选项。(四)主程序1、程序流程图:如图102、源程序代码。见附录

34、二。五、仿真(一)调试联合仿真 模拟系统硬件电路调试比较简单,首先检查电路接线是否正确,然后用检查软件I/O口的定义是否与硬件电路的I/O口连线是否对应。系统软件调试可以先调试液晶显示程序,再编写定时器中断函数,在液晶上显示出正确的时间,随后调试时间调整函数。接下来分别进行DS18B20温度显示程序的调试,调试到液晶能显示温度值,在环境温度有变化时,显示温度能改变就说明已能正确读取温度数据。最后调试报警温度函数,直到实现设计任务的要求为止。(二)仿真结果 使用Keil uVision4软件调试编译源程序,生成目标代码HEX文件,然后在Proteus软件中的虚拟单片机系统。模拟仿真观看设计结果:

35、液晶显示结果如图11。通过此项设计设计,本系统能完成以下功能:1、显示公历日期功能(年、月、日、时、分、秒)2、通过按键可随时调校年、月、日或时、分、星期3、可动态完整显示年份4、上电蜂鸣器提示(长鸣)、按键时蜂鸣器短鸣。图11 液晶显示结果六、总结 论文首先对本设计作了简要描述,对软件、硬件进行简单的描述。随后提出了不同的设计方案,经过论证最后确定该设计采用时钟模块、显示模块、键盘接口模块、温度测量模块等模块组成,接着分别从硬件系统和软件系统两方面对基于单片机的电子万年历设计作了详细论述,另外还简要介绍了一下系统的调试。在整个设计过程中,硬件方面主要设计了AT89C51单片机的最小系统、DS

36、1302接口电路、DS18B20接口电路、LCM1602显示;软件方面借助各个渠道的资料,主要设计了日期数据读取程序、温度采集程序、按键扫描程序以及LCD显示程序;系统的调试主要是通过Proteus,再借助于Keil以及少许自己搭建的外围电路实现的;再此过程中,分步调试时显示出了日期及时间,还有实时温度,集中调试达到预期效果。但在此过程中培养了自己的动手能力。此万年历具有读显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 经过本次毕业设计,使我对大学所学专业知识的进行了系统的总结。综合运用所学知识发现、提出、分析和解决实际问题致谢首先感谢学校在

37、毕业之际给我们一个可能让我们把所有的知识总结起来的机会,通过这次毕业设计,使我对以前所学的知识有了一个整体上的概括,也让我们具体了解到了每个元件在电路中的具体作用,了解到了它的功能、结构。其次我要衷心的感谢授课老师对我专业知识的教导和指导老师的帮助。为我提供了大量而又详实的资料给我,使我从困惑迷茫的初期走向论文的顺利完成,在完成论文的同时也深受启发和教育,使我受益终生。最后接受我最诚挚的谢意!参考文献【1】刘训非,陈希.单片机技术及应用.北京:清华大学出版社 2010【2】杨宁,胡学军.单片机与控制技术.北京:北京航空航天大学出版社.2005年【3】余西存,曹国华.单片机原理及接口技术.西安:

38、西安电子科技大学出版,2000年【4】沈卫红,编著.基于单片机的智能系统设计与实现.北京: 电子工业出版社2005年【5】王越明,编著.电子万年历的设计.黑龙江:黑龙江科技信息出版社2004年附录一:系统电路附录二:源程序#include#includeDS18B20_3.H/温度传感器#define uint unsigned int#define uchar unsigned charuchar a,miao,shi,fen,ri,yue,nian,week,flag,key1n,temp;/flag用于读取头文件中的温度值,和显示温度值#define yh 0x80 /LCD第一行的初始

39、位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#define er 0x80+0x40 /LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)sbit rs=P20;sbit en=P22;sbit rw=P21; sbit led=P26; /LCD的背光开关/DS1302时钟芯片与C51之间的引脚连接定义sbit IO=P11;sbit SCLK=P10;sbit RST=P12;sbit ACC0=ACC0;sbit ACC7=ACC7;/校时按键与C51的引脚连接定义sbit key1=P15; /设置键sbit key2=P16; /加键sbi

40、t key3=P17; /减键sbit buzzer=P13;/蜂鸣器,通过三极管9012驱动,端口低电平响uchar code tab1=20 - - ; /年显示的固定字符uchar code tab2= : : ;/时间显示的固定字符/延时函数,后面经常调用void delay(uint xms)/延时函数,有参函数uint x,y;for(x=xms;x0;x-) for(y=110;y0;y-);/*液晶写入指令函数与写入数据函数*/write_1602com(uchar com)/*液晶写入指令函数*rs=0;/数据/指令选择置为指令rw=0; /读写选择置为写P0=com;/送入

41、数据delay(1);en=1;/拉高使能端,为制造有效的下降沿做准备delay(1);en=0;/en由高变低,产生下降沿,液晶执行命令write_1602dat(uchar dat)/*液晶写入数据函数*rs=1;/数据/指令选择置为数据rw=0; /读写选择置为写P0=dat;/送入数据delay(1);en=1; /en置高电平,为制造下降沿做准备delay(1);en=0; /en由高变低,产生下降沿,液晶执行命令lcd_init()/*液晶初始化函数*write_1602com(0x38);/设置液晶工作模式16*2行显示,5*7点阵,8位数据write_1602com(0x0c)

42、;/开显示不显示光标write_1602com(0x06);/整屏不移动,光标自动右移write_1602com(0x01);/清显示write_1602com(yh+1);/日历显示固定符号从第一行第1个位置之后开始显示for(a=0;a14;a+)write_1602dat(tab1a);/向液晶屏写日历显示的固定符号部分/delay(3);write_1602com(er+2);/时间显示固定符号写入位置,从第2个位置后开始显示for(a=0;a0;a-)IO=ACC0;SCLK=0;SCLK=1;ACC=ACC1;uchar read_byte()/读一个字节RST=1;for(a=8

43、;a0;a-)ACC7=IO;SCLK=1;SCLK=0;ACC=ACC1;return (ACC);void write_1302(uchar add,uchar dat)/向1302芯片写函数,指定写入地址,数据RST=0;SCLK=0;RST=1;write_byte(add);write_byte(dat);SCLK=1;RST=0;uchar read_1302(uchar add)/从1302读数据函数,指定读取数据来源地址uchar temp;RST=0;SCLK=0;RST=1;write_byte(add);temp=read_byte();SCLK=1;RST=0;retu

44、rn(temp);uchar BCD_Decimal(uchar bcd)/BCD码转十进制函数,输入BCD,返回十进制 uchar Decimal; Decimal=bcd4; return(Decimal=Decimal*10+(bcd&=0x0F);void ds1302_init() /1302芯片初始化子函数(2012-10-07,12:00:00,week4)RST=0;SCLK=0;write_1302(0x8e,0x00); /允许写,禁止写保护 write_1302(0x80,0x00); /向DS1302内写秒寄存器80H写入初始秒数据00write_1302(0x82,0x00);/向DS1302内写分寄存器82H写入初始分数据00write_1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号