?? tx_send.c
字號:
unsigned int i=0;
unsigned int j=3;
char new_comm = 0; //通訊完成標志
void SYSCLK_Init();
void Interrupt_Init();
void Init_IO(void);
void Build_InitWord(void);
void Init_Send(void); //初始化發射模塊
void Init_Tim1(void); //初始化定時器1,做波特率發生器
void ClockS(void); //產生發射時鐘脈沖
void delay1(unsigned int x); //軟件延時
void delay600ns(void);
void Send(void); //發送數據包
void watchdog_Init(void);
void UART_Init (void); //配置串口通訊
void main()
{
EA=0;
PCA0MD&=~0x40; // Disable Watchdog timer
PCA0CN=0x40;
SYSCLK_Init();
Init_IO();
Interrupt_Init (); //中斷配置
UART_Init ();
Init_Tim1();
watchdog_Init();
Build_InitWord(); //構造初始化配置字
Init_Send(); //配置發送模塊
delay1(4998); //delay 3.125ms,Tpd2sby,min 3 ms
Txword[0]=0xcc;
Txword[1]=0xcc;
Txword[2]=0xcc;
Txword[3]=0;
Txword[4]=0;
Txword[5]=0;
i = 0;
EA = 1; //上位機通訊程序robotest接口測試
while(1)
{
PCA0CPH2=0x20;
if(new_comm==1)
{
Send();
new_comm=0;
LED = ~LED;
}
}
}
void comm(void) interrupt 4
{
if(RI0==1)
{
RI0=0;
if(j<6)
Txword[j++]=SBUF0;
}
if(j==6)
new_comm=1;
}
void UART_Init (void)
{
SCON0 = 0x70; // Serial Port Control Register(01110000b),方式1,8位可變波特率
}
void Init_Tim1(void)
{
TCON = 0x40;
TMOD = 0x20;
CKCON=0x02;//2400
// CKCON=0x08;//115200
TL1=0x96;
TH1 = 0x96;
}
void watchdog_Init(void)
{
PCA0CN=0x40; //允許PCA計數器功能
PCA0MD=0x40; //允許看門狗定時器,并設系統時鐘為計數時鐘
PCA0CPL2=0xff; //設定復位時間為32ms
PCA0CPH2=0x00;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -