单片机课程设计--定时器

合集下载

单片机定时器设计

单片机定时器设计

单片机定时器设计
一、设计原理
单片机定时器是通过计时寄存器来实现定时功能的。

一般来说,计时寄存器是一个16位的寄存器,存放的值从0x0000到0xFFFF之间。

定时器通过不断地递增计时寄存器的值,来实现定时的功能。

当计时寄存器达到预设的值时,会产生一个定时器中断信号,可以通过该中断信号来触发其他相关操作。

定时器工作的基本原理是通过外部晶振提供一个基准时钟,利用该时钟周期性地对计时寄存器进行递增。

根据外部晶振的频率,定时器的精度也会不同。

定时器的工作模式主要分为两种:定时工作模式和计数工作模式。

定时工作模式是指定时器在达到预设的值后产生中断,并重新开始计时。

计数工作模式是指定时器不断地计数,直到外部触发一个事件,产生中断并清零计时寄存器。

二、设计实例分析
1.设计一个1秒的定时器
2.设计一个毫秒级的定时器
3.设计一个按键消抖定时器
在按键输入中,为了避免按键的抖动,常常需要使用定时器来进行按键的消抖处理。

假设按键抖动时间为10ms,我们可以设置一个10ms的定时器,在定时器中断时检测按键状态,若按键状态稳定一致,则认定按键有效。

结语
单片机定时器是一种非常实用的功能模块,可以实现各种定时、测定、控制等功能。

本文通过给出了几个常见的定时器设计实例,并提供了相应
的计算公式,希望对读者有所帮助。

通过进一步学习和实践,读者可以更
加深入地理解和应用单片机定时器。

定时闹钟单片机课程设计

定时闹钟单片机课程设计

定时闹钟单片机课程设计设计背景与目的定时闹钟是我们日常生活中经常使用的一种设备。

它可以帮助人们准时起床或提醒完成某项任务。

在现代社会快节奏的生活中,定时闹钟的使用频率越来越高,因此,设计一个定时闹钟单片机课程是非常有必要的。

本次设计的目的是让学生能够通过实践了解单片机的基本原理和操作。

通过设计一个定时闹钟,学生可以深入理解定时器的使用,了解时钟的工作原理,并通过实际操作掌握单片机编程技能。

设计原理和流程设计原理本次定时闹钟单片机课程设计主要使用了单片机的定时器和外部中断功能。

单片机的定时器可以生成计时中断,而外部中断可以用来接收按键输入。

设计的基本原理是,定时器定时一定的时间后触发计时中断,中断函数中实现闹钟功能。

同时,通过外部中断接收按键输入,用来设置闹钟时间。

设计流程1.设置定时器的工作模式和计时时间。

2.设置外部中断,用于接收按键输入。

3.编写中断函数,实现闹钟功能。

4.编写主函数,初始化单片机和相关端口。

5.在主函数中进入循环,不断监听按键输入和处理闹钟逻辑。

设计实现硬件设计本次设计使用的硬件主要包括单片机、按键和数码管。

1.单片机:选择一款适合的单片机,如STC89C52系列单片机,具备定时器和外部中断功能。

2.按键:使用几个按键来实现闹钟的设置和关闭。

3.数码管:用于显示当前时间和闹钟设置时间。

软件设计本次设计使用Keil C编程软件和Proteus仿真软件。

软件设计主要包括以下几个模块。

1.定时器和中断:初始化定时器并设置工作模式和计时时间,编写中断函数来实现闹钟的功能。

2.IO口:根据接线设计,设置IO口的输入输出模式并初始化端口状态。

3.按键扫描:通过外部中断接收按键输入,并根据按键的不同功能来进行相应的操作。

4.数码管驱动:编写数码管的显示函数,根据当前时间和闹钟设置时间来显示相应的信息。

设计测试与改进设计完成后,需要对定时闹钟进行测试和改进。

测试阶段主要包括功能测试和稳定性测试。

单片机电子教案(定时器部分)

单片机电子教案(定时器部分)

程序清单
#include<reg51.h> sbit led=P1^0; unsigned char i; void main() { TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; while(1) { if(TF0) { TF0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; i++; if(i==20) { led=!led; i=0; } } } }
1位秒表程序清单
#include<reg51.h> unsigned char m,j; unsigned char ledtable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void main() { TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; P1=ledtable[j]; while(1) { if (TF0==1) { TF0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; m++; if(m==20) { m=0; j++; if(j>9) { j=0; } P1=ledtable[j]; } }
4.定时器/计数器控制寄存器TCON
控制寄存器TCOD
用于中断
5.定时/计数器初始化
① 确定工作方式—对TMOD赋值。如“TMOD = 0X10”,表明定时 器1工作在方式1,且工作在定时器方式。 ② 预置定时或计数的初值—直接将初值写入TH0、TL0或TH1、 TL1。 ③启动定时/计数器工作—将TR0或TR1置“1”。 ④查询TF0=1?,若为,表明定时时间到,做相应处理。

单片机实验报告定时器

单片机实验报告定时器

一、实验目的1. 理解单片机定时器的原理及工作方式。

2. 掌握单片机定时器的编程方法,实现定时功能。

3. 学习使用定时器中断,处理定时器事件。

二、实验环境1. 硬件设备:MCS-51单片机实验板、示波器、电源等。

2. 软件环境:Keil C51、Proteus仿真软件。

三、实验原理1. 定时器概述定时器是单片机的一个重要组成部分,用于产生定时信号或测量时间。

MCS-51单片机内部有两个定时器,即定时器0和定时器1。

2. 定时器工作原理定时器通过内部计数器进行计数,当计数达到设定值时,产生一个定时中断,执行中断服务程序。

定时器的工作方式分为四种:方式0、方式1、方式2和方式3。

3. 定时器编程定时器编程主要包括以下几个步骤:(1)设置定时器工作模式:通过向定时器模式寄存器(TMOD)写入相应的值来设置定时器工作模式。

(2)设置定时器初值:通过向定时器寄存器(THx、TLx)写入相应的值来设置定时器初值。

(3)启动定时器:通过设置定时器控制寄存器(TCON)的相应位来启动定时器。

(4)编写定时器中断服务程序:当定时器溢出时,执行中断服务程序,实现相应的功能。

四、实验内容1. 实验一:定时器0定时50ms(1)硬件连接:将P1.0口连接到蜂鸣器。

(2)软件设计:- 设置定时器0工作在方式1,定时50ms。

- 开启定时器0中断。

- 编写定时器0中断服务程序,使蜂鸣器响50ms。

2. 实验二:定时器1计数脉冲(1)硬件连接:将P3.4口连接到信号发生器。

(2)软件设计:- 设置定时器1工作在方式2,计数P3.4口的脉冲信号。

- 开启定时器1中断。

- 编写定时器1中断服务程序,记录计数器计数值,并通过数码管显示。

3. 实验三:定时器0定时1s(1)硬件连接:将P1.0口连接到蜂鸣器。

(2)软件设计:- 设置定时器0工作在方式1,定时1s。

- 开启定时器0中断。

- 编写定时器0中断服务程序,使蜂鸣器响1s。

五、实验步骤1. 编写实验一程序,并使用Proteus进行仿真测试,验证程序功能。

单片机定时闹钟课程设计

单片机定时闹钟课程设计

单片机定时闹钟课程设计一、课程目标知识目标:1. 理解单片机定时器的工作原理,掌握定时器的编程方法;2. 学会使用单片机实现闹钟功能,了解时间计算与时间显示的基本方法;3. 掌握相关电子元器件的原理和功能,如晶振、电容、数码管等。

技能目标:1. 能够运用C语言编写单片机程序,实现闹钟的定时与显示功能;2. 学会使用调试工具对单片机程序进行调试,解决常见问题;3. 提高动手能力,能够独立完成单片机定时闹钟的硬件电路搭建与程序编写。

情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识;2. 培养学生团队协作精神,学会共同解决问题;3. 增强学生实践操作能力,树立实践出真知的观念。

课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力与实际应用能力。

学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对实际应用尚缺乏经验。

教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,引导学生主动参与,提高学生的实践操作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 理论知识:- 单片机定时器/计数器的工作原理与编程方法;- 时间计算与时间显示技术;- 硬件电路设计原理,包括晶振、电容、数码管等元器件的应用。

2. 实践操作:- 搭建单片机定时闹钟的硬件电路;- 编写单片机程序,实现定时与显示功能;- 使用调试工具对程序进行调试,解决常见问题。

3. 教学大纲:- 第一阶段:回顾单片机基础知识,介绍定时器/计数器原理,分析闹钟功能需求;- 第二阶段:学习时间计算与显示技术,讲解硬件电路设计方法;- 第三阶段:动手实践,分组进行硬件电路搭建与程序编写;- 第四阶段:程序调试与优化,展示成果,总结经验。

4. 教材关联:- 教材第3章:单片机定时器/计数器的原理与应用;- 教材第4章:C语言编程基础,涉及闹钟程序编写;- 教材第5章:电子元器件及其应用,用于硬件电路设计。

单片机课程设计_定时闹钟设计

单片机课程设计_定时闹钟设计

单片机系统课程设计成绩评定表设计课题:定时闹钟设计学院名称:电气工程学院专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统课程设计课程设计名称:定时闹钟设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书摘要:定时闹钟设计主要有硬件部分和软件部分组成,硬件部分以单片机为核心,在其周围有电源电路、时钟电路、复位电路、驱动电路和显示电路组成。

软件部分是用汇编语言编程,用protel软件进行绘图、编译、调试,形成以单片机为枢纽,以程序为动力,实现定时闹钟的功能。

关键字:AT89C51 定时闹钟protel 汇编语言目录1.设计要求 (4)2.作用与目的 (1)3.设备及软件 (1)3.1 AT89C51单片机 (1)4. 系统设计方案 (2)4.1工作原理 (2)5.系统硬件设计 (2)5.1系统总体设计 (2)5.2 系统时钟电路设计 (3)5.3系统复位电路的设计 (3)5.4闹钟指示电路设计 (4)5.5电子闹钟的显示电路设计 (4)6.系统软件设计 (5)6.1主模块的设计 (5)6.2基本显示模块设计 (6)6.3时间设定模块设计 (7)6.4闹铃功能的实现 (8)7.设计中的问题及解决方法 (11)8.总结 (12)参考文献 (13)附录1 系统整体结构电路原理图 (14)附录2 程序清单 (15)1. 设计要求1.1、能显示时时-分分-秒秒。

1.2、能够设定定时时间、修改定时时间。

1.3 定时时间到能发出报警声或者启动继电器,从而控制电器的启停。

2. 作用与目的以单片机为核心的数字时钟是很有社会意义和社会价值的。

钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能数字闹钟通过数字电路实现时、分、秒。

单片机定时器毕业设计(论文)

单片机定时器毕业设计(论文)

毕业设计毕业设计题目:学生学号:学生姓名:所在系(部):专业及班级:指导教师:完成日期:《电气自动化》专业毕业设计任务书课题名称:定时系统课题类型:模拟课题设计的目的:(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时设计的任务及主要内容::第一章概述1 任务设计(1)定时设定由按键部分控制(2)实现定时时间的显示数码管显示:分(十位)分(个位)∶秒(十位)秒(个位)(3)到点响铃(4)系统运行中可重新设定定时值(5)最大实现99分59秒的定时2 总体方案(1)设计框图系统框图如图1(2)设计思路利用89C51单片机作为本系统的中控模块。

上电后,按下功能键进入调时状态,通过各单元电路将按键部分设定的时间通过定时时间显示部分中的LED数码管显示出来,当时间设定完毕后再次按下按键部分的功能键,闹铃模块的蜂鸣器鸣叫0.5S以示定时器开始工作,到点实现响铃,再由按键部分关闹铃。

中途可重新设置定时数值。

复位部分除上电初实现复位外,其余任何时候可按键实现复位。

注:按键部分一共有4个按键,分别为功能键P3.0,秒设定键P3.1(增),分设定键P3.2(增)分设定键P3.3(减)。

3、方案论证(1)定时部分定时部分是本设计的核心部分。

方案:本方案完全用软件实现定时。

原理为:在单片机内部存储器设两个字节分别存放时钟的分、秒信息。

利用键盘部分对定时时间进行设定,由定时显示部分数码管显示,同时定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒个位减1;若秒个位减到0,则判秒十位值是否为0,若不是,则秒个位赋9,秒十位减1;分同理。

该方案具有硬件电路简单的特点。

(2)闹铃器件的选择方案:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。

采用蜂鸣器闹铃结构简单,控制方便。

单片机课程设计报告-定时闹钟(含程序)

单片机课程设计报告-定时闹钟(含程序)

河南理工大学单片机课程设计报告定时闹钟姓名:XXX学号:XXX专业班级:XXX指导老师:XXX所在学院:电气工程与自动化学院XXX年6月30日本设计是用单片机原理及其相关硬件的运用实现的定时闹钟。

数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。

若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。

若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。

片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。

另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。

显示部分采用六位一体的共阳极数码管,运用同相三态双向总线收发器74LS245作为输出驱动显示部件的元件。

在编写程序的过程采用了定时程序和时间调整程序对称的编写方法。

并且在时间的调整或设置过程中本设计采用了长按进行调时或调分的选择,短按是进行在选择后进行加1,每短按一次,该单位加1.调整完毕以后再次长按原设置键即可跳出设置循环,显示部分――共阳极数码管显示正常走时的时间。

但是该程序在硬件的仿真过程中有点瑕疵。

在仿真开始时警示灯直接亮,必须通过闹钟定时键K2的闹钟设置以后时间才可以正常走时。

之后可以进行时间的调整或闹钟的重新调整。

1 概述 (3)1.1设计任务 (3)1.2设计要求 (3)1.3设计意义 (3)2 系统总体方案与硬件选择设计 (4)2.1系统总体方案 (4)2.2硬件选择设计 (4)3 软件设计 (9)3.1程序流程图 (9)3.2程序模块 (10)4 PROTEUS软件仿真 (17)5 课程设计体会 (19)参考文献 (19)附1:源程序代码 (21)附2:系统原理图 (33)1概述1.1 设计任务在熟练掌握单片机及其仿真系统的使用方法的基础上,综合应用单片机原理,微机原理,微机接口技术等专业知识,设计采用一个AT89C51单片机控制的定时闹钟。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计--定时器题目名称:定时器时钟数码管显示姓名:班级:学号:日期:2012年6月29日单片机时钟1.摘要:时钟是人类生活中必不可少的的工具,本设计从日常生活中的事物入手,通过对时钟计时器的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们队位置科学领域的探索。

利用单片机实现教学数字时钟计时的主要功能,采用独立式按键进行时间调整,其中AT89C52是核心元件同是采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。

与传统机械表相比,它具有走时精确,显示直观等特点。

它的计时周期为24小时,显满刻度为“23时59分59秒”。

该系统同时具有硬件设计简单,工作稳定性高,价格低廉等优点。

1.1. 关键词AT89C52 、LED显示1.2. 功能要求1)七位数码管显示时、分、秒,以24小时运算2)可实现时分调整1.3. 主要硬件元器件的介绍1.3.1 51单片机芯片根据初步这几方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。

该系统的设计我们采用8051芯片。

下图所示为双列直插式封装的8051AH芯片的管脚图,功能如下:8051AH芯片的管脚图1.电源管脚Vcc(40脚):接+5V;Vss(20)脚:接地。

2.时钟信号管脚X1(19脚), X2(18脚):外部时钟信号的两个管脚。

3.控制线1)RESET(9脚):用作复位输入端。

2)EA’/VP(31脚):EA’为访问内部或外部程序存储器的选择信号。

对片内EPROM编程时,此管脚(作VP)接入21V编程电压。

3)ALE/P’(30脚):当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。

当对内EPROM编程时,该管脚(P’)用于输入编程脉冲。

4)PSEN’(29脚):外部程序存储器读选通控制信号。

4.输入/输出口线1)P0口(32-39脚):8路漏极开路型双向并行I/O口。

在访问外部存储器时,P0口作为低8位地址/数据总线复用口,通过分时操作,先传送低8位地址,利用ALE信号的下降沿将地址锁存,然后作为8位数据总线使用,用来传送8位数据。

在对片内EPROM编程时,P0口接受指令代码;而在内部程序校验时,则输出指令代码,并要求外接上拉电阻。

外部不拓展位单片应用,则作双向I/O口用,P0口能以吸收电流的方式驱动8个LSTTL 负载。

2)P1口(1-8脚):具有内部上拉电阻的8位准双向I/O口。

在对片内EPROM编程及校验时,它接收低8位地址。

P1口能驱动4个LETTL负载。

3)P2口(21-28脚):具有内部上拉电阻的8位准双向I/O口。

在外接存储器时,P2口作为高8位地址总线。

在对片内EPROM编程及校验时,它接受高8位地址。

P2口驱动4个LETTL负载。

4)P3口(10-17脚):8位带有内部上拉电阻的准双向I/O口。

每一位有具有如下的特殊功能(或称第二功能):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’):外部数据存储器读选通信号,低电平有效。

1.3.2 LED数码管数码管是单片机系统中常用的显示界面,可以显示“1、2、3、4、5、6、7、8、9、0”和十六进制中的“A、B、C、D、E、F”及小数点“.”,数码管怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。

分别被命名为A,B,C,D,E,F,G,H(小数点)和DP。

如果要显示一个数字2,那么A,B,G,E,D这5个段的发光管亮,C,F,H不亮,就可以了。

LED 数码管内部结构由图可知:要使数码管发光必须满足两个条件,一、COM端为高电平。

二、在A-G端的对应部分输入低电平。

这样电流流过相应的字段,数码管就会显示相应的字符了!由于数码管”A,B,C……DP”端都并在一起,要使每一个数码管显示各自的内容,使用动静态扫描方式都可以。

下面是共阴极数码管字型码表:51单片机结构框图1.4. 程序设计1.4.1.主程序设计中计时采用定时器T0中断完成。

主程序循环调用显示子程序和查键,当端口有开关按下时,转入相应的功能程序。

流程图如图2-4-1所示。

图1-4-1 主程序流程1.4.2.显示子程序显示子程序每次显示6个连续内存单元的十进制BCD码数据。

由于采用7段共阳LED数码管动态扫描实现数据显示,显示十进制BCD码数据对应段码存放在ROM中。

流程图如图2-4-2所示。

显示时取内存地址中数据,然后查表得对应显示段码从P0口输出,P2口将为对应的数码管供电,于是数码管就会显示该地址单元的数据。

图2-4-2 显示子程序1.4.3.定时器T0中断服务程序定时溢出中断周期设为50MS,中断进入后先进行定时中断初值校正,当中断累加到20次时,对秒计数单元进行加1操作。

时钟最大计时值为23时59分59秒。

#7FH存放“熄灭符”数据,用于时间调整时的闪烁功能。

在计数单元中,采用十进制BCD码计数,满十进位。

流程图如图3.3所示在程序中采用12MHZ晶振频率,精度为1MS,定时初值为50MS,用循环程序进行20次循环可到1S。

当1S到时调用加1程序并判断秒、分是否为60,当秒为60时,秒清零,分加1;当分为60时,分清零。

终端结束时,分时计时单元数据移入对应显示单元。

图3.3 定时器T0中断服务程序1.5. 按键设置采用共阳七段LED显示器,其管脚a-g,ap与单片机AT89C52的P0口相连;P0口输出段码数据;为保证其输出的电平和LED显示器所需的电平相匹配;P2.0---P2.5作为列扫描输出;P3.0,P3.1,P3.2,P3.3,接4个按钮开关,用于调时。

1.6. 数码管显示结果此图显示的是:17点12分03秒1.7. 程序#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define KeyPort P3 //定义按键端口#define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换sbit LATCH1=P2^2;//定义锁存使能端口段锁存sbit LATCH2=P2^3;// 位锁存unsigned char hour,minute,second;//定义时分秒bit UpdateTimeFlag;//定义读时间标志unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x 7d,0x07,0x7f,0x6f};// 显示段码值0~9unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f};//分别对应相应的数码管点亮,即位码unsigned char TempData[8]; //存储显示值的全局变量void DelayUs2x(unsigned char t);//us级延时函数声明void DelayMs(unsigned char t); //ms级延时void Display(unsigned char FirstBit,unsigned char Num);//数码管显示函数unsigned char KeyScan(void);//键盘扫描void Init_Timer0(void);//定时器初始化/*------------------------------------------------主函数------------------------------------------------*/void main (void){unsigned char num;Init_Timer0();while (1) //主循环{num=KeyScan();switch(num){case 1:hour++;if(hour==24)hour=0; //正常时间小时加1break;case 2:hour--;if(hour==255)hour=23; //正常时间小时减1break;case 3:minute++;if(minute==60)minute=0; //分钟加1break;case 4:minute--;if(minute==255)minute=59; //分钟减1break;default:break;}if(UpdateTimeFlag==1){UpdateTimeFlag=0;TempData[0]=dofly_DuanMa[hour/10]; //时//数据的转换,因我们采用数码管0~9的显示,将数据分开TempData[1]=dofly_DuanMa[hour%10]; TempData[2]=0x40; //加入"-"TempData[3]=dofly_DuanMa[minute/10];//分TempData[4]=dofly_DuanMa[minute%10]; TempData[5]=0x40;TempData[6]=dofly_DuanMa[second/10];//秒TempData[7]=dofly_DuanMa[second%10];}}}/*------------------------------------------------uS延时函数,含有输入参数unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5 uS------------------------------------------------*/void DelayUs2x(unsigned char t){while(--t);}/*------------------------------------------------mS延时函数,含有输入参数unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/void DelayMs(unsigned char t){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/*------------------------------------------------显示函数,用于动态扫描数码管输入参数FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示如输入0表示从第一个显示。

相关文档
最新文档