time3.c

来自「c8051f020模块.rar」· C语言 代码 · 共 72 行

C
72
字号
#include <c8051f020.h>

#define uint8 unsigned char
#define uint16 unsigned int

//#define time 2000	 //时间=(time/1000)s

uint16 flag;
uint16 time=100;

void SYSCLK_Init(void)
{ 
  uint8 i;
  OSCXCN = 0X67;//开始外部22.1184M晶振
  for(i = 0;i < 128;i++); //等待外部起振
  while(!(OSCXCN & 0X80));	//查询标志位
  OSCICN = 0X88;//用外部晶振,并使能时钟丢
}


void Init_Timer3(void)
{
  TMR3CN=0X00;
  TMR3RLL=0X0cd;
  TMR3RLH=0X0f8;
  //TMR3L=0X0ff;
  //TMR3H=0X0ff;
  TMR3CN|=0X04;
  EIE2|=0X01;
}


void Init_PORT(void)
{
  XBR2=0X40;
  //P0MDOUT=0XFF;
  //P74OUT=0X04;
  P74OUT=0Xff;
  P5=0X00;
  //P0=0xff;
}


void Timer3_ISR(void) interrupt 14
{
  TMR3CN&=0X7F;
  flag++;
  if(flag==time)
  {
  	P5=~P5;
	time=time+100;
	if(time>=65000)
	time=100;
  	flag=0;
  }
}


void main(void)
{
   WDTCN = 0xde;
  WDTCN = 0xad;//关闭看门狗
  SYSCLK_Init();
  Init_PORT();
  Init_Timer3();
  EA=1;
  while(1)
  {
   
  }

}

⌨️ 快捷键说明

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