最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机60分钟到计时程序

来源:动视网 责编:小OO 时间:2025-10-02 00:52:54
文档

单片机60分钟到计时程序

/*********************************************************************************************程序名:倒计时编写人:编写时间:硬件支持:STCC52外部12MHZ晶振接口说明:修改日志:NO.1-/*********************************************************************************************说明:/****
推荐度:
导读/*********************************************************************************************程序名:倒计时编写人:编写时间:硬件支持:STCC52外部12MHZ晶振接口说明:修改日志:NO.1-/*********************************************************************************************说明:/****
/*********************************************************************************************

程序名:    倒计时

编写人:     

编写时间:  

硬件支持:  STCC52  外部12MHZ晶振

接口说明:  

修改日志:  

  NO.1- 

/*********************************************************************************************

说明:

/*********************************************************************************************/

#include //通用C52头文件

/*********************************************************************************************

#define [代替名] 原名]  //用代替名代替原名(可以方便修改常改或调试的值)例:#define LED PORT

sbit  [自定义名] = [系统位名] ; //自定义系统位名。例:sbit Add_Key = P3 ^ 1;

/*********************************************************************************************/

#define uchar unsigned char //定义一下方便使用

#define uint  unsigned int

sbit KEY1=P2^0;  //启动键

sbit KEY2=P2^1;  //加键

sbit KEY3=P2^2;  //清零键

sbit fmq=P3^3;  //蜂鸣器

sbit jdq=P3^7;  //继电器

uchar  TIME_SS=0,TIME_MM=1,TIME_HH=0;

uchar cou=0;

uchar MENU=0;

sbit dian=P0^7;  //秒点

uchar code table[]= //code 表示编码的意思,定义数组是占用内存空间的,而定义编码时是直接分配到程序空间

{

 //  0    1    2   3     4    5    6    7    8    9  

}; //共阳数码管显示字型码数组

/*********************************************************************************************

函数名:毫秒级CPU延时函数

调  用:DELAY_MS (?);

参  数:1~65535(参数不可为0)

返回值:无

结  果:占用CPU方式延时与参数数值相同的毫秒时间

备  注:应用于1T单片机时i<600,应用于12T单片机时i<125

 占用CPU的延时程序还需要考虑单片机的机械周期,12T单片机(ATC51)与1T单片机(STC11F32XE)的延时长度不同。)

/*********************************************************************************************/

v延时程序(12MHz 10倍于51单片机速度时)

 

    

}

/*********************************************************************************************/

/*********************************************************************************************

函数名:500us基准延时函数

调  用:delay500us();

参  数:无

返回值:无

结  果:

备  注:用于蜂鸣器发声

/**********************************************************************************************/

void delay500us()

{

 

}

/*********************************************************************************************

函数名:产生1KHZ频率声音的函数

调  用:beep();

参  数:无

返回值:无

结  果:

备  注:

/**********************************************************************************************/

void beep()

{

 

 

 

 

}

/*********************************************************************************************

函数名:驱动数码管显示函数

调  用:display (?);

参  数:1~255(参数不可为0)

返回值:无

结  果:

备  注:

/*********************************************************************************************/

void display(unsigned char TIME_SS,unsigned char TIME_MM) 

        //  0    1    2   3     4    5    6    7    8    9    A    b   C     d   E    F    无

  段选送4

   位选个位

 

  关闭所有显示

 

  段选送3

  位选十位

 

       P1=0xff;   //关闭所有显示

 

  段选送2

  显示秒点

  位选百位

 

 关闭所有显示

 

  段选送1

  位选千位

  关闭所有显示

/*********************************************************************************************

函数名:按键扫描函数

调  用:KEY ( );

参  数:无

返回值:无

结  果:

备  注:

/*********************************************************************************************/

void KEY( ) 

 

 

  

  

  

  

   

  

  

 

 

 

 

  

  

  

  

   

   

  

 

 

 

  

  

  

  

   

  

  

 

/*********************************************************************************************

函数名:定时/计数器初始化函数

调  用:T_C_init();

参  数:无

返回值:无

结  果:设置SFR中T/C1和(或)T/C0相关参数

备  注:本函数控制T/C1和T/C0,不需要使用的部分可用//屏蔽

/**********************************************************************************************/

void T_C_init ( )

{

 使用定时器T0的模式1 [ GATE,C/T,M1,M0,GATE,C/T,M1,M0 ]

  中断总开关

 定时器T0的高8位赋初值

 定时器T0的低8位赋初值

 中断开关

 启动开关  初态为停

}

/**********************************************************************************************/

/*********************************************************************************************

函数名:主函数

调  用:无

参  数:无

返回值:无

结  果:程序开始处,无限循环

备  注:

/**********************************************************************************************/

void main ( )

 定时/计数器初始化

 

 数码管显示

  

  

   按键扫描

  

   

  

      

   

    

    

       

    

           

    

   

  

  

  

  

  

  

    

    

    

     

     

  

  

}

/*********************************************************************************************/

/*********************************************************************************************

函数名:定时/计数器0中断处理函数

调  用:[T/C0溢出后中断处理]

参  数:无

返回值:无

结  果:重新写入16位计数寄存器初始值,处理用户程序

备  注:必须允许中断并启动T/C本函数方可有效,重新写入初值需和T_C_init函数一致?

/**********************************************************************************************/

v中断服务程序(产生50ms时基信号) 

 定时器T0的高8位赋初值(重新写入初值)

 定时器T0的低8位赋初值(重新写入初值)

    计数值到100(1s) (****时间为倒计时****)  

        cou = 20;               // 软计数器清零

 

  秒计数值到60  

 

            TIME_SS = 60;           // 秒计数器清零

    分计数到60 

   

                TIME_MM = 60;       // 分计数器清零

                //if(TIME_HH ==0)     // 时计数到

    

                   //TIME_HH = 24;   //  

    

                TIME_HH--;         // 时计数器加1(进位

            }   

            TIME_MM--;             // 分计数器加1(进位60s=1m)  

        }   

        TIME_SS--;                 // 秒计数器加1(进位

    cou--;                       // 软计数器加

}

/**********************************************************************************************/

/*****************************************************************************/

//羽翼电子工作室  http://yuyidianzi.taobao.com

/*****************************************************************************/

文档

单片机60分钟到计时程序

/*********************************************************************************************程序名:倒计时编写人:编写时间:硬件支持:STCC52外部12MHZ晶振接口说明:修改日志:NO.1-/*********************************************************************************************说明:/****
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top