单片机60秒倒计时

发布者:小牛队最新更新时间:2020-09-03 来源: 51hei关键字:单片机  60秒  倒计时 手机看文章 扫描二维码
随时随地手机看文章

#include

#define uint unsigned int

#define uchar unsigned char

uchar code table[]={0xc0,0xf9,0xa4, 0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90};

sbit gew=P2^1;

sbit shiw=P2^0;

sbit k2=P1^0;

uchar num,num1=60,num2,shi,ge;

void Init()                                                         //初始化子函数

{

        TMOD=0X01;                                                //设定定时器0的工作方式为1

        TH0=(65536-50000)/256;                        //定时器装初值一个周期50ms

        TL0=(65536-50000)%256;

        EA=1;                                                        //开总中断

        ET0=1;                                                    //开定时器0中断

        TR0=1;                                                        //启动定时器0


}

void delay(uint xms)                                //延时子函数

{

        uint i,j;

        for(i=xms;i>0;i--)

        for(j=110;j>0;j--);

}


void scankey()                                                //键盘检测子函数

{

        if(k2==0)                                                //检测键是否被按下

        {

                delay(5);                                        //延时消除抖动

                if(k2==0)                                        //重新读取k2的值

                {                                                        

                        num2++;                                        //num2为按次数标志位

                        while(!k2);                                //等待按键释放

                        if(num2==1)                                //按键一次计时停止

                           TR0=0;

                        if(num2==2)                                //按键两次计时开始

                        {               

                                  TR0=1;

                        }

                }

        }

}


void main()                                                         //主函数

{

        Init();                                                         //初始化子函数调用

        while(1)

        {

                scankey();                                         //不断键盘扫描

                gew=1;                                                 //打开数码管个位位选                                         

                P0=table[ge];                                 //数码管个位赋值

                delay(1);                                         //延时 送入数据的反应时间

                gew=0;                                                 //关闭数码管个位位选

                delay(1);


                shiw=1;                                                  //打开数码管十位位选        

                P0=table[shi];                                  //送入数据

                delay(1);                                          

                shiw=0;                                                  //关闭数码管十位位选

                delay(1);

        }

}

void Timer0()interrupt 1                           

{

        TH0=(65536-50000)/256;                          //定时器重装初值

        TL0=(65536-50000)%256;

        num++;

        if(num==20)                                                  //定时器每进行一个周期num加1,运行20个周期即为1s

        {

                num=0;                                                  //到1秒,num清0重新开始

                num1--;                                                  //倒计时1秒

                if(num1==0)

                num1=60;

                shi=num1/10;                                  //两位数分离赋给数码管十位显示

                ge=num1%10;                                          //两位数分离赋给数码管个位显示

        }

}


关键字:单片机  60秒  倒计时 引用地址:单片机60秒倒计时

上一篇:单片机主机通过DS18B20测温,从机接收并且实时显示温度
下一篇:单片机设计的DS18820温度报警器

推荐阅读最新更新时间:2024-11-09 20:34

AVR单片机中左移位和右移位指令
计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。 AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。 SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令, 而我们所做的11个实验程序仅用了34条指令, 我们重点讲这34条指令, 其余指令就可自学了。 AVR器件(指令速查表) 118条指令器件 AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/85
[单片机]
AVR<font color='red'>单片机</font>中左移位和右移位指令
一种多通道ADC采样板系统电路设计
  ADC板的设计从通道上来划分的话,可以分为单通道ADC板和多通道ADC板,除去有效位数、动态范围、最大采样率以及输入带宽等一些基本参数以外,多通道ADC板相对于单通道ADC板来说,往往还要衡量通道间幅度一致性和通道间相位一致性,这也正是多通道ADC板设计的一个难点。为了满足四路ADC之间通道间幅度一致性和通道间相位一致性的指标要求,首先需要将四路ADC芯片的采样时钟做到尽可能同步,实现四路ADC芯片对输入中频信号的同步采集。为此,本设计采取了把外部输入采样时钟通过同一时钟驱动芯片分发后送给四路ADC芯片作为同步采样时钟的方式,在时序上保证了四路ADC芯片采样时钟的同步。    时钟分发单元电路设计   时钟分发单元需要差分时
[电源管理]
一种多通道ADC采样板系统电路设计
单片机--按键定时器检测:短按、长按
通过使用定时器计数的方法来分辨按键的:短按、长按 检测到引脚被拉低:按键按下为低电平,没有按下为高电平 延时10毫秒:滤波 引脚还是被拉低:确定按键被按下 设置按键按下标志 开启定时器,开始计数:定时器中有一个全局变量用于记录计数值 直到引脚被拉高:按键被释放将为高电平 关闭定时器 检测按键按下标志 检测定时器按键检测时间全局变量是否大于某个值,一般为200ms 大于则为长按,否则为短按 51系列单片机按键检测 typedef enum { KEY_SINGLE_PRESSED, KEY_LONG_PRESSED, KEY_DEFAULT_STATUS, } key_state_e; uint8_t ylf_key_
[单片机]
STM32单片机-标准库编译成lib库
-------------------------------------------------------------------------------------------------------------------------------- 以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程。 这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间。每次建立工程都这么编译,是一个相当浪费时间和香烟的过程。 于是,我有了将库编译成lib文件的想法。本博文就是我将STM32F4的标准库编译成lib文件并在工程中使用的过程。 适用对象: 1、熟悉库,不
[单片机]
STM32<font color='red'>单片机</font>-标准库编译成lib库
基于C8051F单片机的光合测定仪
  当前,我国农业生产正由 资源依存型 向 科技依存型 转变,提高作物产量和质量是农业牛产所面临的垂大问题。一般而言,作物产量的90%以上来自光合作用,因此,加强农作物光合作用的研究,提高光能利用率具有十分重要的意义。由于光合作用研究的是活的有机体,光合速率受光照、温度、CO2浓度、价养状况、叶龄等因素的影响而有很大变动,因此,测定方法应快速、准确A.操作方便;此外,光合测定一般是在野外的环境中进行,测定仪器应体积小、重量轻、便于携带,而A.对测定数据可以进行分析、存储和扫印。因此,光合测定仪的发展方向是多功能、智能化、便携式、低功耗以及人机交互界面友好。   本文以C8051F高速单片机作为处理器,介绍新型智能光合测定仪的设计。
[单片机]
基于C8051F<font color='red'>单片机</font>的光合测定仪
AT89C2051单片机对步进电机驱动器系统的设计
AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。图中L1为步进电机的一相绕组。AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。 图中的RL1~RL4为绕组内阻,50Ω电阻是一外接电阻,起限流作用,也是一个改善回路时间常数的元件。D1~D4为续流二极管,使电机绕组产生的反电动势通过续流二极管(D1~D4)而衰减掉,
[单片机]
AT89C2051<font color='red'>单片机</font>对步进电机驱动器系统的设计
51单片机串口通信的原理实例
一、原理简介 51单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1)
[单片机]
51<font color='red'>单片机</font>串口通信的原理实例
基于双单片机的数据通信模块设计方案
在信息数据传播的过程中,人们为了保障数据通信系统的工作性能,就将一些新型的通信技术应用到其专用,从而实现双单片机数据通信模块的设计,以确保信息数据传递的有效性和稳定性。其中SPI总线的应用,不但使得数据通信的效果得到很好的改善,还简化了整个通信系统的电流结构,使得双单片机数据通信模块设计的可靠性得到有效的提高。而且随着社会的不断发展,人们也将许多先进的科学技术应用到其中,有效的促进了我国通信行业的发展,使其通信性能得到进一步的优化。 双单片机SPI总线数据通信设计分析 在当前我国工业经济发展的过程中,人们为了实现工业的信息化生产,就将计算机控制系统应用到其中才,使其生产效率和质量得到有效的提高。但是,由于工业生产环境十分的恶劣,这
[电源管理]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved