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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于51單片機串口通信問題

[復制鏈接]
跳轉到指定樓層
樓主
主要實驗功能:1.按下P3^0,串口發送1,2,3,4,5,6,7,8共8個數據到串口助手 2.串口助手傳來的數據再LCD1602顯示
問題1:發送到串口助手的數據錯亂
問題2:LCD1602顯示1的話,需要在串口助手傳回11

#include <reg52.h>
#include <LCD1602.h>

typedef unsigned char u8;

void delayms(u8 ms){
    u8 i;
    while(ms--)
        for(i=0;i<113;i++);
}

u8 scan(void){
    static bit kp=0;
    if((P3&0x0f)!=0x0f)
    {
        kp=1;
        if((P3&0x0f)==0x0e) return 1;

    }
    else kp=0;
    return 0;
}

void Init()
{
    SCON=0X50;          //設置為工作方式1
    TMOD=0X20;          //設置計數器工作方式2
    PCON=0;          //波特率不加倍
    TH1=0XFD;                 //計數器初始值設置,注意波特率是9600的
    TL1=0XFD;
    ES=1;                    //打開接收中斷
    EA=1;                    //打開總中斷
    TR1=1;                    //打開計數器
}

void main() {
    Init();         //串口初始化
    LCD_Init();     //LCD1602初始化
    while(1) {

    }
}

void Usart() interrupt 4
{
    u8 i = 0;
                u8 receiveData;

    if(scan() == 1)
    {
        SBUF = 0x01;
        while(TI == 0);
        TI = 0;
        delayms(100);

        SBUF = 0x02;
        while(TI == 0);
        TI = 0;
        delayms(100);

        SBUF = 3;
        while(TI == 0);
        TI = 0;
        delayms(100);

        SBUF = 4;
        while(TI == 0);
        TI = 0;
        delayms(100);


        SBUF = 5;
        while(TI == 0);
        TI = 0;

        delayms(100);


        SBUF = 6;
        while(TI == 0);
        TI = 0;
        delayms(100);


        SBUF = 7;
        while(TI == 0);
        TI = 0;
        delayms(100);


        SBUF = 8;
        while(TI == 0);
        TI = 0;
}

    if(RI)
                {      
        receiveData = SBUF;         //接收到的數據
        RI = 0;                     //清除接收中斷標志位

        LCD_ShowChar(1,1,receiveData);
    }
}


51hei.png (194.39 KB, 下載次數: 21)

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

使用道具 舉報

沙發
ID:94031 發表于 2023-6-10 05:59 | 只看該作者
通過串口發送的是8位二進制數,不能直接發10進制數,應該 SBUF ='6';,十進制數轉為ASCII碼再發送。
回復

使用道具 舉報

板凳
ID:116103 發表于 2023-6-10 10:23 | 只看該作者
大致看了一下你的程序,感覺按鍵是定義到P3.0口, 而51的P3.0是串口 RXD接收端,兩個硬件沖突了,另外按鍵判斷和顯示最好不要做到中斷里,串口中斷只是清除RI和TI的標志位
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人九九精 | 一级毛片在线播放 | 一区二区三区四区国产 | 91精品国产一区二区三区蜜臀 | 这里有精品 | 一级毛片在线播放 | 免费一区二区 | 国产婷婷色一区二区三区 | 日韩成人精品在线 | 五月婷婷中文 | 亚洲国产精品第一区二区 | 亚洲国产欧美一区 | 国产探花| 亚洲视频精品 | 久产久精国产品 | 在线日韩欧美 | 欧美精品一区二区三区四区 | 日韩国产一区二区三区 | 一区二区三区四区在线视频 | 国产免费一区二区三区 | www.97zyz.com | 午夜视频在线免费观看 | 三级视频在线观看 | 久草视频观看 | 国产精品日韩一区二区 | 久久99精品久久 | 九九天堂网 | 国产日日操 | 国产一区精品 | 嫩草视频在线看 | 日本久久黄色 | 免费国产视频在线观看 | 成人区一区二区三区 | 国产精品久久久久久吹潮 | 亚洲在线免费 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 中文天堂网 | 精品国产一区二区国模嫣然 | 91久久综合亚洲鲁鲁五月天 | 玖玖国产精品视频 | 国产日韩一区二区三免费高清 |