电气工程及其自动化单片机课程设计.doc_第1页
电气工程及其自动化单片机课程设计.doc_第2页
电气工程及其自动化单片机课程设计.doc_第3页
电气工程及其自动化单片机课程设计.doc_第4页
电气工程及其自动化单片机课程设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

河北建筑工程学院单片机课程设计任务书课程名称: 单片机原理及应用 系 : 电气工程系 专 业: 电气工程及其自动化 班 级: 学 号: 2008308112 学生姓名: 指导教师: 职 称: 讲师 2012 年 1 月 1 日目录 一、摘要3二、系统总体方案设计31、功能要求3 2、 技术可行性.33、单片机的选择4 4、ds1302简介.5三、系统硬件设计7i、电路设计7ii、系统硬件概述71. 主控制器at89c5172. 时钟电路ds130283. 显示驱动74ls16494. 主要单元电路的设计.9四、系统软件设计.11五、总结.12六、参考文献.12附录.13一摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域. 本文的电子钟系统是以单片机(at89c51)为核心,时钟芯片ds1302、数码管显示驱动芯片74ls164等元器件组成。具体介绍应用protell软件进行单片机系统的电子钟设计与仿真的实现方法。该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。关键词:单片机; 时钟芯片 ;数码管显示驱动芯片 ;电子钟二系统总体方案设计随着电子技术的发展,人类不断研究,不断创新纪录。万年历目前已经不再局限于以书本形式出现。以电脑软件或者电子产品形式出现的万年历被称为电子万年历。与传统书本形式的万年历相比,电子万年历得到了越来越广泛的应用,采用电子时钟作为时间显示已经成为一种时尚。目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单一不能满足人们日常生活需求。 本文提出了一种基于at89c51单片机的万年历设计方案,本方案以at89c51单片机作为主控核心,与时钟芯片ds1302、按键、led显示等模块组成硬件系统。在硬件系统中设有独立按键和led显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1功能要求本电子时钟能显示星期、小时、分钟、秒2. 技术可行性 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将cpu和外围芯片,如程序存储器、数据存储器、并行i/o口、串行i/o口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(single-chip microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如a/d、d/a转换器、调制解调器、通信控制器、锁相环、dma、浮点运算单元、pwm控制输出单元、pwm输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关: 1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。 3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。4、有优异的性能、价格比。3. 单片机的选择采用传统的at89c51作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。图2.11 at89c51单片机 4.ds1302简介(1) ds1302特性介绍ds1302是美国dallas公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态ram,采用spi三线接口与cpu进行通信,并可采用突发方式一次传送多个字节的时钟信号和ram数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5v。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。(2) ds1302引脚介绍 各引脚的功能为:8 、vcc1:备用电池端;1、vcc2:5v电源。当vcc2vcc1+0.2v时,由vcc2向ds1302供电,当vcc2 vcc1时,由vcc1向ds1302供电。7、 sclk:串行时钟,输入; 6、i/o:数据输入输出口;5、ce/rst:复位脚2 3、x1、x2 是外接晶振脚 (32.768khz的晶振)4、地(gnd)(4)ds1302有关日历、时间的寄存器 寄存器的说明如下:1、秒寄存器(81h、80h)的位7定义为时钟暂停标志(ch)。当初始上电时该位置为1,时钟振荡器停止,ds1302处于低功耗状态;只有将秒寄存器的该位置改写为0时,时钟才能开始运行。2、小时寄存器(85h、84h)的位7用于定义ds1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是 ,当为1时,表示pm。在24小时模式时,位5是第二个10小时位3、控制寄存器(8fh、8eh)的位7是写保护位(wp),其它7位均置为0。在对任何的时钟ram的写操作之前,wp位必须为0。当wp位为1时,写保护位防止对任一寄存器的写操作。也就是说在电路上电的初始态wp是1,这时是不能改写上面任何一个时间寄存器的,只有首先将wp改写为0,才能进行其它寄存器的写操作。 (5)ds1302控制字介绍控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到ds1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取ram数据;位5至位1(a4a0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。读数据:读数据时在紧跟8位的控制字指令后的下一个sclk脉冲的下降沿,读出ds1302的数据,读出的数据是从最低位到最高位。写数据:控制字总是从最低位开始输出。在控制字指令输入后的下一个sclk时钟的上升沿时,数据被写入ds1302,数据输入也是从最低位(0位)开始。位0(最低有效位):为1表示进行读操作。 如为0,表示要进行写操作,控制字后 sclk 下降沿 读数据 sclk上升沿写数据(6)ds1302单字节读写时序介ds1302的数据读写是通过i/o串行进行的。当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉ds1302是读还是写操作,是对ram还是对clok寄存器操作,以及操作的址。第二个字节就是要读或写的数据了。我们先看单字节写:在进行操作之前先得将ce(也可说是rst)置高电平,然后单片机将控制字的位0放到i/o上,当i/o的数据稳定后,将sclk置高电平,ds1302检测到sclk的上升沿后就将i/o上的数据读取,然后单片机将sclk置为低电平,再将控制字的位1放到i/o上,如此反复,将一个字节控制字的8个位传给ds1302。接下来就是传一个字节的数据给ds1302,当传完数据后,单片机将ce置为低电平,操作结束。单字节读操作的一开始写控制字的过程和上面的单字节写操作是一样,但是单字节读操作在写控制字的最后一个位,sclk还在高电平时,ds1302就将数据放到i/o上,单片机将sclk置为低电平后数据锁存,单机机就可以读取i/o上的数据。如此反复,将一个字节的数据读入单片机。读与写操作的不同就在于,写操作是在sclk低电平时单片机将数据放到io上,当sclk上升沿时,ds1302读取。而读操作是在sclk高电平时ds1302放数据到io上,将sclk置为低电平后,单片机就可从io上读取数据。 三系统硬件设计1.电路设计图示为电子万年历电路设计原理图,系统由主控制器at89c51、时钟电路ds1302、显示驱动max7219电路,显示电路及键扫描电路组成。2.系统硬件概述(1) 主控制器at89c51atmel公司生产的at89c51单片机采用高性能的静态80c51设计,并采用先进工艺制造,还带有非易失性flash程序存储器。它是一种高性能、低功耗的8位cmos微处理芯片,市场应用最多。其主要特点如下:8kb flash rom,可以擦除1000次以上,数据保存10年。 256字节内部ram; 电源控制模式; 时钟可停止和恢复; 空闲模式; 掉电模式; 6个中断源; 4个中断优先级; 4个8位i/o口; 全双工增强型tuar; 3个16位定时/计数器:t0、t1(标准80c51)和增加的t2(捕获和比较) 全静态工作方式:024mhz(2)时钟电路ds1302 ds1302的性能特性: 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行比较; 用于高速数据暂存的31*8位ram; 最少引脚的串行i/o; 2.55.5v电压工作范围; 2.5v时耗小于300na; 用于时钟或ram数据读/写的单字节或多字节(脉冲方式)数据传送方式; 简单的三线接口; 可选的慢速充电(至vcc1)的能力。ds1302在任何数据传送时必须先初始化,把rst脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在sclk的上升沿被访问到。在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为8+8,在多字节方式下为8+字节数,最大可达248字节数。如果在传送过程中置rst脚为低电平,则会终止本次数据传送,并且i/o引脚变为高阻态。上电运行时,在vcc2.5v之前,rst脚必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。ds1302的控制字如表所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到ds1302中。位6如果为0,则表示存取日历时钟数据;为1则表示存取ram数据。位51(a4a0)指示操作单元的地址。最低有效位(位0)如果为0,则表示药进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。为了提高对32个地址寻址能力(地址/命令位15=逻辑1),可以把时钟/日历或ram寄存器规定为多字节(burst)方式。位6规定时钟或ram,而位0规定读或写。在时钟/日历寄存器中的地址931或ram寄存器中的地址31不能存储数据。在多字节方式下,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写ram时,为了传送数据不必写所有的31字节,不管是否谢了全部31字节,所写的每一字节都将传送至ram。ds1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式。其日历、时间寄存器及其控制字如上表所示,其中奇数为读操作,偶数为写操作。时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,ds1302停止振荡,进入低功耗的备份方式,通常在对ds1302进行写操作时(如进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。 am-pm/12-24小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5为第二个10小时位(2023h)。ds1302的晶振选用32768hz,电容推荐值为6pf。因为振荡频率较低,也可以不接电容,对计时精度影响不大。(3)显示驱动74ls164本设计采用74ls164作为显示驱动芯片。3.主要单元电路的设计(1)显示电路显示部分采用普通的共阴数码管显示,采用动态扫描,以减少硬件路。星期时分秒星期共需要7位数码显示,显示时采用串行口输出段码,用74ls164驱动数码管。(2)键盘接口键盘在单片机系统中是一个很重要的部件。为了输入数据、查询和控制系统的工作状态,都要用到键盘,键盘是人工干预计算机的主要手段。键盘可分为编码和非编码键盘两种。编码键盘采用硬件线线路来实现键盘编码,每按下一个键,键盘能自动生成按键代码,键数较多,而且还具有去抖动功能。这种键盘使用方便,但硬件较复杂,pc机所用的键盘就属于这种。非编码键盘仅提供按键开关工作状态,其他工作由软件完成,这种键盘键数较少,硬件简单,一般在单片机应用系统中广泛使用。此处主要介绍该类非编码键盘及其与mcs51型单片机的接口。(3)时钟电路ds1302工作方式简介及数据操作原理ds1302可以对星期、时、分、秒进行计时, 且具有闰年补偿功能, 工作电压宽达2.55.5v。采用三线接口与cpu进行同步通信, 并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个33x8的用于临时性存放数据的ram寄存器。ds1302是的ds1202升级产品, 与ds1202兼容, 但增加了主电源/后背电源双电源引脚, 同时提供了对后背电源进行涓细电流充电的能力。ds1302时钟芯片包括实时时钟/日历和31字节的静态ram。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用24时或带am/pm的12小时格式。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多字节的时钟信号或ram数据。ds1302有主电源/后备电源双电源引脚:vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电磁备份;vcc1在双电池系统中提供主电源。在这种运行方式中,vcc1里连接到后备电源,以便在没有主电源的情况下能保存时间信息以及数据。ds1302由vcc1或vcc2中较打大者供电。当vcc2(vcc1+0.2v)时,vcc2给ds1302供电;当vcc2vcc1时,ds1302由vcc1供电。 图ds1302ds1302在任何数据传送时必须先初始化,把rst脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在sclk的上升沿被访问到。在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为8+8,在多字节方式下为8+字节数,最大可达248字节数。如果在传送过程中置rst脚为低电平,则会终止本次数据传送,并且i/o引脚变为高阻态。上电运行时,在vcc2.5v之前,rst脚必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。ds1302的控制字如图所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到ds1302中。位6如果为0,则表示存取日历时钟数据;为1则表示存取ram数据。位51(a4a0)指示操作单元的地址。最低有效位(位0)如果为0,则表示药进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。为了提高对32个地址寻址能力(地址/命令位15=逻辑1),可以把时钟/日历或ram寄存器规定为多字节(burst)方式。位6规定时钟或ram,而位0规定读或写。在时钟/日历寄存器中的地址931或ram寄存器中的地址31不能存储数据。在多字节方式下,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写ram时,为了传送数据不必写所有的31字节,不管是否谢了全部31字节,所写的每一字节都将传送至ram。ds1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式。其日历、时间寄存器及其控制字如下表所示,其中奇数为读操作,偶数为写操作。表 ds1302控制字 时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,ds1302停止振荡,进入低功耗的备份方式,通常在对ds1302进行写操作时(如进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。 am-pm/12-24小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5为第二个10小时位(2023h)。ds1302的晶振选用32768hz,电容推荐值为6pf。因为振荡频率较低,也可以不接电容,对计时精度影响不大。四 系统软件设计1.程序设计电子万年历的程序主要包括3个方面的内容:一是ds1302从单片机中读取数据进行计数,二是利用按键进行时间的调整,三是74ls164从单片机中读取数据驱动led数码管显示时间。at89c51单片机主要i/o口的分配,p2.0-p2.2分别接74ls164的din,load,clk三个功能端,p3接查询式按键,p1.0-p1.2分别接ds1302的clk,io,rst端。2.时间控制流程图ds1302时控流程图 五 总结这次对数字钟的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念。在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法.在连接单片机与其他外部电路的实验中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了.在设计电路中,对单片机的编程的进一步的熟悉与学习让我明白了许多自己没有掌握的功能,对单片机有了更深刻的理解。再就是电路的连接中的一些小的的注意的问题像极性电容器其 “ ” 与 “ ” 极不能接错,例如电容器上的标记方向要易看可见。在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的。接线的时候一定要细心,不要接错,同时也要学会如何判别芯片的好坏,要是芯片坏了即使接线再正确也出不来结果。对自己的设计图要仔细考虑,反复调试只有这样我们才能找到自己的不足从不足中学习。 通过这次数字钟的设计,让我对各种电路都有了大概的了解,也学会了常用绘图软件的使用。所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解,才会有收获。六 参考文献1林刚勇 马善农 王海涛 电子电路设计技术 北京:国防工业出版社,20072陈小忠等,单片机接口技术实用子程序m北京:人民邮电出版社,20053杨居义主编单片机课程设计指导m北京:清华大学出版社,20094何立民主编mcs51单片机应用系统设计m北京:北京航天航空大学出版社,19905朱定华主编单片机原理及接口技术试验m北京:北京大学出版社,20026周慈航著单片机程序设计基础m北京:北京航天航空大学出版社,20037张毅刚主编单片机原理及应用m北京:高等教育出版社,20088李群芳等著单片机原理接口及应用嵌入式系统计数基础北京:清华大学出版附录 电子时钟程序#include #include #define uchar unsigned char#define uint unsigned intuchar count_10ms; /定义10ms计数器sbitk1 = p32;/定义k1键sbitk2 = p33;/定义k2键sbitk3 = p34;/定义k3键sbitk4 = p35;/定义k4键sbit beep=p37;/定义蜂鸣器sbit reset = p12;sbit sclk = p10;sbit io = p11;sbit lcd_rs=p20; sbit lcd_rw=p21 ; sbit lcd_en=p22;bit k1_flag=0;/定义按键标志位,当按下k1键时,该位置1,k1键未按下时,该位为0。uchar code line1_data = -lcd clcok-; /定义第1行显示的字符uchar code line2_data = *; /定义第2行显示的字符uchar disp_buf8 =0x00; /定义显示缓冲区uchar time_buf7 =0,0,0x12,0,0,0,0;/ds1302时间缓冲区,存放秒、分、时、日、月、星期、年uchar temp 2=0;/用来存放设置时的小时、分钟的中间值/*以下是函数声明*/void delay_ms(uint xms);bit lcd_busy(); void lcd_wcmd(uchar cmd); void lcd_wdat(uchar dat) ; void lcd_clr() ;void lcd_init() ;void write_byte(uchar inbyte);/写一字节数据函数声明uchar read_byte(); /读一字节数据函数声明void write_ds1302(uchar cmd,uchar indata);/写ds1302函数声明uchar read_ds1302(uchar addr);/读ds1302函数声明void set_ds1302(uchar addr,uchar *p,uchar n);/设置ds1302初始时间函数声明void get_ds1302(uchar addr,uchar *p,uchar n);/读当前时间函数声明void init_ds1302();/ds1302初始化函数声明/*以下是延时函数*/void delay_ms(uint xms)uint i,j;for(i=xms;i0;i-) /i=xms即延时约xms毫秒for(j=110;j0;j-);/*以下是lcd忙碌检查函数*/bit lcd_busy() bit result; lcd_rs = 0; lcd_rw = 1; lcd_en = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(p0&0x80); lcd_en = 0; return result; /*以下是写指令寄存器ir函数*/void lcd_wcmd(uchar cmd) while(lcd_busy(); lcd_rs = 0; lcd_rw = 0; lcd_en = 0; _nop_(); _nop_(); p0 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); lcd_en = 1; _nop_(); _nop_(); _nop_(); _nop_(); lcd_en = 0; /*以下是写寄存器dr函数*/void lcd_wdat(uchar dat) while(lcd_busy(); lcd_rs = 1; lcd_rw = 0; lcd_en = 0; p0 = dat; _nop_(); _nop_(); _nop_(); _nop_(); lcd_en = 1; _nop_(); _nop_(); _nop_(); _nop_(); lcd_en = 0; /*以下是lcd清屏函数*/void lcd_clr() lcd_wcmd(0x01); /清除lcd的显示内容 delay_ms(5); /*以下是lcd初始化函数*/void lcd_init() delay_ms(15); /等待lcd电源稳定 lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据 delay_ms(5); lcd_wcmd(0x38); delay_ms(5); lcd_wcmd(0x38); delay_ms(5); lcd_wcmd(0x0c); /显示开,关光标 delay_ms(5); lcd_wcmd(0x06); /移动光标 delay_ms(5); lcd_wcmd(0x01); /清除lcd的显示内容 delay_ms(5); /*以下是写一字节数据函数*/void write_byte(uchar inbyte) uchar i; for(i=0;i1; /*以下是读一字节数据函数*/uchar read_byte() uchar i,temp=0; io=1; for(i=0;i1; return (temp);/*写ds1302函数, 往ds1302的某个地址写入数据 */void write_ds1302(uchar cmd,uchar indata) sclk=0; reset=1; write_byte(cmd); write_byte(indata); sclk=0; reset=0;/*读ds1302函数,读ds1302某地址的的数据*/uchar read_ds1302(uchar addr) uchar backdata; sclk=0; reset=1; write_byte(addr); /先写地址 backdata=read_byte(); /然后读数据 sclk=0; reset=0; return (backdata);/*设置初始时间函数*void set_ds1302(uchar addr,uchar *p,uchar n) write_ds1302(0x8e,0x00); /写控制字,允许写操作 for(;n0;n-) write_ds1302(addr,*p); p+; addr=addr+2; write_ds1302(0x8e,0x80); /写保护,不允许写*读取当前时间函数*void get_ds1302(uchar addr,uchar *p,uchar n) for(;n0;n-) *p=read_ds1302(addr); p+; addr=addr+2; *初始化ds1302函数*/void init_ds1302() reset=0; sclk=0; write_ds1302(0x80,0x00); /写秒寄存器 write_ds1302(0x90,0xab); /写充电器 write_ds1302(0x8e,0x80); /写保护控制字,禁止写/*以下是蜂鸣器响一声函数*/void beep() beep=0; /蜂鸣器响 delay_ms(100); beep=1; /关闭蜂鸣器 delay_ms(100); /*以下是转换函数,负责将走时数据转换为适合lcd显示的数据*/void lcd_conv (uchar in1,in2,in3 ) /形参in1、in2、in3接收实参time_buf2、time_buf1、time_buf0传来的小时、分钟、秒数据disp_buf0=in1/10+0x30; /小时十位数据 disp_buf1=in1%10+0x30;/小时个位数据disp_buf2=in2/10+0x30; /分钟十位数据 disp_buf3=in2%10+0x30;/分钟个位数据 disp_buf4=in3/10+0x30; /秒十位数据 disp_buf5=in3%10+0x30;

温馨提示

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

评论

0/150

提交评论