找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 18147|回復(fù): 21
收起左側(cè)

單片機(jī)串口通信來控制LED的亮和滅

  [復(fù)制鏈接]
ID:369737 發(fā)表于 2018-7-17 16:36 | 顯示全部樓層 |閱讀模式
作為一個小白,今天才自己學(xué)了串口通信,然后就想通過發(fā)送數(shù)字來控制LED的亮和滅。剛開始錯誤挺多的,但是自己不斷修改,寫出這個程序還是挺高興的。
#include <REGX51.H>
#define uint unsigned int
#define uchar unsigned char
uchar i;
sbit led0=P2^0;
sbit led1=P2^1;
sbit led2=P2^2;
sbit led3=P2^3;
sbit led4=P2^4;
sbit led5=P2^5;
sbit led6=P2^6;
sbit led7=P2^7;
void uart_init() //串口初始化函數(shù)
{
        TMOD=0x20;         //設(shè)置計數(shù)器工作方式2
        TH1=0xF3;         //計數(shù)器初始值設(shè)置,注意波特率是4800
        TL1=0xF3;
        PCON=0x80;         //波特率加倍
        TR1=1;                 //打開計數(shù)器
        SCON=0x50;         //設(shè)置為工作方式1
        ES=1;                 //打開接收中斷
        EA=1;                 //打開總中斷
}
void uart() interrupt 4
{
        uchar receiveData;
        i=SBUF;                  
                switch(i)
        {
                case '0':led0=0;break;
                case '1':led1=0;break;
                case '2':led2=0;break;
                case '3':led3=0;break;
                case '4':led4=0;break;
                case '5':led5=0;break;
                case '6':led6=0;break;
                case '7':led7=0;break;
                default:P2=0XFF;break;
        }
//        if(i=='0') led0=0;
//        else if(i=='1') led1=0;
//        else if(i=='2') led2=0;
//        else if(i=='3') led3=0;
//        else if(i=='4') led4=0;
//        else if(i=='5') led5=0;
//        else if(i=='6') led6=0;
//        else if(i=='7') led7=0;
//        else if(i=='8') P2=0xff;
        receiveData=SBUF;        //出去接收到的數(shù)據(jù)
        RI=0;                            //清除接收中斷標(biāo)志位
        SBUF=receiveData;   //將接收到的數(shù)據(jù)放入到發(fā)送寄存器
        while(!TI);                    //等待發(fā)送數(shù)據(jù)完成
        TI=0;                            //清除發(fā)送完成標(biāo)志位
}
void main()
{
          uart_init();        //串口初始化
          while(1);
}

串口通信控制led亮滅.rar

22.78 KB, 下載次數(shù): 179, 下載積分: 黑幣 -5

評分

參與人數(shù) 2黑幣 +55 收起 理由
江水為竭 + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:386350 發(fā)表于 2018-11-28 17:07 | 顯示全部樓層
if語句為啥不行嘞
回復(fù)

使用道具 舉報

ID:456878 發(fā)表于 2019-1-29 10:08 | 顯示全部樓層
正好要找串口控制程序,謝謝了
回復(fù)

使用道具 舉報

ID:447885 發(fā)表于 2019-2-1 14:19 | 顯示全部樓層
請問一下怎樣發(fā)送字符串讓led亮,比如發(fā)送字符串123456
回復(fù)

使用道具 舉報

ID:354681 發(fā)表于 2019-2-2 09:36 | 顯示全部樓層
很好,如果加個上位機(jī)豈不是更好
回復(fù)

使用道具 舉報

ID:445569 發(fā)表于 2019-3-7 15:35 | 顯示全部樓層
正好要找串口控制程序,謝了
回復(fù)

使用道具 舉報

ID:477296 發(fā)表于 2019-3-13 01:09 | 顯示全部樓層
請問如果要在串口中斷外實現(xiàn)點亮LED,那應(yīng)該怎么做呢?
回復(fù)

使用道具 舉報

ID:185721 發(fā)表于 2019-3-13 08:08 | 顯示全部樓層
櫻與卡 發(fā)表于 2019-3-13 01:09
請問如果要在串口中斷外實現(xiàn)點亮LED,那應(yīng)該怎么做呢?

定義一個全局變量a,在接收中斷程序里面做個累加a++,然后在主函數(shù)里做if,當(dāng)a=1時、a=2時,昨晚剛做過實驗
回復(fù)

使用道具 舉報

ID:469878 發(fā)表于 2019-3-27 09:09 | 顯示全部樓層
謝謝樓主,剛好需要
回復(fù)

使用道具 舉報

ID:514335 發(fā)表于 2019-4-20 16:36 來自手機(jī) | 顯示全部樓層
啊啊,有仿真圖嗎,我在實驗課上用開發(fā)板實現(xiàn)了,但是老師讓我用isis給他看,不會哇
回復(fù)

使用道具 舉報

ID:142059 發(fā)表于 2019-10-19 10:59 | 顯示全部樓層
Alien·貝貝 發(fā)表于 2019-2-1 14:19
請問一下怎樣發(fā)送字符串讓led亮,比如發(fā)送字符串123456

字符串控制LED: http://www.torrancerestoration.com/bbs/dpj-163182-1.html
回復(fù)

使用道具 舉報

ID:142059 發(fā)表于 2019-10-19 11:00 | 顯示全部樓層
宴秦山 發(fā)表于 2019-4-20 16:36
啊啊,有仿真圖嗎,我在實驗課上用開發(fā)板實現(xiàn)了,但是老師讓我用isis給他看,不會哇

這里有仿真: http://www.torrancerestoration.com/bbs/dpj-163182-1.html
回復(fù)

使用道具 舉報

ID:653636 發(fā)表于 2019-12-11 17:25 | 顯示全部樓層
正要找!感謝分享
回復(fù)

使用道具 舉報

ID:711185 發(fā)表于 2020-3-25 00:32 | 顯示全部樓層
正好要找串口控制程序,謝謝了
回復(fù)

使用道具 舉報

ID:65956 發(fā)表于 2020-3-25 11:38 | 顯示全部樓層
建議你串口上接個藍(lán)牙模塊,裝個通用的藍(lán)牙軟件,這樣就可以實現(xiàn)手機(jī)控制了,我用過,但這僅限于一定范圍內(nèi)
回復(fù)

使用道具 舉報

ID:405264 發(fā)表于 2020-3-25 12:28 | 顯示全部樓層
里面包含上位機(jī)程序嗎?
回復(fù)

使用道具 舉報

ID:427885 發(fā)表于 2020-3-25 15:17 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:523178 發(fā)表于 2020-4-8 17:25 | 顯示全部樓層
為什么用if語句判斷當(dāng)前接收的數(shù)據(jù)來點燈就不行呢,難道傳輸?shù)氖亲址?/td>
回復(fù)

使用道具 舉報

ID:142059 發(fā)表于 2020-4-26 15:57 | 顯示全部樓層
Alien·貝貝 發(fā)表于 2019-2-1 14:19
請問一下怎樣發(fā)送字符串讓led亮,比如發(fā)送字符串123456

http://www.torrancerestoration.com/bbs/dpj-163182-1.html這里
回復(fù)

使用道具 舉報

ID:594633 發(fā)表于 2020-5-6 22:40 | 顯示全部樓層
收藏了,感謝樓主分享
回復(fù)

使用道具 舉報

ID:843917 發(fā)表于 2021-2-16 15:28 | 顯示全部樓層
可以用if實現(xiàn)嗎
回復(fù)

使用道具 舉報

ID:818895 發(fā)表于 2021-2-17 09:58 | 顯示全部樓層
學(xué)習(xí)真的好例子啊,找到了的。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表