基于-单片机万年率设计_第1页
基于-单片机万年率设计_第2页
基于-单片机万年率设计_第3页
基于-单片机万年率设计_第4页
基于-单片机万年率设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE -PAGE 35. z.工业职业技术学院毕业综合实践课题名称:基于单片机的万年率的设计作 者: 强 学 号:20213361 分 院:电子与信息工程专 业:电子与信息工程技术物联网方向指导教师: 胡蓉 专业技术职务: 教授 2021 年 3 月 -. z目 录摘要TOC o 1-3 h u HYPERLINK l _Toc16252 1. 绪论 PAGEREF _Toc16252 1 HYPERLINK l _Toc24436 1.1 设计目的 PAGEREF _Toc24436 1 HYPERLINK l _Toc7390 1.2 开展现状 PAGEREF _Toc7390 1 H

2、YPERLINK l _Toc24348 1.3 解决问题 PAGEREF _Toc24348 2 HYPERLINK l _Toc29092 2. 硬件系统设计 PAGEREF _Toc29092 3 HYPERLINK l _Toc5177 2.1本设计所需的元器件 PAGEREF _Toc5177 3 HYPERLINK l _Toc11296 2.2 STC89C52RC单片机 PAGEREF _Toc11296 4 HYPERLINK l _Toc31463 2.2.1单片机主要特性 PAGEREF _Toc31463 4 HYPERLINK l _Toc19151 2.2.2单片机

3、引脚说明 PAGEREF _Toc19151 5 HYPERLINK l _Toc26452 2.3 MA*232电平转换芯片 PAGEREF _Toc26452 7 HYPERLINK l _Toc27195 2.4 DS1302时钟芯片 PAGEREF _Toc27195 8 HYPERLINK l _Toc8337 2.5 DS18B20温度传感器 PAGEREF _Toc8337 10 HYPERLINK l _Toc10016 2.6 12864液晶PAGEREF _Toc10016 11 HYPERLINK l _Toc8876 2.7 独立按键 PAGEREF _Toc8876

4、12 HYPERLINK l _Toc7820 3. 软件设计 PAGEREF _Toc7820 13 HYPERLINK l _Toc19153 3.1阳历与阴历转换 PAGEREF _Toc19153 14 HYPERLINK l _Toc25606 3.2 DS1302时钟芯片程序设计 PAGEREF _Toc25606 14 HYPERLINK l _Toc1353 3.3 DS18B20程序设计 PAGEREF _Toc1353 21 HYPERLINK l _Toc17934 3.4 12864液晶显示程序设计 PAGEREF _Toc17934 22 HYPERLINK l _T

5、oc5256 4. 调试 PAGEREF _Toc5256 26 HYPERLINK l _Toc15212 总结 PAGEREF _Toc15212 30 HYPERLINK l _Toc438 参考文献 PAGEREF _Toc438 31 HYPERLINK l _Toc26666 答 PAGEREF _Toc26666 32 HYPERLINK l _Toc2631 附录一 PAGEREF _Toc2631 33 HYPERLINK l _Toc24368 附录二 PAGEREF _Toc24368 34-. z摘要:随着电子技术的开展,万年历目前已经不再局限于以纸质的形式出现。以电脑

6、软件或者电子产品形式出现的万年历被称为电子万年历。与传统纸质的万年历相比,电子万年历得到了越来越广泛的应用。采用电子万年历来显示时间已经成为了一种时尚。本文提出了一种基于单片机的电子万年历的设计,以STC89C51作为主控制核心,与液晶LCD1602、时钟芯片DS1302、温度传感器DS18B20、独立式按键等模块组成硬件系统,能实现时间、温度的显示,以及时间的调整。关键词:STC89C51,万年历,DS1302,DS13B20绪论1.1 设计目的古人依靠日冕,漏刻记录时间。从古至今,人们的日常生活和工作都离不开对时间的准确把握。而随着科技的开展,电子万年历成为了日渐流行的日常计时工具。目前市

7、场上的万年历功能强大,简单直观,给人们带来很大的方便。对于万年历设计有很多实现的方法,自己动手设计与制作可以对硬件的构造和功能有更深的认识,并与软件结合,以到达理论与实践更好的结合,进一步提高综合运用所学知识进展设计的能力。这是对自己大学三年的学习的检验,具有重要的意义。1.2 开展现状据了解,目前市场上的电子万年历并不是采用51单片机作为主控制器的,基于单片机的万年历一般是学生和单片机爱好者在进展设计,谈不上占有市场。也许就是这样,研究单片机万年历的人不在少数,并且都在努力。努力不是单方面的,单片机的功能也应该要提高,STC89C52单片机就是这样的例子,其功能虽然没有大幅度提高,但使用起来

8、更方便了。我相信,在不久的将来肯定会有功能更强大本钱更低的单片机出现,给我们的设计带来更多的便利。1.3 解决问题本课题主要通过单片机的功能和应用,利用编程软件和仿真软件进展设计,并制作实物。设计要到达预期的效果要解决以下问题:(1)认真设计好万年历的逻辑原理图;(2) 熟练使用C语言,运用编程软件进展软件设计; (3) 在Proteus仿真平台上,对程序进展编译仿真; (4) 认真仔细地对万年历进展组装焊接; (5) 在确认没有问题的硬件实物上进展程序下载调试,以到达预期的效果要求;2. 硬件系统设计本设计将最小系统与所有用到的模块元件集合在一块万能板上,最小系统和其它模块均由自己动手焊接。

9、首先是在万能板上布局,以到达合理的规划,保证设计的美观性。然后为了保证设计的质量,我将各元件的电源口与GND接地口再一次规划,用焊锡分别将电源线和GND接地线固定在了特定的位置,以降低线路的复杂度,让人一目了然。最后各模块元件与单片机之间均用电线直接由引脚处连接万能板的焊点处。为了保护各模块元件,本设计使用到的一些重要元件都使用的IC插槽或排母进展焊接,连线见实物图4.1。本设计的系统框架如图2.1所示:12864液晶模块单片机STC89C52RCDS1302时钟芯片模块独立按键模块块DS18B20温度传感器模块 内部时钟、复位模块图2.1万年历的系统框架图2.1本设计所需的元器件单片机:ST

10、C89C52RC;电平转换芯片:MA*232;时钟芯片:DS1302;温度传感器:DS18B20;液晶:QC12864B汉字图形点阵液晶;按钮开关;2.2 STC89C52RC单片机本设计采用STC89C52RC单片机6,8K字节可编程闪烁存储器。STC89系列单片机是MCS-51系列单片机的派生产品,它们在指令系统、硬件构造和片资源上与标准8052单片机完全兼容。STC89系列是以8051为基核开发出的CMOS工艺单片机,DIP封装系列与8051为pin-to-pin引脚对引脚兼容。STC89系列单片机高速,低功耗,其程序写入时可通过串口采用STC-ISP.不占用用户资源,学习单片机时较好的

11、选择。2.2.1单片机主要特性(1) CPU:由运算和控制逻辑组成,同时还包括中断系统和局部外部特殊功能存放器。中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。(2) RAM:用于存放要读写的数据,如运算的中间结果、最终结果以及欲显示的数据。8051部有128个8位用户数据存储单元和128个专用存放器单元,它们是统一编址的,专用存放器只能用于存放控制指令数据,用户只能,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或

12、用户定义的字型表。(3) ROM:8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。(4) I/O口:四组8位并行I/O口(P0、 P1、P2和P3),既可用作输入,也可用作输出。(5) T/C定时/计数器:两个16位的可编程定时/计数器,既可以工作在定时模式,也可以工作在计数模式。(6) 5个中断源的中断控制系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。(7) 全双工串行口:一个全双工UART通用异步接收发送器的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;(8) 片

13、振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。2.2.2单片机引脚说明图2.2 STC89C52RC封装引脚图STC89C52RC的引脚封装和8051的引脚封装是一样的,均采用40Pin封装的双列直插DIP构造。下列图是它们的引脚配置,40个引脚中,Pin40为正电源,Pin20为地线;外置石英振荡器的时钟线Pin18和Pin19两根;4组8位共32个I/O口P0、P1、P2和P3,中断口线与P3口线复用。本设计只是实现简单的读写功能,不需要用到I/O口的第二功能。这里就不对单片机的引脚作出太详细的介绍,简单介绍一些专用引脚,其它引脚用到时再介绍。单片机

14、引脚封装如图2.2所示。(1) Pin9:RST复位信号复用脚,当STC89C52RC通电,时钟电路开场工作,在RST引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用存放器被清0。RST由高电平下降为低电平后,系统即从0000H地址开场执行程序。然而,初始复位不改变RAM包括工作存放器R0-R7的状态,STC89C52RC的初始态。STC89C52RC的复位方式可以是自动复位,也可以是手动复位按键电平复位和按键脉冲复位。此外,RST还是一个复引脚,Vcc掉电期间,此引脚可接上备用电源,以保证

15、单片机部RAM的数据不丧失。本设计采用的是手动复位电路:按键电平复位。复位电路如图2.3所示。图2.3 按键电平复位电路(2) Pin18、19:*TAL1和*TAL2时钟产生电路引脚,这里使用的石英晶体振荡频率为11.0592MHz。时钟振荡电路如图2.4所示。图2.4 时钟振荡电路(3) Pin29:当外部程序存储器时,此引脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。(4) Pin30:ALE/当外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而部程序存储器时,ALE端将有一个1/6时钟频率的正

16、脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。它还有一个特点是,当外部程序存储器时,ALE会跳过一个脉冲。(5) Pin31:/VPP程序存储器的外部选通线,对于STC89C52RC来说,置有8kB的程序存储器,当为高电平并且程序地址小于8kB时,读取部程序存储器指令数据,而超过8kB地址则读取外部指令数据。如为低电平,则不管地址大小,一律读取外部程序存储器指令。当使用到外部程序存储器时,要使用到一些特定功能的引脚,本设计中没有使用外部存储器。2.3 MA*232电平转换芯片当我们用STC-ISP.这个软件给STC89C52RC下载程序时,采用的是计算机串口RS-2

17、32电平:高 -12V 低+12V通信,所以计算机与单片机之间进展通信时需要电平转换芯片MA*232。MA*232含有两个RS-232发送驱动器和接收驱动器,其中发送器的输入为TTL/CMOS电平,输出为RS-232电平。MA*232接收器的输入为RS-232电平,输出为TTL/CMOS电平。不使用的输入输出端可以悬空。MA*232的工作温度围为0至70。MA*232的Pin14T1OUT引脚与串行口的2引脚连接,Pin13R1IN引脚与串行口的3引脚连接。Pin12R1OUT引脚和Pin11T1IN引脚分别与单片机的P3.0 /R*D串行输入口、P3.1 /T*D串行输出口)连接。这样单片机

18、所需要的程序就可以从计算机下载了。计算机与单片机通信如图2.5所示。图2.5 计算机与单片机通信连接图2.4 DS1302时钟芯片市场上可以选择的时钟芯片很多,功能也不尽一样,价格各异。DS13028 是美国DALLAS 公司推出的一种串行接口实时时钟芯片。芯片部具有可编程日历时钟和31个字节的静态RAM,它可以对年、月、日、星期、时、分、秒进展计时,日历时钟可自动进展闰年补偿,及时准确,接口简单,使用方便,工作电压围宽,功耗低,芯片自身还具有对备份电池进展涓流充电功能,可以有效地延长备份电池的使用寿命。DS1302引脚封装如图2.6所示。图2.6 DS1302封装引脚图DS1302时钟芯片的

19、引脚功能如下:(1) Pin1:Vcc2为主电源。(2) Pin8:Vcc1为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。(3) Pin2、3:*1、*2是振荡源,外接32.768kHz晶振。(4) Pin5:是复位/片选线,通过把输入驱动置高电平来启动所有的数据传送。输入有两种功能:首先,接通控制逻辑,允许地址/命令序列送入移位存放器;其次,提供终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化

20、,允许对DS1302进展操作。如果在传送过程中置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在v cc2.0V之前,必须保持低电平。只有在SCLK为低电平时,才能将置为高电平。(5) Pin6:I/O为串行数据输入输出端(双向),在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开场。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。(6) Pin7:SCLK为时钟输入端。DS1302与单片机连接图如图2.7所示,具体的读写操作在第3局部软件设计中介绍。 2.7(a)

21、 DS1302 2.7(b) 单片机图2.7 单片机与DS1302的连接引脚图2.5 DS18B20温度传感器温度是一个根本的物理量,自然界中的一切过程与温度密切相关。设计里参加DS18B20温度传感器可以使万年历的功能更齐全,可以随时了解温度的变化。DS18B20的封装引脚如图2.8和单片机与DS18B20的连接如图2.9。DS18B20温度传感器的I/ODQ引脚连接的是单片机的P3.3引脚。图2.8 DS18B20封装引脚图 图2.9 单片机与DS18B20的连接图DS18B20温度传感器是美国DALLS公司推出的DS1820的替代产品,其主要特性如下。(1) 适应电压围更宽,电压围:3.

22、05.5V,v cc为外接供电电源输入端,在寄生电源方式下可由数据线供电,GND为电源地。(2) 独特的单线接口方式,DS18B20在与单片机连接时仅需要一个引脚DQ即可实现微处理器与DS18B20的双向通讯。 (3) DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路。(4) 温围:55125,在-10+85时精度为0.5。(5) 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。(6) 负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。2.6 12864液晶在本设计中,

23、要显示阳历、阴历、星期、时间、生肖、温度及节日提醒,因此对显示器的要求较高。在这里我采用QC12864B汉字图形点阵液晶10作为显示模块,它可显示汉字及图形,置 8192 个中文汉字16*16 点阵、128 个字符8*16 点阵。可同时显示汉字个数为4*8=32个,同时显示字符的个数为4*16=64个。它与单片机连接如图2.10所示。图2.10 12864液晶引脚电路图在进展进展这个模块的设计时,考虑到12864液晶的显示方向,而单片机的P2引脚刚好与其它的引脚排列顺序相反可看图2.2,所以本设计中单片机与液晶进展数据传输时,用单片机的P2引脚与液晶的8位双向三态数据线DB0-DB7进展连接,

24、这样大大简化了线路的复杂度。2.7 独立按键本设计采用的4个独立按键,分别是:设置、确认、加、减。判断设置键是否按下及第几次按下可以分别对日期、时间、星期选定,然后按加、减即可进展设置,确认键按下后,新数据即写入时钟芯片。例如,设置键按1下,即可以对年份进展设置,按4下,即是可以对小时进展设置。其电路设计如图2.11所示。图2.11 时间设置电路3. 软件设计本设计利用软件进展程序的编写。C语言是一种编译型程序设计语言,它兼顾了许多种高级语言的特点,并且具备汇编语言的功能,C 语言可以像汇编语言一样对位、字节和地址进展操作。目前,使用C语言进展程序设计已经成为软件开发的一个主流。C语言程序本身

25、不依赖于机器硬件系统,根本上不作修改就可将程序从不同的单片机中移植过来。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改良、扩大和移植。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。虽然汇编语言效率高,对硬件的可操控性更强,体积小,但是不易维护,可移植性差。本设计程序实现了阳历日期、阴历日期、时间、星期、温度、节日提醒等功能。图3.1是主程序流程图。开场LCD、DS1302、DS18B20及相关变量初始化调液晶显示程序设置键是否按下 NY调用设置子程序刷新图3.1 主程序流程图3.1阳历与阴历转换阳历与阴历的转换,这局部程序是参考杜阳教师的程序,程序中总共有19

26、91901-2099年的阳历对应阴历数据。阳历对应的阴历数据每年占用单片机三字节格式:第一字节BIT7-4位表示闰月月份,为0,则无闰月;BIT3-0位对应阴历第1-4月的大小。第二字节BIT7-0位对应阴历第5-12月大小。第三字节BIT7位表示阴历第13月大小月分对应的位为1,表示农历月大30天为0表示小29天;第三字节BIT6-5位表示春节的阳历月份,BIT4-0位表示春节公历日期。例:阳历2021年对应阴历2021年数据为:0*0B,0*4A,0*43。0*0B和0*4A的二进制数表示为:00001011,01001010,这两个字节表示阴历2021年没有闰月,也就是没有第十三个月。一

27、,三,四,六,九,十一月都是月大30天,其它都是月小29天。0*43的二进制数表示为:01000011,这里的BIT6-5位为102位可表示4个月,表示阴历2021年的春节在阳历2021年的2月份。BIT4-0位为0001100000-11111,5位最大数为31,表示3日。整个字节就表示阴历2021年的春节在阳历2021年的2月3日。3.2 DS1302时钟芯片程序设计在本设计中,要实现万年历的功能,DS1302时钟芯片是少不得的,虽然只用单片机也可以实现,但是将会造成时间误差较大,不好调节。用DS1302时钟芯片不仅可以大大的防止那样的问题,还可以减小程序的编写量。这个模块是本设计中是很重

28、要的模块。如图3.2是DS1302时钟芯片工作的流程图。开场相关变量初始化DS1302去保护复位端产生一个高电平复位端产生一个高电平写DS1302地址写DS1302地址延时一段时间延时一段时间向该地址写数据将该地址数据读出地址增加地址增加数据写完否数据读完否 NNYY显示数据图3.2 DS1302时钟芯片工作流程图通过流程图我们对DS1302时钟芯片是如何工作的有了个大概的了解,现在进一步了解DS1302时钟芯片关于日历、时间的存储器,先看表3.1。表3.1 读写存放器地址读存放器写存放器bit7 bit6bit5bit4bit3bit2bit1bit0 围81H80HCH10秒秒005983

29、H82H10分分005985H84H 1/0 010时时112/ 023AM/PM87H86H0010日日13189H88H00010月月1128BH8AH00000星期178DH8CH10年年0998FH8EH WP 0000000由表可以看出存放秒到年的7个存放器的地址是固定且有规律的。写存放器都是偶数80H8Ch,读存放器都是奇数81H8Ch,存放的数据格式为BCD码形式。秒存放器写80H、读81H的bit7位定义为时钟暂停标志CH当该位置为1时,时钟振荡器停顿,DS1302时钟芯片处于低功耗状态,为0时,时钟开场运行。时存放器写84H、读85H的bit7位为1时,DS1302时钟芯片运

30、行于12小时模式,bit7位为0时,DS1302时钟芯片运行于24小时模式本设计是24小时模式。当运行于12小时模式时,bit5位为0时,表示AM,bit5位为1时,表示PM。当运行于24小时模式时,bit5位和bit4位一起表示24小时的10位。控制存放器写8EH、读8FH的bit7位是写保护位WP,其它7位均置0,在任何的对时钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一存放器的写操作。也就是说在电路上电的初始态WP为1,这时不能改写表中任何一个时间存放器,只有将WP改写为0,才能进展存放器的写操作。3.4 12864液晶显示程序设计下面先看一下12864液晶并

31、行连接的读写时序:LCD的写时序:RS引脚有H高L低两种状态,RS=H时,单片机将进展写数据操作;RS=L时,单片机将进展写指令操作。R/W引脚要与RS的状态结合,具体操作看表3.2,R/W在这里不管RS是上下都是进展写操作。E引脚为使能信号,E=HL时,配合R/W进展写数据或指令;E=H时,配合R/W进展读数据或读指令。程序操作时注意延时,延时的大小很重要。LCD的读时序:读时序与写时序差不多,区别是R/W在读操作时是拉高的,与写操作相反,其它都一样。同样要注意延时。12864液晶与单片机通信时,可以采用串行数据通信和并行数据通信,我这里将液晶的DB0DB7引脚对应的接上单片机的P2.0P2

32、.7引脚,因此采用的是并行数据通信。局部根本指令介绍见表3.2。表3.2 局部根本指令介绍RSR/WDB7DB6DB5DB4DB3DB2DB1DB0去除显示LLLLLLLLLH显示状态LLLLLLHDCB写RAMHLD7D6D5D4D3D2D1D0读RAMHHD7D6D5D4D3D2D1D0读忙状态LHBFAC6AC5AC4AC3AC2AC1AC0表中的RS=H表示DB0-DB7为显示数据,RS=L表示DB0-DB7为显示指令数据。R/W=H且E使能信号=H表示数据被读到DB0-DB7,RW=L且E=HL表示DB0-DB7的数据被写到RAM。DB0-DB7表示数据口。H表示高电平,L表示低电平

33、。(1) 去除显示功能:去除显示屏幕,把DDRAM位地址计数器调整为00H。(2) 显示状态功能:D=1表示整体显示开ON,C=1表示游标开,B=1表示游标位置开。(3) 写RAM写资料到RAM功能:写资料到部的RAM。DDRAM/CGRAM/TRAM/GDRAM。(4) 读RAM读出RAM的值功能:从部RAM读取资料DDRAM/CGRAM/TRAM/GDRAM。(5) 读忙状态读取忙碌状态和位址功能:读取忙碌状态BF可以确认部动作是否完成,同时可以读出位址计数器AC的值。字符显示RAM在液晶模块中的地址为80H9FH,字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如

34、下表3.3所示。表3.3 RAM地址与显示区域对应关系80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH总结:本设计在进展Proteus软件仿真时,没有成功,因为Proteus软件的元件库里没有带中文字库的液晶,要想成功仿真,需要对程序进展大围的修改,最终决定放弃Proteus软件仿真,直接采用硬件进展调试。硬件的线路设计和元件组装都花了较长的时间,虽然以前也焊接过一些东西,但不能说那就是有经历。以前焊接的东西都是有现成的电路板,只是把元件对应的组装起来

35、就根本没问题了。在本设计中,并没有现成的电路板,而是用万能板自己搭线组装。在整个硬件焊接到一半时,才发现将液晶屏的引脚弄反了,只能进展修改。在进展程序调试时,一些大问题比拟容易找出并改正,而一些小的问题就比拟麻烦,因此一定要注意细小的问题。本设计总体最终实现了阳历及阴历的日期显示、时间、星期、温度的显示,独立按键调节时间、日期、星期等功能。本设计整个过程还算顺利,没出现太大的问题,缺乏的地方是没有整点报时和闹铃的功能。参考文献1郁正.单片机原理及应用.:大学,2003.9.2王怀平,王仁波,胡开明.Proteus仿真设计基于单片机AT89C51的电子万年历J.科技广场,2021,10:197-

36、198.3永雄,沙河.电子线路CAD实用教程第三版.:电子科技大学,2007.72021.8重印.4谭浩强.C程序设计第三版.:清华大学,20052007重印.5日晶体管技术编辑部编,洋等译,宗光华校.电子技术:原理制作实验.:科学,2005.6全利,肖兴达.单片机原理及应用教程第二版.:机械工业,2007.7.7雷伏容,小林,浩.51单片机常用模块设计查询手册.:清华大学,2021.01.8肖炎根,舒望.基于实时时钟芯片的电子万年历的设计J.电子技术,2007,Z3:91-94.9畅生,宣宗强,雷振亚等.传感器简明手册及应用电路温度传感器分册上册.:电子科技大学,2005.11.10宏,家田

37、.液晶显示器件应用技术.:机械工业,2004.2.11德全.可调家用万年历的单片机原理J.师学院报,2021,03:95-98.12志海、连鑫.单片微型计算机原理及应用.机械工业,2007.1.13育才、雷思孝.单片机系统设计及工程应用.电子科技大学,2005.5.14珍、付植桐.单片机原理与应用技术.清华大学大学,2004.2. 15红卫.基于单片机的智能系统设计与实现.电子工业,2005.9.答 在这里我要首先感我的指导教师胡蓉教师,本设计在王教师的悉心指导下完成的。从选题到设计完成王教师都是严格要求,帮助我解决各种难题。王教师对学术的严谨和精益求精的工作作风给我留下了深刻的印象,受益匪浅

38、。其次我要感在大学时间里教我专业课和帮助过我的所有教师,没有教师们教的专业知识,我想完成这设计是不可能的。对于单片机的应用,开场时对于一些细节性的东西只是一些模糊概念.通过此次设计,加深了理解,并通过查阅大量资料,对于一些概念仔细阅读与理解,同时也对过去学过的知识进展了重新稳固.并通过了解单片机与采集系统的开展前景,对于未来信息技术的开展有了大致的了解.同时在在制作此设计时还需了解一些其他从未接触过的概念,通过不断的努力和认真的研读,更加锻炼了自我的自学能力,对自己的学习能力有了进一步提高.但同时同过设计,也发现了自身的缺乏,如对过去学过的知识遗忘过快,而且不能有效的把所有学过的知识融合在一起

39、,对于过去所学的知识理解的不够透彻.今后仍需加深学习.加强自己的综合学习能力.感12电信班的同学三年来对我学习、生活的关心和帮助。最后,向我的父亲、母亲、致,感他们对我的理解与支持。附录一万年历硬件电路原理图:附录二*include*includelcd1602.h*includeds1302.h*includeds18b20.h*define uint unsigned int*define uchar unsigned charuint b6;/年、月、日、时、分、秒uchar code row1=2021-01-01;uchar code row2=00:00:00;uchar year

40、112=31,28,31,30,31,30,31,31,30,31,30,31;/平年uchar year212=31,29,31,30,31,30,31,31,30,31,30,31;/润年uchar j6=0*85,0*88,0*8b,0*84+0*40,0*87+0*40,0*8a+0*40;/LCD地址uchar i,k,jj=0,w,clock=0,bigclock=0,c=0,num;/i循环数,k温度缓存,jj地址位uint temp;sbit b1=P30;/设置sbit b2=P31;/上调sbit b3=P32;/下调sbit b4=P33;/转换sbit b5=P34;/

41、闹钟sbit speaker=P35;lcdscan()for(i=0;i6;i+) lcdwrite(ji);lcdshuju(a11-i*2+0*30);lcdwrite(ji+0*01);lcdshuju(a10-i*2+0*30);void key()if(b1=0) dsaddshuju(0*80,(a14)+a0+0*80);while(b1=0)for(i=0;iyear2b1-1)b2=1;else if(b2year1b1-1)b2=1;if(b1=13)b1=1;if(b0=100)b0=0;if(b3=0)delay(3);bjj-;if(b5=-1)b5=59;if(b

42、4=-1)b4=59;if(b3=-1)b3=23;if(b0%4=0&b0%100!=0) | b0%400=0)if(b2=0)b2=year2b1-1;else if(b2=0)b2=year1b1-1;if(b1=0)b1=12;if(b0=-1)b0=99;for(i=0;i6;i+) a11-i*2+clock=bi/10;a10-i*2+clock=bi%10;lcdwrite(jjj);lcdshuju(0);lcdwrite(jjj+1);lcdshuju(0);delay(200);lcdwrite(jjj);lcdshuju(a11-2*jj+clock+0*30);lc

43、dwrite(jjj+1);lcdshuju(a10-2*jj+clock+0*30);delay(200);if(b1=1) dsaddshuju(0*80,(a14)+a0);dson();if(b5=0)clock=12;void main()speaker=0;lcdrw=0;dson();lcdon();lcdwrite(0*83);for(i=0;i10;i+)lcdshuju(row1i);delay(1);lcdwrite(0*84+0*40);for(i=0;i8;i+)lcdshuju(row2i);delay(1);dsrst=0;dssclk=0;while(1)for

44、(i=0;i4)&0*0f;dsrst=1;dswrite(0*8d);k=dsread();dsrst=0;a10=k&0*0f;a11=(k4)&0*0f;delay(100);lcdscan();key();if(b5=0)for(i=0;i12;i+)if(ai+12=ai)num+;if(num=12)bigclock=1;else num=0;lcdwrite(0*8e);lcdshuju(&);else lcdwrite(0*8e);lcdshuju(0*00);if(bigclock=1) speaker=1;c+;if(c=100)bigclock=0;speaker=0;t

45、emp=readtemperature();/temp是uint型的。不然会出现温度到25后回00的现象。可能是由于十六进制与十进制的差异。lcdwrite(0*8d+0*40);lcdshuju(temp/100+0*30);lcdwrite(0*8e+0*40);lcdshuju(temp/10%10+0*30);子程序:LCM1602头文件:*include*define uint unsigned int*define uchar unsigned charsbit lcdrs=P00;sbit lcdrw=P01;sbit lcden=P02;void delay(uint z) uint *,y; for(*=z;*0;*-) for(y=110;y0;y-);/1毫秒左右延时/lcdwrite() LCD写指令void lcdwrite(uchar write)lcdrs=0;P1=write;delay(1);lcden=1;delay(1);lcden=0;/lcdshuju() LCD写数据void lcdshuju(uchar shuju)lcdrs=1;P1=shuju;delay(1);lcden=1;delay(1);lcden=0;/lcd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论