峰回路轉(zhuǎn)的技術(shù)生涯 - 周立功電子從業(yè)經(jīng)歷回顧一:初生牛犢不怕虎

2014年04月17日 10:53 來(lái)源:周立功博客 作者:周立功 我要評(píng)論(0)

標(biāo)簽:微處理器(82360)周立功(37597)

  初生牛犢不怕虎——峰回路轉(zhuǎn)

  如饑似渴

  周立功技校畢業(yè)后,分配在工廠當(dāng)維修電工。一個(gè)偶然的機(jī)會(huì),他通過(guò)雜志了解到個(gè)人電腦Altair 8800誕生的故事。Altair-8800只有256字節(jié)的數(shù)據(jù)RAM,4KB的程序ROM,不僅沒(méi)有顯示器和鍵盤(pán),而且更加見(jiàn)不到鼠標(biāo),這是一臺(tái)沒(méi)有監(jiān)控程序的計(jì)算機(jī),用戶(hù)只能用二進(jìn)制機(jī)器語(yǔ)言為這臺(tái)計(jì)算機(jī)編程。先將程序的16進(jìn)制操作碼和操作數(shù)用手工轉(zhuǎn)換成二進(jìn)制寫(xiě)在紙上,然后通過(guò)撥動(dòng)面板上的開(kāi)關(guān)來(lái)完成。

  由于自學(xué)《開(kāi)關(guān)電路》時(shí),動(dòng)手制作過(guò)電子計(jì)數(shù)器,因此他很快就聯(lián)想到用撥碼開(kāi)關(guān)、上拉電阻和下拉電阻來(lái)產(chǎn)生二進(jìn)制高低電平。當(dāng)開(kāi)關(guān)向上推進(jìn)時(shí),因?yàn)樯侠娮璧淖饔枚敵龈唠娖?,發(fā)光二級(jí)管點(diǎn)亮代表高電平;而當(dāng)開(kāi)關(guān)向下推進(jìn)時(shí),因?yàn)橄吕娮璧淖饔枚敵龅碗娖剑l(fā)光二極管熄滅代表低電平。先撥好地址碼,接著再撥好數(shù)據(jù)碼,最后按下寫(xiě)入鍵,而每撥動(dòng)一遍相當(dāng)于輸入一個(gè)字節(jié)。

  他感到無(wú)比激動(dòng),看到了未來(lái)的希望,夢(mèng)想著有一天自己也能制作一臺(tái)這樣的計(jì)算機(jī)。于是他到處向人請(qǐng)教,但幾乎沒(méi)有人能夠回答他提出的問(wèn)題。這時(shí)他通過(guò)父親的大學(xué)同學(xué)陳應(yīng)球老師,找到了畢業(yè)于浙江大學(xué)電機(jī)系的劉吉和老師。在劉老師的指導(dǎo)下,他對(duì)計(jì)算機(jī)的大致工作原理才有了粗淺的了解。

  在遇到困難實(shí)在學(xué)不下去時(shí),他壯著膽子給《電路分析基礎(chǔ)習(xí)題解答》的作者,原湘潭基礎(chǔ)大學(xué)校長(zhǎng)程應(yīng)森教授寫(xiě)信,在程應(yīng)生教授的指導(dǎo)下,周立功堅(jiān)持自學(xué)了李翰蓀教授編著的《電路分析基礎(chǔ)》。同時(shí)幫助他從理論到實(shí)踐分析工作中遇到的問(wèn)題,整理成文章發(fā)表在《電世界》等雜志。對(duì)于技校畢業(yè)的周立功來(lái)說(shuō),那是多么大的鼓勵(lì)啊,進(jìn)一步激發(fā)了他堅(jiān)持學(xué)習(xí)的決心。南方的夏天不僅很熱,而且蚊子多,大家都在外面納涼。周立功深深地明白,他不能浪費(fèi)寶貴的青春,再苦再累也要堅(jiān)持自學(xué)下去。于是他想到了一個(gè)既可以降溫,還可以起到驅(qū)蚊效果的辦法,將雙腳放在裝滿(mǎn)井水的水桶里,不知不覺(jué)地學(xué)習(xí)到了深夜。

  期間因?yàn)楣ぷ餍枰窒驏|北電子研究所王功伯研究員學(xué)習(xí)紅外加熱技術(shù),深入學(xué)習(xí)了建筑熱物理學(xué)、溫度場(chǎng)、輻射場(chǎng)與黑體理論,以及相關(guān)的光學(xué)知識(shí),后來(lái)周立功撰寫(xiě)了《工業(yè)低溫輻射遠(yuǎn)紅外加熱技術(shù)》系列論文,在湖南大學(xué)的《現(xiàn)代節(jié)能》雜志連載,全國(guó)各地的讀者來(lái)信上千封,成就感油然而生,極大地提升了他的自信心。由于藝多不養(yǎng)家,因此他選擇了放棄這個(gè)課題的研究。但是在艱難的自學(xué)之路上,他又前進(jìn)了一大步。

  后來(lái)叔叔介紹周立功到湖南大學(xué)找他當(dāng)年在廣播站的徒弟何誠(chéng)教授,從而認(rèn)識(shí)了湖南大學(xué)電氣工程系電子技術(shù)教研室主任肖鴻猷教授。在肖鴻猷教授的鼓勵(lì)和幫助下,每個(gè)學(xué)期周立功都請(qǐng)假到湖南大學(xué)旁聽(tīng)。實(shí)驗(yàn)時(shí),很多學(xué)生按照實(shí)驗(yàn)指導(dǎo)的流程做一遍,交完實(shí)驗(yàn)報(bào)告就走了。所不同的是周立功非常珍惜這來(lái)之不易的學(xué)習(xí)機(jī)會(huì),從不放過(guò)實(shí)驗(yàn)過(guò)程中的任何細(xì)節(jié),比如,當(dāng)波形出現(xiàn)毛刺或畸變時(shí),他總是想法設(shè)法改進(jìn)電路直到完美為止,并將遇到的現(xiàn)象和解決的方法詳細(xì)地記錄在實(shí)驗(yàn)報(bào)告中。在肖鴻猷教授的悉心指導(dǎo)下,周立功徹底搞清楚了計(jì)算機(jī)的工作原理。

  鍥而不舍

  為了制作計(jì)算機(jī),周立功已經(jīng)到了如癡如醉的地步,不論到哪里總是帶著與計(jì)算機(jī)和數(shù)字電路有關(guān)的大學(xué)教材。首先從存儲(chǔ)器的讀寫(xiě)控制電路開(kāi)始做起,當(dāng)時(shí)他不會(huì)繪制PCB板,于是裝作用戶(hù)跑到湖南省計(jì)算所去請(qǐng)教?;貋?lái)后,他用鉛筆在繪圖紙上走好線(xiàn),然后貼到覆銅板上鉆孔,等打好孔后才知道,原來(lái)他用的機(jī)械制圖的坐標(biāo)紙的格子,與PCB板的繪圖紙尺寸是不同的。他打聽(tīng)到這種繪圖紙是遼寧本溪制造的,于是通過(guò)在沈陽(yáng)軍區(qū)的大伯買(mǎi)到了專(zhuān)用繪圖紙。沒(méi)有制作雙面板的條件,怎么辦?周立功在覆銅板的背面通過(guò)跳線(xiàn),將過(guò)孔用電阻、電容多余的引腳將線(xiàn)連起來(lái),于是就形成了雙面板。

  1.存儲(chǔ)器的讀寫(xiě)(1)

  如果僅讀寫(xiě)256個(gè)字節(jié),那么只要地址線(xiàn)A0~A7,同時(shí)將不要的地址線(xiàn)A8~A14全部接地,其尋址范圍為0000 0000B~1111 1111B,因此需要8個(gè)地址開(kāi)關(guān)才能滿(mǎn)足尋址要求,還要8個(gè)LED燈作為地址信號(hào)顯示器。由于存儲(chǔ)器只有數(shù)據(jù)線(xiàn)D0~D7,同樣要8個(gè)數(shù)據(jù)開(kāi)關(guān)用于產(chǎn)生數(shù)據(jù)和8個(gè)LED燈作為數(shù)據(jù)信號(hào)顯示器。/CE常用在多存儲(chǔ)器電路中作為片選線(xiàn),當(dāng)/CE為邏輯1時(shí),則禁止器件工作,反之則選中該器件,即將/CE接地使其處于工作狀態(tài),然后再連接存儲(chǔ)器讀寫(xiě)控制開(kāi)關(guān),即構(gòu)成存儲(chǔ)器讀寫(xiě)電路。

  當(dāng)按下/WR鍵時(shí),將由數(shù)據(jù)開(kāi)關(guān)KD0~KD7所產(chǎn)生的數(shù)據(jù)寫(xiě)入由地址開(kāi)關(guān)KA0-KA7所產(chǎn)生的地址存儲(chǔ)“房間”。當(dāng)按下/RD鍵時(shí),將由地址開(kāi)關(guān)KA0~KA14所確定的地址存儲(chǔ)“房間”的電平數(shù)據(jù)反映在存儲(chǔ)器D0~D7數(shù)據(jù)線(xiàn)上。由于KDi(i = 0~7)的狀態(tài)不是0就是1,因此從存儲(chǔ)器讀出的數(shù)據(jù)與KD0~KD7產(chǎn)生的數(shù)據(jù)在總線(xiàn)上勢(shì)必發(fā)生沖突。顯然,當(dāng)將數(shù)據(jù)從存儲(chǔ)器讀出時(shí),則必須斷開(kāi)數(shù)據(jù)開(kāi)關(guān)KD0~KD7與數(shù)據(jù)總線(xiàn)D0~D7的聯(lián)系。

  當(dāng)將上述準(zhǔn)備工作做好后,此時(shí)只要接通電源,即可向SRAM寫(xiě)入數(shù)據(jù)。

  首先將地址開(kāi)關(guān)KA0~KA7全部撥為0,即存儲(chǔ)器的8位地址數(shù)為0000 0000B,LED地址顯示器全部熄滅。此時(shí),如果將數(shù)據(jù)開(kāi)關(guān)KD0~KD7也全部撥為0,即與0000 0000B地址對(duì)應(yīng)的數(shù)據(jù)為0000 0000B,再按下/WR鍵將數(shù)據(jù)0000 0000B寫(xiě)入到存儲(chǔ)器的0000 0000B單元。接著將KA0~KA7撥為0000 0001B,同時(shí)將KD0~KD7撥為0000 1111B,再按下/WR鍵將數(shù)據(jù)0000 1111B寫(xiě)入到存儲(chǔ)器的0000 0001B單元。重復(fù)上述操作方法撥動(dòng)地址開(kāi)關(guān)和數(shù)據(jù)開(kāi)關(guān),再按下/WR鍵……直到全部數(shù)據(jù)寫(xiě)入完畢為止。

  

  存儲(chǔ)器讀寫(xiě)控制電路原理圖(1)

  檢查數(shù)據(jù)的操作首先用跳線(xiàn)器連接/EN與Vcc(/EN=1),關(guān)閉74HC125三態(tài)緩沖器,斷開(kāi)數(shù)據(jù)開(kāi)關(guān)KD0~KD7與數(shù)據(jù)總線(xiàn)D0~D7之間的聯(lián)系。先將地址開(kāi)關(guān)撥為0000 0000B,接著按下/RD鍵,此時(shí)即可在LED數(shù)據(jù)顯示器上讀到先前輸入的數(shù)據(jù)(注意,必須在鍵被按下時(shí)才能看到)。再將地址開(kāi)關(guān)撥為0000 0001B,然后再按下/RD鍵就能在顯示器上讀到+1地址的數(shù)據(jù)……

  綜上所述,當(dāng)/EN=0寫(xiě)使能信號(hào)同步打開(kāi)74HC125三態(tài)緩沖器時(shí),KD0~KD7所產(chǎn)生的數(shù)據(jù)接入總線(xiàn),此時(shí)只要按下/WR鍵,則將數(shù)據(jù)寫(xiě)入到存儲(chǔ)器相應(yīng)的單元中。一旦數(shù)據(jù)輸入完畢,當(dāng)/EN=1讀使能信號(hào)同步關(guān)閉74HC125三態(tài)緩沖器時(shí),此時(shí)只要按下/EN鍵,不管KD0~KD7是高電平或低電平,則輸出均為高阻態(tài),從而保證數(shù)據(jù)開(kāi)關(guān)KD0~KD7退出總線(xiàn)控制。

  1. 存儲(chǔ)器的讀寫(xiě)(2)

  如果感到用跳線(xiàn)器來(lái)改變/EN信號(hào)狀態(tài)比較麻煩,我們也可以設(shè)計(jì)一個(gè)讀/寫(xiě)使能控制電路,詳見(jiàn)圖 1.2。其中的S1為Read讀使能鍵,S2為寫(xiě)使能鍵。

  

  圖 1.2 讀/寫(xiě)使能控制電路

  當(dāng)S2(Write)鍵按下時(shí),U10B輸入端5被拉為低電平,U10B輸出高電平驅(qū)動(dòng)寫(xiě)狀態(tài)LED燈點(diǎn)亮。同時(shí)U10A輸入端2也轉(zhuǎn)換為高電平,U10A輸入端1由電阻R47上拉為高電平,因此U10A輸出低電平作為/EN(Data)使能信號(hào)打開(kāi)74HC125三態(tài)緩沖器,此時(shí)由KD0~KD7手動(dòng)數(shù)據(jù)輸入電路產(chǎn)生的8位二進(jìn)制數(shù)據(jù),通過(guò)8個(gè)已開(kāi)通的三態(tài)緩沖器送到存儲(chǔ)器的數(shù)據(jù)總線(xiàn)D0~D7。在此狀態(tài)下只要選定好地址,設(shè)置好數(shù)據(jù),就可以對(duì)存儲(chǔ)器寫(xiě)入數(shù)據(jù)了。

  在讀取數(shù)據(jù)時(shí),先按下S1(Read)鍵,U10A輸入端1被拉為低電平,U10A輸出高電平。同時(shí)U10B輸入端4也轉(zhuǎn)換為高電平,U10B輸入端5由電阻R48上拉為高電平,所以U10B輸出6低電平使寫(xiě)狀態(tài)LED燈熄滅,表示當(dāng)前狀態(tài)為讀數(shù)據(jù)操作。即U10A的輸入端2為低電平,則U10A輸出高電平作為/EN(Data)使能信號(hào)關(guān)閉74HC125三態(tài)緩沖器,其輸出高阻態(tài)相當(dāng)于斷開(kāi)數(shù)據(jù)開(kāi)關(guān)KD0~KD7與數(shù)據(jù)總線(xiàn)D0~D7之間的聯(lián)系,從而使存儲(chǔ)器的輸出數(shù)據(jù)不會(huì)受到數(shù)據(jù)輸入電路的影響。

  此時(shí),僅需在KD0~KD7分別串聯(lián)8個(gè)三態(tài)緩沖器(2片74HC125)即可滿(mǎn)足上述要求,詳見(jiàn)圖 1.3。

  

  圖 1 .3 存儲(chǔ)器讀寫(xiě)控制電路(2)

  當(dāng)將/EN置1(用跳線(xiàn)器連接Vcc與/EN)時(shí),即可關(guān)閉三態(tài)緩沖器,其輸出高阻態(tài)相當(dāng)于斷開(kāi)數(shù)據(jù)開(kāi)關(guān)KD0~KD7與數(shù)據(jù)總線(xiàn)D0~D7之間的聯(lián)系。此時(shí),只要按下/RD鍵,即可將數(shù)據(jù)從存儲(chǔ)器讀出。當(dāng)將/EN置0(用跳線(xiàn)器連接GND與/EN)時(shí),即可打開(kāi)三態(tài)緩沖器,則KD0~KD7產(chǎn)生的數(shù)據(jù)通過(guò)三態(tài)緩沖器傳遞到數(shù)據(jù)總線(xiàn)上。此時(shí),只要按下/WR鍵,即可將數(shù)據(jù)寫(xiě)入存儲(chǔ)器。

  相關(guān)鏈接:周立功電子從業(yè)經(jīng)歷回顧二:柳暗花明又一村

上一頁(yè)12全文

本文導(dǎo)航