導航:首頁 > 操作系統 > 單片機只能讀取數字

單片機只能讀取數字

發布時間:2024-02-02 07:25:52

㈠ 51 單片機模擬串口的問題 目前發送數據沒有問題,接收數據時只能接收前兩位,如發送010203 只能接收到01

我前幾天也做模擬串口程序,也遇到了與你類似的問題,不過現在解決了。
數據格式由一個起始位,八個數據位,一個或兩個結束位組成。在數據發送是結束位是不能省。
但在數據接收時,程序中就沒有必要等待結束位了,因為在等待結束位的過程中,把下一個數據的起始中斷也等待過去了。
把函數uchar RByte()中的最後一個WaitTF0();刪除,程序就能連續接收數據了。
下面是我的程序,你看一下就明白了。
/*
模擬串口收發程序
改程序發送口採用任一IO口,接收口採用外部中斷0口,實現了9600bit/s的串口通信
信號產生與接收採用定時器定時溢出標志來進行控制
注意問題:
1、中斷的中斷標志要保證狀態正確
2、定時器定時要精確
*/

#include<reg52.h>
sbit txd=P3^1;
sbit rxd=P3^2;
sbit en=P1^7;
sbit clk=P3^7;

#define uchar unsigned char

uchar number,flag;
uchar num[10]={0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};

void wait(uchar i);
void send(uchar aa);

void main()
{
uchar i;
IE=0;EA=1;
TMOD=0x12;
TR0=0;EX0=1;
IT0=1;en=0;
while(1)
{
if(num[0]==0x49&&num[1]==0x85&&num[2]==0x54&&num[3]==0x31&&num[4]==0x59&&num[5]==0x87&&num[6]==0x91&&num[7]==0x25&&num[8]==0x34&&num[9]==0x62)
{
en=1;
number=0;
for(i=0;i<10;i++)
{send(num[i]);num[i]=0x00;}
en=0;
}
}
}

void send(uchar aa)
{
uchar i;
txd=0;
wait(0xb9);
for(i=0;i<8;i++)
{txd=aa&0x01;aa>>=1;wait(0xb9);}
txd=1;
wait(0xb9);
flag=0;
}

void int0() interrupt 0
{
uchar i;
EX0=0;clk=!clk;
wait(0xad);
for(i=0;i<7;i++)
{
number>>=1;clk=!clk;
if(rxd)number=0x80|number;
else number=0x00|number;
wait(0xb9);
}

number>>=1;clk=!clk;
if(rxd)number=0x80|number;
else number=0x00|number;
wait(0xd9);

num[flag]=number;
flag++;clk=!clk;
IE0=0;EX0=1;
if(flag>=10)flag=0;
}

void wait(uchar i)
{
TF0=0;
TH0=i;TL0=i;
TR0=1;
while(TF0==0);
TF0=0;TR0=0;
}

㈡ 單片機是典型的數字電路,只能處理數字量不能直接處理模擬量正確還是錯誤

答案是對的,單片機不能直接處理模擬量,需要用A/D轉換電路將模擬量轉換成數字量單片機才能運算處理。

㈢ 為什麼單片機串口只能識別字元

單片機串口只能識別字元原因51單片機的串口所傳輸的,每次,只是8位二進制數。 只要按照這個規則,各種類型的數據,就都可以傳送。

在串列通信時,並不是只能發送和接字元,那字元也是二進制數。關鍵是發送和接收的格式必須相同,接收一端才能正常顯示,但不影響接。舉例,電腦發送字元1,單片機按十六進制數即HEX顯示是0x31,並不是1。

根據外圍設備或器件的名稱分類:

1)光電式,電容式,電感式,霍爾式、機械式等各種感測器控制器,如光電、紅外對射、金屬、人體等感測器;光柵、編碼器、接近開關等位置感測器;機械開關(如冰箱上用)感測器;速度感測器等。

輸入信號的數字量又分NPN或PNP型,如NPN:有信號為0V,PNP有信號為24V。

2)溫度、濕度、壓力、液位、氣體感測器,如Pt100鉑電阻等,需要接一個變送器,才能被串口控制器控制;2.2.2 輸出控制的器件。



㈣ 單片機的讀和寫是什麼意思啊,ROM只讀呢

讀是數據從存儲器到單片機上的過程 寫是數據從單片機到存儲器上的過程。 rom只讀的意思是這個存儲器只能讀取數據,不能向裡面寫入

閱讀全文

與單片機只能讀取數字相關的資料

熱點內容
程序員能創造的價值 瀏覽:257
伺服器上的redis是什麼意思 瀏覽:377
軟體產品經理與程序員 瀏覽:920
高中生程序員 瀏覽:890
ps處理pdf 瀏覽:721
伺服器c1什麼意思 瀏覽:220
哈爾濱手機什麼app拍違章有獎勵 瀏覽:477
盜賊用什麼app最好 瀏覽:902
51單片機如何測量電導率 瀏覽:499
移動花卡怎麼使用app流量 瀏覽:554
個稅演算法2021表格公式解讀 瀏覽:174
怎麼進入電腦板2b2t伺服器 瀏覽:284
idea編譯進度條 瀏覽:134
文件夾工具箱軟體 瀏覽:688
最近為什麼手機連不上索尼伺服器 瀏覽:877
海康錄像機怎麼關視頻加密 瀏覽:787
編程以後有可能被機器人代替嗎 瀏覽:522
windows創建文件命令 瀏覽:988
linuxcopy文件內容 瀏覽:384
程序員帥哥禿頂 瀏覽:841