?? sy_003_2.c
字號:
/*******************************************************************************
*
* File : SY_003_2.c
* Date : 2007-10-14
* Version : 1.0
* Powerd by : shenyae86 QQ:184676957
* 中北大學信息與通信工程學院 沈陽
********************************************************************************
* Descriptoon:
* PC - MCU 串行通迅程序
* 單片機接收主機的數據,然后將數據傳送到P0口, 并傳回給主機;
* 當按下AN1時, 單片機發送字串
* "wellcome\n\rQQ:184676957\n\re_mail:shenyae86@163.com \n\r"
* 給主機.
* 適用于CC100A CC100B CC100C
* 產品網站 http://www.CCNUC.CN 傳誠科技
*
*******************************************************************************/
#include <reg51.h>
#include <intrins.h>
unsigned char tmp;
char code str[] = "wellcome\n\rQQ:184676957\n\re_mail:shenyae86@163.com \n\r";
void send_str();
void DelayMs(unsigned char ms);
void send_char(unsigned char txd);
sbit AN1 = P3^2;
main()
{
TMOD = 0x20; // 定時器1工作于8位自動重載模式, 用于產生波特率
TH1 = 0xFD; // 波特率9600
TL1 = 0xFD;
SCON = 0x50; // 設定串行口工作方式
PCON &= 0xef; // 波特率不倍增
TR1 = 1; // 啟動定時器1
IE = 0x0; // 禁止任何中斷
while(1)
{
if(AN1==0) // 當按鍵被按下時
{
DelayMs(255); // 延時去抖動
if(AN1==1) // 再次掃描 當按鍵松開時
{
send_str(); // 傳送字串"welcome!...
}
}
if(RI) // 是否有數據到來
{
RI = 0;
tmp = SBUF; // 暫存接收到的數據
P2 = 0x84; // 選通LED燈
P0 = tmp; // 數據傳送到P0口
send_char(tmp); // 回傳接收到的數據
}
}
}
void send_char(unsigned char txd)
// 傳送一個字符
{
SBUF = txd;
while(!TI); // 等特數據傳送
TI = 0; // 清除數據傳送標志
}
void send_str()
// 傳送字串
{
unsigned char i = 0;
while(str[i] != '\0')
{
SBUF = str[i];
while(!TI); // 等特數據傳送
TI = 0; // 清除數據傳送標志
i++; // 下一個字符
}
}
void DelayMs(unsigned char ms)
// 延時子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -