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

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

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

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

  如饑似渴

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

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

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

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

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

  后來叔叔介紹周立功到湖南大學(xué)找他當(dāng)年在廣播站的徒弟何誠教授,從而認(rèn)識了湖南大學(xué)電氣工程系電子技術(shù)教研室主任肖鴻猷教授。在肖鴻猷教授的鼓勵(lì)和幫助下,每個(gè)學(xué)期周立功都請假到湖南大學(xué)旁聽。實(shí)驗(yàn)時(shí),很多學(xué)生按照實(shí)驗(yàn)指導(dǎo)的流程做一遍,交完實(shí)驗(yàn)報(bào)告就走了。所不同的是周立功非常珍惜這來之不易的學(xué)習(xí)機(jī)會,從不放過實(shí)驗(yàn)過程中的任何細(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é)教材。首先從存儲器的讀寫控制電路開始做起,當(dāng)時(shí)他不會繪制PCB板,于是裝作用戶跑到湖南省計(jì)算所去請教?;貋砗?,他用鉛筆在繪圖紙上走好線,然后貼到覆銅板上鉆孔,等打好孔后才知道,原來他用的機(jī)械制圖的坐標(biāo)紙的格子,與PCB板的繪圖紙尺寸是不同的。他打聽到這種繪圖紙是遼寧本溪制造的,于是通過在沈陽軍區(qū)的大伯買到了專用繪圖紙。沒有制作雙面板的條件,怎么辦?周立功在覆銅板的背面通過跳線,將過孔用電阻、電容多余的引腳將線連起來,于是就形成了雙面板。

  1.存儲器的讀寫(1)

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

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

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

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

  

  存儲器讀寫控制電路原理圖(1)

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

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

  1. 存儲器的讀寫(2)

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

  

  圖 1.2 讀/寫使能控制電路

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

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

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

  

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

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

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

上一頁12全文

本文導(dǎo)航