单片机倒计时器

合集下载

单片机设计24秒倒计时

单片机设计24秒倒计时

单片机设计24秒倒计时1.引言倒计时器是一种常见的电子设备,被广泛应用于体育比赛、倒计时游戏、厨房计时等场景中。

本文介绍了使用单片机设计一个24秒倒计时器的方法和过程。

2.设计原理本设计使用的单片机为51系列单片机,采用倒计时的方式进行计时,显示剩余时间,并发出声音提示时间结束。

具体实现主要包括以下几个步骤:-初始化单片机的定时器和功能引脚;-设置定时器的工作模式和计时时间;-编写程序控制定时器开始计时;-显示剩余时间并发出声音提示;-定时器到达设定时间后,停止计时并显示时间结束。

3.硬件设计硬件设计主要包括51系列单片机、LED数码管和蜂鸣器。

-单片机需要通过引脚连接LED数码管,用于显示剩余时间;-单片机通过一个GPIO引脚连接蜂鸣器,用于发出时间结束的提示声音。

4.软件设计软件设计主要包括初始化、计时、显示和提示等功能。

-初始化函数主要用于设置单片机的定时器和GPIO引脚;-计时函数用于设定倒计时的时间,并开始计时;-显示函数用于将剩余时间显示在LED数码管上;-提示函数用于判断是否到达设定时间,如果是则停止计时并发出提示声音。

5.实验结果经过调试和测试,实验结果表明该24秒倒计时器可以正常工作。

在开始计时后,数码管上会显示剩余时间,同时蜂鸣器会发出定时器结束的提示音。

6.结论本文介绍了使用单片机设计24秒倒计时器的方法和过程。

该设计通过初始化、计时、显示和提示等功能,实现了24秒倒计时的功能要求。

同时,该设计可以在实际中进行必要的优化和改进,以满足具体的应用需求。

7.致谢感谢本文参考的相关文献和资料,以及为本文提供实验设备和技术支持的相关人员。

[1]《51单片机原理与应用》[2]《C语言微机原理与接口技术》总结:本文主要介绍了使用单片机设计24秒倒计时器的方法和过程。

通过初始化、计时、显示和提示等功能,实现了24秒倒计时的功能要求。

同时,该设计可以在实际中进行必要的优化和改进,以满足具体的应用需求。

基于单片机9999秒倒计时器

基于单片机9999秒倒计时器

摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域。

而51单片机是各单片机中最为典型和最有代表性的一种。

本次设计以单片机(AT89S51)芯片为核心,辅以必要的外围电路,在配以相应的软件,设计了一个简易的倒计时器,它由5V直流电源供电。

在硬件方面,除了单片机外,使用一个7SEG-MPX4-CA数码管来进行显示,用两个电容和一个晶振组成了一个振荡电路,提供时钟信号,用5V的电源、一个电阻和一个电容构成了一个复位电路,再用四个电阻完成驱动。

LED采用的是动态扫描显示。

在软件方面,我采用汇编语言编程,利用系统调试工具keil C51来调试程序,然后再利用Proteus进行仿真。

经过实践证明,本系统运行稳定,其优点是硬件电路简单,软件功能完善,性价比较高等,具有一定的实用和参考价值。

关键词:单片机;AT89S51;SEG-MPX4-CA数码管;倒计时器;汇编语言。

SummaryIn recent years, as computer penetration in the social field and the development of large scale integrated circuits, microcontroller applications are continually deepening, it has strong functions, small size, low power consumption, cheap, reliable, easy to use and so on, therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and household appliances and other fields.The SCM 51 SCM is the most typical and most representative one. The design of a microcontroller (AT89S51) chip as the core, supplemented by the necessary peripheral circuits, accompanied by the corresponding software in the design of a simple countdown device, which consists of 5V DC power supply.On the hardware side, in addition to SCM, the use of a 7SEG-MPX4-CA digital control to be displayed, with two capacitors and a crystal oscillation circuit composed of a provision of the clock signal, with 5V power supply, a resistor and a capacitor form a reset circuit, and then four resistors to complete the driver. LED uses a dynamic scan showed. On the software side, I use assembly language programming, using the system debugger to debug programs keil C51, and then simulated using Proteus. Proven, the system is stable, the advantage of simple hardware circuit, software, functional, high cost, etc., has certain practical and useful.Key words:SCM;AT89S51SEG-MPX4-CA;digital control; countdown device; assembly language目录前言原理简述1.1开发意义1.2原理简述第一章硬件电路2.1 单片机概述2.2 MCS-51 系列单片机介绍2.3 AT89C51的芯片概述2.4 LED显示器接口技术2.5 元器件筛选第三章系统电路3.1 硬件调试3.2 软件调试参考文献结束语致谢附录源程序前言近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

基于单片机的倒计时器(计数器)设计

基于单片机的倒计时器(计数器)设计

目录目录 (1)摘要 (3)ABSTRACT (4)第一章设计要求与方案确定 (5)1.1设计意义 (5)1.2设计要求 (5)1.3方案确定 (5)第二章硬件电路 (6)2.1单片机概述 (6)2.1.1 单片机基础 (6)2.1.2单片机与单片机系统 (7)2.1.3 单片机的产生与发展 (7)2.2MCS-51系列单片机介绍 (8)2.2.1 80C51 芯片介绍 (8)2.2.3 最小系统 (9)2.2.4 定时与中断的概念 (10)2.4LED显示电路设计与器件选择 (12)2.4.1.LED显示器的选择 (13)2.4.2LED驱动芯片选择 (13)2.5按键电路设计 (13)2.6蜂鸣器电路的设计 (14)第三章倒计时器的设计 (15)3.1倒计时器系统设计方案及框图 (15)3.2程序设计 (15)3.2.1主程序设计 (15)3.2.2倒计时模块设计 (17)3.2.3键盘扫描数码管显示程序 (17)第四章倒计时器设计仿真 (18)4.1设置倒计时初值 (18)4.2开始倒计时 (18)4.3倒计时结束并报警 (18)总结 (20)参考文献 (21)致谢 (22)附录1 倒计时器设计源程序 (23)附录2 所用元器件清单 (23)摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断的走向深入,同时带动传统控制检测日新月异更新。

在实时控制和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本系统由单片机系统、矩阵式键盘、蜂鸣器和LED数码管显示系统组成。

装置利用AT89C51单片机与74LS245驱动器驱动LED数码管显示。

通过按键控制设定倒计时时间,再通过中断控制系统开始倒计时。

当倒计时时间到时,由P1.0口驱动蜂鸣器发声报警。

为了简化电路,降低成本,采用以软件为主的的接口方法。

PIC单片机课程设计-三位倒计时器(含全部汇编程序清单)

PIC单片机课程设计-三位倒计时器(含全部汇编程序清单)

主循环程序:循环读取按键状 态,根据按键状态执行相应的 操作
初始化程序:设置定时器、 中断、I/O口等
定时器中断服务程序:定时器 中断发生时,更新倒计时值,
并判断倒计时是否结束
显示程序:根据倒计时值, 更新LED显示内容
错误处理程序:处理可能出现 的错误,如按键错误、定时器
错误等
初始化显示模块: 设置显示模式、亮 度、对比度等参数
电源模块的设计原 则:安全、稳定、 高效
电源模块的选型: 根据系统需求选择 合适的电源模块
初始化:设置定时器、中断、I/O口等 循环:循环读取定时器值,判断是否达到预设时间 显示:根据定时器值,更新显示内容 处理中断:处理定时器中断,更新定时器值 循环结束:当定时器值达到预设时间,循环结束,显示“时间到”信息
添加标题
设计思路:根据输入信号的类型和 数量,选择合适的输入接口和处理 方式
注意事项:确保输入信号的稳定性 和准确性,避免误操作或干扰导致 的错误输入
中断源:外部中断、定时器中断、串口中断等 中断优先级:根据需求设置中断优先级 中断处理:根据中断源执行相应的处理程序 中断返回:处理完成后返回主程序或等待下一个中断
调试方法:单步 调试、断点调试、 观察变量等
常见问题:程序 运行异常、死机、 数据错误等
调试技巧:设置 合理的断点、观 察变量变化、分 析程序逻辑等
测试功能:倒计时 功能、显示功能、 报警功能等
测试方法:手动测 试、自动测试、压 力测试等
测试工具:示波器 、逻辑分析仪、万 用表等
测试结果:记录测 试数据,分析测试 结果,找出问题并 解决
测试目的:验证倒计时器的性 能和稳定性
测试环境:实验室环境或实际 应用环境

单片机设计倒计时器

单片机设计倒计时器

单片机设计倒计时器在我们的日常生活中,倒计时器有着广泛的应用,比如体育比赛、烹饪、考试等等。

通过单片机来设计倒计时器,不仅能够实现精准的计时功能,还能根据不同的需求进行灵活的定制和扩展。

接下来,让我们一起深入了解一下如何用单片机设计一个实用的倒计时器。

首先,我们需要明确倒计时器的基本功能和要求。

一般来说,倒计时器应该具备以下几个主要功能:1、设定倒计时的时间,时间范围可以根据实际需求进行调整,比如从几分钟到几小时。

2、能够清晰地显示剩余的时间。

3、具有启动、暂停和复位等操作按钮。

4、在倒计时结束时,能够发出提示信号,比如声音或者灯光提示。

为了实现这些功能,我们选择合适的单片机作为核心控制单元。

常见的单片机如 51 系列、STM32 系列等都可以满足需求。

以 51 单片机为例,它具有价格低廉、编程简单、资源丰富等优点。

在硬件设计方面,我们需要以下几个主要的组件:1、单片机最小系统:包括单片机芯片、晶振电路、复位电路等,为单片机的正常运行提供必要的条件。

2、显示模块:可以选择数码管或者液晶显示屏(LCD)来显示倒计时的时间。

数码管显示简单直观,适用于对显示效果要求不高的场合;LCD 显示屏则能够提供更丰富的信息显示,比如同时显示时间、日期等。

3、按键模块:用于输入操作指令,如设置时间、启动、暂停、复位等。

4、报警模块:可以使用蜂鸣器或者发光二极管(LED)在倒计时结束时发出提示信号。

下面我们来详细介绍一下各个模块的设计和实现。

单片机最小系统的设计是整个硬件系统的基础。

晶振电路为单片机提供时钟信号,保证其正常运行的时序。

复位电路则在系统出现异常时,能够将单片机恢复到初始状态。

对于显示模块,如果选择数码管,需要通过驱动芯片(如74HC595)来控制数码管的显示。

如果选择 LCD 显示屏,则需要根据显示屏的接口类型(如并行接口或串行接口)来进行相应的连接和编程。

按键模块可以采用独立按键或者矩阵按键的方式。

多功能AT89C2051倒计时器

多功能AT89C2051倒计时器

多功能AT89C2051倒计时器摘要:倒计时器在生活非常有用,用单片机自制,不但电路简单,而且功能可根据需要自行设计。

由74系列、40系列小规模数字芯片设计的倒计时器非常多,但有显示不直观(无LED数码管);调整参数不灵活;计时精度低(采用RC振荡)等缺点。

在此向大家介绍如何用89C2051单片机自制倒计时器的方法。

一、功能介绍1.独立的三路倒计时。

均可独立设置启动、关闭。

2.范围:0~20小时,可任意设定。

关机后数据不丢失。

计时精度高:<0.1S3..独立的三路输出:a:第1路蜂鸣器输出:15Sb:第2路PNP晶体管输出:5Sc:第3路PNP晶体管输出:直致关机二、工作原理电路见上图整机由89c2051、三位LED数码管、K1-K4、R、T等元器件组成。

89C2051内部T1定时器完成100mS定时中断功能。

为了减少硬件,由89C2051的P1口直接输出LED的段码,BCD转换由软件完成。

位选码由P3.0,P3.1,P3.7输出。

键盘扫描与LED位选码的脚共用。

由于89C2051的灌入电流:20mA。

故直接驱动:蜂鸣器、PNP晶体管。

LED数码管采用共阴高亮型,LED1数码管要旋转180度。

因为要显示:“19:99”,而只有三位数码管,因此用第三位的数码管的小数点表示“1”。

三、软件编制(软件流程见图三)在T1中断程序中做一个软时钟,在定时处理程序不断查寻时间,并根据每路的启动状态,判别是否要减数。

每路倒计时到"0"后,均要判别其它两路是否已启动。

如果没有启动,则CPU进入掉电模式,电流<1.5uA,因此电路中无电源开关,再次启动,由K4(复位键)完成。

每路倒计数的初值、启动状态(是否开始倒计数),均可单独设定并存在89c2015的RAM中,只要不断电,数据不会改变。

四、操作说明电路中设有K1~K4四个开关:1.功能如下:K1:定时路数切换。

上电:LED显示第1路定时时间,按下k1,LED 显示第1路定时启动状态:【F】表示:关。

单片机60秒计时器实验报告

单片机60秒计时器实验报告

单片机60秒计时器实验报告一、实验目的本实验旨在设计并实现一个基于单片机的60秒计时器,通过学习单片机的基本原理和编程语言,掌握单片机计时器的设计和实现方法。

二、实验原理1. 单片机基础知识:单片机是一种集成电路芯片,它包含了中央处理器(CPU)、存储器(RAM、ROM)、输入输出(I/O)接口等多个功能模块。

单片机可以通过编写程序来控制各种外设,如LED灯、蜂鸣器等。

2. 计时器原理:计时器是一种用于测量时间的电子设备,它通常由一个晶振作为基准信号源,通过分频和计数来实现精确计时。

在单片机中,计时器通常由定时器(Timer)模块来实现。

3. 60秒计时器设计:本次实验需要设计一个能够精确计时60秒的计时器。

具体步骤如下:(1) 设置定时器工作模式为定时模式;(2) 设置定时时间为60秒;(3) 等待定时完成,并触发中断;(4) 在中断服务函数中输出时间到LED灯或数码管上。

三、实验材料1. STC89C52RC单片机开发板;2. 4位共阳数码管或8个LED灯;3. 杜邦线若干。

四、实验步骤1. 连接电路:将单片机开发板上的P0口连接到4位共阳数码管或8个LED灯的控制引脚,P3口连接到晶振、复位电路等。

2. 编写程序:使用Keil C51编写单片机程序,实现60秒计时器功能。

具体代码如下:#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit LED1 = P0^0; //LED灯连接到P0.0sbit LED2 = P0^1; //LED灯连接到P0.1sbit LED3 = P0^2; //LED灯连接到P0.2sbit LED4 = P0^3; //LED灯连接到P0.3void InitTimer() //初始化定时器{TMOD &= 0xF0; //设置工作模式为定时模式TH1 = 0x3C; //设置定时时间为60秒TL1 = 0xB0;ET1 = 1; //开启定时器中断允许位}void TimerInterrupt() interrupt 3 //定时器中断服务函数{static uchar cnt = 60; //计数器,初始值为60秒if(cnt > 0) cnt--; //每次中断计数器减一if(cnt == 10) { //当计数器为10秒时,LED1闪烁LED1 = ~LED1;}if(cnt == 0) { //当计数器为0秒时,所有LED灯关闭 LED1 = 0;LED2 = 0;LED3 = 0;LED4 = 0;}}void main(){InitTimer(); //初始化定时器while(1) {LED2 = 1; //LED2始终点亮if(TF1) { //如果定时器溢出,重新加载计时器TF1 = 0; //清除定时器中断标志位TH1 = 0x3C; //设置定时时间为60秒TL1 = 0xB0;ET1 = 1; //开启定时器中断允许位cnt = 60; //重置计数器}}}3. 烧录程序:将编写好的程序通过ISP或其他烧录工具烧录到单片机中。

基于单片机的24秒倒计器设计

基于单片机的24秒倒计器设计

成都理工大学工程技术学院毕业论文基于单片机的24秒倒计器设计作者姓名:罗强智专业名称:电子信息工程指导教师:石坚讲师摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

模拟多通道压力系统是利用压力传感器采集当前压力并放映在显示器上,它可以分析压力过量程,并发出报警。

并采用电子秤原理可根据输入单价准确的计算出物体的金额。

本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

【关键词】单片机;AT89C51;LED数码管显示器;keil C;晶体振荡器AbstractPermeate in the social realm along with the calculator in recent years,single slice the application of the machine just at constantly alignment thorough,arouse a traditional control an examination a day a new moon benefit renewal in the meantime.In solidly the hour the examination the single slice that controls with auto the machine the application the system,slice machine usually Be a core parts to use,only single slice the machine aspect knowledge is not enough,return should according to concrete the hardware structure,and aim at concrere application the sofwatre of the object characteristics combine to make perfect.Imitating many passage pressure systemses is to make use of presure to spread the feeling machine to collect current pressure combine the reflection is on tne display,it can analyze the pressure surfeit distance,erupting to report to the bine the adoption electronics steelyard principle can according to input the amount of money that the unit price compures an object accurately.This thesis discuss that pour the design and creation of the timer in brief,for pour LED figures displays in the timer to say,I an for the sake of the simpification circuit,decline low cost,adopt to take software as connect of lord a people’s methdo,do not use specialized hardwate to translate the code machine namely,but adopt the software procedure to carry on translating code.【Keyword】single slice machine,AT89C51,The LEDfigure tube display,Keil C,Crystal Oscillactor目录摘要 (I)Abstract (I)目录 (III)前言 (1)第一章原理设计 (2)1.1 设计要求 (2)1.2 AT89C51芯片 (2)1.3 管脚说明 (5)第二章系统总体方案的设计 (7)2.1硬件电路的设计 (7)2.2 时钟频率电路的设计 (8)2.3 复位电路的设计 (8)2.4显示电路的设计 (8)第三章系统软件的设计 (11)3.1 定时中断的程序设计 (11)3.2 独立键盘服务程序的设计 (12)3.3 显示子程序的设计 (12)3.4 系统软件的调试 (12)第四章Proteus原理图绘制 (13)第五章Proteus电路仿真与结果分析 (14)5.1 Keil C软件 (14)5.2 Proteus软件 (15)第六章系统调试及结果分析 (17)6.1 使用的主要仪器和调试 (17)6.2 系统调试 (17)6.3 测试结果 (17)总结 (18)致谢 (19)参考文献 (20)附件1 元件清单 (21)附件2 Keil C下编写的源代码 (21)前言高速发展的计算机技术带领人类进入了信息社会,同时也促进了倒计时器的迅速发展。

单片机倒计时

单片机倒计时

单片机倒计时定时器这里我们先要安装好51试验板上的两个轻触按钮开关,我们采用的是独立式按钮开关,也就是说将开关直接连接到电源的地和单片机的对应引脚之间,这里K1接到单片机的P3.6引脚,K2接到P3.7正常情况下单片机的P3.6P3.7都被程序初始化时置1 当有按键按下时对应的单片机引脚被按钮开关下拉为0,这种方法比较直观,而且比较简单,在按键数量不多的场合下使用很广泛因为机械开关开关时有抖动,所以需要在程序中加一个软件去抖动程序,它的工作原理如下:当单片机检测到有按键被按下后立即执行一个10毫秒的延时程序,然后再在检测该引脚是否仍然为闭合状态?如果仍然为闭合说明确认该键被按下立即执行相应的处理程序,否则可能是干扰,丢弃这次检测结果接下来我们再安装一个四位的拨码开关,就是图中红色的开关,它相当于四个装在一起的拨动开关,当开关拨到"ON"一侧时,对应的那路就会接通,反之断开.它在单片机中一般用于设置初始参数,而且不经常改变的场合这里因为单片机引脚资源不够,所以我们只使用了拨码开关的第234位,第1位闲置三个开关可以逻辑组合出8种状态,所以我们能够方便灵活地预置多达7种的倒计时时间最后我们来安装两个继电器和相关电路,有了继电器我们的实验板不再仅仅是做做实验而已,可以用于控制一些负载,比如说:充电器,洗衣机,电风扇等,使我们的实验板的实用功能大大增强,这也是电子制作实验室网站的单片机实验板和其他公司的产品不同的地方这里继电器由相应的S8050三极管来驱动,开机时,单片机初始化后的P2.3/P2.4为高电平,+5伏电源通过电阻使三极管导通,所以开机后继电器始终处于吸合状态,如果我们在程序中给单片机一条:CLR P2.3或者CLR P2.4的指令的话,相应三极管的基极就会被拉低到零伏左右,使相应的三极管截至,继电器就会断电释放,每个继电器都有一个常开转常闭的接点,便于在其他电路中使用,继电器线圈两端反相并联的二极管是起到吸收反向电动势的功能,保护相应的驱动三极管,这种继电器驱动方式硬件结构比较简单;电子制作实验室/;可设定时间的倒计时定时器,可选择5/15/20/30/35/45/50分钟倒计时;倒计时时间由四位拨码开关的2/3/4位来控制,;第2位表示5分钟,第3位表示15分钟,第4位表示30分钟,;通过不同的组合可以产生5/15/20/30/35/45/50分钟倒计时;P1.0口的外接的发光二极管为状态LED,定时未开始时LED常亮,定时过程中LED闪烁;K1为开始按钮,K2为停止按钮a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置temp equ 22h ;计数器数值存放内存位置;开机初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭CLR P1.0;点亮LED指示灯;等待键盘输入START:JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,START;如果是干扰就返回JNB P3.6,$;等待按键松开;读拨码开关的状态,获得倒计时时间SET:MOV A,#0;首先对A清零JB P2.0,A1;判断拨码开关的第2位是否接通,接通就对A加5ADD A,#5A1:JB P2.1,A2;判断拨码开关的第3位是否接通,接通就对A加15ADD A,#15A2:JB P2.2,A3;判断拨码开关的第4位是否接通,接通就对A加30ADD A,#30A3:MOV TEMP,A;这时TEMP中的值就是倒计时时间;数码管显示定时时间的程序display:CLR P2.4;使继电器1释放,开始定时(开机时继电器处于吸合状态)CLR P2.3;使继电器2释放,开始定时(开机时继电器处于吸合状态)MOV R2,#120AB:MOV R3,#250TIME1:mov a,temp ;将temp中的十六进制数转换成10进制mov b,#10 ;10进制/10=10进制div abmov b_bit,a ;十位在amov a_bit,b ;个位在bmov dptr,#numtab ;指定查表启始地址mov r0,#4dpl1: mov r1,#250 ;dplop: mov a,a_bit ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码mov p0,a ;送出个位的7段代码clr p2.7 ;开个位显示ACALL DELY1;显示1毫秒setb p2.7;关闭个位显示,防止鬼影mov a,b_bit ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码mov p0,a ;送出十位的7段代码clr p2.6 ;开十位显示ACALL DELY1;显示1毫秒setb p2.6;关闭十位显示,防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C1:JB P3.6,B1ACALL DELAY10;延时10毫秒消抖JB P3.6,C1JNB P3.6,$;等待按键松开AJMP SETB1:JB P3.7,M33ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERM33:djnz r3,TIME1 ;2毫秒循环执行250次,时间约0.5秒CPL P1.0;使LED每1秒闪烁一次djnz r2,AB ;循环执行120次,时间为1分钟DEC TEMP;满一分钟对定时时间减1MOV A,TEMPJNZ DISPLA Y;判断TEMP的数值是否为0?不为0循环;结束定时OVER:CLR P1.0;LED指示灯常亮SETB P2.4;继电器1吸合,定时结束,退回到开机时的状态SETB P2.3;继电器2吸合,定时结束,退回到开机时的状态AJMP START;退到开机初始化状态;1毫秒延时子程序DELY1:MOV R4,#2D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1RET;10毫秒延时子程序DELAY10:MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2RET;实验板上的7段数码管0~9数字的共阴显示代码numtab: DB 0CFH,03H,5DH,5BH,93H,0DAH,0DEH,43H,0DFH,0DBH end。

基于单片机的倒计时器(计数器)设计

基于单片机的倒计时器(计数器)设计

基于单⽚机的倒计时器(计数器)设计⽬录⽬录 (1)摘要 (3)ABSTRACT (4)第⼀章设计要求与⽅案确定 (5)1.1设计意义 (5)1.2设计要求 (5)1.3⽅案确定 (5)第⼆章硬件电路 (6)2.1单⽚机概述 (6)2.1.1 单⽚机基础 (6)2.1.2单⽚机与单⽚机系统 (7)2.1.3 单⽚机的产⽣与发展 (7)2.2MCS-51系列单⽚机介绍 (8)2.2.1 80C51 芯⽚介绍 (8)2.2.3 最⼩系统 (9)2.2.4 定时与中断的概念 (10)2.4LED显⽰电路设计与器件选择 (12)2.4.1.LED显⽰器的选择 (13)2.4.2LED驱动芯⽚选择 (13)2.5按键电路设计 (13)2.6蜂鸣器电路的设计 (14)第三章倒计时器的设计 (15)3.1倒计时器系统设计⽅案及框图 (15)3.2程序设计 (15)3.2.1主程序设计 (15)3.2.2倒计时模块设计 (17)3.2.3键盘扫描数码管显⽰程序 (17)第四章倒计时器设计仿真 (18)4.1设置倒计时初值 (18)4.2开始倒计时 (18)4.3倒计时结束并报警 (18)总结 (20)参考⽂献 (21)致谢 (22)附录1 倒计时器设计源程序 (23)附录2 所⽤元器件清单 (23)摘要近年来随着计算机在社会领域的渗透,单⽚机的应⽤正在不断的⾛向深⼊,同时带动传统控制检测⽇新⽉异更新。

在实时控制和⾃动控制的单⽚机应⽤系统中,单⽚机往往是作为⼀个核⼼部件来使⽤,仅单⽚机⽅⾯知识是不够的,还应根据具体硬件结构,以及针对具体应⽤对象特点的软件结合,以作完善。

本系统由单⽚机系统、矩阵式键盘、蜂鸣器和LED数码管显⽰系统组成。

装置利⽤AT89C51单⽚机与74LS245驱动器驱动LED数码管显⽰。

通过按键控制设定倒计时时间,再通过中断控制系统开始倒计时。

当倒计时时间到时,由P1.0⼝驱动蜂鸣器发声报警。

为了简化电路,降低成本,采⽤以软件为主的的接⼝⽅法。

基于51单片机的9999秒倒计时器设计

基于51单片机的9999秒倒计时器设计
第八周
熟悉毕业设计方案,查阅相关资料
完成方案的初步设计,开题报告
电路的仿真和PCB板的设计
软件流程的设计和软件的编写
完成软件的编写与调试
硬件电路的装配与调试
电路的软硬件综合调试
完成毕业设计
参考文献
[1] 李朝青.单片机原理及接口技术(简明修订版).北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京航空航天大学出版社,1994
A
0
1
1
1
0
1
1
1
77H
B
0
1
1
1
1
1
0
0
7CH
C
0
0
1
1
1
0
0
1
39H
D
0
1
0
1
1
1
1
0
5EH
E
0
1
1
1
1
0
0
1
79H
F
0
1
1
1
0
0
0
1
71H
.
1
0
0
0
0
0
0
0
80H
5.3LED 数码管显示方式
LED显示器工作方式有两种:静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
①一个8位CPU;
②一个片内振荡器和时钟电路;
③4KB ROM(80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内有无ROM);

单片机课程设计倒计时

单片机课程设计倒计时

单片机课程设计 倒计时一、课程目标知识与技能目标:1. 理解单片机的基本原理和功能,掌握倒计时程序的设计方法;2. 学会使用单片机编程软件,完成倒计时程序的编写、调试与运行;3. 掌握单片机与其他电子元件的连接方法,实现倒计时功能。

情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学生的学习热情;2. 培养学生的团队合作意识,学会共同解决问题;3. 培养学生严谨、细致的学习态度,养成良好的编程习惯。

课程性质分析:本课程为单片机课程设计,以倒计时为主题,结合单片机原理、编程技巧和电子技术,旨在提高学生的动手实践能力和创新意识。

学生特点分析:1. 学生具备一定的单片机基础,了解单片机的基本原理和编程方法;2. 学生对实践操作有较高的兴趣,喜欢动手尝试;3. 学生之间存在个体差异,需要因材施教,分层教学。

教学要求:1. 理论与实践相结合,注重培养学生的实际操作能力;2. 采用任务驱动法,引导学生主动探究,提高解决问题的能力;3. 针对不同学生,制定个性化的教学计划,确保每个学生都能达到课程目标。

二、教学内容1. 理论部分:(1)单片机基本原理与结构;(2)倒计时程序设计原理;(3)C语言编程基础;(4)中断与定时器原理。

2. 实践部分:(1)单片机编程软件的使用;(2)倒计时程序的编写、调试与运行;(3)单片机与其他电子元件的连接与调试;(4)倒计时功能实现。

3. 教学大纲:第一周:回顾单片机基本原理,学习C语言编程基础;第二周:学习倒计时程序设计原理,讲解中断与定时器原理;第三周:实践操作,使用编程软件编写倒计时程序;第四周:连接其他电子元件,实现倒计时功能,并进行调试与优化。

4. 教材章节:(1)单片机原理与结构:教材第1章;(2)C语言编程基础:教材第2章;(3)中断与定时器原理:教材第3章;(4)倒计时程序设计:教材第4章。

教学内容安排和进度根据学生的实际水平和接受能力进行调整,确保学生能够扎实掌握所学知识,并能够应用到实际操作中。

单片机毕业设计LED数字倒计时器

单片机毕业设计LED数字倒计时器

目录1 设计任务与要求 (2)2 设计方案 (2)3 硬件电路设计与主要元器件分析 (3)3.16位LED数码管显示 (3)3.2LED倒计时器元件清单 (3)3.3主要元器件分析 (4)3.3.1 单片机AT89S52 (4)3.3.2 集成块74LS245 (4)3.4基本硬件电路分析 (5)3.4.1复位电路 (5)3.4.2 按键电路 (5)3.5LED倒计时器原理图 (6)4 软件设计 (9)4.1程序流程图 (9)4.2程序清单 (10)5 调试过程 (24)6 结论 (25)7 附录 (25)参考资料: (27)1 设计任务与要求近年来随着计算机在社会领域的渗透,单片机的应用正在不断深入人们的生活,同时带动传统控制检测日新月异。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,针对具体应用特点与软件结合。

本项目讨论了LED数字倒计时器的设计与制作,此方案线路简单,成本低,应用前景广阔。

本次设计的任务与要求是,使基于AT89S52单片机的LED数字倒计时器主要具有如下功能:(1)LED数码管显示倒计时时间。

(2)倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出约2s的报警声音。

(3)通过按键可以对倒计时设定初值。

倒计时初始值范围在24:00:00~00:00:60之间,用户可根据需要对其进行设置,设置成功后复位初始值为成功设定值。

2 设计方案LED数字倒计时器以AT89S52单片机为核心,系统包括六位数码管显示电路,按键电路,电源电路,复位电路,晶振电路以及蜂鸣器电路几部分,LED数字倒计时器设计框图如下:图1 LED数字倒计时器设计框图3 硬件电路设计与主要元器件分析3.1 6位LED数码管显示本项目设计采用了6位数码管显示电路,在设计6位LED显示时,为了简化电路,降低成本,采用动态显示方式,6个LED显示器共用一个8位的I/O,6位LED数码管的位选线分别由相应的P2.0~p2.5控制,而将相应的段选线并联在一起,由一个8位的I/O口控制,即p0口。

C51单片机60秒倒计时的模拟与仿真设计

C51单片机60秒倒计时的模拟与仿真设计

C51单片机60秒倒计时的模拟与仿真设计C51单片机是一种非常常用的单片机型号,在许多嵌入式系统中都有广泛的应用。

60秒倒计时是一种简单但实用的计时功能,可以在各种场景下使用,比如比赛计时、实验计时等。

这里将介绍如何使用C51单片机来实现并仿真设计一个60秒倒计时。

接下来,我们详细说明60秒倒计时的设计步骤。

1.硬件连接:将4位共阳数码管的共阳极接到单片机的P1口(P1.0-P1.3),将数码管的a-g段分别接到单片机的P2口(P2.0-P2.6)。

在P1口和P2口之间加上适当的上拉电阻。

2.编写程序:使用Keil C51环境新建一个C语言项目,并编写以下程序:```c#include <reg51.h>sbit D1 = P2^0;sbit D2 = P2^1;sbit D3 = P2^2;sbit D4 = P2^3;void delay(unsigned int t)unsigned int i, j;for(i=0; i<t; i++)for(j=0; j<0x4e; j++); }void maiunsigned int i, j, k; while(1)for(i=5; i>=0; i--)for(j=9; j>=0; j--)for(k=9; k>=0; k--)D1=i;D2=j;D3=k/10;D4=k%10;delay(1000);}}}}```4.调试和仿真:将单片机开发板接上电源,程序将开始运行。

我们可以通过观察数码管的显示来判断程序是否正常运行。

在程序开始时,数码管将显示59:59~00:00的倒计时时间,每隔1秒钟更新一次。

经过60秒后,数码管将停留在00:00的状态。

使用C51单片机实现60秒倒计时模拟和仿真设计非常简单,只需几步即可完成。

这个简单的例子也可以帮助初学者更好地理解和掌握C51单片机的使用方法。

当然,实际应用中可能会有更复杂的需求,需要进一步扩展和优化程序,但整体框架和思路仍然是相似的。

LED数字倒计时器单片机课程设计

LED数字倒计时器单片机课程设计

学会使用单片机开发工具,如Keil uVision等
掌握单片机中断、定时器、串口等常用 外设的使用方法
学会编写模块化、可重用的代码,提高 编程效率
学会调试和优化代码,提高程序运行效 率和稳定性
LED数字倒计时 器硬件设计
电路原理图设计
电源模块:提供稳定的电源电压 控制模块:控制LED数字倒计时器的工作状态 显示模块:显示倒计时时间 输入模块:接收用户输入信号,启动倒计时 输出模块:输出倒计时信号,驱动LED显示 保护模块:保护电路免受过压、过流等异常情况的影响
屏幕上
倒计时:将倒 计时时间减1, 并更新显示时

循环结束:当 倒计时时间减 至0时,循环结 束,显示“时
间到”信息
定时器中断服务程序
定时器中断服务程序的功能:实现LED数字倒计时器的定时功能
定时器中断服务程序的结构:包括定时器初始化、定时器中断处理、定时 器复位等部分
定时器初始化:设置定时器的工作模式、定时器周期、定时器中断优先级 等参数
电路板制作: 使用PCB软件 进行电路板制

元器件焊接: 将元器件焊接
到电路板上
电路板测试: 测试电路板功
能是否正常
LED数字倒计时 器软件设计
主程序流程图
初始化:设置 倒计时器参数, 如倒计时时间、
显示位数等
循环判断:判 断倒计时时间 是否为0,如果 为0则停止倒计

显示倒计时: 将倒计时时间 转换为数字, 并显示在LED
课程设计总结与 展望
设计总结与体会
课程设计过程: 从理论学习到实 践操作,逐步深 入
设计难点:解决 LED数字倒计时 器单片机的编程 和调试问题
设计收获:掌握 了单片机的基本 原理和编程技巧

单片机倒计时系统

单片机倒计时系统

单片机倒计时系统单片机倒计时系统可以采用8051单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计。

具体功能包括:1.六位LED显示,从59分59秒99开始倒计时。

2.倒计时精度为0.01秒,能正确地进行倒计时。

3.复位后倒计时重新回到初始状态。

单片机倒计时系统的制作方法包括以下步骤:1.确定系统的基本要求:例如数码管上显示计时的时间,可以通过按键实现1小时内初始时间的设定(以秒为分度),并且完成计时,可随时暂停并且重新设置计时时间等。

2.选择合适的单片机型号:根据需要实现的倒计时功能以及控制要求,选择适合的8051单片机型号,例如AT89C51等。

3.设计电路:根据所选的单片机型号和功能要求,设计外围电路,包括按键电路、复位电路、晶振电路、LED显示电路等。

4.编写程序:使用C语言等编程语言编写程序,实现倒计时的功能。

程序应该包括主程序、中断服务程序等。

在编写程序时需要考虑按键的输入、时间的计算、LED的显示等细节问题。

5.调试程序:通过调试程序可以确保程序的正确性和可靠性。

在调试时需要使用调试工具,例如示波器、逻辑分析仪等,对程序的各个部分进行测试和验证。

6.制作电路板:将设计好的电路制作成电路板,将各个元器件按照设计好的位置和连接方式焊接在电路板上。

7.测试系统:完成电路板的制作后,需要进行系统测试,验证是否实现了预期的倒计时功能。

测试时需要使用测试工具,例如电源、按键、LED显示器等,对系统的各个部分进行测试和验证。

总之,单片机倒计时系统是一个比较复杂的系统,需要设计电路、编写程序、制作电路板和测试系统等多个步骤。

在制作过程中需要注意细节问题,确保系统的正确性和可靠性。

基于51单片机的9999秒倒计时器毕业设计

基于51单片机的9999秒倒计时器毕业设计

编号:审定成绩:重庆邮电大学毕业设计(论文)设计题目:基于51单片机的9999秒倒计时器设计学院名称:通信与信息工程学院学生姓名:X正伟专业:电子信息工程班级:0120XXX学号:060201XX指导教师:刘XX答辩组负责人:填表时间:2010 年 6 月重庆邮电大学教务处摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。

由于单片机具有体积小、易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。

但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本论文针对倒计时系统的设计的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。

倒计时系统需要用到锁存器、矩阵键盘、LED数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。

对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即采用Keil uVision3软件程序进行译码。

本次设计采用C语言编程,通过倒计时子程序模块、矩阵键盘扫描模块、中断等子程序的正确调用,完成了可以随时设置初值的基于51单片机控制的9999秒倒计时系统。

【关键词】倒计时器单片机矩阵键盘Keil uVision3 LED数码显示器ABSTRACTIn recent years, with the penetration of computers in the social sphere, SCM applications are continually deepening, and the traditional control test is driving the rapid update. The size of SCM is very small, and it is easy to be producted. for control, high integration, functionality, high reliability, and so on. So it has been widely used in the area of industrial control, mechatronics, intelligent instruments and communications.In real-time detection and control of the microcomputer application system, the microcontroller is often used as a core component. But if only have the knowledge of SCM is not enough.It should be based on specific hardware architecture, and if the application-specific features of the software objects are combined will be perfect.This paper focuses on the needs of the countdown system design, introduced the MCS-51 MCU of some of the basic principles.Such as the 51 single-chip interface functions, interrupt, timer and so on. Countdown system needs to use latch, matrix keyboard, LED digital display and other major modules, through interaction between different modules to complete the Countdown to the initial hardware. The countdown device in the LED digital display, In order to simplify the circuit, reduce costs, we adopt a software-based interface method, namely using Keil uVision3 software program for decoding.C language programming was used in the design , we completed the initial value can be set at any time based on 51 single-chip control of the 9999 seconds countdown system by making use of the countdown subroutine modules, matrix keyboard scanning module, interrupt, and also the correct subroutine calls.【Key words】Counter-down SCM Matrix keyboard Keil uVision3 LED digital display目录前言 (1)第一章倒计时系统简介 (2)第一节功能说明 (2)一、设计要求 (2)二、方案说明 (2)三、系统功能 (3)第二节开发作用和意义 (3)第三节本章小结 (4)第二章MCS-51单片机基本原理 (5)第一节单片机概述 (5)一、单片机基础 (5)二、单片机应用领域 (7)三、单片机的生产厂家和机型 (8)第二节MCS-51单片机的组成原理 (8)一、80C51芯片介绍 (8)二、8051 与80C51 (10)第三节MCS-51单片机的引脚功能 (10)一、主电源引脚Vss和Vcc (11)二、外接晶体引脚XTAL1和XTAL2 (11)三、控制引脚RST/VPD、ALE/PROG、PSEN、EA/Vpp (11)四、输出输入引脚 (12)第四节中断 (14)一、中断的概念 (14)二、8051中断系统结构 (15)三、中断响应条件 (18)第五节定时器与计数器 (18)一、定时器概述 (18)二、定时器控制字 (18)第六节本章小结 (20)第三章倒计时器系统设计与调试 (21)第一节硬件电路设计 (21)一、中央处理器模块 (21)二、锁存器 (23)三、矩阵键盘 (25)四、LED数码显示模块 (26)第二节软件设计 (28)一、程序准备 (29)二、键盘扫描程序设计 (30)三、倒计时初值设置 (31)四、倒计时模块子程序设计 (32)五、其他子程序设计 (33)第三节系统调试 (34)一、系统调试工具Keil uVision3 (34)二、调试的主要方法 (34)结论 (38)致谢 (39)参考文献 (40)附录 (41)一、英文原文 (41)二、英文翻译 (51)三、源程序 (61)前言51系列单片机属于总线型单片机,具有硬件架构完整、功能强大、技术成熟、通用性强、可外部扩展、配套芯片齐全、集成开发环境好、实用子程序丰富以及价格低廉等一系列优点,无论是实际工程应用,还是学习单片机原理及其应用技术,51系列单片机都是理想的选择。

单片机倒计时器

单片机倒计时器

单片机倒计时器设计一电路原理倒计时采用stc89c52, 74hc573驱动四位数码管以及按键构成。

原理图如下:RP1为上拉10k排阻晶振采用12Mhz无缘晶振数码管为四位共阴数码管74hc573起所存作用四个按键分别连P3.4~P3.7二工作过程单片机上电初始化,P0口输出0,并把四位数码管全部打开,数码管显示四个0。

检测按键如果按键key1 按下那么数码管第一位加1。

如果按键key2 按下那么数码管第一位加1。

如果按键key3 按下那么启动定时器,开始倒计时。

如果按键key4 按下倒计时暂停,数码管显示停留在当前数值。

倒计时器用到了计时器工作方式0和t0溢出中断设定计时器初值为TH0=(65536-50000)/256;TL0=(65536-50000)%256;即50ms中断一次20次记一秒从而达到记时一秒的目的。

三软件程序程序由Keil uVision4软件用c语言编写,内容如下#include<reg52.h>#include<intrins.h>#define uc unsigned char;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x79,0x38,0x3f,0};sbit dula=P2^6;sbit wela=P2^7;sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;uc shu,shi,ge,bai,t0,num,ss;void shuma(shi,ge,ss);void delay(unsigned int z);void init ();void main(){P3=0xff;init();while(1){if(key4==0){TR0=0;}if(key3==0)TR0=1;if(key1==0){delay(5);if(key1==0){shi++;if(shi==10)shi=0;}while(!key1);delay(5);while(!key1);}dula=1;P0=table[shi];dula=0;if(key2==0){delay(5);if(key2==0){ge++;if(ge==10)ge=0;}while(!key2);delay(5);while(!key2);}dula=1;P0=table[ge];dula=0;shuma(shi,ge,ss);}}void init(){shi=0;ge=0;ss=0;TMOD=0x11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;EX0=1;}void time0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0++;if(t0==2){t0=0;if(ss==0){if(ge==0){if(shi==0)TR0=0;else{ge=9;shi--;ss=9;}}else{ss=9;ge--;}}elsess--;}}void shuma(shi,ge,ss){dula=1;P0=table[shi];dula=0;P0=0xff;delay(10);wela=1;P0=0xfe;wela=0;delay(10);dula=1;P0=table[ge];dula=0;P0=0xff;delay(10);wela=1;P0=0xfd;wela=0;delay(10);dula=1;P0=table[ss];dula=0;P0=0xff;delay(10);wela=1;P0=0xfb ;wela=0;delay(10);}void delay(unsigned int z){unsigned int x,y;for(x=z;x>0;x--)for(y=124;y>0;y--);}四实验总结通过这次试验使我们的动手能力得到了很强的锻炼。

单片机60秒倒计时

单片机60秒倒计时

1前言12工程概况23正文23.1 设计目的与要求23.2 设计方法的目标23.3 设计方法和内容23.3.1 硬件设计方法33.3.2 软件设计方法63.4 软件调试过程83.4.1 系统调试工具keilC5183.4.2 系统调试工具PROTEUS83.4.3 焊接电路,对各节点测试导通性9 4有关说明105设计总结106致谢107参考文献10在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。

现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。

单片机就是微控制器,它是嵌入式系统中的重要且发展迅速的组成部分。

单片机接上震荡元件(或震荡源)、复位电路和接口电路,载入软件后,可以构成单片机应用系统。

将它嵌入到形形色色的应用系统中,它就成为众多产品、设备的智能化核心。

所以,生产企业称单片机为“微电脑”。

单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。

但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。

从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。

这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。

微控制技术是一种全新的概念,是对传统控制技术的一次革命。

随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

用单片机做的倒计时15s

用单片机做的倒计时15s

用单片机设计15s倒计时器跳线设置:默认跳线位置,注意蜂鸣器选择跳线J5要选23端程序效果:利用单片机的定时/计数器设计一个15到0倒计时器,按S4后启动,要求精确显示到百分之一秒。

发挥部分:1、定时结束后有提示音报警,并可重新定时2、定时过程中按独立键盘s5可暂停,按S4继续运行环境:51hei单片机学习板*/ORG 0000HLJMP START //主程序必须避开地址000BHORG 000BH //定时器0的中段服务程序,起始地址为000BHLJMP IT00ORG 0030HSTART: MOV TH0,#0EBH //装入初始值,定时时间为10msMOV TL0,#64HMOV TMOD,#01H //工作方式1MOV 33H,#01 //显示初值为15sMOV 32H,#05MOV 31H,#00MOV 30H,#00SETB ET0 //打开定时0SETB EA //开总中断LOOP1: JB P3.6,LOOP //判断高低位,即按键KEY0是否按下LCALL DISPLAY //为低,即按键按下,延时消抖LCALL DISPLAYJB P3.6,LOOP //按键真的按下,并不是外界的干扰SETB TR0 //启动定时器HERE: LCALL DISPLAY //调用显示JB P3.7,LOOP3 //判断高低,即KEY1按键是否按下CLR TR0 //按下,关闭定时器,这里并没有消抖LJMP LOOP1 //等待KEY0的按下LOOP3: SJMP HERE //KEY1没有按下,就需显示LOOP: LCALL DISPLAY //KEY1没有按下,就需显示LJMP LOOP1//减10ms子程序SUB1: DEC 30H //百分位减1MOV A,30HCJNE A,#0FFH,LOOP2 //判断百分位减到0之后是否再减1MOV 30H,#09 //是,装入初值9DEC 31H //十分位减1MOV A,31HCJNE A,#0FFH,LOOP2 //判断百分位减到0之后是否再减1MOV 31H,#09MOV A,32HCJNE A,#0FFH,LOOP2MOV 32H,#09DEC 33HMOV A,33HCJNE A,#0FFH,LOOP2clr P2.2 //从15s减到0s后,驱动蜂鸣器 LCALL DELAY //延时LCALL DELAYSETB P2.2 //关闭蜂鸣器MOV 33H,#01 //装入初值15sMOV 32H,#05MOV 31H,#00MOV 30H,#00LOOP2: NOP //空指令RET //返回//显示子程序DISPLAY: MOV DPTR,#TAB //赋表首地址MOV A,#0FBHSETB P2.7MOV P0,A //亮最左边的数码管CLR P2.7XCH A,R0 //暂存A的值MOV A,33HMOVC A,@A+DPTR //根据表值查找所需的值 SETB P2.6MOV P0,A //显示值CLR P2.6LCALL DELAY //延时XCH A,R0 //恢复原值RL A //循环左移,为下次做准备SETB P2.7MOV P0,ACLR P2.7XCH A,R0MOV A,32HMOVC A,@A+DPTRSETB P2.6MOV P0,ACLR P2.6LCALL DELAYXCH A,R0RL AMOV P0,Aclr P2.7XCH A,R0MOV A,31HMOVC A,@A+DPTRSETB P2.6MOV P0,Aclr P2.6LCALL DELAYXCH A,R0RL ASETB P2.7MOV P0,Aclr P2.7XCH A,R0MOV A,30HMOVC A,@A+DPTRSETB P2.6MOV P0,Aclr P2.6LCALL DELAYRETTAB: DB 3FH,06H,5BH,4FH,66H ;数码管显示的数值DB 6DH,7DH,07H,7FH,6FHIT00: MOV TH0,#0EBH //装入初值,时间为10msMOV TL0,#64HLCALL SUB1 //减10msRETI //返回DELAY: MOV R7,#04 //延时子程序,时间大约为:2us*4*250DEL2: MOV R6,#250DEL1: DJNZ R6,DEL1DJNZ R7,DEL2RETEND //结束单片机AT89C51 00——99带倒计时计数器[日期:2008-01-29 ] [来源:东哥开发网() 作者:佚名] [字体:大中小] (投递新闻)1.设计任务(1.上电时显示“00”,第一次按下SP1后就开始计数。

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

单片机倒计时器设计
一电路原理
倒计时采用stc89c52, 74hc573驱动四位数码管以及按键构成。

原理图如下:
RP1为上拉10k排阻
晶振采用12Mhz无缘晶振
数码管为四位共阴数码管
74hc573起所存作用
四个按键分别连P3.4~P3.7
二工作过程
单片机上电初始化,P0口输出0,并把四位数码管全部打开,数码管显示四个0。

检测按键如果按键key1 按下那么数码管第一位加1。

如果按键key2 按下那么数码管第一位加1。

如果按键key3 按下那么启动定时器,开始倒计时。

如果按键key4 按下倒计时暂停,数码管显示停留在当前数值。

倒计时器用到了计时器工作方式0和t0溢出中断
设定计时器初值为TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
即50ms中断一次20次记一秒从而达到记时一秒的目的。

三软件程序
程序由Keil uVision4软件用c语言编写,内容如下
#include<reg52.h>
#include<intrins.h>
#define uc unsigned char;
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x76,0x79,0x38,0x3f,0};
sbit dula=P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
uc shu,shi,ge,bai,t0,num,ss;
void shuma(shi,ge,ss);
void delay(unsigned int z);
void init ();
void main()
{
P3=0xff;
init();
while(1)
{
if(key4==0)
{
TR0=0;
}
if(key3==0)
TR0=1;
if(key1==0)
{
delay(5);
if(key1==0)
{
shi++;
if(shi==10)
shi=0;
}
while(!key1);
delay(5);
while(!key1);
}
dula=1;
P0=table[shi];
dula=0;
if(key2==0)
{
delay(5);
if(key2==0)
{
ge++;
if(ge==10)
ge=0;
}
while(!key2);
delay(5);
while(!key2);
}
dula=1;
P0=table[ge];
dula=0;
shuma(shi,ge,ss);
}
}
void init()
{
shi=0;
ge=0;
ss=0;
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
EX0=1;
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t0++;
if(t0==2)
{
t0=0;
if(ss==0)
{
if(ge==0)
{
if(shi==0)
TR0=0;
else
{
ge=9;
shi--;
ss=9;
}
}
else
{
ss=9;
ge--;
}
}
else
ss--;
}
}
void shuma(shi,ge,ss)
{
dula=1;
P0=table[shi];
dula=0;
P0=0xff;
delay(10);
wela=1;
P0=0xfe;
wela=0;
delay(10);
dula=1;
P0=table[ge];
dula=0;
P0=0xff;
delay(10);
wela=1;
P0=0xfd;
wela=0;
delay(10);
dula=1;
P0=table[ss];
dula=0;
P0=0xff;
delay(10);
wela=1;
P0=0xfb ;
wela=0;
delay(10);
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=124;y>0;y--);
}
四实验总结
通过这次试验使我们的动手能力得到了很强的锻炼。

并加深了对单片机和c语言的理解运用。

在编写程序的过程中获得了许多平时在书本上无法获得的经验和教训。

在焊接电路的过程中也给我们以后再电路设计上很大的启发的感悟。

相关文档
最新文档