《单片机技术》课程设计-基于单片机的电子钟的设计(含源程序) .doc_第1页
《单片机技术》课程设计-基于单片机的电子钟的设计(含源程序) .doc_第2页
《单片机技术》课程设计-基于单片机的电子钟的设计(含源程序) .doc_第3页
《单片机技术》课程设计-基于单片机的电子钟的设计(含源程序) .doc_第4页
《单片机技术》课程设计-基于单片机的电子钟的设计(含源程序) .doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术课程设计说明书全套源代码程序,加153893706课题名称:基于单片机的电子钟的设计专 业:电气自动化技术班 级:0504班姓 名: 学 号:指导老师:湖南工学院课程设计任务书课 程: 单片机技术 课程设计题目: 基于单片机的电子钟的设计 基于单片机的频率计的设计 适 用 班 级: 电气05040505 时 间: 20072008学年第一学期 指 导 教 师: 单片机技术课程设计任务书一、设计题目:基于单片机的电子钟的设计、基于单片机的频率计的设计二、适用班级:电气05040505三、指导教师:王韧四、任务与要求:1、本课题任务如下:(1)、基于单片机的电子钟的设计设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“p.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。(2)、基于单片机的频率计的设计设计一个能够测量矩形波信号的频率、周期、脉宽、占空比的频率计。该频率计上电或按键复位后能自动显示系统提示符“p.”, 进入测量准备状态。按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。2、本课题可选择设计方案如下:(1)、基于单片机并行口的设计在at89s52的p0口和p2口上外接led数码管显示器,p0口作led数码管显示器的段控口,p2口作led数码管显示器的位控口,p1口外接四个按键a、b、c、d。(2)、基于单片机串行口的设计将at89s52的串行口扩展成并行口,外接led数码管显示器;p1口外接四个按键a、b、c、d。(3)、基于intel 8279的设计利用intel 8279芯片为at89s52扩展并行口,通过intel 8279外接led数码管显示器和四个按键a、b、c、d构成的键盘。(4)、基于intel 8155的设计利用intel 8155芯片为at89s52扩展并行口,通过intel 8155外接led数码管显示器和四个按键a、b、c、d构成的键盘。(5)、基于intel 8255的设计利用intel 8255芯片为at89s52扩展并行口,通过intel 8255外接led数码管显示器和四个按键a、b、c、d构成的键盘。3、本课题基本要求如下:(1)、基于单片机的电子钟的设计led数码管显示器显示当前时间;四个按键的功能:a键用于电子钟启动/调整;b键用于调时,范围0-23,0为24点,每按一次时加1;c键用于调分,范围0-59,0 为60分,每按一次分加1;d键用于调秒, 范围0-59,0为60秒,每按一次秒加1;(2)、基于单片机的频率计的设计led数码管显示器显示被测信号的频率、周期、脉宽、占空比;四个按键的功能:a键用于测量频率;b键用于测量周期;c键用于测量脉宽;d键用于测量占空比;(3)、以上两个课题可以任选其一或全选,学生也可以自定课题;(4)、编程语言:汇编或c51;(5)、计算机打印单片机技术课程设计说明书一份;(6)、设计时间:二周;(7)、实物制作或proteus仿真;(8)、人员分组:一人一组或多人一组(不超4人)。五、单片机技术课程设计说明书正文主要内容参照“单片机技术课程设计说明书正文主要内容”文件。六、单片机技术课程设计说明书书写格式 参照“单片机技术课程设计说明书书写格式”文件。七、参考资料1、曹巧媛,单片机原理及应用m,北京:电子工业出版社,1997.7;2、赵秀珍,单永磊,单片微型计算机原理及其应用m,北京:中国水利水电出版社,2001.8;3、张毅刚,修林成,胡振江,mcs-51单片机应用设计m,哈尔滨:哈尔滨工业大学出版社,1990.8;4、张洪润,兰清华,单片机应用技术教程m,北京:清华大学出版社,1997.11;。5、李华,mcs-51系列单片机实用接口技术m,北京:北京航空航天大学出版社,1993.8;6、陈景初,单片机应用系统设计与实践m,北京:北京航空航天大学出版社;7、马忠梅,单片机的c语言windows环境编程宝典m, 北京:北京航空航天大学出版社,2003.6; 8、李光飞,单片机c程序设计指导m,北京:北京航空航天大学出版社,2003.01 ;9、李光飞,单片机课程设计实例指导m,北京:北京航空航天大学出版社,2004.9。 电气自动化教研室 2007年9月10日摘 要 随着电子产品发展日新月异,基于各种集成电路的电子钟推重出新,但是就精确度和方便性等方面来说某些产品还有待改进,本设计就解决这方面的问题而设计的一款基于单片机的电子钟,单片机体积小,重量轻,有很强的灵活性,价格便宜是本设计另外的一个要点;根据设计要求,电子钟开机或复位显示p. 启动后,通过按键切换能分别显示时间和日历,并能工作在自动运行和调整运行工作方式。 本设计采用以at89s52单片机为核心,以及周边键盘输入和数码管输出等构成的单片机硬件电路系统,软件系统主要用到单片机的定时器和中断资源,定时器每定时一秒钟,秒个位加一,到六十秒后向分钟个为加一,同时秒位清零,当分计数到六十后,负责时加一,分清零,一天24小时完毕,时、分、秒同时变为零再重复以上步骤;另外设置了4个功能键,用来做电子钟的启动和时间、日历显示模式切换以及调整,采用了一个八位一体的共阳数码管动态显示时间和日历,简单而方便。 经过在protues上调试和验证,各项指标均达到设计要求,此次设计还增加了调整时相应位闪烁,并能够对相应位加和减功能,大大增加了此电子钟的灵活性和实用性,本设计同时给出了此电路设计的硬件原理图和系统原程序可做为单片机的学习者和有关电子钟开发人员的参考资料关键词:电子钟,单片机,protues仿真目 录第1章 电子钟设计要求及方案 1 1、1设计要求 1 1、2方案选择及论证 1第2章 电子钟工作原理 4第3章 硬件系统介绍 5 3、1 at89s52单片机简介 5 3、2总电路图 5 3、3单元电路描述 5 3、3、1 振荡电路 6 3、3、2 复位电路 6 3、3、3 键盘电路 6 3、3、4 显示电路 7第4章 软件系统介绍 9 4、1 单片机系统资源分配 9 4、2 流程框图 10 4、2、1 监控函数流程图 11 4、2、2 a键扫描流程图 12 4、2、3 b键扫描流程图 13 4、2、4 c键扫描流程图 14 4、2、5 中断函数流程图 15第5章 系统调试及结果 16 5、1 protues仿真软件简介 16 5、2 仿真结果 16 5、3 误差分析及解决办法 18第6章 电子钟使用说明 19 第7章 结论 20 7、1 设计体会 21 7、2 教学建议 22 参考文献 22附录 23 附录1程序清单23附录2 总原理图 34致谢 35 第1章 电子钟设计要求及方案1、1 设计要求基本功能要求: 可调整运行的电子钟具有三种工作状态:“p.”状态、运行状态、调整状态。 (1)、“p.”状态,依靠上电或按复位键进入,在此状态下,按b、c、d键均无效,按a键有效,进入运行状态,电子钟以起始时间:00时00分00秒开始运行。; (2)、运行状态,按奇数次a键进入,在此状态下,按b、c、d键均无效,只有按a键有效,按下a键后,退出运行状态,进入调整状态; (3)、调整状态,按偶数次a键进入,在此状态下,按a、b、c、d键均有效。如按下a键,则退出调整状态,进入运行状态;按下b、c、d键,则分别对时、分、秒加1,调整结束后必须按a键,即可退出调整状态,进入运行状态。扩展功能:(1)、增加日历显示功能,并能通过按键切换显示时间和日历模式,要求日历可调整并能够判闰年。(2)、增加调整运行时减的功能。1、2 方案论证及选择方案一:利用纯数字电路实现 利用数字电路实现的电子钟原理框图如1-1所示,实现原理简单,主要用到计数器74160和译码器,时钟发生电路等组成,通过秒计数的溢出作为分计数时钟,分计数的溢出作为时计数时钟,计数值经bcd译码器7448译码送数码管显示,工作原理不复杂, 但由于用到大量的ic使得电路实现起来甚是复杂,并且长期的运行可能不够稳定且维护起来不方便。 方案二: 利用时钟芯片实现 本设计可用时钟芯片ds1302和单片机系统实现,其原理框图如图1-2所示,此方案实现起来比较方便,单片机只需对ds1302初始化,直接读时钟芯片数据端口然后处理送出去显示即可,另外还可通过键盘电路对其进行调整,硬件结构简单,实现起来方便,然而,时钟芯片不便宜,且在本地购买十分不方便,另外单片机资源没能充分利用,造成浪费。 方案三:利用fpga实现 利用fpga实现的原理框图见图1-3所示,利用fpga实现本设计,其计数器和译码、时钟电路都可以做到fpga的内部,较纯数字电路实现具有明显的优势,另外其精度和稳定性也是相当好的,但是,fpga价格较贵,像ep1k30的就要100多元,且封装大多为贴片形式的,制作起来不方便,另外,fpga许多显赫的资源没有利用,这是巨大的浪费,因此,要另寻一种更方便,实惠,高效的方案。 方案四:利用单片机小系统实现基于at89s52单片机实现的电子钟原理框图如图1-4所示,该方案主要由单片机,键盘和显示电路构成,利用单片机的定时器和中断资源来完成电子钟的计时和进位,然后送显示,该方案简单,切实可行。 综合以上各方案比较,本设计选用方案四。第2章 电子钟的工作原理1、实现时钟计时的基本方法:利用mcs-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。(1)、计数初值计算;把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而20次计数可用软件方法实现。假设使用t/c0,方式1,50ms定时,fosc=12mhz。则初值x满足(216-x)1s=50000sx=1553600111100101103cb0h(2)、采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);(3)、从秒到分和从分到时的计时是通过累加和数值比较实现。2、电子钟的时间显示电子钟的时钟时间在八位数码管上进行显示,因此,在内部ram中设置显示缓冲区共8个单元。 led7 led6 led5 led4 led3 led2 led1 led0显示缓冲区从左至右依次存“时、-、分、-、秒/年、-、月、-、日”的数值。3、电子钟的启、停及时间调整电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。a键控制电子钟的启、停,日历和时间的调整; b键调整位选择;c键调整加1;d键调整减1。第3章 硬件系统介绍3、1 at89s52单片机简介at89s52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器,其dip封装及引角图如图3-1所示。该单片机使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89s52具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 3、2 总电路图 本设计的电子钟硬件系统总电路图如附录2所示主要包括4部分:振荡电路、复位电路、键盘输入电路和显示输出电路。3、3 单元电路描述3、3、1 振荡电路单片机的振荡电路如图3-2所示,单片机片内时钟振荡方式需在单片机的xtal1和xtal2引脚上接上一个石英晶体和振荡电容,因为单片机时钟兼容1.2mhz12mhz的晶振,为了软件定时的简便和精确,这里选用了12 mhz晶振,在参考at89s52芯片资料后,振荡电容选用两个33pf的陶瓷电容。3、3、2 复位电路 系统复位电路如图3-3所示,复位操作有上电自动和按键手动复位两种方式。上电复位是通过外部复位电路的电容充电来实现的。按键复位是通过复位端经电阻与vcc电源接通而实现的,本设计选后者。两种复位电路都是输入单片机的rst引脚的,但应该注意的是单片机的复位信号是高电平有效,且有效时间应持续24个振荡脉冲周期(即2个机器周期)以上,经调试和验证,确定一个200和22f的电容并联再1k的电阻串联组成上电和手动复位电路符合要求。 3、3、3 键盘电路 键盘作为人机对话的基本窗口,我们可以利用它对外设进行各种不同的控制。按键的分类有独立式按键与行列式按键,由于本设计输入设备简单且要求方便故独立式键盘为首选,其电路如图3-4所示,单片机的p1.0-p1.3口线通过限流电阻接vcc , 用户可以通过软件来采集所接口线上的状态,当口线为 0时表示有键按下,反之则没有键按下。 3、3、4 显示电路led数码管显示通常有动态显示跟静态显示两种。静态显示通常比较亮,但占用的i/o口线比较多,动态显示则刚好相反。本设计电子钟显示位多,直接用8位一体的共阳数码管显示,如图如3-5所示。单片机 的 p0 口和 p2 口的16个引脚构成了 8 位led数码管驱动电路,这里 led数码管采用了共阳型,共阳型数码管的笔段(即对应 abcdefgh)引脚是发光二极管的负极,所有二极管的正极连在一起,构成公共端,即片选端,对于这种数码管的驱动,要求在片选端提供电流,为此,使用了如图3-6所示共阳型数led显示器型74ls245作为片选端的驱动,它们的输入则分别连到 p2.0p2.7,这样,当 p2.0p2.7中某引脚输出是低电平时,不能给相应位的数码管供电,该位数码管的所有笔段都不亮,反之,如果某引脚是高低电平时,可以给相应的数码管供电,该位数码管是否点亮,点亮哪些笔段,取决于这些笔段引脚是高或低电平。在本设计的动态显示电路中p00,p01,p02,p03,p04,p05,p06,p07 数码管的段选控制信号(简称段控制线)。其工作原理是当用户控制数码管显示时,分别给p0,p1,p2,p3,p4,p5,p6,p7 控制八个数码管送不同的位码值,此时若口线p00,p01,p02,p03,p04,p05,p06,p07有段控码值送入,则数码管相应位显示所要求的数字或字符。数码管段码表如表3-6所示 表3-6 数码管段码表 显示数据共阳极段码列表共阴极段码列表00xc00x3f10xf90x0620xa40x5b30xb00x4f40x990x6650x920x6d60x820x7d70xf80x0780x800x7f90x900x6f第4章 软件系统介绍 4、1 单片机系统资源分配1、定时器/计数器的使用定时器/计数器0,定时功能,工作方式1,提供50毫秒的定时时间定时器/计数器1,定时功能,工作方式1,提供65.536毫秒的定时时间2、中断源的使用 定时器/计数器中断0,计满20次即得到秒计时单位。定时器/计数器中断1,计满6次即得到闪烁时送灭代码计时单位3、按键设定a键(启动/设置)接p1.0b键(调整位切换)接p1.1c键(加1)接p1.2d键(减1)接p1.34、显示器设定p0.7-p0.0段控线,接led的显示段dp,g,f,e,d,c,b,ap2.7-p2.0位控线,从左至右(led7, led6,led5,led4,led3,led2,led1,led0)4、2 流程框图4、2、1 监控函数流程图监控函数流程框图如图4-1所示4、2、2 a键扫描流程图a键扫描路程框图如图4-2所示 4、2、3 b键扫描流程图b键扫描流程框图如图4-3所示4、2、4 c键扫描流程图c键扫描流程框图如图4-4所示4、2、5 中断函数流程图中断函数流程框图如图4-5所示 第5章 系统调试及结果5、1 protues仿真软件简介 proteus isis是英国labcenter公司开发的电路分析与实物仿真软件。它运行于windows操作系统上,可以仿真、分析(spice)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和spice电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、rs232动态仿真、i2c调试器、spi调试器、键盘和lcd系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如keil c51 uvision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和spice分析于一身的仿真软件,功能极其强大。5、2 仿真结果 (1) 电子钟开机或复位时显示p.如图5-1所示 (2) 电子钟启动运行时时间显示0时0分0秒如图5-2所示(3)电子钟调整到10时04分21秒后显示如图5-3所示(4)电子钟日历显示08年01月01日如图5-4所示5、2 误差分析及解决办法(1)误差分析电子钟误差主要是电子钟运行是否精确,其中主要的误差来源于软件和硬件,如单片机的晶振常选择的有11.0592mhz和12mhz两种,这就决定了软定时要根据所选晶振来精确定时,这是非常重要的,另外,由于单片机执行指令是一条接一条的,在定时时间到的了以后,软件不能及时调显示程序显示,存在显示上的误差,还有就是硬件资源本身的延时,由于本设计主要是基于protues的仿真,这就与实物电路有差别,特别是显示上的延时差别,若实物电路还要考虑各种外界干扰对系统影响,如电源电压是否稳定、元件布局和pcb布线是否合理等;(2)解决办法 首先,该设计没有用到串口通讯,可以选择12mhz定时要精确、方便由于protues仿真显示的延时误差,可适当改变定时器定时时间,达到满意为止,定时器中断设置优先级,尽量减少中断程序的长度;硬件制作的话在芯片电源端加接对地电容,地线要相对信号线要粗,另外布线拐弯处不要出现锐角等。 第6章 电子钟使用说明本设计的电子钟包含了时间和日历的显示及调整,设置了四个按键a、b、c、d,接下来就这四键功能具体描叙:a键为电子钟的启动,时间和日历显示、调整模式切换,按键第1次,电子钟起动及时间显示;按键第2次,电子钟时间调整模式;按键第3次,电子钟日历显示,按键第4次,电子钟日历调整模式;这是a键的一个循环。b键为电子钟调整时调整位的选择,进入时间或日历的调整模式后,按b键第1次,调整位转移到分/月的位置;按b键第2次,调整位转移到时/年的位置;按b键第3次,调整位转移到秒/日的位置;这是a键的一个循环。(进入调整模式后,默认为秒/日位调整)c键为电子钟的调整加1,进入调整模式后,示其调整位每按1次c键对时、分、秒或年、月、日加1。d键为电子钟的调整减1,进入调整模式后,示其调整位每按1次d键对时、分、秒或年、月、日减1。第7章 结论7、1 设计体会本次电子钟的设计为期两周,通过在设计过程中的学习和探讨,总的来说收益还是蛮大的,这次设计不仅有益对单片机技术这门课程总结和综合运用,而且升华了我对单片机更为深切的了解和热爱,设计最重要的是锻炼了我单片机编程的系统思维,以及各个以及功能程序的编写方法,同时也懂得了一个单片机的最小系统应怎样来分配它系统硬件和软件资源,另外,我也娴熟一个产品设计应该遵循的基本流程。电子钟设计过程中也遇到了不少问题,像用键d执行减1时,发现只要当前值是0时减1就出错,原来定义数组时定义为无符号字符型,减1变为负数超出了范围;在用protues仿真时显示不稳定,查资料发现原来protues仿真要先送位码值再送位码值,这与习惯相反;此次设计其最大的问题还是在软件设计方面,各子程编程还不够规范,程序执行效率可能还不是太好,最大缺陷应该是没编写独立判键程序,用子程序判键、去抖、判释放,保存键值,这样可以免去重复执行这一套;当然,这次设计也有些许亮点,比如在调整时相应位闪烁,这样调整变的方便、明显,增加减1键,免去了由于误调整引起的不必要的麻烦。总之,这次设计体会到学习单片机能力要想更上一层楼,必须要通过大量的学习和实践,还要学会思考和分析问题,不断总结和改进。7、2 教学建议 学习单片机有一年了,伴随着这一年的过去,大学生活也将走向尽头,总的来说,在大学期间,单片机技术这门课程是我比较喜欢,并且认为学的还算可以的一门课程,当然,这些都离不开王老师您的谆谆教导,特别是有较好的教学方式和方法,谈到教学建议,沟起了我对这一年的上课经历的又一次回忆,想了一下还是觉得老师和学生的沟通特重要,无论在学习还是生活方面,这都是很有帮助,另外,就单片机学习还可适当多介绍下其他型号或公司的mcu,以及实际生产应用和发展态势,这可能使学生对单片机的了解更多和激发学习兴趣。然后就是在我们问您问题或被指点的时候,希望气氛再缓和点要好,因为有些问题虽是那么的简单,但在初学者来说可能就不容易了,可能要困惑上好一阵子,希望不要让这些成为我们求教交流的障碍 ;单片机的学习主要在软件方面,我觉得你提出的同一功能程序用不同的编程方法来实现,这一点很好,对锻炼编程思维和能力很有帮助,还有就是帮建立系统编程思维也很重要,值得提倡;想到的建议大概就这么多,希望能有所用,最后,祝您身体健康,工作愉快。 参考文献1马忠梅,单片机的c语言应用程序设计 m, 北京:北京航空航天大学出版社,2003.6;2陈香兰,曾碧卿,c语言程序设计m,长沙:中南大学出版社,2006.1;3李华,mcs-51系列单片机实用接口技术m,北京:北京航空航天大学出版社,1993.8;4李广第,朱月秀,王秀山,单片机基础m,北京:北京航空航天大学出版社,2001.7;附 录附录1: 程序清单/*基于单片机的电子钟的设计*/主要功能: 显示和调整时间、日期功能;/硬件说明: p0口做共阳数码管的段控,p2口做位控;/使用说明: 单片机上电显示p. 按a号键,进入时间调整模式,按b号键,1,2,3次分别可以对时/年,分/月,秒/天调整, 按c和d号键是分别加和减;/设 计: 孙森 /指导老师: 王韧 /*#include#define uchar unsigned char#define uint unsigned int ucharcodetab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0x0c;/共阳数码管“0-9”、“灭”、“p.”段控码/ uchar led8=12,11,11,11,11,11,11,11; /显示缓冲区(开始显示“p.”)/uchar tab1=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80; /位控码/ uchar tab2=32,29,32,31,32,31,32,32,31,32,31,32; /月代码/ uchar flag=0,flag1=0,flag2=0,flag8=0; /闪烁标志位/ uchar p=3; /显示模式标志/ uchar time=0; /控制调整位灭标志/ uchar ts=0; / 时间调整位/uchar tn=0; /日历调整位/ uchar con=4; uint count1=0,count2=0; /定时器溢出计数/ char sfm=0,0,0; /时,分,秒/ uchar nyr=1,1,7; /年,月,日/uchar leap_year(); /判闰年函数/void display() ; /显示处理函数/void displayll(); /动态显示函数/*函数名:循环显示函数*/void displayms(void) uchar i; for(i=0;i12;i+) display(); /*函数名:延时函数*/void delay(int k) while(k!=0) k-;/*函数名:显示处理函数*/void display(void) tab21=leap_year(); /判闰年函数调用/switch(p) case 0: led0=sfm0%10; /时间显示处理/ led1=sfm0/10; led2=10; led3=sfm1%10; led4=sfm1/10; led5=10; led6=sfm2%10; led7=sfm2/10; if(led7=0) /时间小于10小时高位不显示/ led7=11; break; case 1: led0=nyr0%10; /年月显示处理/ led1=nyr0/10; led2=10; led3=nyr1%10; led4=nyr1/10; led5=10; led6=nyr2%10; led7=nyr2/10; break; displayll(); /*函数名:判闰年函数*/uchar leap_year(void) if(nyr2%4=0&(nyr2%100 != 0)|(nyr2%400 = 0) return(30); else return(29); /*函数名:动态显示函数*/void displayll(void) uchar i; for(i=0;i=3) ts=0; while(p1_1=0); if(p1_2=0) delay(120); if(p1_2=0) /时/分/秒加/ sfmts+; if(ts=2) con1=24; else con1=60; if(sfmts=con1) sfmts=0; displayms(); if(p1_3=0) /时/分/秒减/ delay(120);if(p1_3=0) sfmts-; if(ts=2) con2=23; else con2=59; if(sfmts=3) tn=0; while(p1_1=0); if(p1_2=0) delay(100); if(p1_2=0) nyrtn+; if(tn=0) con3=tab2nyr1-1; else if(tn=1) con3=13; /年/月/日加/ else con3=100; if(nyrtn=con3) if(tn=2) nyrtn=7; else nyrtn=1; displayms(); if(p1_3=0) delay(100); if(p1_3=0) nyrtn-; if(nyr27) nyr2=99; if(nyr11) /年/月/日减/

温馨提示

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

评论

0/150

提交评论