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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1820|回復: 2
收起左側

這2個單片機程序為什么不能通訊,求幫助,謝謝大家

[復制鏈接]
ID:763482 發表于 2021-3-25 11:42 | 顯示全部樓層 |閱讀模式
主機
#include<reg52.h>
#include<stdio.h>
#include "delay.h"
#include "math.h"

#define TRUE 0x01
#define FALSE 0x00

sbit Echo=P2^0;               
sbit Trip=P2^1;

char dis0[16];

unsigned long time_20ms;
unsigned char DisFlag=FALSE;

float JuLi;
long JlCoun=0;

void TIM2Inital(void);
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);

void main (void)
{  
        TMOD|=0x01;                  
        TH0=0;
        TL0=0;         
        ET0=1;            
        EA=1;                           
        UART_Init();                     

        sprintf(dis0,"*%05d#",(unsigned int)JuLi);
        uartSendStr(dis0,7);

        while (1)         
        {
                Trip=1;                           
                DelayUs2x(4);
                Trip=0;
                while(!Echo);               
                TR0=1;                           
               
                JuLi=(float)(JlCoun*17)/100.0*1.08;     
                if((JlCoun>0)&&(JuLi>0))
                {
                       
                        uartSendStr(dis0,7);                       
                }
                DelayMs(200);
                DelayMs(200);
        }
}


void UART_Init(void)
{
    SCON  = 0x50;                        
    TMOD |= 0x20;               
    TH1   = 0xFD;               
        TL1 = TH1;  
    TR1   = 1;                  
    EA    = 1;                  
    ES    = 1;                  
}

void uartSendByte(unsigned char dat)
{
        unsigned char time_out;
        time_out=0x00;
        SBUF = dat;
        while((!TI)&&(time_out<100))
        {time_out++;DelayUs2x(10);}
        TI = 0;
}

void uartSendStr(unsigned char *s,unsigned char length)
{
        unsigned char NUM;
        NUM=0x00;
        while(NUM<length)
        {
                uartSendByte(*s);
                s++;
                NUM++;
           }
}

void UART_SER (void) interrupt 4         
{
        if(RI)                        
        {
                RI=0;                     
        }
        if(TI)  
        TI=0;
}
從機
#include <reg52.h>
#include"delay.h"
#include "1602.h"
#include <stdio.h>

sbit shuibegn =P1^3;
sbit buzzer =P1^2;

unsigned long times_20ms=0;                          
unsigned char firstin =0;                          
unsigned char tab[8];
unsigned char Count=0;
unsigned char  uartbusy =0;

unsigned char reportFlag = 0;
unsigned char dis1[16];
unsigned char i;

unsigned int juLi=12345;
unsigned char laterNum =0;
void Init_Timer0(void);
void UART_Init(void);
void SendByte(unsigned char dat);
void SendStr(unsigned char *s,unsigned char length);


void main (void)
{
        Init_Timer0();        
        UART_Init();
        LCD_Init();           
        DelayMs(20);         
        LCD_Clear();         

        LCD_Write_String(0,0,"My Designer! ");

        sprintf(dis1,"Now:%05dmm ",juLi);
        LCD_Write_String(0,1,dis1);

        while(1)         
        {      
               
                LCD_Write_String(0,1,dis1);
                 if ( juLi>10&&juLi<20)
                 {buzzer=~buzzer;
                DelayMs(10); }
                DelayMs(200);
        }
}

void Init_Timer0(void)
{
        TMOD |= 0x01;         
        TH0=(65536-20000)/256;                  
        TL0=(65536-20000)%256;
        EA=1;            
        ET0=1;           
        TR0=1;           
}
void UART_Init(void)
{
    SCON  = 0x50;                        
    TMOD |= 0x20;               
    TH1   = 0xFD;               
          TL1 = TH1;  
    TR1   = 1;                  
    EA    = 1;                  
    ES    = 1;                  
}

void SendByte(unsigned char dat)
{
        unsigned char time_out;
        time_out=0x00;
        SBUF = dat;
        while((!TI)&&(time_out<100))
        {time_out++;DelayUs2x(10);}
        TI = 0;
}

void SendStr(unsigned char *s,unsigned char length)
{
        unsigned char NUM;
        NUM=0x00;
        while(NUM<length)
        {
                SendByte(*s);
                s++;
                NUM++;
           }
}

void Timer0_isr(void) interrupt 1
{
        TH0=(65536-20000)/256;                  
        TL0=(65536-20000)%256;
        times_20ms++;
        if(laterNum>0)
        {laterNum--;}
        else
        {juLi = 0;}

        if(uartbusy>0)           
        {uartbusy--;}
        else
        {
                firstin =0;
                Count=0;
        }
}

void UART_SER (void) interrupt 4         
{
        unsigned char r_buf;
        if(RI)                        
        {
                RI=0;                     
                r_buf = SBUF;
                uartbusy = 20;
                if(r_buf=='*')               
                {                       
                        firstin = 1;
                        Count = 0;
                        tab[Count++]=r_buf;
                }
                else if(firstin == 1)         
                {
                        tab[Count++]=r_buf;
                        if(Count>=7)
                        {
                                if(tab[6]=='#')
                                {                                       
                                        juLi = (tab[1]-'0')*10000+        (tab[2]-'0')*1000+(tab[3]-'0')*100+(tab[4]-'0')*10+(tab[5]-'0');
                                        laterNum = 150;
                                }
                                firstin =0;
                                Count=0;                       
                        }
                }

        }
        if(TI)  
        TI=0;
}

以上怎么通訊不了,求大神請教

回復

使用道具 舉報

ID:328014 發表于 2021-3-25 16:37 | 顯示全部樓層
檢查一下電路看看,gnd接上了沒有?有沒有短路
回復

使用道具 舉報

ID:763482 發表于 2021-3-25 17:02 | 顯示全部樓層
51hei團團 發表于 2021-3-25 16:37
檢查一下電路看看,gnd接上了沒有?有沒有短路

gnd接上了的,還是通訊不了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美日韩国产 | 在线观看视频一区 | 亚洲二区视频 | 精品久久久久一区二区国产 | 久久lu | 狠狠亚洲 | 天天操夜夜骑 | 成人在线视频免费观看 | 一区二区三区av | www.日本国产 | 国产精品一区二区三区在线 | 中文字幕91 | 亚洲一区中文 | 精品在线观看入口 | 国产高清久久久 | 免费在线观看一区二区三区 | 四虎永久免费黄色影片 | 亚洲精品综合 | 欧洲精品一区 | 美女一级黄 | 欧美成人一区二免费视频软件 | 久免费视频| 久久久91精品国产一区二区三区 | 亚洲福利在线视频 | 亚洲一区 中文字幕 | 国产成人免费 | 国产黄a一级 | 成人精品一区亚洲午夜久久久 | 视频在线一区二区 | 日韩国产中文字幕 | 国产精品久久久久久吹潮 | 免费黄色在线观看 | 深夜爽视频 | 日韩午夜场 | 视频一区在线 | 久久这里只有精品首页 | 精品1区| 久久久女女女女999久久 | 亚洲在线日韩 | 久久久片| 完全免费av在线 |