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

📄 t0.c

📁 52单片机开发板的实例程序
💻 C
字号:
/*****************
用定时器0来作一个秒表
*************************/
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit a=P1^0;
sbit b=P1^1;
sbit c=P1^2;
/************************************
共阴数码管0---9的译码表
**********************/
const uchar table[]={
          0x3f,0x06,0x5b,0x4f,0x66,
          0x6d,0x7d,0x07,0x7f,0x6f};
uchar ms=0,s=0,fen=0;
uchar tt=0;
void delay(uint z)//延时函数
{
	uint i,j;
	for(i=z;i>0;i--)
	for(j=110;j>0;j--);
}
void HC138(uchar i)//74HC138子函数
{
  a=i&0x01;
  b=i&0x02;
  c=i&0x04;
}
void display(uchar count,uchar dat)//8位数码管分成4段,每段显示两位
{
   uchar ge,shi;
   shi=dat/10;
   ge=dat%10;
   HC138(count);
   P2=table[ge];
   delay(1);
   HC138(count+1);
   P2=table[shi];
   delay(1);
}
void main()
{		
	TMOD=0x01;//设定工作方式 
	TH0=(65536-4800)/256;//装入初值
	TL0=(65536-4800)%256;
	EA=1;  //开总中断
	ET0=1;  //开定时器中断
	TR0=1;  //启动定时器
		while(1)
		{
		  display(4,ms);//显示毫秒
          display(6,s);//显示秒
          display(0,fen);//显示分钟
		}
		
}
void t0() interrupt 1//定时器0中断函数
{
	TH0=(65536-4610)/256;//装入初值
	TL0=(65536-4610)%256;
	tt++;
    if(tt==2)
    {
       tt=0;
       ms++;
       if(ms==100)
         {
            ms=0;
            s++;
            if(s==60)
             {
               s=0;
               fen++;
             }
         }
    }
}


⌨️ 快捷键说明

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