?? 用丁丁斑竹的仿真器調試簡單串口接收,發送程序.c
字號:
//用丁丁斑竹的仿真器調試簡單串口接收,發送程序(DieHeart)
//
//
//昨天灌了一杯<<用丁丁斑竹的仿真器調試簡單串口發送程序>>,連接請點擊
//http://www.daxia.com/bbs/moredata.asp?id=40091&syid=440992
//但是只涉及到了用51的串口發送,沒有接收,有點遺憾.
//
//今天這個對收發都進行測試.
//請初學參考,DX拍磚!
//
//
/********************************************************************/
/*試驗串行口通信的例子 DieHeart. Sep 14th,2004 */
/********************************************************************/
//這是包含默認的寄存器頭文件,
//該文件在keil自己的目錄里,包含了所有52內核的寄存器定義。
#include <reg51.h>
//這是特殊寄存器位定義,IO也是特殊寄存器的位
sbit key1=P3^2;
sbit key2=P3^5;
sbit key3=P2^4;
sbit key4=P2^5;
sbit led3=P1^0;
sbit led4=P1^1;
sbit led5=P1^2;
sbit led6=P1^3;
//包含_getkey讀字符庫函數,
//目的是確定標準輸入是否為COM口,學習與MCU51的聯機通信
//這是設置串口模式的自定義函數,參數可以修改,只要與計算機的串行數據格式一致即可!
void stdio(void)
{
SCON = 0x50;//串口工作方式設置字節,1個起始位,8個數據位,1個停止位組成10位幀
PCON = 0x80;//波特率加倍模式
TMOD = 0x20;//COM2:自動重置初值的8位定時/計數器
TH1 = 0xf4;//串行口波特率發生器,=256-f/12/16/9600,f=22118400
TR1 = 1; //啟動T1
TI = 1; //中斷方式允許位
}
void main(void)
{
char key;
stdio();
while(1)
{
if(!key1) //檢測key1是否按下,按下時程序會讀到該位為0,平時為1
{
led3=0; //點亮LED3
led4=1;
led5=1;
led6=1;
// printf("1"); //串行輸出字符"1"
}
if(!key2) //檢測key2是否按下,按下時程序會讀到該位為0,平時為1
{
led3=1;
led4=0; //點亮LED4
led5=1;
led6=1;
// printf("2"); //串行輸出字符"2"
}
if(RI) //判斷串口是否收到數據
{
//key=_getkey(); //讀串口數據
switch(key)
{
case 1: //從串口收到數據1
{
led3=1;
led4=1;
led5=0; //點亮LED5
led6=1;
// printf("3"); //串行輸出字符"3"
}
break;
case 2: //從串口收到數據2
{
led3=1;
led4=1;
led5=1;
led6=0; //點亮LED6
// printf("4"); //串行輸出字符"4"
}
break;
}
}
}
}
/****************************************************/
/* 使用方法: */
/* 將程序下載到仿真器,并置脫機運行模式 */
/* 保持仿真器與計算機的連接狀態 */
/* 啟動串口工具軟件,并設置與單片機一致的波特率 */
/****************************************************/
/****************************************************/
/* 運行效果: */
/* 按KEY1,LED3亮,同時計算機接收到許多字符"3" */
/* 按KEY2,LED4亮,同時計算機接收到許多字符"4" */
/* OK啦,和昨天的一樣! */
/* 從串口工具軟件發送1, ? */
/* LED1亮,同時計算機接收到"1" */
/* 從串口工具軟件發送2, */
/* LED2亮,同時計算機接收到"2" */
/* */
/* Hoho,OK! */
/* */
/* ^-^ DieHeart ^-^ */
/****************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -