毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc

上传人:laozhun 文档编号:4149755 上传时间:2023-04-07 格式:DOC 页数:47 大小:917.50KB
返回 下载 相关 举报
毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc_第1页
第1页 / 共47页
毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc_第2页
第2页 / 共47页
毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc_第3页
第3页 / 共47页
毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc_第4页
第4页 / 共47页
毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Proteus的单片机实时时钟的仿真设计.doc(47页珍藏版)》请在三一办公上搜索。

1、毕业设计论文作者 学号 系部 专业 题目 基于Proteus的单片机实时时钟的仿真设计 指导教师 评阅教师 完成时间: 毕业设计论文中文摘要(题目):基于Proteus的单片机实时时钟的仿真设计摘要:本设计论述的是一个基于Proteus技术的单片机的实时时钟仿真系统的实现。使用了Proteus软件技术和Keilc软件进行仿真和调试,最终实现日常的时钟显示,它还可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,同时具有时钟调整、闹钟等功能。本电子时钟设计首要的工作是结合以往所学的单片机程序编写理论和编写规则来编写电子时钟的软件部分,编写时要结合所配的STM8S105芯片的管脚功能和其

2、他硬件电路,如DS1302时钟芯片和LCD1602液晶显示屏,该部分运用STVD单片机软件来完成。在编写完软件并检测完正确后用仿真硬件检测运行检测程序是否正确,并调试。待这一切工作做好后再利用系统板硬件电路来实践实现软件功能与硬件的结合。并应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。关键词:Proteus 实时时钟 单片机 仿真毕业设计论文外文摘要(Title) : based on single chip Proteus design simulation of real-time clockAbstract: this p

3、aper based on the design of a single chip Proteus technology of the realization of the simulation system for real-time clock. USES the Proteus software technology and Keilc software simulation and debugging, finally realizes the daily the clock display, it can also on year, month, day, Sunday, when,

4、 minutes and seconds for timing, have a leap year compensation function, also has the clock adjustment, alarm clock, and other functions.This electronic clock design first work is to combine the microcontroller programming learned ever write rules to write theory and the software parts, electronic c

5、lock to write on the match when STM8S105 chip tube foot function and other hardware circuit, such as DS1302 clock chip and LCD1602 LCD screen, this part utilization STVD single-chip microcomputer software to complete. In writing the software and finished with simulation test after right hardware det

6、ection operation test procedure is correct, and debugging. Unto all this work done reuse the system board hardware circuit to practice realize the combination of hardware and software functions. And the application of ISIS software realize the Proteus microcontroller electronic clock system design a

7、nd simulation. This method simulation effect true, accurate, save the hardware resources.Keywords: Proteus real-time clock single-chip microcomputer simulation目录1引言12设计思路和功能描述13硬件原理分析14Proteus简介24.1该软件的特点:24.2 如何进入Proteus ISIS34.3工作界面4Keilc与Proteus连接调试45基本原理55.1 ISIS软件的主要特性有56硬件电路设计与实现67主要芯片、元器件简介77

8、.1 DS130277.1.1 DS1302的主要特性77.1.2 主要功能87.2 AT89C51单片机87.2.1.主要特性97.2.2.管脚说明107.2.3.振荡器特性127.2.4.芯片擦除127.3 LCD1602液晶屏显示电路128软件设计设计159系统仿真分析31结论34致谢35参考文献:351引言单片微型计算机,简称单片机,又称微控制器。单片机作为微型计算机家族的一员,以独特的结构和优点,越来越深受各个应用领域的关注和重视,应用十分广泛,发展极快。单片机技术应用于各行各业,是一种实用的智能型控制技术,单片机技术的发展极大地推动了电子、通信、计算机、机电一体化等行业的快速发展,

9、成为当前教学和科研的热门技术。单片机电子时钟系统可以用多种技术手段实现。本文借助于Proteus仿真系统进行系统虚拟开发成功之后再进行实际操作,可以节约开发时间,降低开发成本,具有很大的灵活性和可扩展性。在国外有包括斯坦福、剑桥等在内的几千家高校将Proteus作为电子工程学位的教学和实验平台;在国内也有众多大学正在体验Proteus的独一无二的功能并申报大学计划。该方法具有普遍意义。通过实际应用发现,采用该方法可以大大简化硬件电路测试和系统调试过程中电路板制作、元器件安装、焊接等过程。很明显,使用该方法可以提高开发效率、降低开发成本、提升开发速度,对单片机系统开发具有指导意义。2设计思路和功

10、能描述整体设计任务:本电子时钟设计首要的工作是结合以往所学的单片机程序编写理论和编写规则来编写电子时钟的软件部分,编写时要结合所配的STM8S105芯片的管脚功能和其他硬件电路,如DS1302时钟芯片和LCD1602液晶显示屏,该部分运用STVD单片机软件来完成。在编写完软件并检测完正确后用仿真硬件检测运行检测程序是否正确,并调试。待这一切工作做好后再利用系统板硬件电路来实践实现软件功能与硬件的结合。3硬件原理分析电路设计分析电路原理设计是基于小系统包括电源电路、复位电路、按键电路、时钟电路、LCD液晶显示驱动电路、输出控制电路。电源部分是用直流电源经变压来提供的5V,晶体振荡器采用的是16M

11、Hz的石英晶体振荡器。部分硬件设计:(1)本设计采用DS1302实时时钟芯片来进行计时,并将1302的数据输入单片机进行处理,送入LCD1602液晶显示屏进行显示。(2)用四个电位按键来实现对电子时钟的调试工作,当按第一下总控键时进入中断程序,即时钟的调整状态,有两个电位按键分别来调整时钟的加和减;第四个按键用来调整时分秒日月年,按一下调整秒,连按两下调整分,按三下调整时,四下调整日,五下调整月,六下调整年,七下退出时间设置。(3)用一个按键和其他部件组成的复位电路与芯片连接来实现整个程序及硬件的重新复位功能。4Proteus简介Proteus是目前最先进的单片机CPU和外围电路仿真工具之一。

12、本文介绍了单片机仿真软件Proteus的特点,并结合实时时钟电路的实例详细介绍了使用Proteus进行电路设计与仿真的过程及方法,旨在为单片机爱好者和技术人员提供了一个很好的学习平台。ProteusISIS是英国Lacenterelec-tronics公司开发的电路分析与实物仿真软件,应用范围十分广泛,涉及PCB制版、Spice电路仿真、单片机仿真以及对ARM7/LPC2000的仿真。Proteus主要由ARESISIS两大模块构成,ARES主要用于印刷电路板(PCB)的设计及其电路仿真,ISIS主要用于原理图的设计并仿真。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟

13、器件和集成电路。 4.1该软件的特点:1.实现了单片机仿真和SPI CE电路仿真相结合。具有模拟电路仿真,数字电路仿真。单片机及其外围电路组成的系统的仿真。有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。2.支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、805l系列。AVR系列、ARM系列、PICl2系列、PICl6系列、PICl8系列、Z80系列、HCl1系列以及各种外围芯片。3.提供软件调试功能。该软件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,同时支持第三方的软件编译和调试环境,如Keil C5l uVision2等软件

14、。4.具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本文介绍Proteus ISIS软件的工作环境和一些基本操作。4.2 如何进入Proteus ISIS双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional” “ISIS 6 Professional”,出现如图1所示屏幕,表明进入Proteus ISIS集成环境。图1 启动时的屏幕4.3工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图2所示。包括:标题栏、主菜单、标准工具栏、绘

15、图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图2 Proteus ISIS的工作界面Keilc与Proteus连接调试1.假若Keilc与Proteus均已正确安装在C:Program Files的目录里; 2.安装Keilc与Proteus的连接插件vdmagdi.exe;3.进入Keilc Vision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51)。并为该项目加入Keilc源程序。下面以单片机实时时钟电路为例,介绍使用Proteus进行单片机实时

16、时钟电路设计与仿真的过程。5基本原理单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试3个过程。软件调试一般比较容易进行,但如果要进行硬件电路测试和系统调试则比较麻烦,因为要进行这两个过程必须在电路板设计制作完成、元器件焊接完毕之后进行。而电路板的制作、元器件的安装、焊接是费时费力的,如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。Proteus软件是来自英国 Labcenter electronics公司的EDA工具软Proteus软件有十多年的历史,在全球广泛使用,除

17、了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus为我们建立了完备的电子设计开发环境。Proteus软件由ISIS和ARES两个软件构成,其中ISIS是原理图编辑与仿真软件,ARES是布线编辑软件。这里主要介绍ISIS软件。5.1 ISIS软件的主要特性有1 可以仿真、分析各种模拟器件和集成电路,其最大的特点是可以

18、支持许多型号的单片机仿真,该软件的单片机仿真库里有5l系列、PIC系列、AVR系列、摩托罗拉的68MHll系列等,Proteus的仿真是基于SPI CE3F5的,因此它也能像其他的EDA软件那样进行电路分析,如模拟分析、数字仿真、混合信号分析、频率分析等。2 提供了虚拟示波器、逻辑分析仪、信号发生器、计数器、电表、虚拟终端等虚拟仪器仪表供选用。3 能够进行原理图(SCH)的设计。4 能和Keilc等软件整合使用,以求达到更好的仿真效果。6硬件电路设计与实现以单片机电子时钟系统为例,介绍使用Proteus进行单片机电子时钟系统设计与仿真的过程。这里使用的是Proteus 6 Demo版本。该电子

19、时钟系统硬件主要由AT89C51单片机、时钟芯片DS1302、LCD1602等元器件组成。系统原理图如图1所示。和Protel,EWB等软件相似,绘制原理图都要先从器件库里取出所需的元件并在绘图区布局好,同时编辑元件的参数,接着进行连线,添加必要的网络标识等步骤。运行Proteus的ISIS后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的component。按钮,接着再点击窗口左侧的元器件选择区的Pick Divices。按钮,弹出如图2所示的Pick Devices窗口,再在Category栏里点击Microprocessor ICs项后,在Results栏里会出现各种类型的CPU

20、器件,找到AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了。用同样的方法依次把DS1302、LCD1602、数码管、晶振以及多个电阻、电容也添加到器件列表区里。然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针就会出现一个“”提示符号,点击鼠标左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的Intersheet Terminal。按钮,添加上电源和接地符号,原理图的绘制就完成了。最后,保存设计文件于C:

21、Labcenter ElectronicsProteus 6Demonstrationeclock文件夹,文件名为eclockDSN。7主要芯片、元器件简介7.1 DS1302DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚

22、,同时提供了对后背电源进行涓细电流充电的能力。DS1302的引脚排列中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的

23、数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 7.1.1 DS1302的主要特性引脚排列图3 DS1302引脚排列图DS1302的引脚排列如图所示,各引脚的功能如下: X1,X232768Hz晶振引脚端; RST复位端; I/O数据输入/输出端; SCLK串行时钟端; GND地; VCC2,VCC1主电源与后备电源引脚端。 7.1.2 主

24、要功能DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器、实时时钟电路以及用于高速暂存的31字节RAM。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在作用于SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现的。7.2 AT89C51单片机 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and

25、Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图4 AT89系列芯片7.2.1.主要特性与MCS-51 兼容 4K字节可编程

26、闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 7.2.2.管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内

27、部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当

28、对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(

29、记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE

30、只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作

31、电路的输入。XTAL2:来自反向振荡器的输出。7.2.3.振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。7.2.4.芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以

32、在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。7.3 LCD1602液晶屏显示电路1602是一种字符型液晶显示模块,专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以某公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图图5 1602液晶实物图1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比

33、不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图图6 LCD背光和不背光尺寸差别1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电

34、平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极输出控制电路将PB口用于单片机和LCD显示器的数据传输通道,如下图所示,通过控制LCD的读写控制端将1302的数据显示出来。图7 整体布局8软件设计设计1、地址空间及端口分配_Bool rs PC_ODR:1; /PC作为LCD的控制端,设置为输入_Bool rw PC_ODR:2;_Bool en PC_ODR:3;_Bool sclk PA_ODR:4; /串行时钟,输入输出控制_

35、Bool dio PA_ODR:5; /三线接口时的数据线_Bool id PA_IDR:5;_Bool ce PA_ODR:6; /作为复位端口_Bool ID1 PG_IDR:0; /将PD6引脚设置为外部中断的输入引脚2、总体架构说明该时钟程序设计思路如下:(1)、在程序头将设计中的一些IO口进行分配并注释。(2)、初始化程序,对单片机的IO口设置为输入输出等,对1302,1602的参数进行设置,如设定时钟运行为24小时制;将一些未到时钟设计功能的功能端口关闭等。(3)开始主程序进行程序扫描,先扫初始化字子程序初始化DS1302和LCD1602,启动时钟芯片进行计时,初始化1602的显示

36、方式,将分配好的时分秒等数字调入到显示子程序中。显示子程序通过分配的空间对应口将DS1302时钟芯片的数据显示相应的时分秒,年月日等。进入按键扫描,判断按键是否有变动,若有就根据设计程序对相应的按键按入次数而进行实现相应的功能。如进入时间调整,中断进入、退出等。最后返回主程序头重新依次扫描。显示过程设有消隐,按键通过软件去斗。(4)、子程序部分。在主程序的调用下依据不同的子程序工能而编写子程序,有多级嵌套。这些子程序包括显示子程序、延时子程序、时间计数子程序、按键处理子程序、调时间子程序等。3、各子程序功能显示子程序:将时钟芯片1302内的时钟数据送入单片机进行处理再送入LCD1602内进行显

37、示,显示格式为:年/月/日/时/分/秒/星期。延时子程序:该子程序是为了实现1302及1602在读写过程中的上升下降沿让芯片有足够的读写时间,以及字符有足够的显示时间,同时作为按键开关扫描去抖的延迟时间。时间计数子程序:该程序功能是调动DS1302的初始化程序、读写程序,并将其内部数据送入单片机内进行处理。DS1302选择24小时工作方式,秒计数,走到59后进位分,后变00从新开始计时,分走到59后进位时,分从新开始00计时,时走到23,分走到59,秒走到59后进入从新日期周期计时。按键处理子程序:该程序进行按键处理的功能判断分别对时分秒、年月日等进行调整已经中断的进入与退出等。4、程序清单#

38、include stm8s105C_S.huchar n1,n2,n3;uchar u0,u1,u2,u3;uchar table=20 - - ; uchar table1= : : ;uchar table2=0,1,2,3,4,5,6,7,8,9;uchar table3=MonTueWedThuFriSatSun;uchar table4= Happy birthday ; /16个字符uchar table5=;#define uint unsigned int #define uchar unsigned char #define PB PB_ODR#define Write_se

39、cond 0X80 /秒写寄存器地址#define Write_minute 0X82/分写寄存器地址#define Write_hour 0X84/时写寄存器地址#define Write_day 0X86/日写寄存器地址#define Write_month 0X88/月写寄存器地址#define Write_week 0X8A/周写寄存器地址#define Write_year 0X8C/年写寄存器地址#define Write_protect 0X8E/写保护字节写寄存器地址#define Write_chongdian 0x90 /慢充电寄存器地址#define Read_secon

40、d 0X81/秒读寄存器地址#define Read_minute 0X83/分读寄存器地址#define Read_hour 0X85/时读寄存器地址#define Read_day 0X87/日读寄存器地址#define Read_month 0X89/月读寄存器地址#define Read_week 0X8B/周读寄存器地址#define Read_year 0X8D/年读寄存器地址_Bool rs PC_ODR:1; /pc作为lcd的控制端,设置为输入_Bool rw PC_ODR:2;_Bool en PC_ODR:3;_Bool sclk PA_ODR:4; /串行时钟,输入输出

41、控制_Bool dio PA_ODR:5; /三线接口时的数据线_Bool id PA_IDR:5;_Bool ce PA_ODR:6; /复位_Bool da_od PA_DDR:5;_Bool da_CR1 PA_CR1:5;_Bool da_CR2 PA_CR2:5;_Bool ID1 PG_IDR:0; /将Pd6引脚设置我外部中断的输入引脚_Bool ID2 PD_IDR:5;_Bool ID3 PG_IDR:1;_Bool ID4 PD_IDR:6;/键盘的输入/shfm_key(void) uchar lshi;uchar an=0,n=0;doif(!ID1)delay(6);

42、if(!ID1)while(!ID1);lshi=1;an+;if(an=1)Write_ds1302(Write_second,0x80); /先暂停时钟秒u2=Read_ds1302(Read_second );u2=(u2&0x70)4)*10+(u2&0x0F);write_sfm(6,u2); lcd_wcom(0x80+0x40+7);lcd_wcom(0x38);lcd_wcom(0x0f); /显示功能开,有光标if(an=2)u1=Read_ds1302(Read_minute);u1=(u1&0x70)4)*10+(u1&0x0F);write_sfm(3,u1); lcd

43、_wcom(0x80+0x40+4); /显示分lcd_wcom(0x38);lcd_wcom(0x0f); /显示功能开,有光标if(an=3)u0=Read_ds1302(Read_hour);u0=(u0&0x70)4)*10+(u0&0x0F);write_sfm(0,u0); lcd_wcom(0x80+0x40+1); /显示时lcd_wcom(0x38);lcd_wcom(0x0f); /显示功能开,有光标if(an=4)n3=Read_ds1302(Read_day);n3=(n3&0x70)4)*10+(n3&0x0F);write_sfm1(8,n3); lcd_wcom(

44、0x80+9); /显示日lcd_wcom(0x38);lcd_wcom(0x0f); /显示功能开,有光标if(an=5)n2=Read_ds1302(Read_month);n2=(n2&0x70)4)*10+(n2&0x0F);write_sfm1(5,n2); lcd_wcom(0x80+6); /显示月lcd_wcom(0x38);lcd_wcom(0x0f); /显示功能开,有光标 if(an=6)n1=Read_ds1302(Read_year);n1=(n1&0x70)4)*10+(n1&0x0F);write_sfm1(2,n1); lcd_wcom(0x80+3); /显示

45、年lcd_wcom(0x38);lcd_wcom(0x0f); /显示功能开,有光标if(an=7)lshi=0;an=0;Write_ds1302(Write_second,0x00); /从新开启时钟lcd_wcom(0x38);lcd_wcom(0x0c);n=1; switch(an)case1:if(ID2=0)delay(4);if(ID2=0) while(!ID2);_asm(NOP);jia_key(Write_second,Read_second,6,1);_asm(NOP);if(ID3=0) /秒的减 delay(4);if(ID3=0) while(!ID3);_asm(NOP);jia_key(Write_second,Read

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号