資源簡介
單片機串口發送指令控制LED

代碼片段和文件信息
#include?“ioCC2530.h“
#include??
#define?D1?P1_4
#define?D2?P1_5
#define?D3?P1_6
#define?D4?P1_7
typedef??unsigned?char?uchar;
typedef?unsigned?int?uint;
uchar?str1[20]=“What?is?your?name?“;
uchar?str2[7]=“Hello?“;
uchar?Recdata[20];//存放串口接收數據的數組
uchar?RXTXflag=1;//發送接收標志
uchar?temp;//臨時全局變量存放串口接收到的字符
uint?datanumber?=?0;//串口接收字符個數
//uint?stringlen;
void?Delay(int?n)
{
??int?ij;
??for(i=0;i ????for(j=0;j<10;j++);
}
void?initUART(void)
{
??CLKCONCMD?&=?~0x40;
??while(CLKCONSTA?&?0x40);//循環等待
??CLKCONCMD?&=?~0x47;
??
??PERCFG?=?0x00;
??P0SEL?=?0x3C;
??P2DIR?&=?~0xC0;
??U0CSR?|=?0x80;
??U0GCR?|=?11;
??U0BAUD?|=?216;
??UTX0IF?=1;
??U0CSR?|=?0x40;//允許串口接收
??IEN0?|=?0x84;//使能串口接收中斷、總中斷
}
void?UartTX_Send_String(uchar?*Dataint?len)
{
??int?j;
??for(j=0;j ??{
????U0DBUF?=?*Data++;
????while(UTX0IF==0);
????UTX0IF?=?0;
??}
}
void?main(void)
{
??P1DIR?|=?0xF0;
??initUART();
??UartTX_Send_String(str120);
??while(1)
??{
???if?(RXTXflag==1)//串口接收
???{
?????if?(temp!=0)
?????{
???????if?((temp!=‘#‘)&&(datanumber<20))
???????{
?????????Recdata[datanumber++]=temp;
???????}
???????else//單片機串口接收完所有字符
???????{
?????????RXTXflag=3;
?????????//識別控制命令
?????????switch(Recdata[0])
?????????{
???????????case?‘1‘:?
?????????????if?(Recdata[1]==‘1‘)
???????????????D1=0;
?????????????else
???????????????D1=1;
?????????????break;
???????????case?‘2‘:
?????????????if?(Recdata[1]==‘1‘)
???????????????D2=0;
?????????????else
???????????????D2=1;
?????????????break;
???????????case?‘3‘:?
?????????????if?(Recdata[1]==‘1‘)
???????????????D3=0;
?????????????else
???????????????D3=1;
?????????????break;
???????????case?‘4‘:
?????????????if?(Recdata[1]==‘1‘)
???????????????D4=0;
?????????????else
???????????????D4=1;
?????????????break;
???????????case?‘9‘:
?????????????if?(Recdata[1]==‘1‘)
?????????????{
???????????????D1=D2=D3=D4=0;
?????????????}
?????????????else
?????????????{
???????????????D1=D2=D3=D4=1;
?????????????}
???????????break;
?????????}
???????}
???????temp=0;
?????}
???}
???if?(RXTXflag==3)//串口發送
????{
??????U0CSR?&=?~0x40;
??????UartTX_Send_String(str26);
??????UartTX_Send_String(Recdatadatanumber);
??????U0CSR?|=?0x40;
??????RXTXflag=1;//繼續進行串口接收操作
??????datanumber=0;//串口接收數據的指針清零
????}
??
??}
}
//串口接收中斷服務程序
#pragma?vector=URX0_VECTOR
__interrupt?void?UART0_ISR(void)
{
??URX0IF?=0;
??temp=U0DBUF;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14042??2014-11-12?09:16??UARTLED\Debug\Exe\led.hex
?????文件????????140??2014-11-12?09:16??UARTLED\Debug\Obj\led.pbd
?????文件????????472??2014-11-12?09:28??UARTLED\Debug\Obj\led.pbi
?????文件??????16741??2014-11-12?09:16??UARTLED\Debug\Obj\led.r51
?????文件???????2618??2014-11-12?09:28??UARTLED\led.c
?????文件???????2061??2014-11-12?09:28??UARTLED\led.dep
?????文件??????34306??2014-09-28?14:27??UARTLED\led.ewd
?????文件??????56223??2014-09-28?14:27??UARTLED\led.ewp
?????文件????????157??2014-09-28?14:22??UARTLED\led.eww
?????文件???????1436??2014-11-12?09:20??UARTLED\settings\led.cspy.bat
?????文件???????5068??2014-11-11?14:55??UARTLED\settings\led.dbgdt
?????文件????????871??2014-11-12?09:20??UARTLED\settings\led.dni
?????文件???????2851??2014-11-12?09:16??UARTLED\settings\led.wsdt
?????目錄??????????0??2014-09-28?14:49??UARTLED\Debug\Exe
?????目錄??????????0??2014-09-28?14:22??UARTLED\Debug\List
?????目錄??????????0??2014-11-12?09:28??UARTLED\Debug\Obj
?????目錄??????????0??2014-09-28?14:49??UARTLED\Debug
?????目錄??????????0??2014-09-28?14:49??UARTLED\settings
?????目錄??????????0??2014-11-12?09:28??UARTLED
-----------?---------??----------?-----??----
???????????????136986????????????????????19
- 上一篇:手機攝像頭檢測心率脈搏開源代碼
- 下一篇:虛擬攝像頭開發SDK及調用DEMO源代碼
評論
共有 條評論