📄 main.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 + -