PC-1500收集整理記

1 計算器    1

1.1 存儲卡    2

1.2 取出"牛皮糖"    4

1.3 打磨鍵盤按鈕    6

1.4 通電    7

2 底座    10

2.1 去除充電電池    10

2.2 更換打印機    13

2.3 更換打印頭    14

2.4 裝紙    15

2.5 按鍵、開關    16

2.6 MICEAR    17

3 串行通訊    18

3.1 改動電路    19

3.2 USB供電    21

3.3 串行通訊線    23

3.4 串行通訊    23

3.4.1 超級終端    24

3.4.2 PC-1500PC傳輸程序(文本格式)    27

3.4.3 PCPC-1500傳輸程序(文本格式)    29

3.4.4 傳輸二進制代碼    31

 

 

1 計算器

大概是1990年,還在上初中的我第一次接觸到SHARP計算器。那是一款比PC-1500輩分還要高的計算器,它令我印象深刻的功能:編寫一個函數到計算器裏,輸入自變量的數值即可得到因變量的數值。再加上它精巧的外觀,當時我就對它着了迷。

可惜的是,當時在市面上買不到這種計算器。因此,擁有一臺SHARP計算器只能是一個夢想。現在好了,藉助淘寶網終於實現了這個夢想。

因爲年代過於久遠,從淘寶網上購買的PC-1500應該都是從垃圾堆裏撿出來的,能不能用起來根本搞不清楚。因此我總共購買了6PC-1500計算器,4個底座,1個串行通訊模塊。經過一番折騰,竟然還能湊好兩套。下面是整理好的整體圖:

能有這樣的結果,需要感謝"78621維修車間"和"比夫"的幾篇博文。

"78621維修車間"的四篇博文網址如下:

http://cbps99.blog.163.com/blog/static/93048910201142491412918/

http://cbps99.blog.163.com/blog/static/930489102011543824806/

http://cbps99.blog.163.com/blog/static/93048910201162617846/

http://cbps99.blog.163.com/blog/static/93048910201212042542715/

"比夫"的一篇博文網址如下:

http://www.zmdz.com/bbs/forum_read.asp?id=43530

1.1 存儲卡

收集到的6PC-1500,只有1臺沒配存儲卡,其餘的都配上了16KB的存儲卡(CE-161)。

存儲卡安裝在PC-1500的背面,如下圖所示:

首先把上圖紅色框內的蓋子摳開,然後用手指勾住蓋子上方的凹槽向下拉。這樣,存儲卡就可以被取出來了。

下圖中,存儲卡的左下角有個小白點,它的上方是白色的寫保護開關。應該把這個開關撥到上方,否則就無法對存儲卡進行寫操作。

如果PC-1500沒有配存儲卡,那麼就不會有小白點。寫保護開關有,但它是黑色的,如下圖所示:

把存儲卡取出來,有什麼用呢?"78621維修車間"寫的博文是更換了存儲卡內部的CR2032鈕釦電池。這樣,存儲在卡里的數據,能夠維持兩年不丟失。我感覺換上新電池難度比較大,並且用了幾年後又得換。關鍵是這麼一通麻煩後實際的意義並不是很大。因此,採取了比較極端的做法——直接把舊電池取出來了。

打開存儲卡稍微容易些,使用螺絲刀撬開就行。裝起來有些麻煩:需要把卡裝入盒子,並且V形彈簧要頂住上方的伸縮蓋。

1.2 取出"牛皮糖"

使用十字螺絲刀擰開PC-1500背後的8顆螺絲,如下圖所示:

打開PC-1500就可以看到"牛皮糖"了(在下圖紅色框內。實在不知道它叫什麼,只是覺得它特別像牛皮糖)。

上圖下端側面有4個小螺絲,如下圖所示。擰開後就可把上圖牛皮糖及其所在金屬片整個取下來。然後把牛皮糖從金屬片上剝離開來。

1.3 打磨鍵盤按鈕

有兩臺PC-1500ENTER按鈕按下去之後無法彈起來,主要原因是按鈕長期受到擠壓,側面變形了,導致有時會卡住。解決方法就是把按鈕取出來,然後用銼刀將按鈕側面打磨平整。

使用螺絲刀擰開下圖所示的11個螺絲(有兩個在黃色帶子的下面)。

將板子移開,即可看到鍵盤按鈕。如下圖所示。

注意:千萬別把按鈕弄亂了,否則重新排放一遍是比較費時的。

取出需要打磨的按鈕,將其側面打磨平滑,再放回原位。

1.4 通電

PC-1500裝上四節1.5V5號電池(1.2V的充電電池也是可以的),如下圖所示:

蓋上電池盒蓋,此時PC-1500的顯示如下:

它的含義是——是否清除內存?請按紅色的CL鍵,然後輸入命令NEW0,如下圖所示:

按下Enter鍵,即可清除PC-1500的內存。

同樣的方法執行NEW256將清除存儲卡上的內存。如果PC-1500未安裝存儲卡或存儲卡被寫保護,則會出現錯誤提示ERROR 25

PC-1500上輸入STATUS0,再按下Enter鍵,即可查詢PC-1500的剩餘內存。如下圖所示:

下表是機型及可用內存表

無存儲卡

16K存儲卡

PC-1500 

1850 

18175

PC-1500A 

5946 

22271 

 

 

2 底座

PC-1500配上底座(CE-150)就有了非常拉風的功能:可以打印、繪圖,可以通過並口外接打印機,還可以連接磁帶機存儲數據……

2.1 去除充電電池

下圖是底座的外觀:

我買了4個底座,壞了2個。損壞率50%。爲什麼會這麼高呢?原因在於底座內部有5節充電電池,即使不使用底座,它們也會處於放電狀態,時間一長就會漏液。鹼性溶液就會腐蝕底座。

因此,拿到底座後,需要把5節充電電池取出來。可使用一字螺絲刀撬開底座,如下圖所示:

撬開後的樣子

現在,就可以打開底座了。如下圖所示:

上圖紅色框的部分就是安裝充電電池的位置。電池已經被我取出,已經被腐蝕成這個樣子了:

電池上的文字:

"78621維修車間"爲底座更換了充電電池,我沒這麼做——再次漏液怎麼辦?我是這麼做的——直接借用底座的外接電源,如下圖所示:紅色的爲正極、藍色的爲負極。

底座接通外接電源(9V)後,即可充當充電電池的角色。5節充電電池是6V,這裏的9V電壓會不會太大?經過我的實際測試沒有發現任何問題。

最後,來一張底座電源適配器的圖片。買了4個底座才蒐集到一個電源適配器,不容易啊。根據該電源適配器的規格(9V500mA12W、直流插頭外徑5.5mm,電壓是內負外正)可以網購一款電源適配器代替它。注意:一定不要購買質量差的電源適配器,它會導致PC-1500無法與底座正常通訊。

2.2 更換打印機

我在4個底座之間相互替換了打印機,其操作比較容易,需要動三個地方:

2.3 更換打印頭

購買的4個底座,打印頭裏的墨水都幹了。導致打印不出東西。爲此,網購了幾個打印筆,將其換上。

首先是打開打印機蓋子。方法是:將右邊紅色框內的開關推到最左邊,然後使用手指扣住左邊紅色框內側面的凹槽,將其向上打開。

更換打印頭的方法如下圖所示:使用手指撥開打印筆後端的塑料彈片,然後使用針形物將打印筆挑出來。新的打印筆,先安裝頭部,然後向下按壓即可裝入。裝好一隻筆後,向左撥動打印頭(絕對不要向右撥動),旋轉90度後,更換另一支打印筆。直至所有的打印筆更換完畢。請注意黑、藍、綠、紅四支打印筆的安裝順序。

2.4 裝紙

打開打印機的盒蓋,右手拿着紙卷將其插入打印滾輪後方的進紙孔

左手向上滾動打印滾輪(黑色的橡膠滾輪),這樣打印紙就被帶出來了。然後把紙卷連帶滾軸放入紙槽內。注意滾軸要放到滾軸槽內,如下圖所示。

紙卷滾軸也是個稀罕物,4個底座只收集到一個,其直徑大概爲8mm。如下圖所示

注意:打印紙可以使用收銀機、POS機的熱敏打印紙代替。其規格爲57×30mm,即紙的寬度是57mm,紙卷的外徑是30mm,內徑要大於8mm

2.5 按鍵、開關

因爲沒有底座的說明書,以下都是我的猜測,希望是正確的。請參考下圖

按鈕1是用來進紙的。打印完畢,按下它即可進紙。到合適位置後,即可把打印部分撕切下來(打印紙出口處有鋸齒狀的切紙器)。

開關2用來打開打印機頂蓋。

開關3REMOTE開關,可用來控制磁帶機。連上磁帶機,需要把它撥到ON的位置,即可與磁帶機交換數據。不連磁帶機時,請把它撥到OFF的位置。

開關4PRINT開關。連接外接打印機時需要撥到P的位置,否則就撥到黑點的位置。

2.6 MICEAR

通過底座的MICEAR插孔,即可將程序保存到磁帶上,也可以從磁帶上讀取程序。

"78621維修車間"和www.pc1500.com網站介紹了另一種方法:把程序保存成PCWAV文件,也可以播放WAV文件載入程序。這種方法我測試了,CSAVE似乎沒有問題,但是CLOAD一直不成功。

使用磁帶、WAV文件保存、載入程序效率太慢。因此,不再做深入研究。

 

3 串行通訊

網購了一個PC-1500通訊模塊(CE-158)。下面是它的圖片:

它與PC-1500的接口

數據通訊口有兩個:上方是並行口,它被一個紅色的蓋子蓋住了;下方是25孔的串口。

3.1 改動電路

CE-158內部需要41.2V5號充電電池。充電電池存在漏液問題,因此需要改動電路。擰開底部的四個螺絲

繼續擰開四周的4個螺絲

卸下頂殼後,繼續擰開下圖所示的兩個螺絲。

下圖紅、黑兩條線本來是連接充電電池組的正、負極的,現在把它們焊接到下圖所示的紅、藍圈內。紅圈爲正極,藍圈爲負極,千萬不要焊錯了。

重新安裝好,自此CE-158電路改動完畢。它的原理就是借用外部供電設備提供的電力。外部供電電壓最好是4.8V41.2V充電電池串聯電壓),不過根據我的實測:5V~9V都是可以的。也就是說:底座(CE-150)的電源適配器可以給通訊模塊(CE-158)供電。

3.2 USB供電

上節說到:可以使用底座的電源適配器給通訊模塊供電。不過這不是很方便。"比夫"的博文裏提到:使用USB給通訊模塊供電,這是個非常好的想法。

下圖就是我自做的USB供電線:

說明:

1、直流插頭的外徑爲5.5mm,電壓是內負外正;

2、網上可以購買這樣的線,其名稱爲"USBDC5.5"。但一定要注意它的DC插頭是否爲內負外正。

3.3 串行通訊線

PC的串口一般都是9針的,CE-158的接口是25孔的,需要一根"9孔轉25針"的串口線。獲得這根串口線的方法:

1、網購時要求店家定製。因爲我網購了一根線,結果連接方法不正確,最後自己改接了線;

2、自己購買9針頭、25孔頭、數據線,自己焊接。

不管什麼方法,哪根線與哪根線連接是關鍵。具體的連接如下圖所示

還有更爲簡單的連接方法:

3.4 串行通訊

串行通訊前,需要注意的事項:

1、把通訊模塊的開關撥到ON的位置,通電後需要等待40秒以上再打開PC-1500PC-1500過早開機就會顯示:CHECK 8,提示通訊模塊供電不足;

2PCPC-1500發送數據時,因爲PC-1500的反應比較慢,所以每發送一個字符都要等待一段時間;

3Windows 文本文件的行結束符是回車(CR,十六進制的0D)和換行(LF,十六進制的0A),而PC-1500的行結束符是回車。兩者相互傳輸數據時,需要對行結束符進行相互轉換。

3.4.1 超級終端

Windows上的串口通訊軟件很多,但是這裏只介紹超級終端。因爲它有一些特有的功能,如:自動轉換行結束符,每發送一個字符後可以等待一段時間。

Windows7操作系統上,不再自帶超級終端程序。可以上網下載這個程序,或者從WindowsXP操作系統上覆制過來。具體的,需要複製兩個文件:

C:\Program Files\Windows NT\hypertrm.exe

C:\WINDOWS\system32\hypertrm.dll

把這兩個文件放在同一個文件夾內,即可通過鼠標雙擊hypertrm.exe運行超級終端程序。

超級終端首先會要求輸入連接的名稱,這個名稱可以任意輸入。這裏輸入pc-1500,然後單擊"確定"按鈕,如下圖所示:

進入如下界面。請選擇串口號,單擊"確定"按鈕

接下來的界面需要注意兩個參數:"位/秒"就是波特率。PC-1500只支持11030060012002400這五種波特率。經過試驗,波特率110通訊失敗,所以這裏我選擇了2400。數據流控制裏,請選擇"無"。原因在於:通訊模塊(CE-158)的25針串口的DTRRTS始終爲低電平,所以給PC-1500發送數據時,硬件握手一定失敗;PC-1500PC發送數據時,要求PC端串口的RTS爲高電平,即便選擇"無"數據流控制,超級終端也會設置RTS爲高電平的。

單擊上圖的"確定"按鈕,現在超級終端就可以和PC-1500通訊了。

不過因爲要轉換行結束符,還需要一些設置工作。其操作如下:

單擊超級終端的【文件】【屬性】菜單項

進入"設置"頁面,單擊"ASCII碼設置"按鈕

顯示如下界面。紅色框內的4項設置比較重要

"以換行符作爲發送行末尾"勾中此項,超級終端會將 0D ?? 替換爲0D 0A ??(要求??不是0A),也就是將行結束符由0D更換爲0D 0A;不勾中此項,超級終端會將0D 0A替換爲0D

"字符延遲"與"行延遲":超級終端每發送一個字符就會等待一段時間,只要這個字符不是行結束符,等待時間就採用"字符延遲",否則等待時間就採用"行延遲"。上圖的含義:每發送一個字符等待0.025秒,發送一行後等待1秒。注意:Windows不是一個實時操作系統,等待的時間基本上都是0.015秒的整數倍。也就是說設置延遲爲1514,則實際延遲可能都是0.015秒;而設置延遲爲16,則實際延遲可能是0.03秒。

3.4.2 PC-1500PC傳輸程序(文本格式)

PC-1500上按MODE按鈕,進入PRO狀態,輸入如下代碼:

10 PRINT 10

20 PRINT 20 

然後在PC-1500上執行如下命令

OUTSTAT0

SETCOM2400,8,N,1

SETDEVCO

CSAVEa

PC端將接收到如下信息(<CR>就是回車,即0D

10 PRINT 10<CR>

PC-1500發完此行後等待2

20 PRINT 10<CR>

PC-1500發完此行後等待2

<CR> 

程序發完,PC-1500會再發送一個回車符

可見:

1PC-1500發送的程序以回車爲行結束符;

2PC-1500每發送完一行,都會等待2秒;

3PC-1500把程序發送完畢後,會額外發送一個回車符。PC端程序如果發現兩個相鄰的回車符,就可以認爲PC-1500的程序發送完畢了;

4、如果PC-1500沒有BASIC代碼,那麼CSAVEa不會發送任何字符。

因爲Windows文本文件的行結束符是回車加換行,因此需要將PC-1500發送來的數據做處理:把回車替換爲回車加換行。還記得超級終端的如下設置嗎?它就是專門做這個轉換工作的。

所以,對於超級終端而言,重要的是如何把PC-1500發送來的數據保存到文件裏去。其操作步驟如下:

單擊【傳送】【捕獲文字】菜單項

單擊"瀏覽"按鈕,選擇一個文件。然後單擊"啓動"按鈕。

現在,超級終端做好了接收數據並把數據寫入上圖選中文件的準備了。

PC-1500上執行如下命令

OUTSTAT0

SETCOM2400,8,N,1

SETDEVCO

CSAVEa

CSAVEa執行完畢後,單擊超級終端【傳送】【捕獲文字】【停止】菜單項。

至此,超級終端就完成了接收PC-1500數據,轉換行結束符,保存至文件的工作。

3.4.3 PCPC-1500傳輸程序(文本格式)

記事本編輯的如下代碼並不能直接傳給PC-1500。因爲Windows文本文件的行結束符爲回車加換行,直接發給PC-1500會因爲不識別換行符而導致傳輸失敗。

因此,把文本格式的BASIC代碼由PC傳給PC-1500,首要的工作就是把回車加換行符替換爲回車符。所幸的是超級終端的如下設置自動完成此項工作。

PC-1500一樣,PC端發送完代碼後,也應該發送一個回車符給PC-1500,"告訴"PC-1500整個程序傳輸完畢了。爲此,記事本編輯BASIC代碼時,需要在最後有兩個行結束符。檢驗方法就是在記事本里按下Ctrl+End,插入符與最後一行代碼之間要有一個空行,這個空行裏請不要輸入任何字符,包括空格。

最後就是延遲時間。PC-1500反應比較慢,PC把整個代碼一股腦的發給它,則會導致通訊失敗。爲此,需要設置延遲時間。下圖是超級終端裏的延遲設置:

"字符延遲"用來保障PC-1500來得及接收數據;"行延遲"用來保障PC-1500來得及將文本格式的代碼行翻譯成機器內部的二進制格式。

注意上圖的數值都是經驗值,如果在傳輸時出現錯誤,請適當增大延遲時間。

具體操作如下:

PC-1500上執行如下命令

OUTSTAT0

SETCOM2400,8,N,1

SETDEVCI

CLOADa

超級終端上單擊【傳送】【發送文本文件】菜單項,如下圖所示:

選擇要發送的代碼文件,超級終端就開始傳輸代碼給PC-1500了。這裏順便提一下:超級終端發送文件的功能缺少進度顯示,你搞不清楚文件已經傳了多少了?大概還要傳多久……

3.4.4 傳輸二進制代碼

CSAVEaCLOADa分別替換爲CSAVECLOAD即可傳輸二進制的BASIC代碼。

傳輸二進制代碼的優勢:效率高。CSAVEa每發送完一行就會等待2秒;CSAVE不存在這個問題。CLOADa時,PC每發送完一行就要等大概1秒,CLOAD就不存在這個問題了。

傳輸二進制代碼的缺點:首先是可讀性差,傳給PC的二進制代碼人工無法閱讀(當然,做個程序把二進制代碼轉換爲文本格式也是可行的,就是不知難度有多大);其次,超級終端無法用來傳輸二進制代碼,因爲它過於聰明瞭。下圖的設置,不管勾與不勾,超級終端都會對行結束符做相應的轉換。這是傳輸二進制代碼所不希望的。

所以,要在PCPC-1500之間傳輸二進制代碼,需要單獨編寫一個串行通訊程序。筆者在PC-E500PC通訊程序的基礎上,增加了與PC-1500通訊的功能。程序下載地址:瀏覽http://pan.baidu.com/s/1gd7XDkf 再進入 public/Tools/E500Comm

最後,大致說一下二進制代碼的格式。使用CSAVE將得到如下數據(十六進制)。

地址

字節

數據

0

5

01 40 43 4F 4D

固定。經測試這五個字節不可能是二進制代碼的頭五個字節

5 

16 

31 32 33 34 35 36 37 38 39 30 41 42 43 44 45 46

CSAVE的參數,這裏就是

CSAVE"1234567890ABCDEF"

最多16字節,不足的補00H

21 

2 

01 00 

隨機數。0x01000x00C5,還有可能是其它數值。

23

2 

00 07 

總字節數 - 28

25 

2 

01 08 

隨機數 + 總字節數 - 27

27 

n 

00 0A 05 F0 97 31 30 0D

二進制代碼,字節數n=總字節數-27

最後一個字節一定是0DH

 

發佈了113 篇原創文章 · 獲贊 46 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章