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

📄 miao_biao.c

📁 单片机初学者必看内容
💻 C
字号:
//**************************************************
//程序功能:秒表,9.9秒表设计
//*************************************************


#include<AT89X52.h>

code unsigned char seg7code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
                               0x82,0xf8,0x80,0x90,0xff}; //共阳数码管段码

unsigned int cnt=0;          //由于底下的cnt用到了4000,所以这时不能定义成char类型(最大才255)
unsigned char sec=0;         //秒钟
unsigned char min=0;         //分钟
unsigned char hour=0;        //小时


void delay1ms()          //1毫秒延时子程序
{
 unsigned char i;
 for(i=124;i>0;i--);  //延时124*8+10=1002us
}


void LED_display()       //显示子程序
{

	 P1=0xfb;                   //P1.2=0,选通第三位
	 P2=seg7code[sec/10];       
	 delay1ms();
	 P2=0xff;                   //消隐

	 P1=0xf7;                   //P1.3=0,选通第四位
	 P2=seg7code[sec%10];      
	 delay1ms();
	 P2=0xff;                  //消隐
}


void timer0 (void) interrupt 1 using 0   //定时器T0
{
 cnt++;             //每过250us,cnt加一
 if(cnt==400)      //250*400=0.1s
 {
  cnt=0;
  sec++;           
  if(sec==100)       //定时10秒,重新开始
  {sec=0;}

  }
}


main()
{
	 TMOD=0x02;          //T0,方式2
	
     EA=1;                 //开总中断
	 ET0=1;               //开定时器T0中断

	 TH0=0x19;          //11.0529MHZ的晶振,250us的定时中断
	 TL0=0x19;
	 TR0=1;

  while(1)
 {
  LED_display();
 }
}

⌨️ 快捷键说明

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