標題: 萌新關于通過RS232串口通信&采集信號檢測電壓的硬件軟件的求助 [打印本頁]

作者: 檸檬酸酸噠    時間: 2019-2-21 16:35
標題: 萌新關于通過RS232串口通信&采集信號檢測電壓的硬件軟件的求助
在學校沒有好好學習,所以很多地方都不懂,過來請教一下。有沒有大佬愿意提供一下思路,意見,萬分感謝!控制板是SAB80c537,存儲芯片M27C512。目的是能通過串口通信在電腦上檢測一塊控制板有沒有故障,順便采集電壓并顯示大小。
控制板有電壓輸出和采集,但是采集口較少,需要38譯碼器繪制PCB但是不太懂(電壓采集 電壓量的大小如何檢測,是在要設計的PCB板上加一些東西嘛?)

串口調試方面,是不是只要能夠實現(xiàn)通訊這個功能就可以,對程序有沒有要求
如果我要對采集的IO數(shù)據編輯處理,設置面板那種電腦上按鍵控制后面直接顯示某個電壓值難度高嘛?是在繪制PCB的時候通過硬件電路就能直接處理,還是在采集完信號之后通過燒錄的程序處理?

附上目前的單片機程序:
串口的:
  1. #include "reg52.h" //包函8051 內部資源的定義
  2. unsigned char dat; //用于存儲單片機接收發(fā)送緩沖寄存器SBUF里面的內容
  3. sbit gewei=P2^4; //個位選通定義
  4. sbit shiwei=P2^5; //十位選通定義
  5. sbit baiwei=P2^6; //百位選通定義
  6. unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; //1~10
  7. void Delay(unsigned int tc) //延時程序
  8. {
  9. while( tc != 0 )
  10. {unsigned int i;
  11. for(i=0; i<100; i++);
  12. tc--;}
  13. }
  14. void LED() //LED顯示接收到的數(shù)據(十進制)
  15. {
  16. gewei=0; P0=table[dat%10]; Delay(10); gewei=1;
  17. shiwei=0; P0=table[dat/10]; Delay(10); shiwei=1;
  18. baiwei=0; P0=table[dat/100]; Delay(10); baiwei=1;
  19. }
  20. ///////功能:串口初始化,波特率9600,方式1/////////
  21. void Init_Com(void)
  22. {
  23. TMOD = 0x20;
  24. PCON = 0x00;
  25. SCON = 0x50;
  26. TH1 = 0xFd;
  27. TL1 = 0xFd;
  28. TR1 = 1;
  29. }
  30. /////主程序功能:實現(xiàn)接收數(shù)據并把接收到的數(shù)據原樣發(fā)送回去///////
  31. void main()
  32. {
  33. Init_Com();//串口初始化
  34. while(1)
  35. {                     
  36. if ( RI ) //掃描判斷是否接收到數(shù)據,
  37. {
  38. dat = SBUF; //接收數(shù)據SBUF賦與dat
  39. RI=0; //RI 清零。
  40. SBUF = dat; //在原樣把數(shù)據發(fā)送回去(接收數(shù)據為發(fā)送數(shù)據的ASCII碼,如發(fā)送q顯示為113)
  41. }
  42. LED(); //顯示接收到的數(shù)據
  43. }
  44. }
復制代碼


作者: 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