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

📄 mcu51_set.c

📁 这是一个对OSD芯片upd6464A操作的接口测试程序,使用KC51编译一个高速球键盘程序
💻 C
字号:
/*----------------------------------------------------------
系统时钟取11.059M
串口在初始时取9600发送,延时操作和下一级协调,然后按相机的的要求
设置
----------------------------------------------------------*/

#include <general.h>
void  GlobalSet()
{
 AUXR   = 1;               //全增益和外部存储器输出关闭
 P1=P2=P3=P4=0xff;
}
void IntSet()
  {
  	EX0=0,EX1=0,EX2=0,EX3=0;    //中断四个外部全关闭

	ET0=1,ET1=0;ET2=0;ES=1;				//定时器0暂时先关闭,以后有日历后开启
	IPH=0;IP=0x10;         	    //串口为1定时器0为0级
    XICON=0;                    //不允许外部23中断
  }

void  IntEnable(void)
{
	EA=1;						//全局开
}
void IntDisable(void)
{
	EA=0;						//全局关
}
void TimerSet(void)
{

	TCON=0;
    TMOD=0x21;					//定时器0工作于16位定时器定时器1工作于8位重装
	T2CON=0x20;					//定时器于波特率方式TCLK=0,RCLK=1
                                 //定时器工作于接收用2发送用1的溢出率来表示
	                            //全都工作于内部计数C/T_=0
}
void SciSet(void)
{
	SCON=0x50;					//定义串口工作方式
      
    PCON=0x80;                    //定时器1溢出/2,=0x80则直接采用溢出率
}


/*------------------------------------------------------

串行口计算公式如下;
RCLK=1接收采用定时器2   Baud=Frequence/2/(65536-T2)/16
TCLK=0发送采用定时器1   Baud=Frequence/12/(256-TH1)/16
定时器1溢出=Frequence/12/(256-TH1)


--------------------------------------------------------*/
void TxdBaud19200()
{
   TH1=-3;               //重装值
   TL1=TH1;
}
void TxdBaud9600()
{
   TH1=-6;               //重装值
   TL1=TH1;
}
void TxdBaud4800()
{
   TH1=-12;               //重装值
   TL1=TH1;
}
void TxdBaud2400()
{
     TH1=-24;               //重装值
   TL1=TH1;
}

void RxdBaud19200(void)
{
	int x;

	x=-18;
	RCAP2L=(unsigned char)x;
	RCAP2H=(unsigned char)(x>>8);

}
void RxdBaud9600(void)
{
	int x;

							//为默认的最初方式,baudrate=f/32/T2溢出率
	x=-36;						//晶振取11.059M
	RCAP2L=(unsigned char)x;
	RCAP2H=(unsigned char)(x>>8);
	
}


void RxdBaud4800(void)
{
	int x;

	x=-72;
	RCAP2L=(unsigned char)x;
	RCAP2H=(unsigned char)(x>>8);

}
void RxdBaud2400(void)
{
	int x;

	x=-144;
	RCAP2L=(unsigned char)x;
	RCAP2H=(unsigned char)(x>>8);

}
void T0Start(void)
{
	TR0=1;					
	
}
void T0Stop(void)
{
	TR0=0;
			 //计数关   
}
void T1Start(void)
{
	TR1=1;					
	
}
void T1Stop(void)
{
	TR1=0;
			 //计数关   
}
void T2Start(void)
{
	TR2=1;
}
void T2Stop(void)
{
	TR2=0;
}

⌨️ 快捷键说明

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