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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 23842|回復: 28
打印 上一主題 下一主題
收起左側

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

  [復制鏈接]
跳轉到指定樓層
樓主
#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 贊一個!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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)


以上摘自張志良編著《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 | 只看該作者
你這個程序本人看過了沒有問題,本人剛剛也用自己的單片機實驗了一下,也是可以亮的,所以你不行大概是波特率不對或者軟件問題
回復

使用道具 舉報

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

什么沒有問題?真是瞎指導!T1都未開中!程序怎么運行?
我給你介紹你一個正確的可演示觀看的參考案例
實例77  雙機串行通信方式1
Proteus仿真一下,確認有效。
實例77 雙機通信方式1.rar (40.4 KB, 下載次數: 96)

以上摘自張志良編著80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行書中電路和程序設計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。










回復

使用道具 舉報

6#
ID:212122 發表于 2017-6-17 20:52 | 只看該作者
學習了這么久單片機還是不會
回復

使用道具 舉報

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

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

使用道具 舉報

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

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

使用道具 舉報

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

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

使用道具 舉報

10#
ID:279838 發表于 2018-1-26 08:35 | 只看該作者
給上位機發送個數據試試 看看 能接受到什么
回復

使用道具 舉報

11#
ID:279847 發表于 2018-1-26 17:03 | 只看該作者
程序沒有問題的,固計是你的波特率或者是硬件存在問題,你再查查看
回復

使用道具 舉報

12#
ID:279813 發表于 2018-1-26 18:04 | 只看該作者
street 發表于 2018-1-26 08:35
給上位機發送個數據試試 看看 能接受到什么

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

使用道具 舉報

13#
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關燈。發其他一概無反應!
回復

使用道具 舉報

14#
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數組的第一位!真是暈倒了
回復

使用道具 舉報

15#
ID:292316 發表于 2018-3-15 15:19 來自手機 | 只看該作者
請問樓主解決問題了么,如果解決了,能否給我看看
回復

使用道具 舉報

16#
ID:292316 發表于 2018-3-15 15:21 來自手機 | 只看該作者
naij 發表于 2018-1-27 22:37
又出現了問題
我將改成
u8 n[]="aa";

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

使用道具 舉報

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

使用道具 舉報

18#
ID:337714 發表于 2018-5-24 23:58 | 只看該作者
naij 發表于 2018-1-27 12:36
#include

typedef unsigned char u8;

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

使用道具 舉報

19#
ID:450649 發表于 2019-1-17 14:04 | 只看該作者
naij 發表于 2018-1-26 00:15
不知道是程序的問題還是51的問題。連續發送12也會關燈或者開燈!

沒有啊,只會閃一下
回復

使用道具 舉報

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

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

使用道具 舉報

21#
ID:450649 發表于 2019-1-17 14:12 | 只看該作者
naij 發表于 2018-1-27 22:37
又出現了問題
我將改成
u8 n[]="aa";

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

使用道具 舉報

22#
ID:408853 發表于 2019-1-17 15:19 | 只看該作者
程序沒有問題,可能是單片機故障也有可能的,我的單片機有次就是,后來換一個就可以了
回復

使用道具 舉報

23#
ID:188465 發表于 2019-1-17 15:45 | 只看該作者
中斷函數需要申明
回復

使用道具 舉報

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

贊贊贊
回復

使用道具 舉報

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

謝謝
回復

使用道具 舉報

26#
ID:880659 發表于 2021-1-26 15:55 | 只看該作者
naij 發表于 2018-1-27 12:36
#include

typedef unsigned char u8;

1,2才是正確的
回復

使用道具 舉報

27#
ID:619259 發表于 2021-1-31 20:50 | 只看該作者
程序沒問題,測試成功
回復

使用道具 舉報

28#
ID:839835 發表于 2021-3-3 14:25 | 只看該作者
中斷配置錯了,應該是if(RI)等待接收完成,清零
回復

使用道具 舉報

29#
ID:989663 發表于 2021-12-8 16:37 | 只看該作者
程序沒問題,測試成功
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产免费一二三区 | 国产欧美在线观看 | 欧美成人精品欧美一级 | 日本在线免费视频 | 伊人爽| 中文欧美日韩 | 婷婷精品| 神马久久香蕉 | 亚洲精品白浆高清久久久久久 | 成人不卡| 免费看av大片 | 亚洲精品一区二区三区四区高清 | 国产91丝袜在线18 | 一区二区三区在线免费看 | 国产一区二区三区视频在线观看 | 国产在线精品一区 | 日韩欧美专区 | 一区二区三区视频在线观看 | 韩日在线视频 | 日韩中文在线 | 国产一区二区不卡 | 综合一区二区三区 | 99精品亚洲国产精品久久不卡 | 中文字幕福利 | 天堂素人约啪 | h视频在线免费 | 亚洲成年人免费网站 | 中文字幕在线精品 | 国产福利在线 | 色婷婷国产精品综合在线观看 | 欧美一级欧美一级在线播放 | 97热在线| 日韩欧美国产精品 | 久久中文字幕一区 | 91久久久久久 | www.99久久.com | 97久久精品午夜一区二区 | 久久不卡区 | 日韩成人中文字幕 | 成人欧美一区二区 | 欧美日韩在线一区二区 |