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

📄 text1.c

📁 一次拟合算法,AD转换后的预处理算法,串口,定时器,积分,排序,三角形,延时,一元二次方程.
💻 C
字号:
/*
  利用计数器来使P1.1产生一个方波,周期为25ms,占空比为50%,使用22.1184MHz时钟周期。
此时最大计数时间为35.5ms,取25ms,对于1s,可以取40个
周期,其中高电平为20个周期。每个周期计数次数为:25*10^(-3)*22.1184/12=46080次。
此程序仅为学习计数器用
*/

// 如用33M的晶振,取每10ms中断一次,则每个周期计数次数:10*10^(-3)*33/12=27500次。
#include<reg52.h>
#include<stdio.h>

#define uchar unsigned char
uchar time=0,second=0,minute=0,hour=0,day=1,month=1;
unsigned int year=2004;
sbit P1_1=P1^1;
uchar period=50,dx=0;


timer0() interrupt 1 using 1{
//	TH0=(65536-46080)/256;
//	TL0=(65536-46080)%256;
	TH0=(65536-27500*2)/256;
	TL0=(65536-27500*2)%256;
	time++;
	}
	
void main(){

 //////////////////////////////////////////////
//Setup the serial port for 1200 baud at 16MHz.
///////////////////////////////////////////////
#ifndef MONITOR51
    SCON  = 0x50;		        /* SCON: mode 1, 8-bit UART, enable rcvr      */
    TMOD |= 0x20;               /* TMOD: timer 1, mode 2, 8-bit reload        */
	PCON=0x80;
    TH1   = 247;                /* TH1:221  reload value for 1200 baud @ 16MHz   */
	TL1=247;					/*9.6K baud for 33M*/
    TR1   = 1;                  /* TR1:  timer 1 run                          */
    TI    = 1;                  /* TI:   set TI to send first char of UART    */
#endif
////////////////////////////////////////////////////////////////////////////////////
	TMOD |=0X01;
	TH0=(65536-27500*2)/256;
	TL0=(65536-27500*2)%256;
	EA=1;
	ET0=1;
	TR0=1;
	time=0;
	do{
		if(time==50){printf (" %u-%bu-%bu  %bu:%bu:%bu\n",year,month,day,hour,minute,second);	
		
		}
		if(time==50){second++;time=0;}
		if(second==60){minute++;second=0;}
		if(minute==60){hour++;minute=0;}
		if(hour==24){day++;hour=0;}
		if(day==31){month++;day=1;}
		if(month==13){year++;month=1;}
	    }while(1);
	}

⌨️ 快捷键说明

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