8255中的程式如何變成RS232 |
答題得分者是:frederick
|
kimi
一般會員 發表:37 回覆:76 積分:22 註冊:2003-07-17 發送簡訊給我 |
void __fastcall TMain_Func::ScanTimer(TObject *Sender)
{
signal=inportb(PPI_PB); //掃瞄PB的輸入訊號,以100ms的時脈
//以m,n,o,p,q,r使訊號不會重複讀取
if(signal==input[4]&&m==0)
{
Start_Button1->Click();
m=1;n=0;o=0;p=0;q=0;r=0;
}
if(signal==input[3]&&p==0)
{
Stop_Button1->Click();
m=0;n=0;o=0;p=1;q=0;r=0;
}
}
請問大大我要如何將signal=inportb(PPI_PB);
變成rs232可以用的方式
拜託大大的幫忙
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
|
kimi
一般會員 發表:37 回覆:76 積分:22 註冊:2003-07-17 發送簡訊給我 |
|
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
|
dotdot
版主 發表:29 回覆:142 積分:64 註冊:2002-08-09 發送簡訊給我 |
我覺得很奇怪 為何一定要用8255的程式來改呢??
如果只是運算部分 請先參考人家232的寫法截取所需要的收送部分
照你上面程式看了只是用timer去polling判斷接收端的
訊號去做出相對應的動作然後重新定義flag而已
232同理可證 一直polling接收端 收到你所定義的buffer然後去比對
就像你po的程式一樣 而232讀data部分站上已經有很多範例可以參考 也有元件可以使用 重點
在於用不用心~靜下心來..去看人家的程式推敲 抽出想要的部分 只要做到這一點 對新手而言就等於跨出一大步^^至少我也是這樣開始的
|
kimi
一般會員 發表:37 回覆:76 積分:22 註冊:2003-07-17 發送簡訊給我 |
|
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
引言: 1. 是專題原先用「8255 ISA/PCI」,學長用直接用library讀取8255上面的狀態 2. 介面換成RS232? 3. RS232是直接接8051 我不知道從何更改signal=inportb(PPI_PB);這一部份,請大大給我一個指引。kimi您好: 想必您一定換成從8051 port讀取所要的資料。 那您會不會由RS232傳資料至PC呢? 可試著由8051傳出"Hello",再看看PC收不收的到8051向PC打招呼。 如果經過這步驟之後,表示大概知曉這方面的傳輸。 ---------------------------------------------- 再來就是這行:signal=inportb(PPI_PB); inportb:輸入;好,那如何要求8051我要讀取資料呢? 方法一:8051固定時間傳出資料,這最簡單了。 PC端只要等接收就可以了。 方法二:用command的方式; 就變成要由PC下指令(假設我定義:'@' 表示讀取8051某port) 8051收到後 -> 判斷收到是不是 '@' -> 是的話就把某port的值輸出。 除非您的動作很複雜,不然方法一就好了。 關於方法二如過要瞭解,書店有一本BCB&RS232的書, 您可翻閱關於儀器控制瞭解一些儀器是怎麼用command相互溝通的。 再來您就要瞭解BCB com port元件用法,關於讀取RS232資料的副程式是哪個? 先練習用此讀取副程式讀8051傳來的"Hello", 如果您會用此副程式,我想signal=inportb(PPI_PB); 這應難不倒你吧~ 要親自動手喔~不然您不會發現問題在哪 |
frederick
中階會員 發表:101 回覆:108 積分:66 註冊:2002-08-01 發送簡訊給我 |
引言: 1. 是專題原先用「8255 ISA/PCI」,學長用直接用library讀取8255上面的狀態 2. 介面換成RS232? 3. RS232是直接接8051 我不知道從何更改signal=inportb(PPI_PB);這一部份,請大大給我一個指引。kimi您好: 想必您一定換成從8051 port讀取所要的資料。 那您會不會由RS232傳資料至PC呢? 可試著由8051傳出"Hello",再看看PC收不收的到8051向PC打招呼。 如果經過這步驟之後,表示大概知曉這方面的傳輸。 ---------------------------------------------- 再來就是這行:signal=inportb(PPI_PB); inportb:輸入;好,那如何要求8051我要讀取資料呢? 方法一:8051固定時間傳出資料,這最簡單了。 PC端只要等接收就可以了。 方法二:用command的方式; 就變成要由PC下指令(假設我定義:'@' 表示讀取8051某port) 8051收到後 -> 判斷收到是不是 '@' -> 是的話就把某port的值輸出。 除非您的動作很複雜,不然方法一就好了。 關於方法二如果要瞭解,書店有一本BCB&RS232的書, 您可翻閱關於儀器控制瞭解一些儀器是怎麼用command相互溝通的。 ---------------------------------------------------------------------- 再來您就要瞭解BCB com port元件用法,關於讀取RS232資料的副程式是哪個? 先練習用此讀取副程式讀8051傳來的"Hello", 如果您會用此副程式,我想signal=inportb(PPI_PB); 這應難不倒你吧~ 要親自動手喔~不然您不會發現問題在哪 發表人 - |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |