LOGO

無線電收發機與個人電腦連線
(YAESU 系列)

No.15   1994 Mar.   p49~64,   by 林茂榮 / BV5OC 彰化郵箱 575 號



在個人電腦上按個鍵,無線電收發機的頻率自動轉換到 10MHz AM 標時台;再按一次, 又跳換到 29.500MHz FM,並開始往上掃描,到 29.690MHz 為止,又會跳回 29.500MHz ,繼續做掃描……

「無線電」與「電腦」之間,要如何連接呢?


    目前世界上,業餘無線電台所使用的機器,大概都是日本廠牌的天下,雖然收發機廠牌 有無數家,偶而也可發現韓國 BANDO RADIO 廠的 TECHINIC-5D、美國的 TEN-TEC 等 ,但是,打開機器監聽他們的通訊內容,他們使用的業餘無線電收發機,還是以日本的 ICOM、KENWOOD、YAESU 三大廠牌為主。

    當然另外也有 JRC 廠牌,但是 JRC 所經營的是以業務用為主,供業餘無線電應用的收 發機,目前也只有 JST-135 系列,倒是最近也出現一些高品質接收機,給純收聽的朋 友們。

    因此,本文以 ICOM、KENWOOD、YAESU、JRC 四大廠牌的業餘無線電收發機,作為主要 對象,分別介紹加何與個人電腦連線做控制。

    這裡要強調的是:
一、每種廠牌採用的並非一般的標準介面,因此,特別以廠牌為主要分類,分別介紹各廠牌使用的系統。
二、所謂的電腦連線控制介面,並不包括數位通訊中,收發機興數位介面 (如 TNC 等) 的接線,只會偶而提到。
三、本文以硬體為經,軟體為緯,構成完整概念,但是控制軟體廣而繁多,不能面面俱到,筆者僅以手頭擁有的軟體為討論範圍。



前言

    1980 年代初期,微電腦技術開始滲透到業餘無線電領域,尤其是無線電收發機。當這 些新興的收發機出現在市場土時,曾令不少人雀躍不已,也為業餘無線電設備與個人電 腦之間的連線,放出起跑的槍聲。

    於是,各家製造廠商紛紛效法投入,收發機的操作,至此有了革命性的改變,例如選單 式的操作收發機、大量增加記憶頻道數、及記憶頻道的靈活操作等,提供使用者不少的 方便,更可讓收發機的一切狀態訊息,包括頻率、模式等,顯示在個人電腦,或其他終 端機的螢幕上。

    遺憾的是,微電腦化的收發機與個人電腦之間,往往有一道無形藩籬,彼此不能直接溝 通;因為收發機大都採用 0V 及 5V 的 TTL 位準,但是個人電腦的串列埠,絕大多數 要求 RS-232 位準,也就是 +12V 及 -12V,而一般人並不會在購買收發機時,一併買 下轉換器介面。

    其實這種轉換器所承擔的是一種很簡單的工作,只做訊號位準的轉換而已,只可惜由於 廠牌不同,接腳互異,所以至今依然沒有標準化的轉換器,買商品,又稍嫌貴些,所以 許多人總希望,日後有機會,能自製一個轉換器。也因為缺少了這個轉換器,很多人至 今,還是讓共處一室的個人電腦與收發機,各佔一隅,遙遙相望。


希望終於到來

    在使用 YAESU 收發機幾年之後,有一天心血來潮,突然想起了收發機可以和個人電腦 連線。這也許是受最近對個人電腦控制方面的製作案子接觸頻繁的影響,而把癢處也傳 染到這裡來了。所以決定動手自行製作一只轉換器。

    一有了念頭,若不打鐵趁熱,恐怕又會是另一場虎頭蛇尾。但是萬事起頭難,隨之而來 的會有那些難題,橫阻在前呢?

    著手規劃之初,我希望解決的問題不僅是個人電腦與 YAESU 收發機,而是考慮到能應 用在所有配備有、或可加裝電腦控制介面的收發機、及任何配備有串列埠的個人電腦。


數位訊號的轉換

    圖一說明了 TTL 位準與 RS-232 位準的差異,經過轉換器,它們彼此才可以取得一致 進行溝通。TTL 位準與 RS-232 位準,除了電壓的定義範圍不同外,它們對應到邏輯的 電壓位準也不一樣,彼此呈相反關係。

    例如 TTL 的 +5V 對應到 RS-232 的不是 +12V,而是 -12V,這種差異可以用軟體糾正 過來,但是利用硬體會比較方便,所以這裡採用硬體方式。

Fig 1

Fig 2     當然溝通並非單向的,大多數收發機除了接受個人電腦發出來的指令外,還會送出回應 的資料,所以個人電腦與收發機之間的一來一往,都須要做訊號的位準轉換。

    參看圖二,是 YAESU 收發機內部的 CAT 介面簡圖,有兩點要注意:
一、送給 YAESU 收發機的串列控制訊號,至少要承受 165 歐姆的負載。
二、YAESU 收發機送出的 TTL 串列訊號,是由 NPN 電晶體開關式輸出。

    因為我手頭上並沒有全部廠牌的收發機可供測試,這裡只好先對 YAESU 廠牌收發機做 主要的討論對象。


簡單的轉換器線路

Fig 3

    圖三所示,是利用一只含有四單元運算放大器的 IC LM324 為主的轉換器線路,但只使 用了其中二個運算放大器, U1a 組成了反相器,U1b 也一樣,仔細比較,可以發現兩 者稍有不同。

    U1b 把個人電腦訊號位準轉換為 TTL 訊號給收發機,U1a 則把收發機的 TTL 訊號轉為 RS-232 訊號位準給個人電腦。線路圖內 R1 原先使用 18K 歐姆,與個人電腦連線使用 ,一切相安無事。

    有一天隨興所致,想接筆記型個人電腦試一試,結果卻出現了問題,想到筆記電腦也許 要吃更大電流,所以把 R1 改換成 3.3K 歐姆之後,便恢復了正常。


更理想的介面線路

    上述簡單的介面,工作了幾個月之後,書寫測試程式也暫告一段落,為了能一勞永逸, 留在麵包板的線路實在不是辦法,因此想做個線路,最好不再使用二只 9V 乾電池,至 少也要一顆電池就能動,於是動動腦筋,以簡單的介面為藍本,重新設計線路,圖四就 是結果。

    與「旁觀者清」不一樣,電子線路設計,往往要身陷其中,才知道問題癥結所在。轉換 器介面用過一陣子之後,有許多很明顯的必備條件,一一浮現。

Fig 4

    不論個人電腦介面或軟體本身,在試驗階段最容易碰到的問題:到底個人電腦的串列埠 是否已把指令傳送出去?

    關於這個問題,把圖三的 D2 改成 LED,不僅同樣保有原先二極體的功能,同時還可以 做為個人電腦資料傳出與否的指示燈。

    同樣地,R10 及 D4 也是為這方面的用途而設,它可以偵測出收發機到底有沒有送出資 料,或對指令產生回應。

    一旦收發機與個人電腦連線之後,很多人不僅看看電腦畫面上顯示的收發機狀態,也由 個人電腦去控制收發機的頻率、模式等。

    另一項很重要的控制功能就是收發機的收發切換,俗稱 "PTT"。當然,這一點也不難, Q1、D6、D7、R5、及 R9 就是針對此功能而設的,利用個人電腦串列埠的握手式交叉控 制線 RTS 做為發號施令,RTS 出現正電位時,可以打開電晶體開關 Q1,讓控制收發機 收 / 發的控制線接地,使收發機發射同時串聯的 D6 也會導通而發亮,這可以做為收 發機的收發指示,D6 亮著,表示發射。

    上面所描述的這些線路,都是為了方便而設的,並非必須的線路,因此你可以決定其去留。

    另外,最大的不同點就是,它含有 DC-DC 轉換器,只要單電源線路就可以工作。這類 DC-DC 轉換器流傳相當普遍,555 IC 做為振盪器,產生 1 到 2KHz 的交流訊號,然後 出 D8、D9、C3、及 C4,做為整流線路,提供了負電壓。

    大部份的收發機上,都可以在介面插孔內,找到提供直流電源的輸出腳,所以,此介面 甚至可以從收發機上,偷得 +12V 的電源,這樣連乾電池也免了。

    介面本身也設有電源開關 S1a;另外,為了避免發生意外,控制收發機發射的接線也應 該設一開關 S1b;如果你的電源是偷取自收發機,我看 S1a 可以免了,因為它們已經 成為共生共存的局面,至於 S1b 設不設,還是由你自己決定。

    如果忘了把 S1b 扳上,若不察覺,很容易被誤為收發機出了毛病,但是不裝 S1b,萬 一出了差錯,收發機發射一整天,發燙、耗電事小,造成不必要的干擾,雖屬無心之過 ,但也不能完全推卸責任,這在業餘無線電裡,是件傷風敗俗的事,應絕對避免。


自製介面

表一:圖四線路的零件表列
零件 說明
D1, D3, D5,
D8, D9
1N914 二極體
U1 LM324
U2 555 TIMER IC
S1 DPDT雙刀雙投型開關
D2, D4, D6 LED
R1 3.3KΩ
R2, R3, R6,
R8, R9
100KΩ
R4 10KΩ
R5 1.5KΩ
R7 47Ω
R10 1KΩ
R11 4.7KΩ
R12 68KΩ
R13 22KΩ
C1, C2 0.01uF 陶瓷電容
C3, C4 80uF/15V 電解電容
    你可以先把線路插在麵包板上,試過滿意之後,再轉換到萬用板上,不然,也可以留在 麵包板上繼續使用。

    若自信可以正確完成轉換器線路,可依圖施工把零件直接焊在萬用板上。

    表一所有零件表列很清楚,或許很多零件,你手頭已經有了。

    核對過後,把待購的零件做記號或重謄一張,至於外殼,材料店所賣的規格型式眾多, 只要能裝得下線路板。可以挑你喜歡的外殼,但是可別太薄了,裡頭有些零件,像 C3 、C4 是高了些,應先考慮一下。

    焊電子線路,理當不會有問題,只要按圖施工,加上小心、耐心,就可以了。外殼的加 工,倒是有很大的彈性,裝 S1a 電源開關,或 S1b 的控制開關,都須要打洞。

    我挑選有圓型固定頭的小號雙切開關,外殼加工就容易省事多了。

    固定 LED 時,可以鑽個小洞,插上去就是了,講求美觀的話,先鑽洞,後裝 LED 固定 套,再裝 LED。

    固定 RS-232 接頭用的孔要大些,我雖然以連續打小孔的方式,挖了一個並不美觀的大 方孔,但是經 RS-232 座外緣遮掩,從外表看上去,倒是挺好看的。

    在零件箱裡找到了矮小肥胖的 C3 及 C4,一般買到的電解電容總是比較瘦高,會增加 外殼厚度,剛剛已經提過。

    線路圖所示的 DIN 接頭是針對 FT-980 收發機的,或許你使用的機型不一樣,因此可 能會有不一樣的接頭及接腳,參看表二及收發機的說明書,就可以找出適當的接法。

    至於 RS-232 的接法,請參看表三,因為早有規約可循,所以不論使用什麼廠牌的個人 電腦,接法都一樣,不必多花心思,不信的話,核對一下電腦說明書有關串列埠的敘述 ,就可證明上面說法,一點也不假。

表二:FT-980 的 DIN 接腳說明
接腳 說明
1 接地
2 收發機出來的 TTL 訊號
3 TTL 訊號進入收發機
4 發射控制腳
表三:RS-232 介面端子接腳定義
腳數 說明 縮寫
1 PROTECTIVE GROUND PG
2 TRANSMITTED DATA TXD
3 RECEIVED DATA RXD
4 REQUEST TO SEND RTS
5 CLEAR TO SEND CTS
6 DATA SET READY DSR
7 SIGNAL GROUND SG
20 DATA TERMINAL READY DTR



操作上的考慮

    操作上若只對介面板而言,極為乾脆,打開電源之後,就可隨它去。

    執行程式時,LED (D2) 會隨著下指令的動作而閃爍,如果收發機有了回應,或傳回資料 給個人電腦,則 LED (D4) 也會閃亮。

    至於 LED (D6) 不論是利用個人電腦下指令或由收發機直接按壓話筒,只要收發機處在 發射狀態,它都會亮起。

    很多收發機都選用 4800 鮑的速度傳送介面資料,當然這也並非是一成不變的,很多收 發機除了明列出廠時的預設值,也可以從收發機內部的指撥開關或跳接腳,來選擇不同 的傳速。

    講到操作,難免會有射頻干擾 (RFI) 問題,你一定會發現圖四內,並沒有任何旁路電 容,若有射頻干擾問題,可以先在適當的地方加上 0.01uF 電容做旁路。

    不過,只要問題發生在如何濾除個人電腦產生的射頻干擾,也不是旁路電容就可解決的 。但從幾種收發機的設計看來,這些都是不必要的措施,因為收發機上的輸出、入接線 ,都裝有可阻絕射頻通過的磁蕊珠,所以此處把預防射頻干擾的措施都省了。


介面線路測試

    下面的測試可以單獨進行;轉換器介面不須接在個人電腦或收發機上,只須接上 9V 乾 電池即可;再準備另一只 9V 乾電池,來模擬訊號,把它串接 10K 歐姆電阻後,接到 RS-232 的第七腳。

    打開介面的電源開關,手觸 RS-232 第二腳,D2 應該會發亮,如果你保留收發開關線 路,則手觸 RS-232 第四腳,D6 也會發亮。

    現在除去測試用的 9V 乾電池外,把 DIN 接頭的第六腳接到 RS-232 的第七腳,D4 亮 起,這是 FT-980 的接法,如果不是使用 FT-980,則請對照表二。

    諸事順利的話,那恭喜你,先關掉電源,準備投入試用。


另一轉換器介面線路

    參看圖五,它是轉換器介面的另一選擇,它使用了 MAX232 這只 IC,這是專為 TTL 與 RS-232 之間的位準相互轉換用的,本身就含有類似圖四,以 555 為中心的 DC-DC 轉 換線路,只要外加幾只電容即可。

    以這只 MAX232 IC 為中心的轉換器介面,線路非常簡捷,只要外加 +5V 電源、幾只電 容,如此而已。可以代替 MAX232 的有 ICL232。

Fig 5


做好介面才算剛開始

    做好轉換器介面線路,只是製作的手段,並非目的。因此,做好介面才算剛開始,也可 以說「介面」只是進入 "CAT" 殿堂的一把鑰匙。

    看來取得這把鑰匙並不難。另一方面,則必須開始著手規畫軟體。

    很多人會告訴你,用培基語言書寫程式,無法做輸出、入控制,但是可別輕易相信這種 說法,除非他能拿出證據來。別小看培基語言,或許它可以配合這種轉換器介面做到顯 示頻譜呢!

    總之,做為測試或入門,培基語言的確是最方便。


用「培基語言」寫控制 CAT 的程式

    轉換器介面做好之後,我不相信你的手不會癢癢的,急著想要試一試收發機的 CAT 功能。

    這裡有一用培基語言所寫的程式,相信很容易讀懂,功能還不壞,你更可以用此程式為 藍本,把它發展到任何配備有 CAT 的收發機上,雖然這樣說好像有些自大,但是只要 涉獵收發機 CAT 系統的人,都會深深感嘆,至今仍然沒有統一的 CAT 標準。

    如果說有任何二種收發機的 CAT 指令是同一個模樣,那一定是我見識少,再不然就是根本不可能!

    在此仍然要利用機會,大聲疾呼,業餘無線電收發機製造業者,應該及時攜手,共同為 CAT 系統,孵育出共同標準的指令及規約。

    叫歸叫,廠商若不願意,你也不能站在原地乾等,總要有個開始。

    每個人對電腦語言的熟識程度不一,所以我不能說這程式很容易,但它的確很單純。如 果你有很強的企圖心,緊抱著「我辦得到」的信心,肯花時間去嘗試,當一切預期的結 果一一出現時,你自然會明白,它的確是很單純的程式。

    當看到個人電腦的按鍵可以遙控收發機時的那股欣喜,還真要有一點功力,才能用筆來形容呢!

    國內使用 FT-980 收發機的人恐怕不多,FT-980 像是一末代皇帝機種,它的後級使用 真空管,心臟部位早已利用微電腦及頻率合成技術。

    如果你運氣好,也使用 FT-980,那麼就有一個現成程式可用,此程式雖無套裝軟體那 麼健全,不過在使用了幾年的過程中,邊使用,邊修改,已經初俱規模,況且這是一支 共享軟體,完全免費。誰說天下沒有白吃的午餐。

    如果你也使用 FT-980,那真要恭喜你,因為,這程式就是專門針對此機種而寫的。

    此程式可以顯示收發機傳送出來總數 148 位元的資料訊息。其他功能包括開機時設定 在 USB 14.250MHz,這麼做沒有其他原因,只是因為操作手冊舉了這個例子,我就順水 推舟採用了。

    按個 "ENTER" 鍵,收發機頻率會轉換到 10MHz AM 的標時台,再按一次 "ENTER" 鍵, 頻率會跳換到 29.500MHz FM 上去,並開始往上掃描,直到 29.690MHz 為止,又會跳 回 29.500MHz 做掃描。如此循環不已,只要動鍵盤上的任何一個鍵,就會停止。要跳 脫出程式,按 F1 鍵即可。

    更多人關心的,可能是收發機如果不是 FT-980 呢?這個問題真可說是抓到癢處,可別 灰心,只要你稍懂培基語言,加上耐心及恆心,全力以赴,必定可開花結果,汗是不會自流的。

    此程式說穿了,只做兩件事:一是把指令送給收發機;二是抓取收發機傳送出來的資料。

    針對這兩件事,必須做點研究,先拿出你收發機的操作手冊,例如 FT-980 須要:
一、先送一道指令給收發機。
二、等待收發機傳出來一個回應。
三、收發機回應的資料如果吻合,進入下面第四步驟;如果不是,再回頭到步驟一。
四、送 "OK-TO-EXECUTE" 指令給收發機。
五、抓取收發機送出的最新狀態資料,包括頻率、模式等訊息。

    一定要這麼麻煩嗎?一定有人這麼想。其實,FT-980 是所有備有 CAT 收發機中,最複 雜的,很多收發機只要一道命令,就可以更改資料,甚至收發機更換資料後,並不會把 最新狀況傳送出來。

    現在我們可以看看表四所列的 CAT_SEED 程式,只要做一些修改,就可以適用在你的收發機上。

    你可以使用任何文書處理程式來修改此程式。

    下面所謂「去掉此行」,只要在該行頭加上 "REM" 記號即可,不必真的把整行去掉, 日後若有需要,再把 "REM" 記號釋放掉即可。當然,保留住,也有助於讀懂程式。


修改 CAT_SEED 程式

一、把行 2030 去掉,它只適用 FT-980。
二、假如收發機不會因為 CAT 的操控,而使收發機面板操作鈕失效,則應去掉行 90、1070、及 2020。
三、如果收發機並不對下達的指令產生回應,則應去掉行 1020、及行 6050 到 6080。
四、如果收發機沒有類似 "OK" 或 "EXECUTE-THE-COMMAND" 的指令,則要去掉行 100 、1060、5030、及行 7000 到 7030。
五、收發機會因為收到無效的指令,而有所回應嗎?如果對錯誤的命令不理睬的話,則 要去掉行 1030、 1080、2110、3030、5040、6030、 8000 到 8040、9100 到 9150、及 10000 到 10020;同時,所有變數 R,及其相關的參數,也要一併去掉。

    接著要探討的是程式中,行 1000 到 1130 的「啟動」部份。不論收發機是那一種廠牌 ,都須要一個緩衝空間來定義指令的含義。此程式含有 5 位元緩衝空間,可以根據須 要,自行加減,像是須要 6 位元時,指令可改成 CMD$="      " (有 6 個空間),或者是用另一種方 法 "DIM CMD$(6)",也可以。

    如果你的收發機會送出狀態訊息,那麼行 1030 一定要設定正確,像是 FT-980 每次 回應的狀態訊息,一律是 148 位元,要根據你的收發機回應的資料最大數量來設定。

    還有那些要注意的呢?最重要的就是設定串列埠「行 9010 OPEN "COM1: 4800,N,8,2,RS,CS10,DS,BIN" FOR RANDOM AS #1」。

    回顧一下收發機手冊上的說明,及培基語言的指令,這些參數一定要正確。

    我看過很多不能動的程式,只因為把串列埠設定成 1 個停止位元,這有何不妥呢?

    當然,大多數串列通訊都使用 1 個停止位元,但是,FT-980 收發機卻使用 2 個停止 位元,因此,你就必須跟著設定 2 個停止位元。

    你可以選用 COM2,但是要記得,把程式其餘的地方,也都改成 COM2。


結論

    起步總會是千頭萬緒,剛開始時,可以把精神集中在個人電腦與收發機的溝通,慢慢地 再加上自己的想像力,把程式逐漸擴大。

    像現在我有一個 CAT980 程式,就有很漂亮的顯示幕,裡頭有濾波器的圖樣、類比選台 、及即時的操作求助說明,甚至也可以自動做記錄。這個程式從無到有,也是一點一滴 ,逐漸堆積起來的。 END

表四:CAT_SEED 程式表列



5  ' PUBLIC DOMAIN CAT_SEED PROGRAM
10 '****************************************************************
15 '* 此程式可任意流傳及逕行交換,也可修改、重寫、或應用到你的程式 *
20 '* 以便適合你的收發機來使用,不必給作者聲明任何著作權,然而此程 *
25 '* 式原為YAESU(商標)FT-980收發機,你必須用心重新修 *
30 '* 改,以便應用到任何配備有CAT功能的收發機,附帶的一項建議: *
35 '* 記得與大家一起分享你的成果                                   *
40 '* 這依然是業餘無線電同好該有的精神守則。                       *
45 '****************************************************************
50 GOSUB 9000 'Set up your computer COM port
60 GOSUB 1000   'INITIALIZATION
70 GOSUB 2000   'Begin CAT action
80 'Release radio and shut down COM port
90 CMD$=ONOFF$:GOSUB 6000
100 PRINT#1,OK$;
110 CLOSE #1
120 PRINT:PRINT:PRINT*Radio released ~ COM 1 NOW CLOSED ~Program
    complete...*
130 END
1000 '* INITIALIZATION
1010 OPTION BASE 1
1020 DIM ECHO$(5) 'Echo is sam length as a command, 5 bytes
1030 DIM STATUS%(148) 'The FT-980 complete status stream, 148 bytes
1040 CMD$=*     *   'This could have been a DIM CMD$(5), but this works
     too...
1060 OK$=CHR$(0)+CHR$(0)+CHR$(0)+CHR$(0)+CHR$($HB)   'OK TO EXCUTE CMD
1070 ONOFF$=+CHR$(0)+CHR$(0)+CHR$(0)+CHR$(0)+CHR$(0) 'ON-OFF CMD
1080 ALLSTATUS$=+CHR$(0)+CHR$(0)+CHR$(0)+CHR$(0)+CHR$(&H1) 'Status ALL CMD
1085 TIMER1=4000 'Change if trouble with receiving status inputs
1090 TIMER2=1000 'Change for hang time between 10 meter FM freqs
1100 GEN$=CHR$(&H21): HAM$=CHR(&H22):  'Choose GENeral HAM VFO
1110 USB$=CHR(&H11): AMW$CHR(&H14): FM$=CHR(&H17) 'Some modes choices
1120 MR$=CHR$(&H1E): VFO$=CHR$(&H1F) 'MEMory or VFO choice
1130 RETURN
2000 '*MAIN PROCESSING
2010 '1) Capture radio 2)Choose VFO 3)Choose HAM/VFO 4)Choose USB
      5) Choose freq
2020 CMD$=ONOFF$: r=148: GOSUB 5010  'R is the number of status bytes
     expected
2030 IF STATUS%(27)=1 THEN PRINT "Radio Is Captured!" ELSE 2020
2040 CHOICE$=VFO$: R=22: GOSUB 5000
2050 CHOICE$=HAM$: R=22: GOSUB 5000
2060 CHOICE$=USB$: R=22: GOSUB 5000
2070 'The next line changes the frequency. You can "read" 142500 reading
2080 'from the next to last byte, right to left.
2090 CMD$=CHR$(0)+CHR$(&H50)+CHR$(&H42)+CHR$(&H8): R=5: GOSUB 5010
2100 CMD$=ALLSTATUS$:R=148:GOSUB 5010 'Task radio for a complete status
2110 GOSUB 9100
3000 PRINT:PRINT:PRINT 'Hit any key to switch to WWV on 10 MHz (F1=quit)"
3010 GOSUB 9999 'Hang around for next key hit
3020 GOSUB 9200
3030 GOSUB 9100
3040 PRINT "Compare the 2 status displays now on the screen.
     Notice the changes."
4000 PRINT: PRINT "Hit any key to scan 10 meter FM frequencies...
     (F1 to quit)"
4010 GOSUB 9999
4020 GOSUB 9500
4030 RETURN
5000 CMD$=CHR$(0)+CHR$(0)+CHR$(0)+CHOICE$+CHR$(&HA0)
5010 ' OUTPUT COMMAND - GET ECHO - COMPARE/COMFIRM - GET STATUS
5020 GOSUB 6000  'Output Command, Get ECHO
5030 GOSUB 7000  'OK
5040 GOSUB 8000  'Get Status
5050 RETURN
6000 '* OUTPUT COMMAND AND GET ECHO
6010 '*
6020 N=0
6030 COM(1) OFF
6040 PRINT#1,CMD$; 'ALL CAT radio will need to do this!
6050 N=N+1: IF (EOF(1) AND N=TIMER1 THEN 7100 'Oh oh, no COM action was detected, try
     again.
6070 WHILE NOT EOF(1): ECHO$=INPUT$(5,#1): IF LOC(1)=0 THEN 6080: WEND
6080 IF ECHO$=CMD$ THEN RETURN: ELSE PRINT"Echo received does NOT
     match command![trying again]": GOTO 6020
7000 '* send OK to 980
7010 COM(1) ON 'Prepare Event Trap for expected incoming status stream
7020 PRINT#1,OK$; 'The FT-980 OK CMD - ok to execute last command sent
7030 RETURN
8000 '*Get status
8010 IF EOF(1) THEN 8010
8020 FOR S=1 TO 4000: IF R=1 THEN 8030: NEXT 'Twittle thumbs loop while
     traping
8030 COM(1) OFF 'No more input expected at this time
8040 RETURN
9000 'Set up COM Ports, event trap and F1 key trap
9005 'If you get port errors then increase CS10 to CS100 if you have a fast
9006 'computer. For slow computers (10 MHz down) eliminate CS parameter -
9007 'i.e., just CS with no value. These changes are made on line 9010
9010 OPEN "COM1:4800,N,8,2,RS,CS10,DS0,BIN" FOR RANDOM AS #1
9012 '...if no luck, try running fix_com1.exe then try everything again
9015 ' com ports can be tricky - have patients
9020 REM FOR S=1 TO 2000: NEXT 'Allow time for port to settle down???
9030 ON COM(1) GOSUB 10000
9040 COM(1) ON
9050 ON KEY (1) GOSUB 80 'F1 key will release radio, clost port and quit
9060 KEY (1) ON
9070 RETURN
9100 'Print all status bytes on screen in HEX...
9110 PRINT:PRINT "STATUS Input in Hex (compare with your manusl):"
9120 FOR S=1 TO 148: PRINT " "HEX$(STATUS%(S));: NEXT S
9130 PRINT:PRINT:PRINT"Bytes 2 thru 5 above yield Frequency: ";
9140 FOR S-2 TO 5: PRINT HEX$(STATUS%(S));: NEXT S
9150 RETURN
9200 'SWITCH TO GENERAL VFO, AM AND WWV ON 10 MHz
9210 CHOICE$=GEN$: R=22: GOSUB 5000
9220 CHOICE$=AMW$: R=22: GOSUB 5000
9230 CMD$=CHR$(0)+CHR$(0)+CHR$(0)+CHR$(&H1)+CHR$(&H8): R=5: GOSUB 5010
9240 RETURN
9500 'SCAN FOR 10 METER FM ACTIVITY
9510 PRINT: PRINT: PRINT"Hit any key to stop and restart scan(F1 to quit)"
9520 CHOICE$=VFO$: R=22: GOSUB 5000
9530 CHOICE$=HAM$: R=22: GOSUB 5000
9540 CHOICE$=FM$: R=22: GOSUB 5000
9550 TEN$=CHR$(&H95): GOSUB 9580: PRINT
9560 TEN$=CHR$(&H96): GOSUB 9580: PRINT: PRINT"* Complete cycle (F1=quit)"
9570 GOTO 9550 'Keep the loop going forever - or until  hit
9580 FOR Q9=1 TO 10
9590 T=1
9600 READ F
9610 BUMP$=CHR$(F)
9620 CMD$=CHR$(0)+BUMP$+TEN$+CHR$(&H2)+CHR$(&H8)+: R=5: GOSUB 5010
9630 FOR S9=2 TO 5: PRINT HEX(STATUS%(S9));: NEXT S9
9640 PRINT" ";
9650 T=T+1: IF (INKEY$="" AND T



雜誌目錄 依順序 雜誌目錄 依主題分類