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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

求助!求助!單片機(jī)串口RXD可以直接連傳感器輸出的TXD嗎?如圖

查看數(shù): 4767 | 評(píng)論數(shù): 9 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2017-5-6 21:23

正文摘要:

求助!單片機(jī)串口RXD可以直接連傳感器輸出的TXD嗎?如圖

回復(fù)

ID:197604 發(fā)表于 2017-5-7 09:52
可以增加光耦隔離
ID:191024 發(fā)表于 2017-5-6 22:33
可以,但要注意串口電平是否是相同邏輯電平,如不同,要使用電平轉(zhuǎn)換芯片MAX232等。
ID:197526 發(fā)表于 2017-5-6 22:28
一般是可以的  具體你可以發(fā)一下兩個(gè)的型號(hào)
ID:195842 發(fā)表于 2017-5-6 21:58
ok 估計(jì)是程序的問題了 我再看看
ID:195842 發(fā)表于 2017-5-6 21:50
輸出是TTL的電平,那同志們能看看我這程序是不是有什么問題?
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void senddata(uchar dat);
uchar cal [7]= {0};//        cal[0]:起始位 0xAA
//        cal[1] : Vout(H)
//        cal[2] : Vout(L)
//        cal[3] : Vref(H)
//        cal[4] : Vref(L)
//        cal[5] : 校驗(yàn)位
//        cal[6] : 結(jié)束位 OxFF
float Vo;
int i=0;                                                                                 
sbit rs=P1^0;
sbit lcden=P2^5;
sbit rw=P1^1;
sbit voice=P2^3;
sbit light=P2^2;
uchar  buf,sum,count;
uchar num,TV,a,b,c;

void delay(uint z)
{
  uint x,y;               
   for(x=z;x>0;x--)
     for(y=110;y>0;y--);
}
void write_com(uchar com)
{  
  rs=0;  
   rw=0;  
      P0=com;  
    delay(5);  
    lcden=1;  
   delay(5);  
    lcden=0;  
}  
void write_data(uchar date)
{  
    rs=1;  
    rw=0;  
    P0=date;  
    delay(5);  
    lcden=1;  
    delay(5);  
    lcden=0;  
}  
void init()  
{  
    lcden=0; //使能端為低電平  
    write_com(0x38);  
    /*顯示模式設(shè)置  00111000  設(shè)置16*2顯示  5*7點(diǎn)陣  8位數(shù)據(jù)接口*/  
    write_com(0x0f);  
    /*顯示開關(guān)及光標(biāo)設(shè)置   00001DCB
    D=1,開顯示     D=0, 關(guān)顯示
    C=1,顯示光標(biāo)   C=0,不顯示光標(biāo)
    B=1,光標(biāo)閃爍   B=0,光標(biāo)不閃爍*/  
   write_com(0x06);//地址指針自動(dòng)+1且光標(biāo)+1,寫字符屏幕不會(huì)移動(dòng)  
    write_com(0x01);  
write_com(0x80);   
write_data ('P');
write_com (0x81);     
write_data ('M');  
write_com (0x82);   
write_data ('2');
write_com (0x83);   
write_data ('.');
write_com (0x84);     
write_data ('5');   
write_com (0x85);     
write_data (':');
write_com (0xcb);     
write_data ('m');  
write_com (0xcc);     
write_data ('g');   
write_com (0xcd);     
write_data ('/');  
write_com (0xce);     
write_data ('m');  
write_com (0xcf);     
write_data ('3');
}  
void  warn()
{      
if   (num>=200)
{     
         voice=0;
         light=0;
}
}
void main()  
{
init();  
SCON=0x50;        //設(shè)定串口工作方式
PCON=0x00;        //波特章不倍增
TMOD=0x20;        //定時(shí)器1工作于8位自動(dòng)重載橫式,用于產(chǎn)生波特率
EA=1;
ES = 1;        //允許串口中斷
TL0=0x80;
TH0=0xFB;       
TR0=1;               
num=TV;                                    
a= TV /100+0x30;
TV %=100;
b= TV /10+0x30;
TV %=10;
c= TV +0x30;  
write_com (0x88);
write_data (a);
write_com (0x89);
write_data (b);
write_com (0x8a);
write_data (c);
//warn();
while(1);  

}                 
void serial()  interrupt 4
{
ES = 0;        //關(guān)閉串行中斷
RI = 0;        //清除串行接受標(biāo)志位
buf = SBUF;        //從串口緩沖區(qū)取得數(shù)據(jù)
senddata(buf);
ES = 1;        //允許串口中斷
}
void senddata(uchar dat)
{if(dat==170) //判斷起始位 OxAA, (0xAA==l70〉
{
i=0;
cal[i]=dat;
}
else
{
i=i+1;
cal[i]=dat;
}
if(i==6)
{
sum= cal[1]+cal[2]+cal[3]+cal[4];//sum=Vout(M)+Vout(L)+Vref(M)+Vref(L)
}
if (sum == cal [5] && cal[6]==255)        //sum與校驗(yàn) 相同 &&最后一位是 OxFF 結(jié)束位
{
for (i=0; i <=6; i++) //此處for循環(huán)是顯示出所有數(shù)據(jù),即cal [7]中的數(shù)據(jù)
{
      SBUF=cal[i];
while(!TI);
TI=0;
}
Vo=(cal[1]*256+cal[2])/2048*5;
TV=3000* Vo;
}
                }
ID:195842 發(fā)表于 2017-5-6 21:45
傳感器是TTL的電平嗯,那難道是我這程序有錯(cuò)誤?大家?guī)兔纯垂?br /> #include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void senddata(uchar dat);
uchar cal [7]= {0};//        cal[0]:起始位 0xAA
//        cal[1] : Vout(H)
//        cal[2] : Vout(L)
//        cal[3] : Vref(H)
//        cal[4] : Vref(L)
//        cal[5] : 校驗(yàn)位
//        cal[6] : 結(jié)束位 OxFF
float Vo;
int i=0;                                                                                 
sbit rs=P1^0;
sbit lcden=P2^5;
sbit rw=P1^1;
sbit voice=P2^3;
sbit light=P2^2;
uchar  buf,sum,count;
uchar num,TV,a,b,c;

void delay(uint z)
{
  uint x,y;               
   for(x=z;x>0;x--)
     for(y=110;y>0;y--);
}
void write_com(uchar com)
{  
  rs=0;  
   rw=0;  
      P0=com;  
    delay(5);  
    lcden=1;  
   delay(5);  
    lcden=0;  
}  
void write_data(uchar date)
{  
    rs=1;  
    rw=0;  
    P0=date;  
    delay(5);  
    lcden=1;  
    delay(5);  
    lcden=0;  
}  
void init()  
{  
    lcden=0; //使能端為低電平  
    write_com(0x38);  
    /*顯示模式設(shè)置  00111000  設(shè)置16*2顯示  5*7點(diǎn)陣  8位數(shù)據(jù)接口*/  
    write_com(0x0f);  
    /*顯示開關(guān)及光標(biāo)設(shè)置   00001DCB
    D=1,開顯示     D=0, 關(guān)顯示
    C=1,顯示光標(biāo)   C=0,不顯示光標(biāo)
    B=1,光標(biāo)閃爍   B=0,光標(biāo)不閃爍*/  
   write_com(0x06);//地址指針自動(dòng)+1且光標(biāo)+1,寫字符屏幕不會(huì)移動(dòng)  
    write_com(0x01);  
write_com(0x80);   
write_data ('P');
write_com (0x81);     
write_data ('M');  
write_com (0x82);   
write_data ('2');
write_com (0x83);   
write_data ('.');
write_com (0x84);     
write_data ('5');   
write_com (0x85);     
write_data (':');
write_com (0xcb);     
write_data ('m');  
write_com (0xcc);     
write_data ('g');   
write_com (0xcd);     
write_data ('/');  
write_com (0xce);     
write_data ('m');  
write_com (0xcf);     
write_data ('3');
}  
void  warn()
{      
if   (num>=200)
{     
         voice=0;
         light=0;
}
}
void main()  
{
init();  
SCON=0x50;        //設(shè)定串口工作方式
PCON=0x00;        //波特章不倍增
TMOD=0x20;        //定時(shí)器1工作于8位自動(dòng)重載橫式,用于產(chǎn)生波特率
EA=1;
ES = 1;        //允許串口中斷
TL0=0x80;
TH0=0xFB;       
TR0=1;               
num=TV;                                    
a= TV /100+0x30;
TV %=100;
b= TV /10+0x30;
TV %=10;
c= TV +0x30;  
write_com (0x88);
write_data (a);
write_com (0x89);
write_data (b);
write_com (0x8a);
write_data (c);
//warn();
while(1);  

}                 
void serial()  interrupt 4
{
ES = 0;        //關(guān)閉串行中斷
RI = 0;        //清除串行接受標(biāo)志位
buf = SBUF;        //從串口緩沖區(qū)取得數(shù)據(jù)
senddata(buf);
ES = 1;        //允許串口中斷
}
void senddata(uchar dat)
{if(dat==170) //判斷起始位 OxAA, (0xAA==l70〉
{
i=0;
cal[i]=dat;
}
else
{
i=i+1;
cal[i]=dat;
}
if(i==6)
{
sum= cal[1]+cal[2]+cal[3]+cal[4];//sum=Vout(M)+Vout(L)+Vref(M)+Vref(L)
}
if (sum == cal [5] && cal[6]==255)        //sum與校驗(yàn) 相同 &&最后一位是 OxFF 結(jié)束位
{
for (i=0; i <=6; i++) //此處for循環(huán)是顯示出所有數(shù)據(jù),即cal [7]中的數(shù)據(jù)
{
      SBUF=cal[i];
while(!TI);
TI=0;
}
Vo=(cal[1]*256+cal[2])/2048*5;
TV=3000* Vo;
}
                }
ID:127881 發(fā)表于 2017-5-6 21:39
如果傳感器是TTL電平的就可以
ID:7485 發(fā)表于 2017-5-6 21:33
不知道你是什么傳感器,輸入輸出電平是多少?
ID:197499 發(fā)表于 2017-5-6 21:26
電平一樣可以呀

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲福利网站 | 97久久精品人人澡人人爽 | 精品一区二区三区视频 | 精品久久久久久 | 日本三级韩国三级美三级91 | 亚洲精品乱码久久久久久动漫 | 日韩欧美一级片 | 日韩一级黄色片 | 天天操天天操天天操 | 日韩香蕉视频 | 精品国产99久久久久久宅男i | 国产伦精品一区二区三区视频网站 | 久久久精品在线观看 | 中文字幕丰满人伦在线 | 精品国产va久久久久久久 | 国产一区中文字幕 | 韩国理论在线 | 青青草福利视频 | 伊人精品| 国产一区二区三区四区 | 国产精品aaa | 欧美a级成人淫片免费看 | 伊人色综合网 | 色婷婷国产精品综合在线观看 | 成年人免费在线视频 | 欧美做受喷浆在线观看 | 中文字幕在线日韩 | 四虎黄色片 | 青青国产| 久久久精品网 | 日韩五十路 | 日韩精品一区二区三区免费视频 | 日韩伦理在线播放 | 欧美色综合天天久久综合精品 | 国产精品无遮挡 | 欧美九九九 | 黄色片视频在线观看 | www.久久| 久久久久久久久久国产精品 | 免费看黄色大片 | 欧美一级网站 |