在學校沒有好好學習,所以很多地方都不懂,過來請教一下。有沒有大佬愿意提供一下思路,意見,萬分感謝!控制板是SAB80c537,存儲芯片M27C512。目的是能通過串口通信在電腦上檢測一塊控制板有沒有故障,順便采集電壓并顯示大小。
控制板有電壓輸出和采集,但是采集口較少,需要38譯碼器繪制PCB但是不太懂(電壓采集 電壓量的大小如何檢測,是在要設計的PCB板上加一些東西嘛?)
串口調(diào)試方面,是不是只要能夠?qū)崿F(xiàn)通訊這個功能就可以,對程序有沒有要求
如果我要對采集的IO數(shù)據(jù)編輯處理,設置面板那種電腦上按鍵控制后面直接顯示某個電壓值難度高嘛?是在繪制PCB的時候通過硬件電路就能直接處理,還是在采集完信號之后通過燒錄的程序處理?
附上目前的單片機程序:
串口的:- #include "reg52.h" //包函8051 內(nèi)部資源的定義
- unsigned char dat; //用于存儲單片機接收發(fā)送緩沖寄存器SBUF里面的內(nèi)容
- 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ù)據(jù)(十進制)
- {
- 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ù)據(jù)并把接收到的數(shù)據(jù)原樣發(fā)送回去///////
- void main()
- {
- Init_Com();//串口初始化
- while(1)
- {
- if ( RI ) //掃描判斷是否接收到數(shù)據(jù),
- {
- dat = SBUF; //接收數(shù)據(jù)SBUF賦與dat
- RI=0; //RI 清零。
- SBUF = dat; //在原樣把數(shù)據(jù)發(fā)送回去(接收數(shù)據(jù)為發(fā)送數(shù)據(jù)的ASCII碼,如發(fā)送q顯示為113)
- }
- LED(); //顯示接收到的數(shù)據(jù)
- }
- }
復制代碼
|