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

📄 main.c

📁 我今天找的很多的资料!5460资料的!希望对大家有作用!
💻 C
字号:
//==================================
//===文件:main.c
//===功能:读取CS5460A
//===创建日期:20080815
//===创建人:刘彦亮
//==================================
#include<STC12C5410AD.H>
#include<stdio.h>
#include<intrins.h>


//---口线定义
sbit bRESET=P1^0;	//CS5460-RESET
sbit bCS=P1^1;		//CS5460-CS
sbit bSDI=P1^2;		//CS5460-SDI
sbit bSDO=P1^3;		//CS5460-SDO
sbit bSCLK=P1^4;	//CS5460-SCLK	
sbit bINT=P3^2;		//CS5460-INT
sbit bXIN=P2^4;		//CS5460-XIN,CPU高速脉冲输出,5460晶振输入
//---全局变量声明
unsigned char rxData[32];
unsigned char txData[32];
unsigned char rxIndex=0;
bit bEnd=0;

//---发送检查
void Check_UART()
{
  while(TI==0)
  {}
  TI=0;
}
//---发送一个字节
void Write_Byte_UART(unsigned char byte)
{
	SBUF = byte;
	Check_UART();
}
//===写一个字节到CS5460A
void Write_CS5460A(unsigned char out)
{
	out=0;

}
//===从CS5460A读一个字节
void Read_CS5460A()
{
	

}
//===中断服务程序:定时器0,显示
void time0_int(void) interrupt 1 {

}
//===中断服务程序:串口
void UART_int() interrupt 4
{
	EA=0;						//关全局中断
	rxData[rxIndex]=SBUF;
	if(rxData[rxIndex]==0xff)bEnd=1;
	rxIndex++;
	RI=0;
	EA=1;
}
//=============================主程序=====================
main(void)
{
	unsigned char i;
	//---特殊功能寄存器设置
	AUXR=0x80;			//1定时器0的速度是传统8051的12倍,不分频
						//0定时器1的速度是传统8051的1倍,12分频
						//0UART串口模式0的速度和传统8051相等
						//0禁止AD中断
						//0禁止SPI中断
						//0禁止低压中断
	//---定时器0,1
	TMOD=0x22;                              //定时器0,1设置为模式2,8位自动装载
	SM0=0;
  	SM1=1;                                  //设置串口为方式1,10位异步收发
  	PCON=PCON|0x80;                         //波特率加倍
	//---18.432MHz
  	TL1=0xFB;
  	TH1=0xFB;                               //波特率为19200
	//---11.0592MHz
	TL1=0xFD;
  	TH1=0xFD;								//波特率为19200
	TH0=0x38;
	TL0=0x38;
	EA=1;                                   //全局中断使能,(EA=0,关全局中断;EA=1,开全局中断)
	ET0=0;									//定时器0不产生中断
	ET1=0;									//定时器1不产生中断
	TR0=1;									//启动定时器0
	TR1=1;									//启动定时器1
	REN = 1;                              //允许串口接受使能
	//---PCA/PWM
	CMOD=0x02;								//Fosc/2 ,禁止中断
	CCAPM3=0x42;							//PCA工作模式8位PWM	
	CL=0x00;								//PCA Base Timer Low
	CH=0x00;								//PCA Base Timer High
	CCAP3L=0xC0;							//PCA模块-0捕获寄存器低字节
	CCAP3H=0xC0;							//PCA模块-0捕获寄存器高字节
	CR=1;									//启动PCA计数器	

	//---SPI-------------
	

	//---端口输入输出设定
	P1M0 = 0x00;//准双向口(8051 IO)
	P1M1 = 0x00;

	P2M0 = 0x00;//推挽输出(强上拉输出,可达20mA,要加限流电阻)
	P2M1 = 0xFF;

	P3M0 = 0x00;//准双向口(8051 IO)
	P3M1 = 0x00;
	while(1){
		if(bEnd==1){
			for(i=0;i<rxIndex;i++){
				txData[i]=rxData[i];
				Write_Byte_UART(txData[i]);
			}
			bEnd=0;
		}
	}
}

⌨️ 快捷键说明

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