




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称专业班级姓名学号指导教师课程名称专业班级姓名学号指导教师单片机课程设计报告单片机课程设计电气工程及其自动化2012年3月9日DS12887日历时钟课程设计目录41.1设计任务及要求 41.2设计应用意义 4二方案的论证 4三总体设计 43.1基本工作原理. 43.2、 硬件总体设计 53.3、 软件总体设计 5四硬件设计 DS12887的功能介绍 64.1.1引脚功能 64.2LCD1602 7LCD1602液晶介绍. 74.3STC89C52 84.3.1芯片介绍. 84.3.2管脚说明 9五软件设计 105.1时钟设置 10六系统操作说明 11七结束语
八参考文献 12附录:121、系统原理图132、程序:(1)液晶显示的程序13(2)总的程序14一、 前言用单片机控制时间的读取并显示在液晶屏幕上面,并可通过按键实现对时间的修改。文中详细论述了电子日历钟设计原理、使用的各芯片的介绍,阐明了本实例所使用的设计方案、详细的电路图以及电子程序.1.1设计任务及要求DS12887芯片具有低功耗、外围接口简单、精度高、工作稳定可靠等优点。采用DS12887芯片设计的时钟电路无需任何外围电路和器件,并具有良好的微机接口,广泛用于各种需要精度较高的实时时钟系统中。设计内容包括DS12887芯片的时钟电路硬件设计,软件设计,画出Protel原理图、PCB版图、写出元件清单,验收后方可焊接电路板并调试。设计实现如下目标:利用DS12887和STC8952单片机设计一个时钟和日历,时间以24小时为一个周期;显示当前时、分、秒;有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;可以实现基本的调时定时日期的修改。1.2本设计的应用意义此电子日历钟小巧便捷利于携带,界面清爽,一目了然,方便您知晓当前时间,并可对时间做出修改,实在是居家旅行日常生活之必备用品!二、 方案的论证本系统采用STC89C52单片机作为控制核心,使用单片集成的即时时钟芯片DS12887来实现时钟功能,显示系统采用液晶模块LCD显示时间、日历及闹铃等提示信息,有着智能化的人机界面。用此方案设计的电路图简单,不需要驱动电路,用并行口的数据线便可以实现时间、日历以及闹钟的显示。STC89C52有成熟的闪存技术,本身自带有看门狗定时器电路,这样在单片机死机或遇到程序故障时系统能够自动复位,看门狗定时器由一个14位预分频器构成,以系统时钟或者是系统时钟的分频信号作为其计数源,当看门狗溢出时将使系统复位。系统时钟频率可动态调节,有集成省电、上电复位/掉电检测等功能。三、 总体设计3.1基本工作原理利用DS12887实时时钟电路芯片来读取系统中的日期以及时间信息,并利用P0端口将相关信息传送至STC89C51主芯片之中,利用P2端口使之显示于LCD1602液晶显示屏上,四个按键分别置于P1口的1、2、3、4端口可以对时间进行控制修改。相关说明:点击确定按键可以进入LCD屏上方显示的主菜单,点击返回按键可以退出菜单,在时间修改菜单中点击修改“小时”按键可以修改时间中的小时数,点击修改“分钟”按键可以修改时间中的分钟数。
3.2硬件总体设计3.3软件总体设计主程序主要包括:系统初始化、获取串口数据、设置日历时钟芯片、获取时钟芯片的时间信息和时钟校正、显示等子程序。初始化子程序主要包括设置单片机的串口和定时器的初始化,日历时钟芯片初始参数和驱动芯片的初始化等。主程序流程图如图6所示。田工町序迢赴闵四、硬件设计4.1DS12887的功能介绍DS12887是美国DALLAS半导体公司最新推出的8位串行接口并自带RAM的实时日历时钟芯片,内部有14个时钟控制寄存器,包括10个时标寄存器,4个状态寄存器和114bit作掉电保护用的低功耗RAM。CPU通过读DS12887的内部时标寄存器得到当前的时间和日历,也可通过选择二进制或BCD码初始化芯片的10个时标寄存器,其4个状态寄存器用来控制和指出DS12887的当前工作状态,114bit非易失性静态RAM可在掉电时保存一些重要数据。
DS12887功能强大,应用厂泛。4.1.1引脚功能:GND:接地端VCC:直流电源+5V电压。当5V电压在正常范围内时,数据可读写;当VCC低于4.25V,读写禁止,计时功能仍继续;当VCC下降到3V以下时,RAM和计时器被切换到内部锂电池。M0T(模式选择):MOT引脚接到VCC时,选择MOTOROLA时序,当接到GFND时,选择INTEL时序。SQW(方波信号输出):SQW引脚能从实时时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频率可通过对寄存器A编程改变。ADO〜AD7(双向地址/数据复用线):总线接口,可与MOTOROLA微机系列和INTEL微机系列接口。AS(地址选通输入):用于实现信号分离,在AD/ALE的下降沿把地址锁入DS12887。DS(数据选通或读输入):DS/RD有2种操作模式,取决于MOT引脚的电平,当使用MOTOROLA时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;在读周期,DS指示DS12887驱动双向总的时刻;在写周期,DS的后沿使DS12887锁存写数据。选择INTEL时序时,DS称作(RD),RD与典型存储器的允许信号(OE)的定义相同。R/W(读/写输入):也有两种操作模式。选MOTOROLA时序时,是一电平信号,指示当前周期是读或写周期,DSO为高电平时,高电平指示读周期,低电平指示写周期;选INTEL时序,信号是一低电平信号,称为WR。在此模式下,R/W与通用RAM的写允许信号(WE)的含义相同。/CS(片选输入):在访问DS12887的总线周期内,片选信号必须保持为低。IRQ(中断申请输入):低电平有效,可作微处理的中断输入。没有中断条件满足时,IRQ处于高阻态。IRQ线是漏极开路输入,要求外接上接电阻。RESET(复位输出):当保持低电平时间大于200ms,保证DS12887有效复位。DS12887ATfl9C520-12345^743ADAI}战龈血ADJS.
览
3?-11
3j3016DS12887ATfl9C520-12345^743ADAI}战龈血ADJS.
览
3?-11
3j301610如下OVccSSV211235Q*4-朮口1374LMS13SYS7图2DS12887与单片机的顒静睾门山DS12887的内部地址分配:地址00H和03H单元取值范围是00H〜3BH(十进制为0〜59);
04H〜05H单元按12小时制取值范围是上午(AM)01H〜0CH(十进制为1〜12),下午(PM)51H〜
5CH(十进制为81〜92),按24小时制取值范围是00H〜17H(十进制为0〜23);06H单元的取
值范围是01H〜07H(十进制为1〜7);07H单元取值范围O1H〜1FH(十进制为1〜31);08H
单元取值范围是01H〜OCH(十进制为1〜12);09H单元取值范围是00H〜63H(十进制为0〜99)。4.2LCD16022.11602液晶模块简介1602液晶显示模块,是点阵字符型液晶显示模块,可以用来显示字母,符号,数字以及简单的汉字和图案等信息。“1602”的含义是这类液晶显示模块每行能够显示16个字符,一共可以显示两行。该液晶显示模块,分为带背光和不带背光两类,两者在应用过程中功能基本类似,只是带背光的模块更厚一些,通常的背光颜色以黄绿色和蓝色为主。目前,多数602液晶显示模块的生产厂商使用的控制芯片都是日立公司的HD44780,这得单片机对1602液晶显示模块的控制更加统一和方便。1602液晶显示模块的主要技术参数如下:(1) 显示容量,为16个字符X两行,即每行最多显示32个字符;(2) 模块工作电压,在4.5-5V之间,模块的最佳工作电压为5V;(3) 模块工作电流,再最佳工作电压5V式,工作电流是2mA;(4) 显示字符的大小,每个被显示的字符大小为2.95mmX4.35mm(字符的宽度乘高度)。4.2.21602液晶模块的管脚介绍第1脚:GND为电源地,接GND。第2脚:VCC接5V正电源。第3脚:VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为指令寄存器或数据寄存器的选择。高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为读或写操作的使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7〜14脚:D0〜D7为8位双向数据线。第15脚:BGVCC背光电源正极(+5V)输入引脚。第16脚:BGGND背光电源负极,接GND。4.3STC89C52芯片4.3.1芯片介绍STC89C52单片机简介STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌
入式控制应用系统提供咼灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外STC89X52可降至OHz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。和Atmel的对比:STC89C52RC单片机具有8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载的特点而AT89S52单片机则具有8K字节程序存储空间;256字节数据存储空间;没有内带EEPROM存储空间的特点。STC89C52芯片如下图所示:T2/P1.0T2/P1.0140T2EX/PL1239P1.2338P1.3437卩1.1|536P1.51635P1.61734P1.7833RST19i i32RXD/P3.01101―%ij] [731TXD/r3.1|111亠30IXT0/P3.2112o29IXT1/P3.311328T0/P3.1|1427T1/P3.511526WR/P3.6|1625RD/P3.71721XTAL2|1823XTAL1|1922VSS12021VCCPO.O/ADOPO.1/AD1PO.2/AD2PO,3/AD3PO.4.W4PO.5/AD5PO.6/AD6PO.7/AD7EA ALE/PROGPSE\卩£7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/AUP2.2/A10卩£1/A9P2.0/A84.3.2管脚说明:VCC:供电电压。VSS:接地端。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址T”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能口:即P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INTO(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)同时,P3口也可为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。五、软件设计系统软件设计包括单片机计算机两部分的编程。计算机软件编程主要实现参数设置、串行口数据接收、指令发送以及数据的显示和存储。单片机软件编程主要实现键盘、液晶显示、闹钟等各模块的功能,采用C语言编程。该系统通过串行口与键盘通信,键盘给单片机发指令实现数据采集及系统控制,并将数据实时传回液晶显示器显示结果。整个软件系统采用模块化的程序设计方法,共分为时间日期的设定、闹铃设定、LCD显示模块和键盘扫描模块4个部分。其中主要是闹点的设定与提取。软件系统的主要特点是整个过程完全在键盘的控制之下,实现了友好的人机交互功能。主程序通过判断键盘的输入情况调用不同的子程序,子程序的功能实现也是在键盘的配合之下完成的。主程序流程图,如图6所示。£6孔程丹此赴闺首先对单片机的串行口及定时器进行初始化,然后进行键盘扫描,如果有键按下,则根据扫描到的键值跳转到相应的入口并执行相应的程序,并根据外部的输入进行相应的操作。如果没有键按下,则回到初始化状态。在并行运行的程序中,本设计将调用编写的日历时钟和及LCD液晶显示的程序程序,并将其送入液晶显示器中进行显示。5.1时钟设置在使用DS12887时,首先要初始化,主要是打开晶振、对控制寄存器A、B写入控制字以及对日历、时钟各寄存器写入初始值。除校时外,上电时不用再次初始化。第一次初始化时,应禁止操作DS12887内部更新周期,即先将寄存器B的SET位置“1”,然后初始化时标寄存器(00H〜09H)和状态寄存器A,再通过读寄存器C清除中断标志,读寄存器D将VRT位置“1”,最后将寄存器B的SET位清零,DS12887开始计时。设置日历时钟,必须保证时钟芯片DS12887处于设置状态,即SET=1,然后向DS12887的专用寄存器写入时间信息,写入完毕后,DS12887恢复正常数据更新状态,即SET=O。在读取日历时钟芯片DS12887的时钟信息时,必须保证UIP=O,然后读取存储其内部寄存器的时钟信息。为了能够方便地显示时间和校正时钟,可在单片机中的用户寄存器中开辟特殊的时间地址单元作为显示缓冲区,分别放置“年,月,日,时,分,秒”等值。此时只要将DS12887中的时间值读入到用户开辟的时间地址中,用户就可以方便控制时间。六、系统操作说明利用DS12887实时时钟电路芯片来读取系统中的日期以及时间信息,并利用P0端口将相关信息传送至STC89C51主芯片之中,利用P2端口使之显示于LCD1602液晶显示屏上,四个按键分别置于P1口的1、2、3、4端口可以对时间进行控制修改。相关说明:点击确定按键可以进入LCD屏上方显示的主菜单,点击返回按键可以退出菜单,在时间修改菜单中点击修改“小时”按键可以修改时间中的小时数,点击修改“分钟”按键可以修改时间中的分钟数。七、结束语做了两周的课程设计,让我感触很深,有关与单片机方面的,但更多的是团队和合作方面的。我们组共有两个人,在得到实验课题之后,就觉得压力好大。因为我们平时接触的都是纯粹理论性的东西,做实验也是雾里看花,对硬件的认识也很缺乏。之后,我们就去图书馆查阅大量的单片机和数字芯片的资料,并带还来仔细研究。在硬件电路的设计中,由于要涉及软件设计的具体情况,我们又共同讨论研究,最终将原理图设计完成。在焊电路图的过程中,由于原理图比较复杂,接线及走线也就显得很困难,在具体的调试中遇到的困难也比较多,但在指导老师的帮助下改正了几处问题,虽然最终没有调试成功,但在整个过程中,我收获了很多。这次课程设计很漫长,特别是编写程序的时候,但我从中学到了很多东西,个人的分析能力对问题的处理能力有了不同程度的提高。对电路的判断分析和程序的分析特别是对52单片机进一步学习,让我收获颇多。很感谢学校和老师给我们安排了这次的课程设计,让我真正感受到了合作的重要性很多时候都是组员的讨论和老师的指导中的一句半句启发了我。这次的课程设计让我知道:理论知识固然重要,但如果不与实践联系起来,也就如同空白纸一样,毫无用处。八、参考文献单片机基础(第三版)单片机的C语言应用程序设计(第4版)单片机系统及应用实验教程单片机原理与应用系统设计程序设计基础(C语言)EDA技术基础教程附录:原理图、程序原理图Cl□HH#
CspSainIO14.FI [Y1C2&ND匈SemiC3HiQQpF云^11lOOpF■■&W=£I'STRigSaniSpeakerVCCP89C51ET'2ENrt)lVCCXTAL1P0.0/AI:-0PO.l/AIMXTAL2P0.2/AI:-2RSTEAn.-TPP0.3/AI:'BP0.4/AIj4P0J/AI:-5P0.6/AI:Cl□HH#
CspSainIO14.FI [Y1C2&ND匈SemiC3HiQQpF云^11lOOpF■■&W=£I'STRigSaniSpeakerVCCP89C51ET'2ENrt)lVCCXTAL1P0.0/AI:-0PO.l/AIMXTAL2P0.2/AI:-2RSTEAn.-TPP0.3/AI:'BP0.4/AIj4P0J/AI:-5P0.6/AI:-6P0.7/AI:'?P1.0/T2PSEtTP1.1/T2E<ALETROGP1.2ZECIP3.0/RxDPl.B/CE-nP1.4/CE-!!P1.5/CEX2P3.1/TxDP1.6/CEW3P3.2/INT0P1.7/CE-3P3.3/INT1P3.4/T0P2.0/A8P3.5/T1P2.1/AQP3.6/WRP2.2/A10P3.7/RDP2.3/A11VSSP2.+/A12P2.5/A13P2.6/A14P2.7/A15U1RET9P嘩P3葩 =3^GKDDQVCC1011VCC Ccinq)on£Ht_5PUP?P4P5P6MOTVCCNCSWQNCNCAI:'LiNCAI:'lNCAI:-2IRQAI-'j.ELEbETAD4DSAD5NCAI:-6EL'WAPTADG1WcsDS12887vcc242322212019P331817P3?1615P3(514PIO13P17jijNLaM- 0tH§8oOAA— UN.zi-C^JWn寸巾9lA己m>HHHlHlHlHIHIHe己WPi;wQQQQ|Z|QQQpqpqr-iE寸gM$0r—1■)O-l寸'•■DE£r-iIX寸亠■oPL.£tipLIlCEElhZ/—||jNDVCCGHPRU)Adj2IK程序:1.液晶显示的程序#includevreg52.h> 〃单片机头文件#defineucharunsignedchar〃定义无符号字符型#defineuintunsignedint 〃定义无符号整型sbitrs=P3A0; 〃rs的位地址为P3.0sbitlcden=P3Al;//lcden的位地址为P3.1sbitfengming=P3A5;//fengming的位地址为P3.5//ucharcount,s1num;//charmiao,shi,fen;ucharcodetable[]=" 2007-7-30MON"; 〃定义第一行显示的字符ucharcodetable1[]=" 00:00:00";〃定义第二行显示的字符voiddelay(uintz) 〃延时子程序{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom)//向1602模块写数据{rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_date(uchardate){rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=O;}voidinit() 〃1602模块的初始化{ucharnum;fengming=O;lcden=0;write_com(0x38);〃八位数据传输write_com(0x0c);〃开显示、关光标write_com(0x06);〃光标右移、地址加1write_com(0x01);〃清屏write_com(0x80);for(num=0;numv15;num++){write_date(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;numv12;num++){write_date(table1[num]);delay(5);}}voidmain(){init();while(1);}总程序DS12887:#includevreg52.h>#includevintrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3A5;ucharmiao,fen,shi,n,yue,ri,xing,ml,mh,fl,fh,sl,sh,yl,yh,rl,rh,flag,flag1,flaga,flag2,flag3,am,as,af,c,flagz;〃定义均为汉语拼音fl为分高位fh为分高位am定时的秒uintCount;longinttemp1;sbitwexu=P1A6;〃位选锁存器控制sbitduxu=P1A5;〃段选锁存器控制sbitbee_Speak=P3A5;〃扬声器驱动引脚定义sbitkey1=P1A1;〃按键4个sbitkey2=P1A2;sbitkey3=P1A3;sbitkey4=P1A4;sbitcss=P1A7;//12887片选sbitass=P1A0;//12887锁存器sbitdss=P3A7;//12887读写控制sbitrw=P3A6;//12887读写控制sbitp30=P3A0;//3.0-3.3后三位数码管位选控制sbitp31=P3A1;sbitp33=P3A3;sbitp35=P3A5;〃扬声器voidsj(longinti);TOC\o"1-5"\h\zuchar codeduma1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};〃数码管段码带小数uchar codeduma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};〃数码管段码uchar codewema[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};〃数码管位选voiddelay15us()//误差Ous{unsignedchara;for(a=5;a>0;a--);34.}35.voiddelay5us()//误差0us36.{37._nop_();//ifKeil,requireuseintrins.hTOC\o"1-5"\h\z}39.voiddelay3us() //误差Ous{42._nop_(); //ifKeil,requireuseintrins.h{n=n;43.}87.flagz=0;44.voiddelay45us()//误差0us88.}45.{89.}46.unsignedchara;90.voidsj(longinti)47.for(a=20;a>0;a--);91.{48.}92.uintone,two,three,four,five,six;49.voiddelay1(uintz)〃延时一个毫秒93.one=i%10;50.{94.two=(i/10)%10;51.uintx,y;95.three=(i/100)%10;52.for(x=z;x>0;x--)96.four=(i/1000)%10;53.for(y=110;y>0;y--);97.five=(i/10000)%10;54.}98.six=(i/100000)%10;55.voiddelay2(uintz)//延时一个毫秒99.wexu=1;56.{100.P2=wema[7];57.uintx;101.wexu=0;58.for(x=z;x>0;x--)102.duxu=1;59.{sj(temp1);103.P2=duma[one];60.delay1(2);104.duxu=0;61.}105.delay1(3);62.}106.duxu=1;63.voidwritebyte(ucharn)107.P2=duma[two];64.{108.duxu=0;65.uchari;109.wexu=1;66.for(i=0;iv8;i++)110.P2=wema[6];67.{111.wexu=0;68.DQ=0;112.delay1(3);69.delay15us();113.duxu=1;70.DQ=n&0x01;114.P2=duma[three];71.n>>=1;115.duxu=0;72.delay45us();116.wexu=1;73.DQ=1;117.P2=wema[5];74.}118.wexu=0;75.DQ=1;119.delay1(3);76.}120.duxu=1;77.voidfuhao(ucharm,ucharn)121.P2=duma1[four];78.{122.duxu=0;79.if(m&0x80)123.wexu=1;80.{124.P2=wema[4];81.n=(~n)+1;125.wexu=0;82.flagz=1;126.delay1(3);83.}127.duxu=1;84.else128.if(five==0){if(flagz==1){P2=duma[10];}elseP2=duma[11];}elseP2=duma[five];duxu=0;wexu=1;P2=wema[3];wexu=0;delay1(3);duxu=1;if(six==0){if(flagz==1&&five!=0){P2=duma[10];}elseP2=duma[11];}elseP2=duma[six];duxu=0;wexu=1;P2=wema⑵;wexu=0;delay1(3);if(flagz==1&&six!=0){duxu=1;P2=duma[10];duxu=0;wexu=1;P2=wema[1];wexu=0;delay1(3);}wexu=1;P2=wema[8];wexu=0;delay1(1);TOC\o"1-5"\h\z}voiddelay3(uintz){while(z--);}voidiniti(){uchari;i=1;DQ=1;delay3(8);DQ=0;delay3(90);DQ=1;delay3(8);i=DQ;while(i);delay3(85);DQ=1;}ucharreadbyte(){uchari,j;j=0;for(i=0;iv8;i++){j>>=1;DQ=1;delay3us();DQ=0;delay3us();DQ=1;delay15us();if(DQ)jl=0x80;delay45us();delay5us();207.TOC\o"1-5"\h\z}return(j);}voidwedu(){213.uchardath,datl;longinttemp;temp=0;templ=O;dath=0;datl=0;while(flaga){initi();delay1(1);writebyte(Oxcc);writebyte(0x44);delay2(50);initi();delay1(1);writebyte(Oxcc);writebyte(Oxbe);datl=readbyte();dath=readbyte();temp=dath;temp<<=8;temp=templdatl;fuhao(dath,temp);temp1=temp*63;//0.0625if(key4==0){while(!key4);flaga++;if(flaga>=2)flaga=0;TOC\o"1-5"\h\z}}}voiddelay(uintz)〃延时函数{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_sj(uchardz,ucharsj)//12887写函数{css=0;ass=1;dss=1;rw=1;P0=dz;ass=0;rw=0;P0=sj;rw=1;ass=1;css=1;}ucharread_sj(uchardz1)//12887读函数{ucharm;css=0;dss=1;rw=1;ass=1;P0=dz1;ass=0;dss=0;P0=0xff;m=P0;dss=1;ass=1;css=1;returnm;}voiddispay(uintm,uintf,uints,uintx,uinty,uintr)//显示函数{mh=m/10;ml=m%10;fh=f/10;fl=f%10;sh=s/10;sl=s%10;yh=y/10;yl=y%10;rh=r/10;rl=r%10;duxu=1;P2=duma[fl];duxu=0;wexu=1;P2=wema[7];wexu=0;delay(3);duxu=1;P2=duma[fh];P2=duma[fh];duxu=0;wexu=l;P2=wema[6];wexu=0;delay(3);duxu=1;P2=duma[sl];duxu=0;wexu=1;P2=wema[5];wexu=0;delay(3);duxu=1;P2=duma[sh];duxu=0;wexu=1;P2=wema[4];wexu=0;delay(3);duxu=1;P2=duma[rl];duxu=0;wexu=1;P2=wema[3];wexu=0;delay(3);duxu=1;P2=duma[rh];duxu=0;wexu=1;P2=wema[2];wexu=0;delay(3);duxu=1;P2=duma[yl];duxu=0;wexu=1;P2=wema[1];wexu=0;delay(3);duxu=1;P2=duma[yh];duxu=0;wexu=1;P2=wema[0];wexu=0;delay(3);wexu=1;P2=wema[8];wexu=0;delay(1);354.p30=0;duxu=1;P2=duma[mh];duxu=0;delay(3);p30=1;p31=0;duxu=1;P2=duma[ml];duxu=0;delay(3);p31=1;p33=0;duxu=1;P2=duma[x];duxu=0;delay(3);p33=1;}voidkey()〃调时函数{write_sj(0x0a,0x00);〃关闭晶振调试时不更新377.if(key1==0)378.{delay(5);379.if(key1==0)380.{381.while(!ke)382.flag++;383.if(flag>=7)384.{flag=0;}385.}386.}387.if(flag==1)388.{if(key2==0){delay(5);if(key2==0){while(!key2);m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夫妻生意合作合约协议书
- 共同修建项目围墙协议书
- 医学特聘主任聘任协议书
- 交通纠纷律师委托协议书
- 一方合同毁约解约协议书
- 三股东合同和合伙协议书
- 农户之间转租种地协议书
- 长三角文化旅游协议书
- 关于社保合同解除协议书
- 委托拍卖古玩品牌协议书
- 《高强韧马氏体不锈钢组织与性能研究》
- 建筑施工安全设备检测实施方案
- 建筑垃圾处置公司激励与奖励机制
- GB/T 32151.25-2024温室气体排放核算与报告要求第25部分:食品、烟草及酒、饮料和精制茶企业
- 佳能-M2-Wifi-相机说明书
- JJF 1049-2024温度传感器动态响应校准规范
- 2024年全国物业客服技能基础知识考试题库(附含答案)
- 幼儿园男性教师对幼儿性别意识发展的影响
- 食品生产加工小作坊生产规范 第4部分:粉条
- SH∕T 3097-2017 石油化工静电接地设计规范
- HJ1188-2021核医学辐射防护与安全要求
评论
0/150
提交评论