电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档).doc_第1页
电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档).doc_第2页
电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档).doc_第3页
电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档).doc_第4页
电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档).doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

湖南人文科技学院课程设计报告课程名称:单片机原理及应用课程设计设计题目: 电子时钟的设计 系 别: 通信与控制工程系 专 业: 通信工程 班 级: 09级通信二班 学生姓名: 袁 琦 黄文付 学 号: 09416230 09416227 起止日期: 2011年12月20日2011年12月30日指导教师: 王善伟 姚毅 谢四莲 教研室主任: 刘建闽 1指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩袁琦黄文付1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见: 主任签字: 年 月 日摘 要时钟是人类日常生活必不可少的工具,本设计从日常生活中常见的事物入手,通过对电子时钟的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们对未知科学领域的探索。本文利用单片机实现数字时钟计时功能的主要内容。它体积小,成本低、功能强、使用方便、可靠性高等一系列优点,广泛应用于智能产业和工业自动化上。本次设计采用独立式按键进行时间调整,其中STC89C52是核心元件,同时采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外利用DS1302具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。关键词:STC89C52 ; LED数码管;8255芯片;DS1302芯片;目录设计要求11方案论证与对比11.1方案一11.2方案二21.3方案对比22系统硬件电路的设计32.1单片机的选择及引脚功能介绍32.2 8255A芯片的结构及引脚功能介绍42.3 DS1302芯片的结构及引脚功能介绍62.4显示电路设计72.5电源电路设计82.6键盘动态扫描电路设计83控制系统的软件设计103.1主程序流程图103.2显示子程序113.3闹钟时间设定功能程序113.4键盘扫描程序124系统功能调试与整体指标134.1硬件调试与分析134.2软件调试与分析144.3性能分析145详细仪器清单146总结与思考及致谢15参考文献16附录一:程序(方案一)17附录二:程序(方案二)25电子时钟的设计设计要求利用单片机作为控制核心,完成一个时钟计时器。具体要求如下:(1)采用6位LED数码显示时、分、秒。(2)时制式为24小时制。(3)使用按键开关可实现时、分调整。(4)秒表/时钟功能转换。(5)定时设定提醒的功能。(6)整点提醒(蜂鸣)。(7)DS1302设时,对时,掉电记忆时间的功能。1方案论证与对比1.1方案一此方案采用单片机内部定时器T0进行计时,STC89S52实时控制。如图1所示:图 1 方案一系统方框图1.2方案二此方案采用专用时钟芯片DS1302精确计时,单片机STC89C52实时读取时钟显示至6位数码管。如图2所示:图 2 方案二系统方框图1.3方案对比以上方案中,方案一设计简洁,编程比较简单,计时精度不高,准确性不能完全保证。虽硬件简洁、成本更低廉、便于实现,绿色环保,编程简单易写,不能达到提高同学们编程的能力和对单片机及其扩展芯片的学习和深程度的去了解单片机及其更广泛的应用,故在此我们选择挑战,放弃对其选择。虽然我们对其进行了放弃,但我们也把此方法的程序写好以便进行对比。方案二与方案一相比,编程比较复杂,计时精度较高,而且可以灵活运用,可扩展性好,并能充分的利用单片机的有效资源。还可让我们培养我们的自学能力,自己去发掘单片机内部结构及其扩展功能,自己去学会怎样对其他芯片控制的学习方法,使得课程设计具有一定的挑战性,正因如此,故我们选择方案二。2系统硬件电路的设计2.1单片机的选择及引脚功能介绍STC89C52具有如下特点:40个引脚(引脚图如图四所示),4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,STC89C52RC设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。图4 STC89C52芯片引脚图引脚功能介绍:VCC(40):5V; GND(20):接地; P0口(3932):P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流; P1口(18):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流; P2口(2128):P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流; P3口(1017):P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口; RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间; ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲; PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现; EA/VPP(31):当EA保持低电平时,外部程序存储器地址为(0000HFFFFH)不管是否有内部程序存储器。FLASH编程期间,此引脚也用于施加12V编程电源(VPP); XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入;XTAL2(18):来自反向振荡器的输出。2.2 8255A芯片的结构及引脚功能介绍8255A芯片是Intel公司生产的通用可编程并行接口电路,广泛应用于单片机扩展并行I/O口。它具有8个位并行口PA、PB和PC。8255A芯片的内部结构及引脚如图5所示。(1)8255A的内部结构8255A的内部结构有以下几部分组成:a.并行I/O端口A、B、C 8255A的内部有3个8位并行I/O口:A口、B口、C口。3个I/O口都可以通过编程选择为输入口或输出口,但在结构和功能上有所不同。A口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器。B口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。C口:含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。当数据传送不需要联络信号时,这3个端口都可以用作输入口或输出口。当A口B口需要有联络信号时,C口可以作为A口和B口的联络信号线。b.工作方式控制电路:8255A的三个端口在使用使可分为A、B两组。A组包括A口8位和C口高4位:B组包括B口8位和C口低4位。两组的控制电路中分别有控制寄存器,根据写入的控制字决定两组的工作方式,也可对C口每一位置“1” 或清“0”。c.数据总线缓冲器:数据总线缓冲器是三态双向的8位缓冲器,是8255A与单片机数据总线的接口,8255A的D0D7可以和AT89C51单片机的P0.0P0.7直接相连。数据的输入输出、控制字和状态信息的传递,均可通过数据总线缓冲器进行。d.读/写控制逻辑:8255A读/写控制逻辑的作用是从CPU的地址和控制总线上接受有关信号,转变成各种控制命令送到数据缓冲器及A组和B组的控制电路,控制A、B、C3个端口的操作。其引脚图如图5所示:图5 8255引脚图引脚功能介绍:8255A共有40个引脚,一般为双列直插DIP封装,40个引脚可分为与CPU连接的数据线、地址和控制信号以及与外围设备连接的三个端口线。D0D7:双向三态数据总线。RESET:复位信号,输入,高电平有效。复位后,控制寄存器清0,A口、B口、C口被置为输入方式。CS:片选信号,输入,低电平有效。RD.:读信号,输入,低电平有效。有效时,允许CPU通过8255A D0D7读取数据或状态信息。WR.:写信号,输入,低电平有效。有效时,允许A1A0:端口控制信号,输入。2位可构成四种状态,分别寻址A口、B口、C口和控制寄存器PA0PA7:A口数据线,双向。PB0PB7:B口数据线,双向。PC0PC7:C口数据/信号线,双向。当8255A工作于方式0时,PC0PC7分为两组(每组4位)并行I/O数据线;当8255A工作于方式1或方式2时,PC0PC7为A口、B口提供联络信号。2.3 DS1302芯片的结构及引脚功能介绍 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。(1)DS1302的引脚功能及结构 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为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 DS1302的引脚功能以及单片机的连接图如图6图6 DS1302引脚及其与单片机连接的原理图2.4显示电路设计单片机中通常用七段LED构成字型“8”,另外,还有一个小数点发光二极管以显示小数位!这种显示器有共阴和共阳两种!发光二极管的阳极连在一起的(公共端)称为共阳极显示器,阴极连在一起的称为共阴极显示器。一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划(段),a_g,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔画即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。由于共阴极连接需加驱动,故在这里我采用的是共阳阳极连接。以共阳极LED为例,各LED公共阳极K0接高电平,若向各控制端a,b,,g,dp顺次送入00011110信号,则该显示器显示“”字型。共阴极7段LED显示数字0 F、文字、符号及小数点的编码(a段为最地位,dp点为最高位),如图7。图7 数码管的驱动显示电路设计2.5电源电路设计在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能量来源,它的设计思路是根据我们以前学过的模电电子技术,要想得到我们所要的+6V输出电压,就需将交流220V的电压经过变压器、整流电路、滤波电路和稳压电路四个部分。2.6键盘动态扫描电路设计在单片机系统中按键数量较多时,为了减少I/O口的占用,常常将按钮排列成矩阵式键盘中,每条水平线和直线在交叉处不直接连通,而是通过一个按钮加以连接。这样,一个端口(如P1口)就能组成4*4=16个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条就能组成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是最合理的。矩阵式键盘的按钮识别办法确定矩阵式键盘上何键被按下简绍一种“行扫描法”。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的,按钮识别办法,如下图示键盘,介绍过程如下。判断键盘中有无键盘按下将全部行线置低电平,然后检测列的电平为低,则表示键盘中有键被按下,而且闭合的键位位于低电平线与4根行线相交叉的4个按钮之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置:在确认有键按下后,即可置某根行线为低电平时,其他线为高电平。在确定某根位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列与置为低电平的行线交叉处的按钮就是闭合的按钮。将程序通过串口下载到单片机中,在键盘上按任意键时,将会在数码管上显示对应的字符。为了驱动键盘,同上以8255_PC第四位作为输入,8255PC高四位作为列扫描输出,以此来实现动态扫描显示法。如图8所示:图8 键盘动态扫描电路设计3控制系统的软件设计3.1主程序流程图本设计中主程序主要实现显示的初始化和调用各子程序工作的功能,读取时间的子程序主要实现初始化,时间信息的采集和显示段码的码的存取。分别对各个器件的功能进行编程设计,根据主程序流程图(如下)进行全面的分析。设计中计时主要以定时器T0中断完成,定点闹铃使用峰鸣器来完成。当端口有开关按下时,转入相应的功能程序。其主程序执行流程图如下图9:图9 主程序流程图3.2显示子程序时间显示子程序显示时钟芯片3个内存单元(小时、分钟、秒钟)的BCD码数据,8255的PA口送数码管的位选编码。8255的PB口送段选编码,位选段选编码存放在ROM表中。显示时,先取出位选编码数据,然后送至PA口输出,接着取出段选编码数据送至PB口输出,剩下的数码管以同样地方法送数据直到将3个内存单元的数据分成6个位全部送去数码管显示。数码管显示子程序流程图如图9所示:图 10 数码管显示子程序流程图3.3闹钟时间设定功能程序在时钟状态下,触发外中断1时,进入闹钟时间设定模式,且不影响T0计时器的功能状态,在键盘上输入对应的数字进行时间设定。当分别按下调节时钟、分钟和秒钟的个位时,时间自动确定,闹钟时间只精确到分钟。闹钟时间设定流程图如图11所示:图11 闹钟时间设定流程图3.4键盘扫描程序本设计采用动态扫描法,动态扫描法不仅扫描键阵,也可以实现显示,是目前应用十分广泛的一种方法。动态扫描法是采用输出“移动”信号,轮流对各行按键进行检测来实现的。设置行线为输出,列线为输入,当无按键按下时,列输入全为“1”.设计时,将某一行输出为“0”,读取列线值,若其中某一位为“0”,则表明行、列交叉处的按键按下,否则,无按键按下;继续扫描下一行(将下一行输出为“0”),直至全扫描完为止。键盘扫描程序流程图如12图所示:图12 键盘扫描程序流程图4系统功能调试与整体指标4.1硬件调试与分析(1)时间准确性调试硬件调试时可先检查印制版及焊接的质量情况,将电子时钟通电后,显示00:00:00。触发INT0中断开始计时,每过一秒时间就显示变化一次。计时准确,显示稳定。(2)闹铃功能调试将时钟调到11点59分58秒,2秒后,时钟开始定点闹铃,铃声为“嘀-嘀-嘀-嘀”声,持续1分钟报时声自动停止也可以触发功能键来中止闹铃。设计的电子时钟计时精确度较高,并可应用于日常生活中。 能够通过键盘对电子时钟进行调整,且调整过程简单方便,易于操作,有较强的人性化设计。 并且可通过键盘实现闹铃与时间模式的切换,使电子时钟的功能更加强大。 能够进行定时闹铃,计时较准确,基本能实现测试目标。4.2软件调试与分析软件调时在KEIL C51编译器下进行,源程序编译及仿真调试应分段或以子程序为单位逐个进行,最后可结合硬件实时调试。4.3性能分析按照设计程序分析,LED显示器动态扫描的频率为167HZ,实际使用观察时完全没有闪烁。由于计时中断程序中加了中断延时误差处理,所以实际计时精度非常高,可满足多种场合的应用需要。5详细仪器清单表格 1 仪器清单仪器名称仪器名称STC89C52STC89C528255A8255A3位数码管3位数码管2个DS1302DS130211.0592k晶振11.0592k晶振32.768k晶振32.768k晶振矩阵键盘44矩阵30PF电容30PF电容100PF电容100PF电容1K电阻1K电阻蜂鸣器蜂鸣器6总结与思考及致谢在老师的指导和同学的帮助之下,我完成了此次单片机课程设计。从开始接到课题要求到时钟的实现,再到论文的完成,每走一步对我来说都是新的尝试与挑战。在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。这次时钟计时器设计的经历也会使我终身受益,我感受到做设计是要用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。通过设计,我在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力。最后,再一次感谢我的老师.,老师严谨细致、一丝不苟的作风一直是我学习的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次时钟计时器设计的每个环节,都离不开老师您的细心指导。我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。参考文献1 余锡存.单片机原理及接口技术 M.西安:西安电子科技大学出版社,2000 2 贾好来.MCS-51单片机原理及应用 M.北京:机械工业出版社,20063 楼然苗,李光飞.单片机课程设计指导M.北京:北京航空航天大学出版社,20074 夏路易,石宗义.电路原理图与电路板设计教程北京希望电子工业出版20025 朱定华,戴汝平.单片微机原理与应用.(M) 北京:清华大学出版社,2003附录一:程序(方案一)#include#include#define uint unsigned int#define uchar unsigned char#define PA XBYTE0xD1FF#define PB XBYTE0xD2FF#define PC XBYTE0xD5FF #define PCON XBYTE0xD7FFsbit buzzer=P33;/蜂鸣器端口/数码管0-9的段选编码uchar code tabledu=0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28;/数码管各位选编码uchar code tablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/全局变量定义unsigned long num1,num2;uchar shi0,shi1,fen0,fen1,m0,m1,num,num3,aa,bb,cc,count,temp,count,S,flag,flag1;char hour,min,second,h0,h1,mi0,mi1,s0,s1;void init();/初始化函数声明void display(uchar,uchar,uchar,uchar,uchar,uchar );/显示函数声明void delay(uint);/带参数延时函数声明 1毫秒void keyscan();/键盘扫描函数void main()PCON=0x80;init();while(1)/主体循环keyscan();/时钟分离部分m1=aa%10;m0=aa/10;fen1=bb%10;fen0=bb/10;shi1=cc%10;shi0=cc/10;/clock分离部分s1=second%10;s0=second/10;mi1=min%10;mi0=min/10;h1=hour%10;h0=hour/10;/时钟显示和clock显示部分if(num3=1&num30;x-)for(y=124;y0;y-);/*键盘函数函数*/void keyscan()PC=0xfe;temp=PC;temp=temp&0xf0;if(temp!=0xf0)delay(5);temp=PC;temp=temp&0xf0;if(temp!=0xf0)temp=PC;switch(temp)case 0xee:num3=1;/秒钟加一按键break;case 0xde:num3=2;/分钟加一按键break;case 0xbe:num3=3;/时钟加一按键break;case 0x7e:num3=4;/清零按键break;while(temp!=0xf0)/松手检测temp=PC;temp=temp&0xf0;display(shi0,shi1,fen0,fen1,m0,m1);switch(num3)case 1: aa+;if(aa59)aa=0; break;case 2: bb+;if(bb59)bb=0; break;case 3: cc+;if(cc23)cc=0; break;case 4: aa=0,bb=0,cc=0;break; PC=0xfd;temp=PC;temp=temp&0xf0;if(temp!=0xf0)delay(5);temp=PC;temp=temp&0xf0;if(temp!=0xfe)temp=PC;switch(temp)case 0xed:num3=5;/定时器暂停,并进入设置clock状态按键break;case 0xdd:num3=6;/设置clock的秒,分,时加时按键break;case 0xbd:num3=7;/设置clock的秒,分,时减时按键break;case 0x7d:num3=8;/定时器暂停,开启按键break;while(temp!=0xf0)temp=PC;temp=temp&0xf0;display(h0,h1,mi0,mi1,s0,s1);switch(num3)case 5:TR0=0;count+;if(count=4)count=0;TR0=1;break;case 6:if(count=1)second+;if(second=60)second=0;else if(count=2)min+;if(min=60)min=0;else if(count=3)hour+;if(hour=24)hour=0;break;case 7:if(count=1)second-;if(second=-1)second=59;else if(count=2)min-;if(min=-1)min=59;else if(count=3)hour-;if(hour=-1)hour=23;break;case 8:S+;if(S%2=1)TR0=0;elseTR0=1;if(S=2)S=0;break;附录二:程序(方案二)#include#include#define uchar unsigned char#define uint unsigned int#define uchar unsigned char#define PA XBYTE0xD1FF#define PB XBYTE0xD2FF#define PC XBYTE0xD5FF#define PCON XBYTE0xD7FFuchar num,temp,hour,minute,second,hour1,hour2,minute1,minute2,second1,second2;uchar aa,aa1,aa2,bb,bb1,bb2,cc,cc1,cc2;sbit buzzer=P33;/蜂鸣器sbit D0=P10;/用来指示闹钟开启关闭的LEDbit flag;/闹钟开启关闭的标志位uint a0;uchar code tabledu=0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28;/数码管0123456789的段选编码uchar code tablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/数码管的位选编码sbit SCLK=P32;sbit RST=P26;sbit IO=P35;/*毫秒延时程序*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*微秒延时程序*/void delay_us(uchar n)uchar i; for(i=0;in;i+) ;/*1302做好准备*/void ready_init1302()RST=0;SCLK=0;RST=1;/*1302单字节数据写入*/void write1302(uchar dat)uchar i;SCLK=0;delay_us(2);for(i=0;i=1; /*1302双字节数据写入(寄存器地址和数据)*/void write_set1302(uchar cmd,uchar dat)ready_init1302();delay_us(2);write1302(cmd);write1302(dat);SCLK=1;RST=0;/*1302单字节数据读出*/uchar read1302()uchar i,dat;dat=0;delay_us(2);for(i=0;i=1;if(1=IO)dat=dat|0x80;SCLK=1;delay_us(2);SCLK=0;delay_us(2);return dat;/*1302单字节数据读出(读指定寄存器值)*/uchar read_set1302(uchar cmd)uchar dat;ready_init1302();write1302(cmd);dat=read1302();SCLK=1;RST=0;return dat;/*1302初始化(设置初始时间)*/void init1302()write_set1302(0x8e,0x00);write_set1302(0x80,(0/10)4|(0%10);write_set1302(0x82,(27/10)4|(27%10);write_set1302(0x84,(10/10)4)*10+(tem

温馨提示

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

评论

0/150

提交评论