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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串口通信led燈顯示程序問題

[復(fù)制鏈接]
ID:672615 發(fā)表于 2020-3-3 15:38 | 顯示全部樓層 |閱讀模式
為什么P2接收了SBUF傳過來的數(shù)據(jù)之后,單片機上led顯示的情況和數(shù)據(jù)不一樣

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint num;

void init()
{
        REN=1;
        SM0=0;
        SM1=1;//工作方式一
        TMOD=0X20;
        TH1=0XFD;
        TL1=0XFD; //9600的波特率,
        TR1=1;
        EA=1;
        ES=1;
}

void main()
{
        init();

        while(1)
        {
                P2=num;            //led燈顯示
        }
}

void time() interrupt 4
{        
        num=SBUF;
        RI=0;                   //進入中斷就說么已經(jīng)接收到數(shù)據(jù)了        
        SBUF=num;  //發(fā)送數(shù)據(jù)
        while(!TI);
        TI=0;

}

回復(fù)

使用道具 舉報

ID:235200 發(fā)表于 2020-3-3 19:20 | 顯示全部樓層
接收的數(shù)據(jù)是什么?led燈顯示的數(shù)據(jù)是什么?接收的數(shù)據(jù)存入num,num又由P2口輸出,這一過程絕對是接收的數(shù)據(jù)與P2口輸出的數(shù)據(jù)一致,在P2=num;這一條語句加上一個條件試試,只有當(dāng)接收到數(shù)據(jù)就送一次數(shù)據(jù)到P2口,不要無限次送數(shù)據(jù)到P2口
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-3-3 21:44 | 顯示全部樓層
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num;

void init()
{
        REN=1;
        SM0=0;
        SM1=1;//工作方式一
        TMOD=0X20;
        TH1=0XFD;
        TL1=0XFD; //9600的波特率,
        TR1=1;
        EA=1;
        ES=1;
}

void main()
{
        init();
        while(1)
        {
             
        }
}

void time() interrupt 4
{        
        num=SBUF;
        RI=0;                   //進入中斷就說么已經(jīng)接收到數(shù)據(jù)了        
        SBUF=num;  //發(fā)送數(shù)據(jù)
        while(!TI);
        TI=0;
        P2=num;            //led燈顯示 0x00~0xff
}
回復(fù)

使用道具 舉報

ID:672615 發(fā)表于 2020-3-4 14:38 | 顯示全部樓層
csmyldl 發(fā)表于 2020-3-3 19:20
接收的數(shù)據(jù)是什么?led燈顯示的數(shù)據(jù)是什么?接收的數(shù)據(jù)存入num,num又由P2口輸出,這一過程絕對是接收的數(shù)據(jù)與P ...

我電腦輸入一個00的話,我希望SBUF接收到,傳給num,讓led=0x00
回復(fù)

使用道具 舉報

ID:672615 發(fā)表于 2020-3-4 14:40 | 顯示全部樓層
wulin 發(fā)表于 2020-3-3 21:44
#include
#define uchar unsigned char
#define uint unsigned int

試了,不行不管我發(fā)送什么數(shù)據(jù),LED接受數(shù)據(jù)之后,只會亮那幾個燈,不會變化
回復(fù)

使用道具 舉報

ID:687694 發(fā)表于 2020-3-4 16:21 | 顯示全部樓層
在C語言中,數(shù)據(jù)類型是很嚴格。你定義num為整型int 為雙字節(jié)。串口發(fā)送,接收數(shù)據(jù)一般只有8字節(jié),P端口賦值為8字節(jié)。這可以編譯通過,但并不能讓你滿意,期間編譯器進行了數(shù)據(jù)類型自動轉(zhuǎn)換。這個實驗我也做過,在串口發(fā)送十六進制 00 估計能達到你的目的。
回復(fù)

使用道具 舉報

ID:496117 發(fā)表于 2020-3-4 18:51 | 顯示全部樓層
我前幾天剛好遇到過類似的問題,是沒有使用寄存器禁止優(yōu)化的聲明導(dǎo)致的,uint num;改為volatile uint num;
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-3-4 19:08 | 顯示全部樓層
撒打算(⊙o⊙)哦 發(fā)表于 2020-3-4 14:40
試了,不行不管我發(fā)送什么數(shù)據(jù),LED接受數(shù)據(jù)之后,只會亮那幾個燈,不會變化

如果返回的數(shù)據(jù)是正確的就不是串口問題,檢查P2外圍電路。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 天天操天天干天天爽 | 四虎影音 | 亚洲一在线 | 欧美白人做受xxxx视频 | 天天综合干 | 福利精品| 91亚洲精品国偷拍自产在线观看 | 久久精品久久久久久 | 中文字幕第一页在线 | 毛片网在线观看 | 午夜精品久久久 | 欧美天堂| 99精品国产一区二区三区 | 91中文视频| zzzwww在线看片免费 | jlzzjlzz国产精品久久 | 亚洲一区在线播放 | 欧美成人在线免费 | 精品九九 | 精品国产一区二区国模嫣然 | 美女黄网站视频免费 | 9久久婷婷国产综合精品性色 | 欧美a区 | 正在播放亚洲 | 老司机67194精品线观看 | chengrenzaixian| 午夜精品在线观看 | 日韩一级黄色片 | 操人视频在线观看 | 国产成人精品一区 | 免费成人高清在线视频 | 中文字幕精品一区久久久久 | 国产精品一区二区无线 | 91视频在线观看免费 | 免费视频一区二区 | 99精品国产一区二区青青牛奶 | 国产午夜精品久久久 | 日韩中文视频 | 久久精品国产99国产 | 免费一区二区三区 | 99视频在线 |