📄 readfifodata.txt
字号:
//-------------------------------------------------------------------
//
// Major Functions: RADE FIFO DATA
//
// --------------------------------------------------------------------
//
// Revision History :
// --------------------------------------------------------------------
// Ver :| Author :| Mod. Date :| Changes Made:
// V1.0 :| SJITON :| 06/10/09 :| Initial Revision
// --------------------------------------------------------------------
/***********************************************************************/
#include "C8051F040.h" // Register definition file.
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
//#define read_empty
sfr16 RCAP2=0xca;
sfr16 RCAP3=0xca;
sfr16 RCAP4=0xca;
sfr16 TMR4=0xcc;
sfr16 TMR3=0xcc;
sfr16 TMR2=0xcc;
sfr16 PCA0CP0=0xfb;
sfr16 PCA0CP1=0xfd;
sfr16 PCA0CP2=0xe9;
sfr16 PCA0CP3=0xeb;
sfr16 PCA0CP4=0xed;
sfr16 PCA0CP5=0xe1;
sbit rdclk=P5^1;//硬件控制接口
sbit rdreq=P5^0;
sbit rdempty=P5^2;//data=P4 先置1,后读取
xdata uchar UCdata;
void delay1ms(uint time){//延迟1ms*time,这不是一个精确值
uint i;
uint j;
for (i=0;i<time;i++){
for(j=0;j<300;j++);
}
}
void config (void) {
SFRPAGE = 0x0F;
XBR0 = 0x05; //UART0(0x04) & SMBUS(0x01) enable
XBR1 = 0x00;
XBR2 = 0x44; // Crossbar 交叉开关配置使能,UART1配置
XBR3 = 0x00; //////////////原为0x00////////////////////////////
//看门狗禁止
WDTCN = 0x07;
WDTCN = 0xDE;
WDTCN = 0xAD;
SFRPAGE = 0x0F;
XBR0 = 0x05;
XBR1 = 0x00;
XBR2 = 0x44; //交叉开关使能,使得P0-P3口能输出
XBR3 = 0x00;
SFRPAGE = 0x0F;
P0MDOUT = 0x00; //端口配置,P0-P3,P6-P7口为开漏输出
P1MDOUT = 0x00;
P2MDOUT = 0x00;
P3MDOUT = 0x00;
P4MDOUT = 0x00; //P4口为开漏
P5MDOUT = 0x07;
P6MDOUT = 0x00;
P7MDOUT = 0x00;
P1MDIN = 0xFF; //所有端口为数字输入,没有模拟输入端口
P2MDIN = 0xFF;
P3MDIN = 0xFF;
SFRPAGE = 0x0F;
CLKSEL = 0x00;
OSCXCN = 0x00;
OSCICN = 0x84;
//采用内部晶振,为24.5MHZ8分频
}
uchar readdata (void) {
uchar temp2;
SFRPAGE = 0x0f;
P4=0xff;
rdempty=0xff;
while (rdempty);
rdreq=1;
rdclk=1;
//delay1ms(1000);
rdclk=0;
temp2=P4;
return temp2;
}
void senddata (uchar temp) {
SFRPAGE = 0x00;
TI0 = 0;
SBUF0 = temp;
while(!TI0);
}
void uart0_ini(){
SFRPAGE = 0x00;
SADEN0 = 0x00;
SADDR0 = 0x00;
SSTA0 = 0x05;
SCON0 = 0x50; /////////0x50; ////禁止RI0
SCON0 &= 0xFC; //将TI0和RI0清零
IE|=0x10;
SFRPAGE = 0x00;
TMR2CF = 0x08; // T2 SYS CLK
TMR2CN = 0x04; // TR2置1,启动定时器
}
void t2_baud(uchar t2val) //T2溢出率设置,溢出率为(T1时钟频率)/(T2val)
{
SFRPAGE = 0x00;
RCAP2 = ~t2val+1;
TMR2 = RCAP2;
}
main(){
config();
uart0_ini();
t2_baud(10); //波特率为19200bps
EA=1;
SFRPAGE=0x00;
TR1=1;
while(1){
UCdata=readdata();//0--99 100number
senddata(UCdata);
//senddata(0x22);
//delay1ms(1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -