单片机
返回首页

C51实现时钟12MHz

2022-02-21 来源:eefocus

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

*任务要求

*1、时钟12MHz,使用定时器T1的方式1定时20mS;

*2、对20mS计数50次产生1S;

*3、做一个时分秒的电子钟。                  

*

*作者:刘子琰

*时间:2020年3月28日10:13:41

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


#include < reg51.h >

#include

typedef unsigned char u8;

u8 hour=0,minute=0,second=0;

void Display(u8 H,u8 M,u8 S);

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

  主函数

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

void  main()

{

TMOD=0x10;   //定时/计数器1工作于方式1

TH1=(65536-20000)/256;

TL1=(65536-20000)%256;    //20ms定时常数


EA=1;        //开总中断

ET1=1;       //允许定时/计数器1中断

TR1=1;       //启动定时/计数器1中断


while(1){

Display(hour,minute,second);

}




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

作用:定时器1中断服务函数

形参:无

返回值:无

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

void Time1(void) interrupt 3 // using 0

{

static u8 Timer_Count=0;

TH1=(65536-20000)/256;

TL1=(65536-20000)%256;    //20ms定时常数

Timer_Count++;

if(Timer_Count>=20){

Timer_Count=0;

second++;

if(second>=60){

second=0;

minute++;

if(minute>=60){

minute=0;

hour++;

if(hour>=24){

hour=0;

}

}

}

}

}


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

作用:时钟显示模块(这里只是一个说明,到时候自己可以写一个数码管)

形参:u8 hour,u8 minute,u8 second

返回值:无

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

void Display(u8 H,u8 M,u8 S){

return ;

}


进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外遥控音量控制

  • LM317过压保护

  • 12V转110V/220V 500W逆变器

  • DS1669数字电位器

    相关电子头条文章