單片小白剛接觸單片機不久,看見單片機可以通過串口通信來實現控制功能,就想通過串口觸摸屏輸出信號來實現控制多個LED,遂借來一個串口屏進行試驗,發現串口屏只是輸出了一串數字(A5 5A 06 83 00 01 01 00 01),查了下串口屏說明,對數字串做出如下解釋:一二位為幀頭(A5 5A),第三位為字節長度(06),第四位為讀指令(83),后五位為字節位(00 01 01 00 01),多開關的話后五位會有所不同以區分是哪個開關發出的信號;現本人只能做到串口有信號來只有一個LED亮滅,不知如何寫代碼讓單片機能識別這串數字來控制不同的LED亮滅,代碼如下,還望各位高手斧正、賜教。
單片機源程序如下:
#include <reg52.h> //載入頭文件
typedef unsigned int u16; //定義一些用到的函數 typedef unsigned char u8; uchar i;
sbit led0=P0^0; //定義LED管腳 sbit led1=P0^1; sbit led2=P0^2; sbit led3=P0^3;
void UsartInit() //初始化串口數據9600 { TMOD = 0x20; SCON = 0x50; TH1 = TL1 = 0xFD; PCON = 0x00; EA = 1; ES = 1; TR1 = 1; }
void main() { led0=0; led1=0; led2=0; led3=0; UsartInit(); while(1); }
void Usart() interrupt 4 //中斷函數 { u8receiveData; i=SBUF; switch(i) { Case ' ? ':led0=~led0; case ' ? ':led1=~led1; case ' ? ':led2=~led2; case ' ? ':led3=~led3; } receiveData=SBUF; RI=0; SBUF=receiveData; while(!TI); TI=0; }
|