Ⅰ 鍵盤在啟動過程中沒電
微機主機除塵及板卡維護
微機是高精密的設備,除了要正確地使用之外,日常的維護保養也是十分重要的。筆者在長期的維修工作中發現,大量的故障都是由於缺乏日常維護或者維護方法不當造成的。我們推出這一組文章全面地介紹了微機系統各個部分的拆卸和常規維護方法,旨在幫助微機用戶自己動手維護自己的電腦,作到防患於未然。本文是這組文章的第一篇,主要介紹常用的維護工具、維護注意事項、主機箱內各部分連線的拆除、機箱內部除塵及板卡的常規維護方法。
一、維護工具:
電腦維護不需要很復雜的工具,一般的除塵維護只需要准備十字螺絲刀、平口螺絲刀、油漆刷(或者油畫筆,普通毛筆容易脫毛不宜使用)就可以了。如果要清洗軟碟機、光碟機內部,還需要准備鏡頭拭紙、電吹風、無水乙醇(分析純)、脫脂棉球、鍾表起子(一套)、鑷子、吹氣球(皮老虎)、回形針、鍾表油(或縫紉機油)、黃油就可以了。如還需要進一步維修,再准備一隻尖嘴鉗、一隻試電筆和一隻萬用表。
二、維護注意事項
有些原裝和品牌電腦不允許用戶自己打開機箱,如擅自打開機箱可能會失去一些當由廠商提供的保修權利,請用戶特別注意;
各部件要輕拿輕放,尤其是硬碟,摔一下就會要了它的命;
拆卸時注意各插接線的方位,如硬碟線、軟碟機線、電源線等,以便正確還原;
還原用螺絲固定各部件時,應首先對准部件的位置,然後再上緊螺絲。尤其是主板,略有位置偏差就可能導致插卡接觸不良;主板安裝不平將可能會導致內存條、適配卡接觸不良甚至造成短路,天長日久甚至可能會發生形變導致故障發生;
由於計算機板卡上的集成電路器件多採用MOS技術製造,這種半導體器件對靜電高壓相當敏感。當帶靜電的人或物觸及這些器件後,就會產生靜電釋放,而釋放的靜電高壓將損壞這些器件。日常生活中靜電是無處不在的,例如當你在脫一些化纖衣服時有可能聽到聲響或看到閃光,此時的靜電至少在5kV以上,足以損壞微機的元器件,因此維護電腦時要特別注意靜電防護。故在拆卸維護電腦之前必須作到以下各點:
(1)斷開所有電源;
(2)在打開機箱之前,雙手應該觸摸一下地面或者牆壁,釋放身上的靜電。拿主板和插卡時,應盡量拿卡的邊緣,不要用手接觸板卡的集成電路。如果一定要接觸內部線路,最好戴上接地指環;
(3)請不要穿容易與地板、地毯摩擦產生靜電的膠鞋在各類地毯上行走。腳穿金屬鞋能良好地釋放人身上的靜電,有條件的工作場所應採用防靜電地板;
(4)保持一定的濕度,空氣乾燥也容易產生靜電,理想濕度應為40%-60%;
(5)使用電烙鐵、電風扇一類電器時應接好接地線。
三、微機主機的拆卸
拔下外設連線
關閉電源開關,拔下電源線以後,就可以開始拆卸主機了,拆卸主機的第一步是拔下機箱後側的所有外設連線。
拔除外設與電腦的連線主要兩種形式,一種將插頭直接向外平拉就可以了,如鍵盤線、PS/2滑鼠線、電源線、USB電纜等等;另一種插頭需先擰松插頭兩邊的螺絲固定把手,再向外平拉,如顯示器信號電纜插頭、列印機信號電纜插頭,早期的有些信號電纜沒有螺絲固定把手,需用螺絲刀擰下插頭兩邊的螺絲。
打開機箱蓋
拔下所有外設連線後就可以打開機箱了,無論是卧式還是立式機箱,機箱蓋的固定螺絲大多在機箱後側邊緣上,用十字螺絲刀擰下幾顆螺絲就可以取下機箱蓋。
拆下適配卡
顯示卡、音效卡插在主板的擴展插槽中,並用螺絲固定在機箱後側的條形窗口上,拆卸介面卡時,先用螺絲刀擰下條形窗口上沿固定插卡的螺絲,然後用雙手捏緊介面卡的上邊緣,平直的向上拔下介面卡。
拔下驅動器數據線
硬碟、軟碟機、光碟機數據線一頭插在驅動器上,另一頭插在主板的介面插座上,捏緊數據線插頭的兩端,平穩的沿水平方向拔出即可。
拔下驅動器數據線要注意兩點,一是不要拉著數據線向下拔,以免損壞數據線;二是注意拔下的方向以便還原,驅動器數據線的邊緣有一條紅線(線1),此線與驅動器、主板驅動器介面上的腳1相對應,在驅動器和主板驅動器介面插座旁大多有1的標識。
拔下驅動器電源插頭
硬碟、光碟機電源插頭為大四針插頭,軟碟機電源插頭為小四針插頭,沿水平方向向外拔出即可,安裝還原時請注意方向,反向一般無法插入,強行反向插入接通電源後會損壞驅動器。
拆下驅動器
硬碟、軟碟機、光碟機都固定在機箱面板內的驅動器支架上,拆卸驅動器時請先擰下驅動器支架兩側固定驅動器的螺絲(有些固定螺絲在面板上),即可向前抽出驅動器。擰下硬碟最後一顆螺絲時請用手握往硬碟,小心硬碟落下,硬碟輕輕摔一下就會損壞。有些機箱中的驅動器不用螺絲固定而採用彈簧片卡緊,這種情況只要松開彈簧片,即可從滑軌中抽出驅動器。
拔下主板電源插頭
電源插頭插在主板電源插座上,ATX電源插頭是雙排20針插頭,插頭上有一個小塑料卡,捏住它就可以拔下ATX電源插頭。AT電源插頭為兩只六針插頭P8、P9,平穩向上拔出即可。最後還原AT電源插頭時請注意方向,六針插頭P8、P9中間的黑線應靠在一起向下插入,方向錯誤將導致電源短路。
其它插頭
需要拔下的插頭可能還有CPU風扇電源插頭、光碟機與音效卡之間的音頻線插頭、主板與機箱面板插頭、音效卡與主板間的SB-LINK插頭等,拔下這些插頭時應作好紀錄,如插接線的顏色、插座的位置、插座插針的排列等以方便還原。
四、清潔機箱內表面的積塵
對於機箱內表面上的大面積積塵,可用擰乾的濕布擦拭。濕布應盡量干,擦拭完畢應該用電吹風吹乾水漬。各種插頭插座、擴充插槽、內存插槽及板卡一般不要用水擦拭。
五、清潔插槽、插頭、插座
需要清潔的插槽包括各種匯流排(ISA、PCI、AGP)擴展插槽、內存條插槽、各種驅動器介面插頭插座等。各種插槽內的灰塵一般先用油畫筆清掃,然後再用吹氣球或者電吹風吹盡灰塵。
插槽內金屬接腳如有油污可用脫脂棉球沾電腦專用清潔劑或無水乙醇去除,電腦專用清潔劑多為四氯化碳加活性劑構成,塗抹去污後清潔劑能自動揮發。購買清潔劑時一是檢查其揮發性能,當然是揮發越快越好;二是用PH試紙檢查其酸鹼性,要求呈中性,如呈酸性則對板卡有腐蝕作用。
六、清潔CPU風扇
PII和賽揚類CPU目前還較新,風扇一般不必取下,用油漆刷或者油畫筆掃除就可以了。較舊的CPU風扇上積塵較多,一般須取下清掃。下面以Socket 7的CPU為例,介紹CPU風扇的除塵。
散裝CPU風扇是卡在CPU插座兩側的卡扣上,將風扇卡扣略略下壓即可取下CPU風扇。取下CPU風扇後,即可為風扇除塵,注意散熱片的縫中有很多灰塵。
原裝CPU風扇與CPU連為一體,需將Socket 7插座旁的把手輕輕向外側撥出一點,使把手與把手定位卡脫離,再向上推到垂直90度位置,然後向上取下CPU。清潔CPU風扇時注意不要弄臟了CPU和散熱片的結合面間的導熱硅膠。
七、清潔內存條和適配卡
內存條和各種適配卡的清潔包括除塵和清潔電路板上的金手指。除塵用油畫筆即可。金手指是電路板和插槽之間的連接點,如果有灰塵、油污或者被氧化均會造成接觸不良。陳舊的微機中大量故障由此而來。高級電路板的金手指是鍍金的,不容易氧化。為了降低成本,一般適配卡和內存條的金手指沒有鍍金,只是一層銅箔,時間長了將發生氧化。可用橡皮擦來擦除金手指表面的灰塵、油污或氧化層,切不可用砂紙類東西來擦拭金手指,否則會損傷極薄的鍍層。
光碟機的拆卸和維護 --清潔聚焦透鏡、激光頭和激光功率調整
光碟機是多媒體電腦必不可少的基本配置,在實際使用中,光碟機出故障時候較多,光碟機在最初出現故障時,一般是挑盤,以後越來越嚴重,直至不能讀盤。這種故障通常是聚焦透鏡、激光頭積塵較多或激光管老化等原因引起。因此在出現不能讀盤的故障後,首先可對光學頭作清潔處理,包括一般除塵和清洗聚焦透鏡、激光頭。如果故障仍然不能排除,可能是激光電流調節電位器接觸不良或者激光二極體老化所致,可嘗試通過調節電位器解決。筆者處理的故障光碟機中,大部分通過上述辦法得以修復。本文主要以SONY CDU311八速光碟機為例,介紹拆卸光碟機,清潔聚焦透鏡、激光頭以及調整激光功率的方法。
光碟機是集光、電、機械於一體的高精度設備,拆卸及清洗應該按照一定的步驟進行,否則很容易損壞。光碟機的拆卸通常可按照下述步驟進行。
1、拆卸底板
將光碟機底部向上平放,用十字螺絲刀拆下固定底板的螺釘,向上取下金屬底板,此時能看到光碟機底部的電路板。有些光碟機底板上有卡銷,卡銷卡在外殼(凹形金屬上蓋)的相應卡扣上,卸這類光碟機底板須將底板略向光碟機後側推,使之脫離卡銷,然後向上取下底板。
2、拉出光碟托
在光碟機進出盤按鈕左側,有一直徑為1.0~1.5mm的強行退盤孔,將一根回形針扳直,插入應急退盤孔中並用力推入2.5cm左右,光碟托會向前彈出,再用手拉出光碟托。有些光碟機沒有強行退盤孔,可接通電源,按進出盤按鈕使光碟托滑出,然後關閉電源。如光碟進入時有卡盤現象,取出機芯後應檢查光碟托架滑道上的潤滑油,如果太臟或有凝固現象,可將其擦掉後滴少許鍾表油或者高級黃油。當然卡盤也有可能是機械故障造成的,此時應該檢查機械部分。
3、拆卸光碟機前面板
在前部面板的兩側和頂部,各有一隻卡扣卡在金屬外殼(凹形金屬上蓋)的卡孔中,向內輕推卡扣使之與脫離,向前拉出前部面板。
4、取出機芯
SONY CDU311光碟機的機芯(包括電路板)在拉出前部面板後,即可從外殼中取出。
5、 清洗聚焦透鏡
將機芯正面向上,抽出光碟托,已能看見光學頭組件,頂部黃豆大小的玻璃球狀透明體是聚焦透鏡,現在你已經可以用棉簽沾少許無水乙醇清洗聚焦透鏡了。清洗聚焦透鏡之前可用放大鏡仔細觀察一下聚焦透鏡表面,可能會看到灰塵或霧蒙蒙的一片,用脫脂棉或鏡頭紙輕輕擦拭去透鏡表面的灰塵,稍稍多擦幾下,就會還你一隻清明透亮的鏡。聚焦透鏡安裝在彈性體上,擦拭時可稍稍加力,但用力過大使透鏡發生位移或偏轉會影響讀盤。不要使用鑷子,以避免劃傷透鏡表面。也不要碰傷聚焦透鏡側部的聚焦線圈。
清洗光學頭是否須要清洗液,用什麼清洗液業界曾有爭論。筆者認為一般情況下不必使用清洗液。如果幹檫不能去除污物,再考慮使用清洗液。用水清洗是絕對不行的。能否用酒精清洗激光頭的問題也有爭論,筆者認為用高純度的無水乙醇是完全可以的。所謂酒精通常是指含有水分和雜質的乙醇溶液。因此,酒精的確不適合用來清洗激光頭。而無水乙醇則是一種近於中性的弱有機溶劑,其純度從低到高可分為:工業純、化學純、分析純、光譜純幾種。純度越高,所含水分和雜質越少。光碟機的光學頭由激光發生器、光電檢測器、聚焦透鏡、激光束分離器、伺服電機幾部分組成。最容易沾上灰塵的是位於光碟片下面的聚焦透鏡,一般情況下的清洗是指清洗這個透鏡的表面。透鏡的表面鍍有一層薄膜,稱為增透膜,其材料為氟化鎂。增透膜的主要作用是減少折射,增加透明度。氟化鎂並不溶於乙醇,但是氟化鎂容易吸潮而變形。
由於分析純以上檔次的無水乙醇,含水分和雜質已經很低,揮發性很強,能夠溶解有機雜質,而對於增透膜不會造成損壞。因此筆者認為用高純度的無水乙醇來清洗光學頭透鏡是可以的。在實際的檢修工作中,這樣作也沒有造成對透鏡表面薄膜的損壞。而用清水來清洗是不可取的,因為氟化鎂容易吸潮後變形,而且水中雜質多這些都可能造成對增透膜的損壞,使得光碟機不能正常工作。同樣,含水分和雜質較多的酒精也是不適合用來清洗激光頭的。
6、 拆卸激光頭組件
如果清洗聚焦透鏡不能排除故障,可進一步拆卸激光頭組件作進一步的處理。激光頭組件一側套在一根園柱形金屬滑動桿上,另一側與步進電機傳動機構相銜接。
SONY CDU311光碟機激光頭組件固定點在光碟機上部,只需擰下一顆鏍絲,拔下軟排線即可向上取下激光頭組件。拔下軟排線前建議先用鋼筆在排線與插座介面處畫一條直線,做好記號,以方便在還原時判斷是否正確回位。拔、插軟排線請勿拆疊,輕拔輕插,損壞後極難維修。
7、清洗激光頭
激光頭(激光發射管和光電接收管)安裝在一小塊電路板上,一般有八根引出線,由軟排線引出。激光頭電路板大多安裝在激光頭組件側部。激光發射管發射出的激光通過由棱鏡形成的直角拆射光路,經聚焦透鏡和光碟反射後,從原路返回,再由光電接收管接收。激光頭電路板固定在光頭組件上,即可取下電路板即可清洗激光發射管和光電接收管,還可從電路板對應的孔中伸入棉花擦拭孔中的棱鏡。
SONY CDU311光碟機的光學頭取消了反光棱鏡,直接經聚焦透鏡發射和接收激光束。可採用不卸下電路板的方法清洗。
清洗SONY CDU311光碟機的激光頭須先取下蓋在聚焦透鏡上的黑色塑料防塵罩。塑料防塵罩兩側有兩只上的卡扣,通過金屬鑄件上的兩只卡孔卡在光頭組件底部並用粘膠粘著,將激光頭底部朝上,用鑷子尖部將防塵罩兩端卡扣上的膠去除,松開卡扣,向上抽出防塵罩。
抽出防塵罩後可看到聚焦透鏡正下方有一園孔,園孔下部正對激光頭,用一段細銅絲做成L形,纏上棉花,將棉花小心的伸入小孔底部擦拭激光頭光電器件。擦拭時注意不要激光擦傷光電器件表面,也不得碰傷弄斷懸掛聚焦透鏡的彈性金屬絲,它其不僅起懸掛作用而且是聚焦線圈的引出線,否則會聚焦線圈迴路損壞。應該說明的是大多數光碟機的激光頭密封的腔體內,不易進入灰塵,拆卸清洗也不方便,操作不慎極有可能導致光碟機報廢,強烈建議一般用戶不實施此頂操作。
8、調節激光管的工作電流
經過清潔處理的光碟機如果仍然不能工作,說明激光管有一定程度的老化。可試調整激光管的工作電流以增大輸出功率。
SONY CDU311光碟機激光工作電流微調電位器在激光頭組件側部,只有綠豆大小。很多早期激光功率微調電位器在激光頭組件側部,需要取下激光頭組件才能較為方便的調節。
調節前先用色筆在電位器上作一記號,記下初始位置;用鍾表起子將電位器向某一方向旋轉一個小角度。 根據筆者的經驗,微調電位器本身接觸不良也是造成故障的原因之一,有時只要稍微動一下電位器即可解決問題。因此強烈建議每次調節不要超過10度,有條件的用戶可用萬用表測量一下,向電阻減少的方向調整。每調整一次裝機試一次,到能夠正確讀盤為止。總調整范圍不可太大,以防止電流過大燒毀激光管。
讀了本文後,你可能想清洗一下自己的光碟機。但是稍微的不慎即可造成光碟機報廢。由於目前光碟機的價格並不便宜,因此筆者認為還應該說明下述注意事項。
1、不要打開沒有故障的光碟機,光碟機是精密設備,隨意拆卸反而會對光碟機造成傷害。很多光碟機不可修復故障是拆御和維護不當造成的,言下之意是:只要你的光碟機能夠正常工作就不要去折騰它了。
2、有些光碟機不能正常讀盤可能是光碟片質量不好、電路故障、機械故障甚至軟體因素引起的,建議首先排除其它因素。
3、拆卸光碟機時注意保存好拆卸下的所有零件,任一個小零件遺失均可能會造成光碟機無法還原。
4、由於光碟機部件很多是由塑料製成的,操作時用力應適中,否則會損壞塑料部件。此外,也不要使用電吹風,熱風不僅可能導致塑料件變形,還可能影響其它部件的正常性能。
5、不同型號的光碟機結構略有不同,本文主要針對SONY系列光碟機作了介紹。你的光碟機如何拆卸、清洗主要還須靠你自己去摸索。
軟碟機的清潔維護與維修
軟碟機是微機系統中需要重點維護的外部設備之一。積塵過多是導致軟碟機故障的最常見原因,而軟碟機清洗除塵的重點有磁頭、光電檢測器、步進電機傳動絲桿。清洗除塵時注意不要損傷磁頭或使磁頭移位,否則人為導致的磁頭損傷和磁頭移位故障都是極難處理的。磁頭如不是太臟,可用清洗盤清洗,不必拆卸軟碟機就可以進行。假如用清洗盤清洗效果不好,就必須拆開軟碟機手工清洗了。下面按順序介紹其處理過程。
八、用清洗盤清洗磁頭
由於磁頭與軟碟片經常接觸,碟片上的各種污物將污染磁頭,積塵過多導致軟碟機
磁頭不能正常讀寫是最常見的軟碟機故障。用軟碟機清洗盤清洗軟碟機磁頭十分簡單,將清潔劑或無水乙醇(要求分析純級別)均勻噴灑在清洗盤面上,微機上電,系統啟動成功之後,將清洗盤插入軟碟機中,軟碟機將自行轉動,清洗盤會吸附磁頭上污垢及周圍的灰塵。
十、折卸清洗軟碟機
1、取下上蓋
軟碟機的凹形薄鐵皮上蓋是用螺絲固定在鑄鋁底座上的,手工清洗時先用十字螺絲刀擰下固定上蓋的一或兩顆螺絲(有的軟碟機沒有螺絲,可省去此步),將上蓋略向兩側外扳,使上蓋脫離鑄鋁底座上的凸出卡扣,即可取下軟碟機上蓋板。
2、清洗磁頭
軟碟機0、1號磁頭分別固定在尋道小車上、下方,下方磁頭貼在塑料磁頭小車的下固定臂上,不能移動,較容易清洗。上方磁頭通過一彈性片貼在塑料磁頭小車的活動臂上,上活動臂另一端是螺絲固定的彈簧片。清洗上磁頭時可以略略用力,但應注意用力過大會造成磁頭偏移,而人為導致磁頭偏移故障極難調校,清洗時切切注意。
清洗磁頭時用醫用脫脂棉簽沾無水乙醇或專用的磁頭清潔劑,輕輕地擦洗磁頭,多擦幾次,則可把較頑固的附著物擦去。清洗上磁頭時可用手將磁頭略略向下壓,以免磁頭移位,待酒精溶解上磁頭污物後,輕輕擦除污物。
3、清洗步進電機轉軸絲桿
軟碟機讀盤過程中如果系統常給出讀取文件錯誤或扇區找不到的提示,多半是步進電機轉軸與磁頭小車有銜接不好的現象,請檢查步進電機轉軸絲桿上的潤滑油,如果太臟或有凝固現象,可將其用酒精擦洗干凈後補充少許鍾表油或者高級黃油。還可用手轉動絲桿來移動磁頭小車,以便清洗整個絲桿。
4、清洗光電檢測器
老式的軟碟機其防寫檢測、盤密度檢測、換盤檢測、0道檢測是由光電檢測器完成的,可用棉簽沾少許無水乙醇擦拭光電發射管和光電接收管表面。新型軟碟機其檢測器均為微動開關則無須處理。
滑鼠的清潔維護與維修
滑鼠是當今電腦必不可少的輸入設備。當你在屏幕上發現滑鼠指針移動不靈時就應當為滑鼠除塵了。滑鼠的清潔及維護可按照以下步驟進行。
1、基本除塵
滑鼠的底部長期和桌子接觸,最容易被污染。尤其是機械式和光學機械式滑鼠的滾動球極易將灰塵、毛發、細維纖帶入滑鼠中。下面以光機式滑鼠為例說明拆卸和除塵方法。
在滑鼠底部滾動球外圈有一圓形塑料蓋,輕壓塑料蓋逆時針方向旋轉到位,即可取下塑料蓋,取出滾動球。用手指清除滑鼠內部的兩根轉軸和一隻轉輪上的污物,清除時應避免污物落入滑鼠內部,滾動球可用中性洗滌劑清洗。
2、開蓋除塵
如果經上述處理指針移動還是不靈,特別是某一方向滑鼠指針移動不靈時,大多是光電檢測器被污物檔光導致,此時請用十字螺絲刀卸下滑鼠底蓋上的螺絲,取下滑鼠上蓋,用棉簽清理光電檢測器中間的污物。
3、按鍵失靈排障
滑鼠的按鍵磨損是的導致按鍵失靈的常見故障,磨損部位通常是按鍵機械開關上的小按鈕或與小按鈕接觸部位處的塑料上蓋,應急處理可貼一張不幹膠紙或刷一層快乾膠解決。較好的解決方法是換一隻按鍵,滑鼠按鍵一般電氣零件商行有售,將不常使用的中鍵與左鍵交換也是常見處理方法。
雜牌劣質滑鼠的按鍵失靈多為簧片斷裂,可用廢棄的電子打火機微動開關內的小銅片替代。滑鼠電路板上元件焊接不良也可能出現故障,最常見故障是機械開關底部的焊點斷裂或脫焊。
鍵盤的清潔維護
鍵盤是最常用的輸入設備之一,即使一個鍵失靈,用起來也很不方便。由於鍵盤是一種機電設備,使用頻繁,加之鍵盤底座和各按鍵之間有較大的間隙,灰塵容易侵入。因此定期對鍵盤作清潔維護也是十分必要的。
最簡單的維護一是將鍵盤反過來輕輕拍打,讓其內的灰塵落出;二用濕布清洗鍵盤表面,但注意濕布一定要擰干,以防水進入鍵盤內部。
使用時間較長的鍵盤需要拆開進行維護。拆卸鍵盤比較簡單,拔下鍵盤與主機連接的電纜插頭,然後將鍵盤正面向下放到工作台上,擰下底板上的螺釘,即可取下鍵盤後蓋板。以下分別介紹機械式按鍵鍵盤和電觸點按鍵鍵盤的拆卸和維護方法。
一、機械式按鍵鍵盤
取下機械式按鍵鍵盤底板後你將看到一塊電路板,電路板被幾顆鏍絲固定在鍵盤前面板上,擰下螺釘即可取下電路板。
拔下電纜線與電路板連接的插頭,就可以用油漆刷或者油畫筆掃除電路板和鍵盤按鍵上的灰塵。一般不必用濕布清洗。按鍵開關焊接在電路板上,鍵帽卡在按鍵開關上。如果想將鍵帽從按鍵開關上取下,可用平口螺絲刀輕輕將鍵帽往上撬松後拔下。一般情況沒有必要取下鍵帽,且有些鍵盤的鍵帽取下後很難還原。
如有某個按鍵失靈,可以焊下按鍵開關進行維修,但由於組成按鍵開關的零件極小,拆卸、維修很不方便,由於是機械方面的故障,大多數情況下維修後的按鍵壽命極短,最好的辦法是用同型號鍵盤按鍵或非常用鍵(如F12)焊下與失靈按鍵交換位置。
二、電觸點按鍵鍵盤
打開電觸點鍵盤的底板和蓋板以後,就能看到嵌在底板上的三層薄膜,三層薄膜分別是下觸點層、中間隔離層和上觸點層,上、下觸點層壓制有金屬電路連線和與按鍵相對應的圓形金屬觸點,中間隔離層上有與上、下觸點層對應的圓孔。電觸點鍵盤的所有按鍵嵌在前面板上,在底板上三層薄膜和前面板按鍵之間有一層橡膠墊,橡膠墊上凸出部位與嵌在前面板上的按鍵相對應,按下按鍵後膠墊上相應凸出部位向下凹,使薄膜上、下觸點層的圓形金屬觸點通過中間隔離層的圓孔相接觸,送出按鍵信號。在底板的上角還有一小塊電路板,其上主要部件有鍵盤插座、鍵盤CPU和指示燈。
由於電觸點鍵盤是通過上、下觸點層的圓形金屬觸點接觸送出按鍵信號,因而薄膜上圓形金屬觸點有氧化現象需用橡皮擦拭乾凈;另別輸出介面插座處如有氧化現象,須用橡皮擦乾凈介面部位的氧化層。
嵌在底板上的三層薄膜之間一般無灰塵,只需用油漆刷清掃薄膜表面即可。
橡膠墊、前面板、嵌在前面板上的按鍵可以用水清洗,如鍵盤較臟,可使用清潔劑。有些鍵盤嵌在前面板上的按鍵可以全部取下,但由於取下後還原一百多隻按鍵很麻煩,建議不要取下。
將所有的按鍵、前面板、橡膠墊清洗干凈,就可以進行安裝還原了。安裝還原時注意一是注意要等按鍵、前面板、橡膠墊全部晾乾以後,方能還原鍵盤,否則會導致鍵盤內觸點生銹,二是注意三層薄膜准確對位,否則會導致按鍵無法接通。
電源的除塵和維護
開關電源是整個主機的動力。雖然電源的功率只有200-350W,但是由於輸出電壓低,輸出電流很大,因此其中的功率開關晶體管發熱量十分大。除了功率晶體管加裝散熱片外,還需要用風扇把電源盒內的熱量抽出。在風扇向外抽風時,電源盒內形成負壓,使得電源盒內的各個部分吸附了大量的灰塵,特別是風扇的葉片上更是容易堆積灰塵。功率晶體管和散熱片上堆積灰塵將影響散熱,風扇葉片上的積塵將增加風扇的負載,降低風扇轉速,也將影響散熱效果。在室溫較高時,如果電源不能及時散熱,將燒毀功率晶體管。因此電源的除塵維護是十分必要的。
電源的維護除了除塵之外,還應該為風扇加潤滑油。具體操作方法如下。
一、拆卸電源盒
電源盒一般是用螺絲固定在機箱後側的金屬板上,拆卸電源時從機箱後側擰下固定螺絲,即可取下電源。有些機箱內部還有電源固定螺絲,也應當取下。電源向主機各個部分供電的電源線也應該取下,在《機箱除塵及板卡維護》中已經作過介紹。
二、打開電源盒
電源盒由薄鐵皮構成,其凹形上蓋扣在凹形底蓋上用螺絲固定,取下固定螺絲,將上蓋略從兩側向內推,即可向上即可取出上蓋。
三、電路板及散熱片除塵
取下電源上蓋後即可用油漆刷(或油畫筆)為電源除塵,固定在電源凹形底蓋上的電路板下常有不少灰塵,可擰下電路板四角的固定螺絲取下電路板為其除塵。
四、風扇除塵
電源風扇的四角是用螺絲固定在電源的金屬外殼上,為風扇除塵時先卸下這四顆螺絲,取下風扇後即可用油漆刷為風扇除塵,風扇也可以用較乾的濕布擦拭,但注意不要使水進入風扇轉軸或線圈中。
五、風扇加油
風扇使用一兩年後,轉動的聲音明顯增大,大多是由於軸承潤滑不良所造成。為風扇加油時先用小刀揭開風扇正面的不幹膠商標,可看到風扇前軸承(國產的還有一橡膠蓋,需橇下才能看到);在軸的頂端有一卡環,用一鑷子將卡環口分開,然後將其取下,再分別取下金屬墊圈、塑料墊圈;用手指捏住風葉往外拉,拉出電機風葉連同轉子,此時前後軸承都一目瞭然。將鍾表油分別在前後軸承的內外圈之間滴上二到三滴(油要浸入軸承內),重新將軸插入軸承內,裝上塑料墊圈、金屬墊圈、卡環,貼上不幹膠商標,再把風扇裝回機器。長期未潤滑的軸承加油後轉動聲音明顯減小。
穩壓電源、CPU、列印機?/div>
Ⅱ 鍵盤內部的4根線是什麼順序連接到電路板上的
鍵盤內部的4根線從左到右,那些觸片連接的線對應的功能分別是:地線回(G)、讀數據線(D)、寫數答據線(C)、+5V線(V);如果出錯,把DC線互換。最好有個萬用表一測電壓和正負極就非常清楚了。
一般的排列方式是:紅白綠黑從左到右定義:
紅色-USB電源 標有-VCC、Power、5V、5VSB字樣
綠色-USB數據線(正)-DATA 、USBD 、PD 、USBDT
白色-USB數據線(負)-DATA-、USBD-、PD-、USBDT
黑色-地線 -GND、Ground
Ⅲ 八路搶答器的設計。設計8個獨立按鍵,通過8輸入與非門74LS30輸出經過74LS04反相後向單片機
都是獨立按鍵,分別接入io口。中斷後掃描io,哪個低電平就顯示其編碼號。
Ⅳ 八方向鍵怎麼用鍵盤打出來
進入WORD,選擇菜單的插入,符號,用滑塊往下,找到方向鍵,點擊滑鼠,插入所需要的方向鍵,然後用WORD的選擇,復制,粘貼功能,粘貼到你需要的文字處就可以了。→←↑↓↖↗↘↙
Ⅳ 通過鍵盤的能夠使飛機上下左右八個方向移動,現在實現鍵盤監聽時沒有反應是怎麼回事,哪裡出錯了
沒反應這種問題一般就是焦點問題了,你點擊一下游戲窗體,看看有沒有反應,如果沒有就requestFocus看看。
Ⅵ 怎麼在鍵盤上打出八個方向的箭頭
我所知最簡單的方法 先右擊搜狗輸入法的皮膚→選擇軟鍵盤→選擇特殊符號→這里可專以打出上屬下左右的箭頭 (以後同時按Ctrl+Alt+K就會出現特殊符號的軟鍵盤了)。。。或者 。。。 中文輸入「箭頭」→但是不要按下空格或數字鍵或回車等待下你會發現 它會提示你同時按下分號和F 可以輸入更多的符號 選擇特殊符號就好 → 選擇特殊符號→特殊符號就可以了
Ⅶ 簡易8按鍵電子琴設計實驗
簡易電子琴的設計
摘 要 隨著基於CPLD的EDA技術的發展和應用領域的擴大與深入,EDA技術在電子信息、通信、自動控制用計算機等領域的重要性日益突出。作為一個學電子信息專業的學生,我們必須不斷地了解更多的新產品信息,這就更加要求我們對EDA有個全面的認識。本程序設計的是簡易電子琴的設計。採用EDA作為開發工具,VHDL語言為硬體描述語言,MAX + PLUS II作為程序運行平台,所開發的程序通過調試運行、波形模擬驗證,初步實現了設計目標。本程序使用的硬體描述語言VHDL,可以大大降低了硬體數字系統設計的入門級別,讓人感覺就是C語言的近親。通過老師的指導和自己的學習完成了預想的功能。
關鍵詞 電子琴;課程設計;EDA;VHDL
1 引言
1.1 課程設計的目的
鞏固和運用所學課程,理論聯系實際,提高分析、解決計算機技術實際問題的獨立工作能力,通過對一個簡易的八音符電子琴的設計,進一步加深對計算機原理以及數字電路應用技術方面的了解與認識,進一步熟悉數字電路系統設計、製作與調試的方法和步驟。鞏固所學課堂知識,理論聯系實際,提高分析、解決計算機技術實際問題的獨立工作能力。為了進一步了解計算機組成原理與系統結構,深入學習EDA技術,用VHDL語言去控制將會使我們對本專業知識可以更好地掌握。
1.2 課程設計的內容
(1)設計一個簡易的八音符電子琴,它可通過按鍵輸入來控制音響。
(2)演奏時可以選擇是手動演奏(由鍵盤輸入)還是自動演奏已存入的樂曲。
(3)能夠自動演奏多首樂曲,且每首樂曲可重復演奏。
2 開發工具簡介
2.1 EDA技術
EDA是電子設計自動化(Electronic Design Automation)縮寫,是90年代初從CAD(計算機輔助設計)、CAM(計算機輔助製造)、CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發展而來的。EDA技術是以計算機為工具,根據硬體描述語言HDL( Hardware Description language)完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合及優化、布局布線、模擬以及對於特定目標晶元的適配編譯和編程下載等工作。典型的EDA工具中必須包含兩個特殊的軟體包,即綜合器和適配器。綜合器的功能就是將設計者在EDA平台上完成的針對某個系統項目的HDL、原理圖或狀態圖形描述,針對給定的硬體系統組件,進行編譯、優化、轉換和綜合,最終獲得我們欲實現功能的描述文件。綜合器在工作前,必須給定所要實現的硬體結構參數,它的功能就是將軟體描述與給定的硬體結構用一定的方式聯系起來。也就是說,綜合器是軟體描述與硬體實現的一座橋梁。綜合過程就是將電路的高級語言描述轉換低級的、可與目標器件FPGA/CPLD相映射的網表文件。
適配器的功能是將由綜合器產生的王表文件配置與指定的目標器件中,產生最終的下載文件,如JED文件。適配所選定的目標器件(FPGA/CPLD晶元)必須屬於在綜合器中已指定的目標器件系列。
硬體描述語言HDL是相對於一般的計算機軟體語言,如:C、PASCAL而言的。HDL語言使用與設計硬體電子系統的計算機語言,它能描述電子系統的邏輯功能、電路結構和連接方式。設計者可利用HDL程序來描述所希望的電路系統,規定器件結構特徵和電路的行為方式;然後利用綜合器和適配器將此程序編程能控制FPGA和CPLD內部結構,並實現相應邏輯功能的的門級或更底層的結構網表文件或下載文件。目前,就FPGA/CPLD開發來說,比較常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。
2.2硬體描述語言—VHDL
VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,誕生於1982年。1987年底,VHDL被IEEE和美國國防部確認為標准硬體描述語言 。自IEEE公布了VHDL的標准版本,IEEE-1076(簡稱87版)之後,各EDA公司相繼推出了自己的VHDL設計環境,或宣布自己的設計工具可以和VHDL介面。此後VHDL在電子設計領域得到了廣泛的接受,並逐步取代了原有的非標準的硬體描述語言。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統描述能力上擴展VHDL的內容,公布了新版本的VHDL,即IEEE標準的1076-1993版本,(簡稱93版)。現在,VHDL和Verilog作為IEEE的工業標准硬體描述語言,又得到眾多EDA公司的支持,在電子工程領域,已成為事實上的通用硬體描述語言。有專家認為,在新的世紀中,VHDL於Verilog語言將承擔起大部分的數字系統設計任務。
VHDL主要用於描述數字系統的結構,行為,功能和介面。除了含有許多具有硬體特徵的語句外,VHDL的語言形式和描述風格與句法是十分類似於一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統)分成外部(或稱可是部分,及埠)和內部(或稱不可視部分),既涉及實體的內部功能和演算法完成部分。在對一個設計實體定義了外部界面後,一旦其內部開發完成後,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統設計的基本點。應用VHDL進行工程設計的優點是多方面的。
(1) 與其他的硬體描述語言相比,VHDL具有更強的行為描述能力,從而決定了他成為系統設計領域最佳的硬體描述語言。強大的行為描述能力是避開具體的器件結構,從邏輯行為上描述和設計大規模電子系統的重要保證。
(2) VHDL豐富的模擬語句和庫函數,使得在任何大系統的設計早期就能查驗設計系統的功能可行性,隨時可對設計進行模擬模擬。
(3) VHDL語句的行為描述能力和程序結構決定了他具有支持大規模設計的分解和已有設計的再利用功能。符合市場需求的大規模系統高效,高速的完成必須有多人甚至多個代發組共同並行工作才能實現。(4)對於用VHDL完成的一個確定的設計,可以利用EDA工具進行邏輯綜合和優化,並自動的把VHDL描述設計轉變成門級網表。
(4) VHDL對設計的描述具有相對獨立性,設計者可以不懂硬體的結構,也不必管理最終設計實現的目標器件是什麼,而進行獨立的設計。
2.3 VHDL的設計流程:
(1) 設計輸入根據電路設計所提出的要求,將程序輸入到VHDL編輯器中去編輯。
(2) 功能級模擬用VHDL,模擬器對編輯後的程序進行模擬,如果達不到設計要求,則可以重新修改程序,直到通過功能模擬。
(3) 邏輯綜合與優化 將通過功能模擬的程序放到VHDL編譯器中,進行邏輯綜合與優化。
(4) 門級模擬對電路用VHDL。模擬器模擬。可對門級電路的延時、定時狀態、驅動能力等進行模擬。如不符合要求,可重復步驟(3),再門級模擬,直到符合要求止。
(5) 版圖生成 用相應的軟體處理後,就可以拿去製版。
設計過程
3.1設計規劃
根據系統設計要求,系統設計採用自頂向下的設計方法,系統的整體組裝設計原理圖如圖3-1所示,它由樂曲自動演奏模塊、音調發生模塊和數控分頻模塊三部分組成。
圖3-1 系統的整體組裝設計原理圖
3.2 各模塊的原理及其程序
(1)樂曲自動演奏模塊
樂曲自動演奏模塊(AUTO.VHD)的作用是產生8位發聲控制輸入信號/當進行自動演奏時,由存儲在此模塊中的8位二進制數作為發聲控制輸入,從而自動演奏樂曲。
VHDL源程序(AUTO.VHD)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY AUTO IS
PORT ( CLK : IN STD_LOGIC;
AUTO : IN STD_LOGIC;
CLK2 : BUFFER STD_LOGIC;
INDEX2 : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
INDEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END AUTO;
ARCHITECTURE BEHAVIORAL OF AUTO IS
SIGNAL COUNT0: INTEGER RANGE 0 TO 31;
BEGIN
PULSE0 :PROCESS(CLK,AUTO)
VARIABLE COUNT :INTEGER RANGE 0 TO 8;
BEGIN
IF AUTO ='1' THEN
COUNT := 0;CLK2<='0';
ELSIF(CLK'EVENT AND CLK ='1')THEN
COUNT :=COUNT +1;
IF COUNT =4 THEN
CLK2 <='1';
ELSIF COUNT =8 THEN
CLK2<='0'; COUNT:=0;
END IF ;
END IF ;
END PROCESS;
MUSIC:PROCESS(CLK2)
BEGIN
IF (CLK2'EVENT AND CLK2='1')THEN
IF (COUNT0=31)THEN
COUNT0<=0;
ELSE
COUNT0<=COUNT0+1;
END IF ;
END IF ;
END PROCESS;
COM1:PROCESS(COUNT0,AUTO,INDEX2)
BEGIN
IF AUTO ='0' THEN
CASE COUNT0 IS
WHEN 0=>INDEX0<="00000100"; --3
WHEN 1=>INDEX0<="00000100"; --3
WHEN 2=>INDEX0<="00000100"; --3
WHEN 3=>INDEX0<="00000100"; --3
WHEN 4=>INDEX0<="00010000"; --5
WHEN 5=>INDEX0<="00010000"; --5
WHEN 6=>INDEX0<="00010000"; --5
WHEN 7=>INDEX0<="00100000"; --6
WHEN 8=>INDEX0<="10000000"; --8
WHEN 9=>INDEX0<="10000000"; --8
WHEN 10=>INDEX0<="10000000"; --8
WHEN 11=>INDEX0<="00000100"; --3
WHEN 12=>INDEX0<="00000010"; --2
WHEN 13=>INDEX0<="00000010"; --2
WHEN 14=>INDEX0<="00000001"; --1
WHEN 15=>INDEX0<="00000001"; --1
WHEN 16=>INDEX0<="00010000"; --5
WHEN 17=>INDEX0<="00010000"; --5
WHEN 18=>INDEX0<="00001000"; --4
WHEN 19=>INDEX0<="00001000"; --4
WHEN 20=>INDEX0<="00001000"; --4
WHEN 21=>INDEX0<="00000100"; --3
WHEN 22=>INDEX0<="00000010"; --2
WHEN 23=>INDEX0<="00000010"; --2
WHEN 24=>INDEX0<="00010000"; --5
WHEN 25=>INDEX0<="00010000"; --5
WHEN 26=>INDEX0<="00001000"; --4
WHEN 27=>INDEX0<="00001000"; --4
WHEN 28=>INDEX0<="00000100"; --3
WHEN 29=>INDEX0<="00000100"; --3
WHEN 30=>INDEX0<="00000010"; --2
WHEN 31=>INDEX0<="00000010"; --2
WHEN OTHERS =>NULL;
END CASE;
ELSE INDEX0<=INDEX2;
END IF;
END PROCESS;
END BEHAVIORAL;
(2) 音調發生模塊
音調發生模塊的作用是產生音階的分頻預置值。當8位發聲控制輸入信號中的某一位為高電平時,則對應某一音節的數值將輸出,該數值即為該音階的分頻預置值,分頻預置值控制數控分頻模塊進行分頻,由此可得到每個音階對應的頻率。
VHDL源程序(TONE.VHD)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY TONE IS
PORT (INDEX: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
HIGH: OUT STD_LOGIC;
TONE0: OUT INTEGER RANGE 0 TO 2047);
END TONE;
ARCHITECTURE ART OF TONE IS
BEGIN
SEARCH : PROCESS(INDEX)
BEGIN
CASE INDEX IS
WHEN "00000001"=>TONE0 <=773;CODE<="1001111";HIGH<='1';
WHEN "00000010"=>TONE0 <=912;CODE<="0010010";HIGH<='1';
WHEN "00000100"=>TONE0 <=1036;CODE<="0000110";HIGH<='1';
WHEN "00001000"=>TONE0 <=1116;CODE<="1001100";HIGH<='1';
WHEN "00010000"=>TONE0 <=1197;CODE<="0100100";HIGH<='1';
WHEN "00100000"=>TONE0 <=1290;CODE<="0100000";HIGH<='0';
WHEN "01000000"=>TONE0 <=1372;CODE<="0001111";HIGH<='0';
WHEN "10000000"=>TONE0 <=1410;CODE<="0000000";HIGH<='0';
WHEN OTHERS =>TONE0<=2047;CODE<="0000001";HIGH<='0';
END CASE;
END PROCESS;
END ART;
(3) 數控分頻模塊
數控分頻模塊是對時基脈沖進行分頻,得到與1、2、3、4、5、6、7七個音符相對應的頻率。
VHDL源程序(FENPIN.VHD)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FENPIN IS
PORT(CLK1: IN STD_LOGIC;
TONE1: IN INTEGER RANGE 0 TO 2047;
SPKS: OUT STD_LOGIC);
END ENTITY FENPIN;
ARCHITECTURE ART OF FENPIN IS
SIGNAL PRECLK:STD_LOGIC;
SIGNAL FULLSPKS:STD_LOGIC;
BEGIN
PROCESS(CLK1)
VARIABLE COUNT:INTEGER RANGE 0 TO 8;
BEGIN
IF (CLK1'EVENT AND CLK1='1')THEN
COUNT:=COUNT +1;
IF COUNT=2 THEN
PRECLK<='1';
ELSIF COUNT =4 THEN
PRECLK<='0';COUNT:=0;
END IF ;
END IF ;
END PROCESS;
PROCESS(PRECLK,TONE1)
VARIABLE COUNT11:INTEGER RANGE 0 TO 2047;
BEGIN
IF (PRECLK'EVENT AND PRECLK='1')THEN
IF COUNT11<TONE1 THEN
COUNT11:=COUNT11+1;FULLSPKS<='1';
ELSE
COUNT11:=0;FULLSPKS<='0';
END IF ;
END IF ;
END PROCESS;
PROCESS(FULLSPKS)
VARIABLE COUNT2 :STD_LOGIC:='0';
BEGIN
IF (FULLSPKS'EVENT AND FULLSPKS='1')THEN
COUNT2:=NOT COUNT2;
IF COUNT2='1'THEN
SPKS<='1';
ELSE
SPKS<='0';
END IF ;
END IF;
END PROCESS;
END ART;
(4) 頂層設計
VHDL源程序(DIANZIQIN.VHD)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DIANZIQIN IS
PORT(CLK32MHZ: IN STD_LOGIC;
HANDTOAUTO:IN STD_LOGIC;
CODE1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--音符顯示信號
INDEX1: IN STD_LOGIC_VECTOR(7 DOWNTO 0);--鍵盤輸入信號
HIGH1: OUT STD_LOGIC;--高低音節信號
SPKOUT: OUT STD_LOGIC);--音頻信號
END;
ARCHITECTURE ART OF DIANZIQIN IS
COMPONENT AUTO
PORT(CLK: IN STD_LOGIC;
AUTO: IN STD_LOGIC;
INDEX2: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
INDEX0: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END COMPONENT;
COMPONENT TONE
PORT(INDEX: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);
HIGH: OUT STD_LOGIC;
TONE0: OUT INTEGER RANGE 0 TO 2047);
END COMPONENT;
COMPONENT FENPIN
PORT(CLK1: IN STD_LOGIC;
TONE1:IN INTEGER RANGE 0 TO 2047;
SPKS: OUT STD_LOGIC);
END COMPONENT;
SIGNAL TONE2:INTEGER RANGE 0 TO 2047;
SIGNAL INDX:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
U0:AUTOPORTMAP(CLK=>CLK32MHZ,INDEX2=>INDEX1,INDEX0=>INDX,AUTO=>HANDTOAUTO);
U1:TONEPORTMAP(INDEX=>INDX,TONE0=>TONE2,CODE=>CODE1,HIGH=>HIGH1);
U2:FENPIN PORT MAP(CLK1=>CLK32MHZ,TONE1=>TONE2,SPKS=>SPKOUT);
END ART;
4 波形模擬
(1)樂曲自動演奏模塊的模擬(如圖4-1所示)
圖4-1樂曲自動演奏模塊的模擬圖
(2)音調發生模塊的模擬(如圖4-2)
圖4-2 音調發生模塊的模擬圖
(3)數控分頻模塊的模擬(如圖4-3)
圖4-3數控分頻模塊模擬圖
(4)簡易電子琴整個系統的模擬(如圖4-4)
圖4-4簡易電子琴整個系統的模擬圖
5 結束語
經過努力,簡易電子琴的設計基本上完成了。在整個設計過程中,包括前期中期和後期,我都有著許多不同的體會:
1) 這個設計的基本是接觸一門新的語言並加以應用,對於我來說,沒有想到的是入手的速度比我的預料快,在以前編程的基礎上,從接觸到開始動手編程的時間得到了很大的縮短。知識的接收速度在很大的程度上決定了動手的時間。
2) VHDL的編程與C語言的編程有著本質的不同,然而以往形成的舊編程習慣在VHDL編程中依然起著很大的作用。一通百通,不是沒有道理的。對於學習新的知識並予以應用的信心,顯得更足了。
3) VHDL的設計關鍵是電路邏輯設計,而一個程序的關鍵是總體設計。對於硬體設計接觸不多的我們清楚這一點也許不無好處。
4)通過這個程序設計讓我學會一種新的語言,對數字系統結構也有了更進一步的了解和認識,對我以後的學習有很大的幫助。希望其他人在看再做類似設計時有所借鑒。
通過幾天的課程設計,我對資料庫軟體EDA技術、VHDL、等系列知識都有了一定的了解。使用EDA技術開發頁面的能力也有了很大提高。
在整個設計過程中,有很多人對任務的完成給予了重要的支持和幫助。感謝老師給了我本次設計的機會並提供指導;感謝許多同學在我此課程設計遇到問題時給我的幫助使我能夠順利地進行設計的工作;論壇中有很多認識不認識的朋友也都為我的設計提出了很寶貴的建議,同樣在這里感謝他們。
參考文獻
《VHDL與數字電路設計》.盧毅,賴傑.科學出版社
《VHDL語言100例詳解——北京理工大學ASIC研究所》.北京理工大學ASIC研究所.清華大學出版社
《VHDL程序設計》(第二版). 曾繁泰等.清華大學出版社
《VHDL入門與應用》陳雪松,滕立中.人民郵電出版社
《VHDL簡明教程》.王小軍.清華大學出版社
Ⅷ 電腦鍵盤各鍵的名稱及使用方法
電腦鍵盤各鍵的名稱及使用方法如下:
1、Tab鍵:表格鍵,是Table的縮寫,中文意思是表格。在電腦中的應用主要是在文字處理軟體里(如Word)起到等距離移動的作用。
Ⅸ 魔獸編輯器8方向鍵盤操作 觸發怎麼整
首先來設置變數(為了支持多人要使用大量數組,不懂數組的同學請看http://tieba..com/f?kz=802393409)
布爾型:
Bleft[12]
Bright[12]
Bforward[12]
實數:Dturn[12]
點:Pmove[12]
計時器:Tmove[12]
單位:Umove[12]
整數:Nplayer
首先為了優化效率我們要先知道有多少玩家加入了游戲,並對要控制的單位設置好變數
basicvalue
┣━事件
┃ └—時間 - 當游戲逝去 0.00 秒
┣━條件
┗━動作
├—循環動作[循環整數A]從 1 到 12, 運行 (Loop - 動作)
│ Loop - 動作
│ 如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
│ If - 條件
│ ((玩家 (循環整數A)) 的控制者) 等於 用戶
│ ((玩家 (循環整數A)) 的游戲狀態) 等於 正在游戲
│ Then - 動作
│ Set Nplayer = (Nplayer + 1)
│ 單位 - 創建 1 個 (一個等級 -1 的隨機中立單位類型) 給 (玩家 (循環整數A)) 在 ((玩家 (循環整數A)) 的游戲開始位置) ,面向角度為 默認建築朝向 度
│ 單位 - 添加 防禦 給 (最後創建的單位)
│ Set Umove[((玩家 (循環整數A)) 的玩家索引號)] = (最後創建的單位)
│ 選擇 - 選擇 (最後創建的單位) 對 (玩家 (循環整數A))
│ 觸發器 - 為 Press Left <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 按下 Left鍵 )
│ 觸發器 - 為 Release Left <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 釋放 Left鍵 )
│ 觸發器 - 為 Press Right <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 按下 Right鍵 )
│ 觸發器 - 為 Release Right <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 釋放 Right鍵 )
│ 觸發器 - 為 Press Forward <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 按下 Up鍵 )
│ 觸發器 - 為 Release Forward <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 釋放 Up鍵 )
│ 觸發器 - 為 Press Back <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 按下 Down鍵 )
│ 觸發器 - 為 Release Back <預設> 添加事件: (玩家 - (玩家 (循環整數A)) 釋放 Down鍵 )
│ Else - 動作
├—計時器 - 啟動 Tmove[0],應用計時方式: 循環,計時周期為 0.02 秒
├—計時器 - 啟動 Tmove[1],應用計時方式: 循環,計時周期為 0.02 秒
├—計時器 - 啟動 Tmove[2],應用計時方式: 循環,計時周期為 0.02 秒
├—計時器 - 啟動 Tmove[3],應用計時方式: 循環,計時周期為 0.02 秒
└—計時器 - 啟動 Tmove[4],應用計時方式: 循環,計時周期為 0.02 秒
可以看到變數Nplayer是用來計算玩家數量的,為後面的移動動作進行了「預約」,當然後來我發現運用玩家組就可以不用預約且不需要布爾數組了,懂我這句話的同學就自己改,不懂的忽略,以後會懂的。
還有個小竅門是為移動觸發注冊事件,這樣就不用一個一個地手動改了,計時器是用來控制移動動作的。
=======================================================================
2010-11-02 17:45 回復
灥元素
najimo
1715位粉絲
知名人士10 5樓
=======================================================================
接下來看看向左轉是怎麼做的:
Press Left
┣━事件
┣━條件
┗━動作
├—Set Bleft[((觸發玩家) 的玩家索引號)] = TRUE
└—如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
If - 條件
Bleft[((觸發玩家) 的玩家索引號)] 等於 TRUE
Then - 動作
Set Dturn[((觸發玩家) 的玩家索引號)] = 5.00
單位 - 設置 Umove[((觸發玩家) 的玩家索引號)] 的面向角度為 ((Umove[((觸發玩家) 的玩家索引號)] 的面向角度) + 5.00) 度,使用時間 0.00 秒
Else - 動作
事件「按下 Left鍵」在初始觸發已經被注冊了,所以不必寫,可以看到Bleft判定是否轉,Dturn計算轉向的速度,那麼如何持續向左轉呢?
=======================================================================
Turn Left
┣━事件
┃ └—時間 - Tmove[1] 到期
┣━條件
┗━動作
└—循環動作[循環整數A]從 1 到 Nplayer, 運行 (Loop - 動作)
Loop - 動作
如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
If - 條件
Bleft[((玩家 (循環整數A)) 的玩家索引號)] 等於 TRUE
Then - 動作
Set Dturn[((玩家 (循環整數A)) 的玩家索引號)] = 5.00
單位 - 設置 Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度為 ((Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度) + 5.00) 度,使用時間 0.00 秒
Else - 動作
若Bleft判定為正確,則循環時間不斷使角度增加,就自動轉了,可以看到「循環動作從1到Nplayer」,這就是支持多人的關鍵,一定程度上可以增加效率。
=======================================================================
接下來就是「釋放 Left鍵」事件
Release Left
┣━事件
┣━條件
┗━動作
├—Set Bleft[((觸發玩家) 的玩家索引號)] = FALSE
└—Set Dturn[((觸發玩家) 的玩家索引號)] = 0.00
這樣就使想左轉停止了,但是「Turn Left」觸發仍然會循環這個玩家,所以用玩家組增刪效率會好些,但是本教程就不說
下面來看同理的向右轉
Press Right
┣━事件
┣━條件
┗━動作
├—Set Bright[((觸發玩家) 的玩家索引號)] = TRUE
└—如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
If - 條件
Bright[((觸發玩家) 的玩家索引號)] 等於 TRUE
Then - 動作
Set Dturn[((觸發玩家) 的玩家索引號)] = -5.00
單位 - 設置 Umove[((觸發玩家) 的玩家索引號)] 的面向角度為 ((Umove[((觸發玩家) 的玩家索引號)] 的面向角度) - 5.00) 度,使用時間 0.00 秒
Else - 動作
=======================================================================
Turn Right
┣━事件
┃ └—時間 - Tmove[2] 到期
┣━條件
┗━動作
└—循環動作[循環整數A]從 1 到 Nplayer, 運行 (Loop - 動作)
Loop - 動作
如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
If - 條件
Bright[((玩家 (循環整數A)) 的玩家索引號)] 等於 TRUE
Then - 動作
Set Dturn[((玩家 (循環整數A)) 的玩家索引號)] = -5.00
單位 - 設置 Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度為 ((Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度) - 5.00) 度,使用時間 0.00 秒
Else - 動作
=======================================================================
Release Right
┣━事件
┣━條件
┗━動作
├—Set Bright[((觸發玩家) 的玩家索引號)] = FALSE
└—Set Dturn[((觸發玩家) 的玩家索引號)] = 0.00
並無多大區別,很簡單,那麼接下來我們看看移動部分。
=======================================================================
2010-11-02 17:46 回復
灥元素
najimo
1715位粉絲
知名人士10 7樓
=======================================================================
Press Forward
┣━事件
┣━條件
┗━動作
├—Set Bforward[((觸發玩家) 的玩家索引號)] = TRUE
├—Set Pmove[((觸發玩家) 的玩家索引號)] = (從 (Umove[((觸發玩家) 的玩家索引號)] 的位置) 開始,距離 20.00 ,方向為 ((Umove[((觸發玩家) 的玩家索引號)] 的面向角度) + Dturn[((觸發玩家) 的玩家索引號)]) 度的位移處)
├—單位 - 對 Umove[((觸發玩家) 的玩家索引號)] 發布 移動 命令到目標點: Pmove[((觸發玩家) 的玩家索引號)]
└—點 - 清除 Pmove[((觸發玩家) 的玩家索引號)]
事件「按下 Up鍵」在初始已經被注冊了所以不必寫,Bforward同理是用來判定是否持續移動的。可以看到這里出現了移動命令,向前移動20距離,由於計時器循環時間是0.03,因此換算成1秒的距離為666,顯然單位速度最高的522是遠不能達到的,但是要注意的是「20」這個移動距離太大則會發生詭異的粘觸碰的現象,太小則不能符合522的最高速,所以按我的設置成20就夠用了,觸發最後記得排泄點,當然坐標系就不必了,但是這個在此教程暫時不介紹。
=======================================================================
Go Forward
┣━事件
┃ └—時間 - 每當游戲逝去 0.03 秒
┣━條件
┗━動作
└—循環動作[循環整數A]從 1 到 Nplayer, 運行 (Loop - 動作)
Loop - 動作
如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
If - 條件
Bforward[((玩家 (循環整數A)) 的玩家索引號)] 等於 TRUE
Then - 動作
Set Pmove[((玩家 (循環整數A)) 的玩家索引號)] = (從 (Umove[((玩家 (循環整數A)) 的玩家索引號)] 的位置) 開始,距離 30.00 ,方向為 ((Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度) + Dturn[((玩家 (循環整數A)) 的玩家索引號)]) 度的位移處)
單位 - 對 Umove[((玩家 (循環整數A)) 的玩家索引號)] 發布 移動 命令到目標點: Pmove[((玩家 (循環整數A)) 的玩家索引號)]
點 - 清除 Pmove[((玩家 (循環整數A)) 的玩家索引號)]
Else - 動作
這個是持續移動的觸發,與按下UP鍵不同的是,「方向為 ((Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度) + Dturn[((玩家 (循環整數A)) 的玩家索引號)]) 度」,極坐標的角度使用了算術運算,讓命令點發生偏轉,這就達到了移動中轉彎的功能,Dturn是隨著玩家按鍵不同而改變數值的,看回上面的觸發就可以看到他們的聯系,記得排泄,注意這里是有事件的。
=======================================================================
Release Forward
┣━事件
┣━條件
┗━動作
└—Set Bforward[((觸發玩家) 的玩家索引號)] = FALSE
單純的「釋放 Up鍵」觸發,就是那麼簡單
=======================================================================
2010-11-02 17:46 回復
灥元素
najimo
1715位粉絲
知名人士10 8樓
=======================================================================
Press Back
┣━事件
┣━條件
┗━動作
└—單位 - 對 Umove[((觸發玩家) 的玩家索引號)] 發布 人族步兵 - 激活防禦 命令
「按下 Down鍵」事件,頂盾~當然了你可以設置頂盾期間無法移動,那麼只要把Bforward設置為False就可以了。
=======================================================================
Release Back
┣━事件
┣━條件
┗━動作
└—單位 - 對 Umove[((觸發玩家) 的玩家索引號)] 發布 人族步兵 - 解除防禦 命令
「釋放 Down鍵」事件,解除防禦狀態。
=======================================================================
2010-11-02 17:46 回復
灥元素
najimo
1715位粉絲
知名人士10 9樓
=======================================================================
鍵盤部分到此結束,好的鍵盤當然少不了好的移動鏡頭,現在先來看一個最基本的不隨單位面向角度改變鏡頭方向的鏡頭觸發:
basic camera
┣━事件
┃ └—時間 - Tmove[0] 到期
┣━條件
┗━動作
└—循環動作[循環整數A]從 1 到 Nplayer, 運行 (Loop - 動作)
Loop - 動作
如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
If - 條件
Bforward[((玩家 (循環整數A)) 的玩家索引號)] 等於 FALSE
Then - 動作
單位 - 對 Umove[((玩家 (循環整數A)) 的玩家索引號)] 發布 停止 命令
Else - 動作
Set Pmove[((玩家 (循環整數A)) 的玩家索引號)] = (從 (Umove[((玩家 (循環整數A)) 的玩家索引號)] 的位置) 開始,距離 100.00 ,方向為 (Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度) 度的位移處)
鏡頭 - 平移 (玩家 (循環整數A)) 的鏡頭到 Pmove[((玩家 (循環整數A)) 的玩家索引號)],持續 0.30 秒
鏡頭 - 設置 (玩家 (循環整數A)) 的鏡頭屬性 X軸旋轉角度(水平角度) 為 320.00,持續 0.00 秒
鏡頭 - 設置 (玩家 (循環整數A)) 的鏡頭屬性 鏡頭距離(距離到目標) 為 800.00,持續 0.00 秒
鏡頭 - 設置 (玩家 (循環整數A)) 的鏡頭屬性 遠景截斷距離(遠景剪裁) 為 5000.00,持續 0.00 秒
鏡頭 - 設置 (玩家 (循環整數A)) 的鏡頭屬性 鏡頭區域(觀察區域) 為 100.00,持續 0.00 秒
點 - 清除 Pmove[((玩家 (循環整數A)) 的玩家索引號)]
這個鏡頭系統是配合命令法鍵盤移動的,注意觸發里如果Bforward等於False則發布停止命令,這個動作是用來防止玩家滑鼠控制,就是因為這個動作使得這種鍵盤移動單位的施法前搖必須為0,否則放不出技能,至於動畫,這里有個要點就是:「動畫並不受停止命令影響」,運用觸發-動畫里的動作依然可以正常播放單位動作,這就可以用來模擬一些東西了,比如可以用來做連續技什麼的。至於眾多鏡頭屬性,請參照http://tieba..com/f?kz=772228242
防止玩家改變視角而已。注意這里的Pmove的用處是鏡頭鎖定點,這里我設置為單位的前100距離的地方,目的就是讓單位的面向方向的視野更大一些,方便玩家操作。
=======================================================================
2010-11-02 17:47 回復
灥元素
najimo
1715位粉絲
知名人士10 10樓
=======================================================================
接下來就是介紹跟隨單位面向角度旋轉的鏡頭
首先新建一個布爾變數Bcam[12],並且上面這個默認鏡頭觸發basic camera要保留,然後找一個可開關的技能作為鏡頭切換按鈕,比如我找的是獻祭。
camera open
┣━事件
┃ └—單位 - 任意單位 發布無目標指令
┣━條件
┃ └—(發布的命令ID) 等於 (轉換 immolation 為命令ID)
┗━動作
└—Set Bcam[(((觸發單位) 的所有者) 的玩家索引號)] = TRUE
切換鏡頭的起始觸發。
=======================================================================
camera run
┣━事件
┃ └—時間 - Tmove[3] 到期
┣━條件
┗━動作
└—循環動作[循環整數A]從 1 到 Nplayer, 運行 (Loop - 動作)
Loop - 動作
如果(所有的條件成立) 則運行 (Then - 動作) 否則運行 (Else - 運作)
If - 條件
Bcam[((玩家 (循環整數A)) 的玩家索引號)] 等於 TRUE
Then - 動作
鏡頭 - 設置 (玩家 (循環整數A)) 的鏡頭屬性 Z軸旋轉角度(旋轉) 為 (Umove[((玩家 (循環整數A)) 的玩家索引號)] 的面向角度),持續 0.50 秒
Else - 動作
改變鏡頭面向角度的循環觸發。
=======================================================================
camera false
┣━事件
┃ └—單位 - 任意單位 發布無目標指令
┣━條件
┃ └—(發布的命令ID) 等於 (轉換 unimmolation 為命令ID)
┗━動作
└—Set Bcam[(((觸發單位) 的所有者) 的玩家索引號)] = FALSE
回到默認的鏡頭。
Ⅹ 有沒有8個方向鍵的鍵盤
你好樓主沒有8個方向鍵的鍵盤哦,只有手柄才有。