有好用的高考倒计时的桌面背景软件吗?

有好用的高考倒计时的软件吗?_百度知道
有好用的高考倒计时的软件吗?
我有更好的答案
这款软件不错
一个日历即可,还可以随时标注,我说的是纸制的。
不只高考,其他自由设置,很简洁
嗯,名字就叫“高考倒计时”
里面还有各种资料,超好用
我的是三星的,几百块钱,都可以安
不知道啊,我是vivo的
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁等级:访问次数:139
深蓝高考考研倒计时软件,外观仿照了win7小工具的倒计时软件,支持win7和xp系统,外观简洁美观,主界面有日期,星期,离考试还有多少天的字样。功能介绍:右击界面有菜单弹出或者单击托盘图标,可以设定考试日期...
等级:访问次数:189
回形针高考倒计时桌面软件是一款简单的高考倒计时软件。
等级:访问次数:1121
恶搞大王高考倒计时用来装在学校电脑里的,当然你可以装在自己的电脑上设置开机启动。
等级:访问次数:20116
CEET高考倒计时器是一款功能功能齐全实用、界面美观大方的高考倒计时桌面工具计算距离最近高考的天数,可开机自动启动,标语自动更新,软件自动提示更新。
等级:访问次数:2576
梦皇高考倒计时是一款高考倒计时软件,软件的功能现在还不算齐全 以后更新会陆续加上,可编辑性很强 ,颜色字体大小等都能随意更换。
等级:访问次数:30866
金榜高考考研倒计时软件,外观仿照了win7小工具的倒计时软件,支持win7和xp系统,外观简洁美观,主界面有日期,星期,离考试还有多少天的字样。
等级:访问次数:2400
365高考倒计时软件适用于学校高考倒计时、个人工作生活重要事件倒计时等,不仅可以做到天数倒计时,还可实现小时、分钟、秒钟倒计时。
等级:访问次数:1152
古月高考倒计时完全测试版是一款可以高考倒计时的软件。
等级:访问次数:8559
鑫鑫高考倒计时器是一款简单的高考倒计时软件。
等级:访问次数:4724
Mamsds高考倒计时是Mamsds基于中国国情为广大高中干部群众打造的专用高考倒计时软件,致力于让更多的考生了解时间的紧迫,考试更好成绩。[高考倒计时软件]倒计时显示器设计_高考倒计时软件-牛bb文章网
[高考倒计时软件]倒计时显示器设计_高考倒计时软件
课 程 设 计课程名称:__ 单片机课程设计题目名称: 倒计时显示器设计学生学院:_ 电气工程学院专业班级:_电气工程及其自动化6班学 号:学生姓名:_ ___指导教师:_号摘要 近年来随着计算机在社会领域的渗透,单片机的应用正在不断的走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以做完善。生活中单片机的应用很广,如电子倒计时显示器就能够帮你记住一些重要的日子叫你不会忘记。它可以用于奥运会的倒计时、世界博览会的倒计时、高考的倒计时等重要日子。 本文介绍的是以89系列单片机为核心,它是一个可以人机操作的系统。通过控制电路的按键操作,发出高电平或低电平给单片机处理,并发出指令,可对时间进行预设。结合译码芯片、时钟芯片以及用LED数码显示管来达到显示功能的倒计时钟。该倒计时钟能显示当前日期(年、月、日、时、分),以及距离目标日期所剩下的时间(天数、时、分、秒),倒计时天数可任意调整。他的优点是成本低、体积小、可靠性高,控制功能强,使用方便,性能价格比高。 【关键词】:倒计时 单片机 时钟芯片 LED数码显示2目录摘要1.设计任务?????????????????????????????????????????41.1设计内容及技术要求?????????????????????????????????41.2课程设计要求???????????????????????????????????????41.3总体设计???????????????????????????????????????????42.系统方案设计????????????????????????????????????????42.1方案选择???????????????????????????????????????52.2 系统的功能分析????????????????????????????????????52.3 系统的结构框图????????????????????????????????????52.4各功能部件单元电路设计?????????????????????????????82.4.1电源电路??????????????????????????????????????????????????82.4.2 复位电路??????????????????????????????????????????????????92.4.3 时钟电路?????????????????????????????????????????????????102.4.4 按键电路?????????????????????????????????????????????????112.4.5 LED模块和显示原理????????????????????????????????????????123.心得体会?????????????????????????????????????????14 附页程序清单3仿真结果1.设计任务1. 1设计内容及技术要求借助201*年***会,设计201*年***会倒计时显示器设计。综合应用并行接口,定时器、计数器电路,中断技术,设计显示电路,显示时间和倒计时天数显示,显示方式课通过键盘调节。1.2课程设计要求(1).画出硬件原理图,软件流程图。(2).写出地址分配表,完成软件代码的编写与编译。(3).在软件环境中完成调试与仿真。(4).在硬件环境中完成调试与仿真。(5).完成芯片烧写与硬件搭建,实现设计功能。1.3总体设计本倒计时以AT89C51单片机作为核心,最长可以倒计时999天。可以显示距倒计时时刻还有多长时间,显示格式天/时/分/秒;倒计时时间可以认为设定;另外可以显示当前日历。倒计时设置时间的位切换、设置数值、启动定时器、切换日历通过外部中断来实现。倒计时天/时/分/秒的计时分别利用100、24、60、60进制自减计数来实现。 倒计时的显示电路由LED数码管组成,利用8只数码管显示,从左至右依次显示为天/时/分/秒。42.系统方案设计2.1方案选择近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。可见倒计时器在社会中的重要性。当然,设计倒计时器的方法很多,以下是两个设计方案。方案一:基于AT89S51单片机的LCD液晶显示模块1602显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,LCD1602液晶作为显示模块来显示剩余的时间。方案二:基于AT89S51单片机的数码管显示模块显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示剩余的时间。此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。方案比较:通过以上两个方案,我们发现,方案二总体比方案一好。首先方案一虽然硬件电路简单,但造价较高,且在编写程序实现所要求的功能时较难,而方案二所用的显示模块是比较熟悉的数码管,编写程序是相对容易,且电路造价不高,因此,综合考虑之后决定采用方案二。2.2 系统的功能分析对当前国内外倒计时钟的现状调查分析,设计一个倒计时钟系统应具备三个功能:时钟功能、倒计时功能和时间调整功能。本系统在尽量达到功能、完成设计的同时又尽可能减小硬件成本,所以在时钟功能上只选择了对当前年、月、日、时、分的显示,而放弃了对秒的显示,在倒计时功能上只选择了对倒计天数的四位显示,而放弃了对到达的时间(北京奥运会开幕式日)的显示。时间调整功能则是可以将倒计天数调整和设置,通过软件来完成对系统初始化的要求以及处理系统断电等意外问题。52.3 系统的结构框图图2.3 倒计时系统结构框图 通过结构图我们可以看出单片机为本设计的重点所在,我们通过对它的编程,来完成对时钟产生单元的读与写,然后用时钟显示单元将信息显示给用户。如需要调整时间可以通过倒计时间调整控制单元进行时间的设定。本设计单片机选择AT89S51.AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。(一)、AT89S51主要功能列举如下:1、为一般控制应用的 8 位单芯片2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)63、内部程式存储器(ROM)为 4KB4、内部数据存储器(RAM)为 128B5、外部程序存储器可扩充至 64KB6、外部数据存储器可扩充至 64KB7、32 条双向输入输出线,且每条均可以单独做 I/O 的控制8、5 个中断向量源9、2 组独立的 16 位定时器10、1 个全多工串行通信端口11、8751 及 8752 单芯片具有数据保密的功能12、单芯片提供位逻辑运算指令(二)、AT89S51各引脚功能介绍:VCC: AT89S51 电源正端输入,接+5V。 VSS: 电源地端。 XTAL1: 单芯片系统时钟的反相放大器输入端。 XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET: AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚7会被当成程序规划的特殊功能来使用。PSEN:此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0~P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0~P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号P3.7:RD,外部数据存储器的读取信号。2.4各功能部件单元电路设计82.4.1电源电路根据电路图分析,本此设计需要一个的+5V直流稳压电源, GND、Vcc是提供直流电源的两个引脚。电源电路图如图3所示。图2.4.1 电源部分电路图其电源工作原理:220V的交流电压变压成12V,再经过桥式整流、滤波输出直流电源,通过稳压芯片7850输出+5V直流稳压电源。输出给各个需要供电的单元。2.4.2 复位电路复位是单片机的初始化操作,只需给AT89S52的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位,复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。在系统中,有时会出现显示不正常,也为了调试方便,我们需要设计一个复位电路,AT89S52单片机复位电路共有上电复位、按键电平复位和按键脉冲复位。本系统是的复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。复位电路可由简单的RC电路构成,也可使用其它的相对复杂,但功能更完善的电路。本系统采用的电路如图5-1所示。工作原理是:上电瞬间,RC电路充电,RESET引脚端出现正脉冲,只要RESET保持10ms以上高电平,就能使单片机有效的复位。当时钟频率选用12MHz时,C取10uF,R取10KΩ。上电自9动复位电路由上电瞬间C与R构成充电电路,RESET端的电位与电源Vcc相同,随着充电电流的减少,RESET的电位逐渐下降。图中RC时间常数越大,上电时RESET端保持高电平的时间越长,图中这组参数足以保证复位操作。若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运行。图中的按键S5的功能是按键复位,按下S5键时RST为高电平,只要保持10ms以上的高电平,就可以时单片机复位。按键复位用在系统运行时的复位,使系统重新运行。复位电路如下图所示。图2.4.2 复位电路原理图2.4.3 时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。本系统使用的是内部时钟方式。时钟电路如下图5-2所示。 10图2.4.3 时钟电路原理图一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。本系统的C1、C2的值为30pf。单片机在工作时,有内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,f表示。图5-2中的时钟频率为12MHz,即f=12MHz,则时钟周期为1/12us。2.4.4 按键电路本系统的按键电路的作用是能够调整倒计时的初始值,倒计时是按天、时、分、秒顺寻排列显示的,用四个按键分别设定天、时、分、秒,所达到的效果是按一下对应的键时,所对应的值加一。在程序中用K4对应天的设定,K3对应时的设定,K2对应分的设定,K1对应秒的设定。另外K1按键不但作为可以设定秒的初值,还可以起到暂停倒计时运行的作用;即当系统在运行时,按K1键,系统暂停,如果继续按K1键,则秒的值增加,完成的是设定秒的功能。同样,K4也有两个功能。一个是设定天的初值,一个是起到开启系统的作用,即当系统处于暂停时,按K4键,则系统开始运行,如果继续按K4键,则完成的是设定天的初值的功能。按键电路如下图5-3所示。11图2.4.4 按键电路原理图2.4.5 LED模块和显示原理LED显示器又称为数码管,LED显示器由8个发光二极管组成。中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LEDD显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器数码管的分类:数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管的驱动方式:数码管要正常显示,就要用驱动电路来驱动数码管的各12个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。2) 动态显示驱动:动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。本次电路设计采用的是共阴极数码管,通过动态扫描方式驱动,其电路模块如下:图2-5 数码管结构133.总结与心得通过本次课程设计,我对单片机和C语言的相关知识得到了进一步的,刚开始看到这个题目的时候,感觉倒计时不是很难,有对应的输入,在控制芯片的作用下,进行递减的控制,就可以达到效果。所以刚开始的时候,做的还不是很认真,当设计进行到具体环节的时候,问题就体现出来了,并不是像刚开始的那样简单。首先要想到芯片的对应P口的功能,于是要对所学的单片机的知识进行复习,查找相关资料对那些知识进行扩充,于是就大量的查找相关资料和阅读,了解清楚了相应的功能后,开始了设计。接着就是具体的模块部分的设计。我把整体模块分为三个部分进行,输入部分,即倒计时的预设置模块,用键盘作为输入模块。显示部分,由于我把设计的功能扩大到了小时,而且秒、分的设计要显示两位,所以需要用到8个七段数码管。而控制部分则有AT89C51芯片来完成其功能。经过这次课程设计,使我觉得不论从理论知识还是从实际操纵中都学到了不少知识,我想归纳起来,主要有以下几个方面: 1.经过这次课程设计,它让我接触更多平时没有接触过的科学仪器设备,元器件以及获得相关的仪器调试经验,同时我也发现自己在这方面很多不足之处。体会到理论知识对实践有很大的指导作用,她让我知道,只有在正确的理论指引下,才能设计出合乎实际需要的硬件电路; 2.学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整。偶而还会遇到错误的资料现象,这就要求我们应更加注重实践环节;3.在设计中,我们应当注意重点与细节的关系; 4.失败不可怕,只要不趴下,昂首向前走,希望总会有; 5.同组同学相互包容,彼此合作,取长补短,才能铸就最后的成功。 可以这样说课程设计是对大学所学知识的一次运用和检阅,同时对自学能力提出很高的要求,所以平时的学习离开思考,就是严重的错误,我们学习不应该有偏科现象,各方面的知识都应该要接触,这样做才能把课程设计做得完整。14在看到数码管上的数字一个一个的递减的时候,心里感觉还是蛮高兴的。虽然在这次设计的过程中,困难不少,但是正是在自己的努力,同学们的帮助下,自己能够顺利的完成,确实还是蛮欣慰的。今后的学习我要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。感谢这次课程设计给了自己锻炼的机会,自己在今后的学习和生活中,会更加的努力,争取更大的进步!参考文献[1]甘勇,张杰,田辉. 微型计算机原理及应用[M]. 北京:北京航空航天大学出版社,2006.8[2]马潮. AVR单片机嵌入式系统原理与应用实践[M]. 北京:北京航空航天大学出版社,2007.10[3]鲁云飞,阎焕忠,任志禄等. 51单片机在全自动倒计时控制器中的应用[J].沈阳建筑工程学院学报(自然科学版),-69[4]李广弟. 单片机基础[M]. 北京:北京航空航天大学出版社,2001.7[5]沈文. AVR单片机C语言开发入门指导[M]. 北京:清华大学出版社,2003.5[6]黄明强. DS1302在单片机系统中的应用[J].保定师范专科学校学报,)[7]张毅刚,彭喜元编著. 单片机原理及接口技术[M]. 北京:人民邮电出版社,2008.11[8]DALLAS SEMICONDUCTOR.DS1302 Trickle Charge Timekeeping Chip15[9]王明顺,赵德平. 可涓流充电的串行实时时钟芯片DS1302及应用设计[J].国外电子元器件,1997,(2)[10]ATmeaga16 Datasheets[11]何建国. 倒计时LED显示屏的设计[J]. 国外电子元器件,):40-41[12]康华光,陈大钦. 电子技术基础:模拟部分[M]. 北京:高等教育出版社,1996.6[13]张自聪,金永兴. 基于AT89S52的奥运倒计时牌的设计[J]. 中国计量学院学报,-307[14]王永军,李景华. 数字逻辑与数字系统[M]. 北京:电子工业出版社,2006.1[15]洪海丽,段传华,王明俊. LED显示屏闪烁问题的分析及解决[J]. 仪器仪表,-29 16程序清单#include &reg51.h&#include &intrins.h&#define jian P1unsigned char data dis_unsigned char key_s, key_v;unsigned char code dis_code[11]={ 0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//0,1,2,3,4,5,6,7,8,9,关显示?数码管码表unsigned char data dis_buf[8];unsigned char data dis_unsigned int hour,min,sec,day,nian,yue,ri,q,year,month,tian,shi,fen, unsigned char a,b,c,d,e,f,g,h,i,l,m,n,p,o,r;unsigned char sec100;sbit K1 = P3^0; //按键1 显示日期sbit K2 = P3^1; //按键2 显示时间sbit K3 = P3^2; //按键3 显示截止日期sbit K4 = P3^3; //按键4 显示倒计时天数sbit K5 = P3^4; //按键5 显示倒计时时间sbit K6 = P3^5; //按键6 调整截止日期年sbit K7 = P3^6; //按键7 调整截止日期月sbit K8 = P3^7; //按键8 调整截止日期日bit scan_key();void proc_key();void inc_sec();void inc_min();void inc_hour();void inc_day();void inc_year();void inc_month();void inc_tian();void inc_ri();void inc_yue();void inc_nian();void display();void zhuanhuanxs();void delayms(unsigned char ms);char code SST516[3] _at_ 0x003b;//主程序void main(void){P0 = 0 //数码管显示P2 = 0TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式 TH1 = 0TL1 = 0;TH0 = 0xFC;TL0 = 0x17;hour = 23;min = 59;sec = 00;shi=23-fen=59-miao=60-nian= 2013;yue = 01;ri = 02;year=2013;month=01;day=03;tian=1;sec100 = 0;//以上程序上电后倒计时器初始值为日dis_buf[0] = dis_code[hour / 10]; // 时十位dis_buf[1] = dis_code[hour % 10]; // 时个位dis_buf[2] = dis_code[min / 10]; // 分十位dis_buf[3] = dis_code[min % 10]; // 分个位dis_buf[4] = dis_code[sec / 10]; // 秒十位dis_buf[5] = dis_code[sec % 10]; // 秒个位dis_buf[6] = 0xf7;dis_buf[7] = 0xf7;dis_digit = 0dis_index = 0;//以上程序为初始状态数码管的显示状态为12:00TCON = 0x01;IE = 0x8a; // 使能timer0,1 中断TR0 = 1;TR1 = 1;key_v = 0x03;//转换子程序while(1){if(K1==0)18{delayms(80); q=0;}else if(K2==0){delayms(80); q=1;}else if(K3==0){delayms(80); q=2;}else if(K4==0){delayms(80); q=3;}else if(K5==0){delayms(80); q=4;}zhuanhuanxs();if (K6==0){ delayms(100); inc_year(); tian=tian+365; }if(scan_key()){delayms(10); if(scan_key()) {key_v = key_s; proc_key(); }}}}bit scan_key(){key_s = 0x00;key_s |= K8;key_s &&= 1;key_s |= K7;return(key_s ^ key_v); }19void proc_key(){EA = 0;if((key_v & 0x01) == 0) // K7{inc_month();tian=tian+30;if(month&12){month=1;year++;tian=tian+5;}}else if((key_v & 0x02) == 0) // K8{inc_day();tian++;if(day & 30){day= 1;inc_month();}dis_buf[2] = dis_code[day / 10]; // 分十位dis_buf[3] = dis_code[day % 10]; // 分个位}EA = 1;}void timer0() interrupt 1// 定时器0中断服务程序, 用于数码管的动态扫描// dis_index --- 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量// dis_digit --- 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时, // 选通P2.0口数码管// dis_buf --- 显于缓冲区基地址//中断子程序设计{TH0 = 0TL0 = 0x17;P2 = 0 // 先关闭所有数码管P0 = dis_buf[dis_index]; // 显示代码传送到P0口P2 = dis_dis_digit = _crol_(dis_digit,1); // 位选通值左移, 下次中断时选通下一位数码管 dis_index++;20dis_index &= 0x07; // 8个数码管全部扫描完一遍之后?再回第一个开始描 }void timer1() interrupt 3{TH1 = 0sec100++;if(sec100 &= 100){sec100 = 0;inc_sec();}}void inc_sec(){sec++;miao=60-if(sec & 59){sec = 0;inc_min();}}void inc_min(){min++;fen=59-if(min & 59){min = 0;inc_hour();}}void inc_hour(){hour++;shi=23-if(hour & 23){hour = 0;inc_ri();}if(hour & 9)dis_buf[0] = dis_code[hour / 10];// 时十位 21}void inc_ri(){tian--;ri++;dis_buf[6] = dis_code[tian / 10]; dis_buf[7] = dis_code[tian % 10]; if (ri & 30){ri=1;inc_yue();}}void inc_yue(){ yue++;if(yue & 12){yue = 1;inc_nian();}}void inc_nian(){ nian++;}void inc_year(){ year++;{if (year&nian)tian=(year-nian)*365;}}void inc_month(){month++;if(month&12){month=1;year++;tian=tian+5;}if (month&=yue) tian=(month-yue)*30; if(month&yue)tian=(month+12-yue)*30-360; }void inc_day(){day++;{if(day & 30){ day= 1;month++;if (day&ri)tian=(day-ri);22if(day&ri)tian=(day+30-ri);}}}void delayms(unsigned char ms)// 延时子程序{while(ms--){for(i = 0; i & 120; i++);}}//显示转换子程序void zhuanhuanxs(){if (q==0){ a=nian/1000;b=nian%1000;c=b/100;d=b%100;e=d/10;f=d%10; //a为千位的数?c为百位?e为十位?f为个位 dis_buf[0] = dis_code[a]; // 年dis_buf[1] = dis_code[c]; //dis_buf[2] = dis_code[e]; //dis_buf[3] = dis_code[f]; //dis_buf[4] = dis_code[yue/10]; // 月dis_buf[5] = dis_code[yue%10]; //dis_buf[6] = dis_code[ri/10]; // 日dis_buf[7] = dis_code[ri%10]; //}//以上显示内容为日期else if (q==1){dis_buf[0] = dis_code[hour / 10]; //时十位dis_buf[1] = dis_code[hour % 10]; //时个位dis_buf[2] = 0xf7;dis_buf[3] = dis_code[min / 10]; //分十位dis_buf[4] = dis_code[min % 10]; //分个位dis_buf[5] = 0xf7;dis_buf[6] = dis_code[sec / 10]; //秒十位23dis_buf[7] = dis_code[sec % 10]; //秒个位}//以上显示内容为时间else if (q==2){ l=year/1000;m=year%1000;n=m/100;p=m%100;o=p/10;r=p%10; //a为千位的数?c为百位?e为十位?f为个位 dis_buf[0] = dis_code[l]; // 年dis_buf[1] = dis_code[n]; //dis_buf[2] = dis_code[o]; //dis_buf[3] = dis_code[r]; //dis_buf[4] = dis_code[month/10]; // 月dis_buf[5] = dis_code[month%10]; //dis_buf[6] = dis_code[day/10]; // 日dis_buf[7] = dis_code[day%10]; //}//以上显示内容为截止日期else if (q==3){g=tian%100;h=g/10;i=g%10;dis_buf[0] = 0xf7;dis_buf[1] = 0xf7;dis_buf[2] = 0xf7;dis_buf[3] = dis_code[tian / 100]; //倒计时 天 百位 dis_buf[4] = dis_code[h]; // 倒计时 天 十位 dis_buf[5] = dis_code[i]; // 倒计时 天 个位 dis_buf[6] = 0xf7;dis_buf[7] = 0xf7;}//以上显示内容为倒计时天数else if (q==4){dis_buf[0] = dis_code[shi / 10]; //时十位dis_buf[1] = dis_code[shi % 10]; //时个位dis_buf[2] = 0xf7;dis_buf[3] = dis_code[fen / 10]; //分十位dis_buf[4] = dis_code[fen % 10]; //分个位dis_buf[5] = 0xf7;dis_buf[6] = dis_code[miao / 10]; //秒十位dis_buf[7] = dis_code[miao % 10]; //秒个位}//以上显示内容为倒计时时间24仿真结果2627 分享: >
“高考倒计时软件”相关文章}

我要回帖

更多关于 高考倒计时桌面软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信