標題:
萌新關于通過RS232串口通信&采集信號檢測電壓的硬件軟件的求助
[打印本頁]
作者:
檸檬酸酸噠
時間:
2019-2-21 16:35
標題:
萌新關于通過RS232串口通信&采集信號檢測電壓的硬件軟件的求助
在學校沒有好好學習,所以很多地方都不懂,過來請教一下。有沒有大佬愿意提供一下思路,意見,萬分感謝!控制板是SAB80c537,存儲芯片M27C512。目的是能通過串口通信在電腦上檢測一塊控制板有沒有故障,順便采集電壓并顯示大小。
控制板有電壓輸出和采集,但是采集口較少,需要38譯碼器繪制PCB但是不太懂(電壓采集 電壓量的大小如何檢測,是在要設計的PCB板上加一些東西嘛?)
串口調試方面,是不是只要能夠實現(xiàn)通訊這個功能就可以,對程序有沒有要求
如果我要對采集的IO數(shù)據編輯處理,設置面板那種電腦上按鍵控制后面直接顯示某個電壓值難度高嘛?是在繪制PCB的時候通過硬件電路就能直接處理,還是在采集完信號之后通過燒錄的程序處理?
附上目前的單片機程序:
串口的:
#include "reg52.h" //包函8051 內部資源的定義
unsigned char dat; //用于存儲單片機接收發(fā)送緩沖寄存器SBUF里面的內容
sbit gewei=P2^4; //個位選通定義
sbit shiwei=P2^5; //十位選通定義
sbit baiwei=P2^6; //百位選通定義
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; //1~10
void Delay(unsigned int tc) //延時程序
{
while( tc != 0 )
{unsigned int i;
for(i=0; i<100; i++);
tc--;}
}
void LED() //LED顯示接收到的數(shù)據(十進制)
{
gewei=0; P0=table[dat%10]; Delay(10); gewei=1;
shiwei=0; P0=table[dat/10]; Delay(10); shiwei=1;
baiwei=0; P0=table[dat/100]; Delay(10); baiwei=1;
}
///////功能:串口初始化,波特率9600,方式1/////////
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/////主程序功能:實現(xiàn)接收數(shù)據并把接收到的數(shù)據原樣發(fā)送回去///////
void main()
{
Init_Com();//串口初始化
while(1)
{
if ( RI ) //掃描判斷是否接收到數(shù)據,
{
dat = SBUF; //接收數(shù)據SBUF賦與dat
RI=0; //RI 清零。
SBUF = dat; //在原樣把數(shù)據發(fā)送回去(接收數(shù)據為發(fā)送數(shù)據的ASCII碼,如發(fā)送q顯示為113)
}
LED(); //顯示接收到的數(shù)據
}
}
復制代碼
作者:
lfc315
時間:
2019-2-22 10:30
AD電壓采集:電阻分壓,然后通過IO口測量,按分壓比例算出實際電壓值,發(fā)到屏幕顯示
作者:
yzwzfyz
時間:
2019-2-22 12:28
與硬件有關,不是一時半會可以說清楚的。需要面對面解決。
作者:
檸檬酸酸噠
時間:
2019-2-27 09:44
lfc315 發(fā)表于 2019-2-22 10:30
AD電壓采集:電阻分壓,然后通過IO口測量,按分壓比例算出實際電壓值,發(fā)到屏幕顯示
謝謝你的思路!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1