?? 1100.c
字號:
#include <reg52.h>
#include <intrins.h>
#define INT8U unsigned char
#define INT16U unsigned int
sfr WDT_CONTR =0Xe1;
//***********************************按鍵********************************************************
sbit KEY1 =P3^6;
sbit KEY2 =P3^7;
//***********************************數碼管位選**************************************************
sbit led =P2^5;
sbit led3=P2^0;
sbit led2=P2^1;
sbit led1=P2^2;
sbit led0=P2^3;
INT8U TxBuf[4];
INT8U send_f;
//when i=100. delay=1.5ms 實測 值
static void delay(unsigned int s)
{
unsigned int i;
for(i=0; i<s; i++);
}
void UART_init()
{
SCON = 0x50; /* uart in mode 1 (8 bit), REN=1 */
TMOD = TMOD | 0x20 ; /* Timer 1 in mode 2 */
TH1 = 0xFD; /* 9600 Bds at 11.059MHz */
TL1 = 0xFD; /* 9600 Bds at 11.059MHz */
//IE =0x90;
TR1 = 1; /* Timer 1 run */
ET1 =0;
ES=1; //允許串行口中斷
PS=1; //設計串行口中斷優先級
EA =1; //單片機中斷允許
}
void Sendchar(unsigned char c)
{
SBUF=c;
while(TI==0);
TI=0;
}
void print_string(unsigned char* p) //發送字符串
{
while(*p !='\0')
{
Sendchar(*p++);
}
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: com_interrup()串口接收中斷處理函數
// 函數功能: 接收包括起始位'S'在內的十位數據到數據緩沖區
//--------------------------------------------------------------------------------------------------
com_interrupt(void) interrupt 4 using 3
{
if(RI) //處理接收中斷
{
RI=0; //清除中斷標志位
TxBuf[2]=SBUF;
send_f=1; //設置數據發送標志
send_f=1;
led=1;
}
}
void main(void)
{
INT8U leng =0;
INT8U i,k=0;
INT8U RxBuf[4]={0};
INT8U rxcount;
INT8U TxBuf[30];
led=1;
rxcount=0xff;
TxBuf[2]=2;
TxBuf[3]=0;
UART_init();
P0=0x00;
led1=0;
for(i=0; i<30; i++)
{
TxBuf[i]=i;
}
Sendchar(0xA3); //設置波特率命令
Sendchar(0x3A);
Sendchar(0x02); //設置波特率為9600
delay(6000);
Sendchar(0xA7); //設置信道命令
Sendchar(0x7A);
Sendchar(0x00); //設置信道為 06
delay(6000);
Sendchar(0xAB); //設置功率
Sendchar(0xBA);
Sendchar(0x0A); //設置功率為10DBM
delay(6000);
Sendchar(0xA9); //設置模塊ID號
Sendchar(0x9A);
Sendchar(0x00); //設置模塊ID號
Sendchar(0x01); //設置ID號
delay(6000);
delay(6000);
// WDT_CONTR=0x3c;
while(1)
{
WDT_CONTR=0x3c;
if(KEY1==0)
{
delay(10);
while(!KEY1) //當檢測到按鍵時發送測試數據
{
delay(10);
}
led1=0;
print_string("abcdefghijklmnopqrstuvwxyzABCD"); //第一貞測試數據 , 字符串或數據長度不要超過30個字節
led1=1;
delay(750); //發送下一貞數據前要延遲6ms左右.
for(i=0;i<23;i++) //發送23字節的數據包
{
Sendchar(TxBuf[i]);
}
delay(750); //發送下一貞數據前要延遲6ms左右.
Sendchar(0x66); //發送單字節
}
delay(450);
led1=1;
delay(100);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -