導航:首頁 > 操作系統 > 單片機串口控制燈

單片機串口控制燈

發布時間:2024-10-06 11:04:06

A. 單片機串口通信控制led燈的點亮

pc通過串口和單片機交換數據,從而控制LED燈。 pc程序用labview 調用Visa 進行串口通訊。單片機接受到串口命令後控制I/O口的高低電平實現led燈亮滅控制。
用串口調試助手就行,網上到處可以下載。也好用。關鍵問題是在電腦上發送的0,1,是以什麼數據格式發送的,通常以字元格式發送的,即是ASCII碼。所以,單片機接收時,也要按字元格式發才行。而你的程序是按十六進制數的格式判斷的,也就是二進制數,所以,發送和接收格式不統一,單片機就不能正常接收控制LED0,也就不能正常返回數據。 if(SBUF==0) //這是按二進制數接收的 if(SBUF==1) //這也是按二進制數接收的 這樣寫程序,要求電腦上,要按二進制數即十六進制數發送才行。 還是按字元格式收發比較好。
看你這程序編的,ha 查詢RI 不是等於 1,而是0 只有當數據傳送過來的時候,RI才會由1變為0,所以需要查詢的狀態是 0,不是1 當接收完數據後,再進行對RI的清零 還是不多說了,上程序,若滿意請記得採納一下,謝謝! 這是一個由串口助手發送十六進制碼來控制單片機的8個LED亮滅的簡單小程序
電腦上,你是用什麼軟體發送數據的看用串口調試助手就行,網上到處可以下載。也好用。關鍵問題是在電腦上發送的0,1,是以什麼數據格式發送的,通常以字元格式發送的,即是ASCII碼。所以,單片機接收時,也要按字元格式發才行。而你的程序是按十六進制數的格式判斷的,也就是二進制數,所以,發送和接收格式不統一,單片機就不能正常接收控制LED0,也就不能正常返回數據。

B. 單片機串口通信,實現接收到數據後,燈亮。

看你這程序編的,ha
查詢RI
不是等於
1,而是0
只有當數據傳送過來的時候,RI才會由1變為0,所以需要查詢的狀態是
0,不是1
當接收完數據後,再進行對RI的清零
還是不多說了,上程序,若滿意請記得採納一下,謝謝!
這是一個由串口助手發送十六進制碼來控制單片機的8個LED亮滅的簡單小程序
/***************************************************************************/
#include
<REG52.h>//通用89C52頭文件
/***************************************************************************/
void
main(void)//主函數
{

TMOD=0x20;


//定時器1和2工作方式2(8位定時/計數)

TH1=0xfd;


//定時器1設置初值,波特率9600bit/s,

TL1=0xff;

TR1=1;//啟動定時器T1

PCON=0x00;


//SMOD=0,不加倍

SCON=0x50;


//串口工作方式1,允許接收

IE=0x00;
//關閉所有中斷

while(1)

{

if(RI==0)//如果有數據

{

P2=SBUF;
//接收數據並輸出至LED上顯示

while(!RI);
//等待接收完成

RI=0;
//清空標識

}

}
}
/***************************************************************************/

C. 51單片機串口控制led燈方法是什麼

unsigned char tmp;
sbit led=P1^0;
void main(void)
{
TMOD = 0x20; // 定時器1工作於8位自動重載模式, 用於產生波特率
TH1 = 0xFD; // 波特率9600
TL1 = 0xFD;
SCON = 0x50; // 設定串列口工作方式
PCON &= 0xef; // 波特率不倍增
TR1 = 1; // 啟動定時器1
IE = 0x0; // 禁止任何中斷
while(1)
{
if(RI) // 是否有數據到來
{
RI = 0;
tmp = SBUF; // 暫存接收到的數據
switch(tmp )
{
case 0x03:led=1;break;//收到0x03,LED燈亮
case 0x33:led=0;break;//收到0x33,LED燈滅
}
}
}
}

D. 單片機控制LED燈程序設計總結300字(急!!)

呵呵 這個就是自己的心得體會而已,我可以為了提供大概的個人心得,僅個人觀點。
首先是控制LED的意義:(通常初學單片機的人控制LED是用並口,也就是掌握IO口輸入輸出功能、相應的寄存器等等,簡單了解一下單片機,以及對於單片機每個功能模塊的學習應該怎麼入手等等。當然控制LED並不是只能用並口,用串口、紅外等等通訊方式都可以)
其次是控制LED的方法:(還是以IO口控制為例,其實法方是死的,可以有很多,比如:1、每個IO直接賦值;2、用移位等等方式處理)

再其次是控制LED的用途:(通常一般儀器設備上的LED都是作為指示燈,比如電源指示啊,通訊啊等等或者只是為了美觀好看,其實點陣也是指示的一種吧!這個可以自己想了)

最後是控制LED學到了什麼:(其實這個就是寫廢話了,自己隨便想,結合上面的幾點)

備註:以上只是突然看到這個提問隨便寫的,也沒考慮得太多,可能不夠完善,不喜勿噴!

E. 怎麼用上位機通過串口去控制51單片機點亮一個LED 求程序。。

編了一個小程序,供參考,沒有環境調試,大概意思就這樣,你可以參考自己試試。
#include<reg51.h>
#include<string.h>
#define uchar unsigned char
sbit LED=P1^0;
uchar buf[16],num;
uchar strOpen="Open";
uchar strClose="Close";
void uart() interrupt 4
{
if(RI)
{
RI=0;
buf[num]=SBUF;
num++;
}
if(TI)TI=0;
}
void initbuf()
{
uchar i;
for(i=0;i<16;i++)buf[i]=0x00;
}
main()
{
TMOD=0x20;
SCON=0x50;
TH1=TL1=0xfd;
TR1=1;
ES=1;
EA=1;
initbuf();
while(1)
{
switch(num)
{
case 0:break;
case 1:break;
case 2:break;
case 3:break;
case 4:
if(strcmp(strOpen,buf)==0)LED=0;
initbuf();
num=0;
break;
case 5:
if(strcmp(strClose,buf)==0)LED=1;
initbuf();
num=0;
break;
default:num=0;break;
}
}
}

F. 51單片機一個串口跟幾個LED燈串聯可以嗎

51單片機一個串口跟幾個LED等串聯當然是可以這么連接的,但是這樣連接沒有什麼實質意義,達不到分別控制的目的,這樣連接,串口也就起到一個普通IO口的作用,LED燈也就是起到一個降壓的作用。

閱讀全文

與單片機串口控制燈相關的資料

熱點內容
筆記本編程電腦排行榜 瀏覽:32
微信好友緩存文件在哪個文件夾 瀏覽:614
javafloat小數點後兩位小數 瀏覽:166
澳門pdf 瀏覽:409
es解壓文件默認路徑 瀏覽:833
jar命令war包 瀏覽:121
福州交警app預約在哪裡簽字確認 瀏覽:623
android各版本sdk異同 瀏覽:726
怎樣在源碼中找精靈圖片 瀏覽:445
超聲波防盜51單片機 瀏覽:460
國內程序員編程能力 瀏覽:184
女程序員沒有晉升 瀏覽:136
微訂點單外賣平台系統源碼 瀏覽:572
雲伺服器30m 瀏覽:27
古裝程序員電視劇 瀏覽:182
愛因斯坦傳pdf 瀏覽:495
塊存儲和雲伺服器 瀏覽:352
吃東西的解壓生 瀏覽:916
如何把網頁上傳到web伺服器 瀏覽:243
外國超級解壓實驗 瀏覽:63