⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 定时时钟.c

📁 本文件包含了使用C语言编写单片机的各种入门程序
💻 C
字号:
#include<reg51.h>
#include<intrins.h>
//===================== 加载头文件和函数
sbit sda=P0^2;//定义数据线
sbit scl=P0^3;//定义时钟线
//===========================
 int counter,bulf;//定义变量
 int second,minute,hour;//定义变量
//-------------字型码----------------------------
code char led[16]={0x11,0xD7,0x32,0x92,           /* 0 1 2 3 4 */
                   0xD4,0x98,0x18,0xD3,0x10,0x90, /* 5 6 7 8 9 */
				   0x50,0x1C,0x39,0x16,0x38,0x78};/* A B C D E F*/
//-----------------------------------------------
void send(unsigned char a)  //串行输出,74LS164
{
   unsigned char i;
   scl=0;
   for(i=0;i<8;i++)
     {
        if(_crol_(a,i)&0x80)  //向左移i位  _cror_(a,i)则向相反方向(向右)移i位
            sda=1;
        else 
            sda=0;
        scl=0;_nop_();scl=1;
      }
}
//---------显示子程序--------------
void display()
{
   send(led[second%10]);    //查表得到代码后,串行输出
   send(led[second/10]);
   send(0xff);
   send(led[minute%10]);
   send(led[minute/10]);
   send(0xff);
   send(led[hour%10]);
   send(led[hour/10]);
}
//==================================
//主程序
main()
{
    second=30;minute=00;hour=00;
    TMOD=0x01;   //定时器0工作于方式1
	TH0=0x3b;
	TL0=0xc0;     //定时50ms
        counter=16;
	bulf=50000;    
 
 	EA=1;        //开总中断  
	ET0=1;       //开定时中断
	TR0=1;       //起动定时器
   
    while(1)P2=0x00;
}
//==============================

//定时中断0服务子程序
void  timer0_int(void)  interrupt 1   //定时器0中断工作方式为1
{ 
        TR0=0;   //关定时中断
   	TH0=0x3b;
	TL0=0xc0;     //重新付值定时50ms
    if(!(counter--))  //定时器是否到1S
     {
        counter=16;
        P2=0xff;
        while(bulf--);
        //---------------------
         
         if(second>=59)
           {
             second=0;
             if(minute>=59)
               {
                minute=0;
                    if(hour>=23)hour=0;
                    else hour=hour+1;
                } 
              else minute=minute+1;
            }
           else  second=second+1;
           display();
        //---------------------
       }
    bulf=50000;
	TR0=1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -