久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 24165|回復: 28
收起左側

請問下大家有關51單片機串口通信控制LED燈亮滅的問題

  [復制鏈接]
ID:211920 發表于 2017-6-16 20:54 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

void main()
{
    PCON = 0;
    SCON = 0x50;   //串口方式1, 8-n-1, 允許接收.
    TMOD = 0x20;
    TH1 = 0xfd;
    TL1 = 0xfd;
    TR1 = 1;
    ES = 1;
    EA = 1;
    while(1);
}

void servise() interrupt 4
{
    RI = 0;
    P1 = SBUF;
}


以上是燒錄單片機里的源碼,然后我用串口調試助手發送FE到單片機里,二進制是11111110。理論上來說會有一個燈亮的,可是單片機上都沒反應是什么鬼啊= =

評分

參與人數 1黑幣 +3 收起 理由
wangguanguaner + 3 贊一個!

查看全部評分

回復

使用道具 舉報

ID:111634 發表于 2017-6-17 08:19 | 顯示全部樓層
本帖最后由 zl2168 于 2017-6-17 09:54 編輯

實例42  74HC164串入并出控制8/16循環燈
Proteus仿真一下,確認有效。
實例42 74HC164串行輸出控制8-16循環燈.rar (53.19 KB, 下載次數: 142)
74HC164串入并出控制8循環燈.jpg
164-2.jpg
以上摘自張志良編著《80C51單片機實用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學習51單片機原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。
回復

使用道具 舉報

ID:164602 發表于 2017-6-17 15:57 | 顯示全部樓層
串口通訊實驗,最要緊的有三件事:
第一:串口通訊發送、接收的是什么樣的數據類型。類型不匹配,接收到也不能有控制的效果。
第二:波特率。波特率不對,就會讓發送、接收的數據發生偏差,從而不能達到控制效果。
第三:實驗用的模擬軟件。這個軟件好,實驗起來,事半功倍,不好,事倍功半。
分享我的例子程序——完整、詳細說明。
第一:我用的單個字符控制——數據類型清楚。
第二:波特率:4800,加倍。不知道你的單片機開發板或最小系統晶振是多少,用資料中的那個軟件《51波特率初值設定.exe》,查看誤差,誤差大了就不行。我的程序是針對我的板子的,晶振12M,要誤差小,最大波特率只能是4800。若是11.0592M的,波特率可以很大,但不要加倍。
第三:我用的串口通訊模擬軟件,是STC下載程序的串口通訊功能,設置有圖為證。
我的板子及串口相關資料都在,你可以根據自己的硬件,做出修改。

串口控制LED燈.rar

3.82 MB, 下載次數: 529

評分

參與人數 1黑幣 +5 收起 理由
lysd + 5 贊一個!

查看全部評分

回復

使用道具 舉報

ID:192523 發表于 2017-6-17 17:35 | 顯示全部樓層
你這個程序本人看過了沒有問題,本人剛剛也用自己的單片機實驗了一下,也是可以亮的,所以你不行大概是波特率不對或者軟件問題
回復

使用道具 舉報

ID:111634 發表于 2017-6-17 20:32 | 顯示全部樓層
桂木桂馬 發表于 2017-6-17 17:35
你這個程序本人看過了沒有問題,本人剛剛也用自己的單片機實驗了一下,也是可以亮的,所以你不行大概是波特 ...

什么沒有問題?真是瞎指導!T1都未開中!程序怎么運行?
我給你介紹你一個正確的可演示觀看的參考案例
實例77  雙機串行通信方式1
Proteus仿真一下,確認有效。
實例77 雙機通信方式1.rar (40.4 KB, 下載次數: 96)
串1.jpg
以上摘自張志良編著80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。










回復

使用道具 舉報

ID:212122 發表于 2017-6-17 20:52 | 顯示全部樓層
學習了這么久單片機還是不會
回復

使用道具 舉報

ID:279813 發表于 2018-1-25 23:11 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-6-17 15:57
串口通訊實驗,最要緊的有三件事:
第一:串口通訊發送、接收的是什么樣的數據類型。類型不匹配,接收到也 ...

我用你的程序出現閃燈的情況。就是說輸入“12” led就閃一下。。我想讓led穩定的亮著。然后給“13”或者別的什么LED在熄滅
回復

使用道具 舉報

ID:279813 發表于 2018-1-25 23:20 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-6-17 15:57
串口通訊實驗,最要緊的有三件事:
第一:串口通訊發送、接收的是什么樣的數據類型。類型不匹配,接收到也 ...

從新測試了程序!原來你用的unsigned char="12" 來關燈,其他數字一概來開燈!哈哈
還真是有你的
回復

使用道具 舉報

ID:279813 發表于 2018-1-26 00:15 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-6-17 15:57
串口通訊實驗,最要緊的有三件事:
第一:串口通訊發送、接收的是什么樣的數據類型。類型不匹配,接收到也 ...

不知道是程序的問題還是51的問題。連續發送12也會關燈或者開燈!
回復

使用道具 舉報

ID:279838 發表于 2018-1-26 08:35 | 顯示全部樓層
給上位機發送個數據試試 看看 能接受到什么
回復

使用道具 舉報

ID:279847 發表于 2018-1-26 17:03 | 顯示全部樓層
程序沒有問題的,固計是你的波特率或者是硬件存在問題,你再查查看
回復

使用道具 舉報

ID:279813 發表于 2018-1-26 18:04 | 顯示全部樓層
street 發表于 2018-1-26 08:35
給上位機發送個數據試試 看看 能接受到什么

返回的數據就是我發出的”12“
回復

使用道具 舉報

ID:279813 發表于 2018-1-27 12:36 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-6-17 15:57
串口通訊實驗,最要緊的有三件事:
第一:串口通訊發送、接收的是什么樣的數據類型。類型不匹配,接收到也 ...

#include<reg52.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit LED1=P2^0;

u8 receiveData;
u8 n[]="a";
u8 nn[]="b";
void UsartInit()//串口初始化函數
{
        SCON=0X50;//設置為工作方式1
        TMOD=0X20;//設置計數器工作方式2
        PCON=0X80;//波特率加倍
        TH1=0XF3;//計數器初始值設置,注意波特率是4800的
        TL1=0XF3;
        ES=1;//打開接收中斷
        EA=1;//打開總中斷
        TR1=1;//打開計數器
}

void main()
{
        UsartInit();//串口初始化
        while(1);
}

void Usart() interrupt 4//中斷函數
{
        unsigned char m;
        m=SBUF;
        if(m==n[0])
        {
                LED1=0;                                 //開燈
        }         
        if (m==nn[0])
        {
                LED1=1;                                 //關燈
        }
        receiveData=SBUF;//出去接收到的數據
        RI = 0;//清除接收中斷標志位
        SBUF=receiveData;//將接收到的數據放入到發送寄存器
        while(!TI);//等待發送數據完成
        TI=0;//清除發送完成標志位
}
按照程序的邏輯應該是發12開燈,發其他關燈才對。因為我在測試時發現發送11-19(數字12除外)給51都可以亮燈。發送12關燈。我很奇怪。為什么會這樣。程序我改成這樣了。問題解決了。發a開燈,發b關燈。發其他一概無反應!
回復

使用道具 舉報

ID:279813 發表于 2018-1-27 22:37 | 顯示全部樓層
naij 發表于 2018-1-27 12:36
#include

typedef unsigned char u8;

又出現了問題
我將改成
u8 n[]="aa";
u8 nn[]="bb";
結果發af、ah、類似與a+任意字母
都會亮燈或關燈!
原來判斷語句出現了問題。
if(m==n[0])
        {
                LED1=0;                                 //開燈
        }         
        if (m==nn[0])
        {
                LED1=1;                                 //關燈
        }

m=nn[0]是判斷語句只提取了nn數組的第一位!真是暈倒了
回復

使用道具 舉報

ID:292316 發表于 2018-3-15 15:19 來自觸屏版 | 顯示全部樓層
請問樓主解決問題了么,如果解決了,能否給我看看
回復

使用道具 舉報

ID:292316 發表于 2018-3-15 15:21 來自觸屏版 | 顯示全部樓層
naij 發表于 2018-1-27 22:37
又出現了問題
我將改成
u8 n[]="aa";

請問最后成功了么,想看看你的程序
回復

使用道具 舉報

ID:292316 發表于 2018-3-15 15:31 | 顯示全部樓層
請問一下51單片機串口通信控制LED燈亮滅。您這個還有程序和仿真圖么,我想了解一下,但自己還不會
回復

使用道具 舉報

ID:337714 發表于 2018-5-24 23:58 | 顯示全部樓層
naij 發表于 2018-1-27 12:36
#include

typedef unsigned char u8;

這個程序我燒錄后,能夠返回數值但是的燈沒有反應
回復

使用道具 舉報

ID:450649 發表于 2019-1-17 14:04 | 顯示全部樓層
naij 發表于 2018-1-26 00:15
不知道是程序的問題還是51的問題。連續發送12也會關燈或者開燈!

沒有啊,只會閃一下
回復

使用道具 舉報

ID:450649 發表于 2019-1-17 14:05 | 顯示全部樓層
naij 發表于 2018-1-25 23:20
從新測試了程序!原來你用的unsigned char="12" 來關燈,其他數字一概來開燈!哈哈
還真是有你的

別的數字都沒有作用啊
回復

使用道具 舉報

ID:450649 發表于 2019-1-17 14:12 | 顯示全部樓層
naij 發表于 2018-1-27 22:37
又出現了問題
我將改成
u8 n[]="aa";

你發送12,它是先執行1,再執行2,所以會閃一下再滅。其余都可以類推。
回復

使用道具 舉報

ID:408853 發表于 2019-1-17 15:19 | 顯示全部樓層
程序沒有問題,可能是單片機故障也有可能的,我的單片機有次就是,后來換一個就可以了
回復

使用道具 舉報

ID:188465 發表于 2019-1-17 15:45 | 顯示全部樓層
中斷函數需要申明
回復

使用道具 舉報

ID:729176 發表于 2020-5-22 16:56 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-6-17 15:57
串口通訊實驗,最要緊的有三件事:
第一:串口通訊發送、接收的是什么樣的數據類型。類型不匹配,接收到也 ...

贊贊贊
回復

使用道具 舉報

ID:810242 發表于 2020-8-1 10:14 | 顯示全部樓層
HC6800-ES-V2.0 發表于 2017-6-17 15:57
串口通訊實驗,最要緊的有三件事:
第一:串口通訊發送、接收的是什么樣的數據類型。類型不匹配,接收到也 ...

謝謝
回復

使用道具 舉報

ID:880659 發表于 2021-1-26 15:55 | 顯示全部樓層
naij 發表于 2018-1-27 12:36
#include

typedef unsigned char u8;

1,2才是正確的
回復

使用道具 舉報

ID:619259 發表于 2021-1-31 20:50 | 顯示全部樓層
程序沒問題,測試成功
回復

使用道具 舉報

ID:839835 發表于 2021-3-3 14:25 | 顯示全部樓層
中斷配置錯了,應該是if(RI)等待接收完成,清零
回復

使用道具 舉報

ID:989663 發表于 2021-12-8 16:37 | 顯示全部樓層
程序沒問題,測試成功
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品亚洲综合 | 精品一二区 | 婷婷精品| 少妇精品久久久久久久久久 | 亚洲欧美一区二区三区在线 | 欧美一区二区三区精品免费 | 久久一 | 99久久婷婷国产综合精品电影 | 国产精品免费高清 | 天天爽一爽 | 欧美性吧| 色视频网站在线观看 | 偷拍自拍在线观看 | 成人网址在线观看 | 美女视频网站久久 | 成人超碰| 国产精品高清在线 | 色屁屁在线观看 | 日韩欧美二区 | 午夜在线视频一区二区三区 | 亚洲午夜视频在线观看 | 国产精品夜间视频香蕉 | 国产成人精品一区二区三区网站观看 | 亚洲啊v| 超碰97免费在线 | 91福利影院 | 国产婷婷精品av在线 | 欧美日韩不卡 | 亚洲精品视频免费观看 | 日韩精品免费 | 欧美高清dvd | 精品一区二区三区免费毛片 | 久久精品视频91 | 精品国产成人 | 日韩在线国产 | 久久精品无码一区二区三区 | 久久久久久久香蕉 | 国产无人区一区二区三区 | 91精品国产欧美一区二区成人 | 国产精品免费看 | 少妇诱惑av |