基于51單片機簡易電子琴設計
一、引言
隨著社會的發展進步,音樂逐漸成為我們生活中很重要的一部分,有人曾說喜歡音樂的人不會向惡。我們都會抽空欣賞世界名曲,作為對精神的洗禮。因此,我設計的是一個基于單片機的簡易電子琴。
單片機算術運算功能強,軟件編程靈活、自由度大,可用軟件編程實現各種算法和邏輯控制。由于其功耗低、體積較小、技術成熟和成本低等優點,在各個領域應用廣泛。而且抗干擾性能好。
電子琴是現代電子科技與音樂結合的產物,單片機具有強大的控制功能和靈活的編程實現特性,已溶入現代人的生活中。我設計的電子琴是以AT89C51單片機為核心控制元件。電子琴使用簡單,深受廣大熱愛音樂者喜愛。
二、項目概述
此設計鍵盤用于彈奏音樂,八個按鍵8種音符。單片機通過輸出各種電脈沖信號開驅動控制各部分正常工作。
單片機要產生音頻脈沖,主要處理過程是在CPU中完成的,CPU會隨時對音符輸入信號進行讀取數據的操作。在讀取了相應的寄存器的值后,CPU將讀取的值進行處理,再通過I/O口把音樂通過揚聲器播放出來。
據設計要求,本系統主要由控制器模塊和輸入模塊構成。
2.1、主要設計內容
發生電路是這次設計電路中最重要的組成部分,他承載著把單片機所產生的聲音信號放大并輸出的重要作用,而我的設計中的發聲電路主要是由兩個S8550組成。S8550是一種小功率的放大管,屬于NPN型號三極管,而對三極管引腳的判斷有以下方法。
判斷三極管的基極。對于NPN型號的三極管,用黑表筆接某一個電極,紅表筆分別接另外兩個電極,若測量電阻值兩個都小,調換表筆后被測電阻值都較大,則可判斷第一次測量中黑表筆所接的是基極;如果測量值一大一小,相差很大,則第一次測量中黑表筆接的不是基極,應該更換其他電極重測。
測量三極管發射極e和集電極c。三極管基極確定后,通過交換表筆,兩次測量e,c極間的電阻,如果兩次測量結果不相等,其中測得電阻值較小的一次為紅表筆的是e極黑表筆接的是c極。對于PNP型號的三極管,方法與NPN的相似,只是紅黑表筆的作用相反,在測量e,c極間電阻時要注意,由于三極管的V(BR)CEO很小,很容易將發射結擊穿。
當我們三極管的管腳判斷結束以后,我們就可以用兩個三極管構成一個達林頓結構。首先當單片機P1.0口輸出一個高電平,由兩個三極管構成的達林頓能導通,導通后又能對電流又一定的放大作用,這樣傳到揚聲器時信號能讓我們聽的更清楚。

圖1

圖2
鍵盤用于彈奏音樂,八個按鍵8種音符。單片機通過輸出各種電脈沖信號開驅動控制各部分正常工作。
系統工作過程:單片機要產生音頻脈沖,主要處理過程是在CPU中完成的,CPU會隨時對音符輸入信號進行讀取數據的操作。在讀取了相應的寄存器的值后,CPU將讀取的值進行處理,再通過I/O口把音樂通過揚聲器播放出來。
2.2、實施計劃
2018.7.5-2018.7.6 | 方案設計、修改與仿真 |
2018.7.6-2018.7.7 | 上機調試 |
2018.7.7-2018.7.8 | 論文撰寫、修改并完成 |
2018.7.9-2018.7.12 | 論文答辯 |
表1
2.3原理圖



圖3原理圖 pcb圖 焊接圖
三、設計方案、方法及技術路線
3.1系統基本設計思路
此設計是用揚聲器播放彈奏的曲子。電路包括:鍵盤、單片機以及單片機周邊最小系統和晶振電路。
3.2各部分說明
(1)鍵盤用于彈奏音樂,八個按鍵8種音符。
(2)單片機通過輸出各種電脈沖信號驅動控制各部分正常工作。
3.3系統工作過程
單片機要產生音頻脈沖,主要處理過程是在CPU中完成的,CPU會隨時對音符輸入信號進行讀取數據的操作。在讀取了相應的寄存器的值后,CPU將讀取的值進行處理,再通過I/O口把音樂通過揚聲器播放出來。
3.4單元電路方案論證
根據設計要求,本系統主要由控制器模塊和輸入模塊構成。為較好的實現各模塊的功能,我們分別設計了以下幾種方案并分別進行了論證。
3.5控制器模塊
方案1:采用凌陽系列單片機為系統的控制器
凌陽系列單片機可以實現各種復雜的邏輯功能,模塊大,密度高,它將所有器件集成在一塊芯片上,減少了體積,提高了穩定性。凌陽系列單片機提高了系統的處理速度,適合作為大規模實時系統的控制核心。
方案2:采用51系列作為系統控制器
單片機算術運算功能強,軟件編程靈活、自由度大,可用軟件編程實現各種算法和邏輯控制。由于其功耗低、體積較小、技術成熟和成本低等優點,在各個領域應用廣泛。而且抗干擾性能好。
因51單片機價格比凌陽系列低得多,且本設計不需要很高的處理速度,從經濟和方便使用角度考慮,本設計選擇了方案2。
3.6發聲模塊
發聲模塊是本設計的最主要的部分。
基本方案:發生電路是這次設計電路中最重要的組成部分,他承載著把單片機所產生的聲音信號放大并輸出的重要作用,而我的設計中的發聲電路主要是由兩個S8050三極管驅動組成。S8050三極管是一種小功率的放大管,屬于NPN型號三極管,而對三極管引腳的判斷有以下方法。
1.判斷三極管的基極。對于NPN型號的三極管,用黑表筆接某一個電極,紅表筆分別接另外兩個電極,若測量電阻值兩個都小,調換表筆后被測電阻值都較大,則可判斷第一次測量中黑表筆所接的是基極;如果測量值一大一小,相差很大,則第一次測量中黑表筆接的不是基極,應該更換其他電極重測。
2.測量三極管發射極e和集電極c。三極管基極確定后,通過交換表筆,兩次測量e,c極間的電阻,如果兩次測量結果不相等,其中測得電阻值較小的一次為紅表筆的是e極黑表筆接的是c極。對于PNP型號的三極管,方法與NPN的相似,只是紅黑表筆的作用相反,在測量e,c極間電阻時要注意,由于三極管的V(BR)CEO很小,很容易將發射結擊穿。
當我們三極管的管腳判斷結束以后,我們就可以用兩個三極管構成一個達林頓結構。首先當單片機P1.0口輸出一個高電平,由兩個三極管構成的達林頓成能導通,導通后又能對電流又一定的放大作用,這樣傳到揚聲器時信號能讓我們聽的更清楚。

圖4聲音驅動電路
3.7編程軟件模塊
方案1:采用匯編語言編程
匯編語言指令是用一些具有相應含義的助憶符來表達的,所以,它要比機器語言容易掌握和運用,但另一方面,它要直接使用CPU的資源,相對高級程序設計語言來說,它又顯得難掌握。
方案2:采用C語言編程
C語言與其他高級語言相比,具有運算符的豐富性、語法表述的靈活性、對軟硬件操作的兼容性、輸入輸出方式的新穎性等主要特征.深入分析研究這些特征,可以加深對C語言的認識;正確應用這些特征,可以靈活高效地解決各種實際問題.
因為我在大學期間對匯編語言沒有深入的了解,而且在編程時一直用C語言,所以我選擇了方案2。
3.8最終方案
經過反復論證,最終確定了如下方案:
(1)采用STC89C51單片機作為主控制器。
(2)采用達林頓效應使音樂信號放大。
(3)采用C語言編程。
STC89C51是一種低功耗、高性能CMOS8位微控制器,具有8K在系統可編程Flash存儲器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得STC89C51為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。具有以下標準功能:8k字節Flash,512字節RAM,32位I/O口線,看門狗定時器,內置4KBEEPROM,MAX810復位電路,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口。另外STC89X51可降至0Hz靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35Mhz,6T/12T可選。

圖5STC89C51單片機引腳圖
單片機是美國STC公司最新推出的一種新型51內核的單片機。片內含有Flash程序存儲器、SRAM、UART、SPI、PWM等模塊。
STC89C51主要功能、性能參數如下
(1)內置標準51內核,機器周期:增強型為6時鐘,普通型為12時鐘;
(2)工作頻率范圍:0~40MHZ,相當于普通8051的0~80MHZ;
(3)STC89C51RC對應Flash空間:4KB;
(4)內部存儲器(RAM):512B;
(5)定時器\計數器:3個16位;
(6)通用異步通信口(UART)1個;
(7)中斷源:8個;
(8)有ISP(在系統可編程)\IAP(在應用可編程),無需專用編程器\仿真器;
(9)通用I\O口:32\36個;
(10)工作電壓:3.8~5.5V;
(11)外形封裝:40腳PDIP、44腳PLCC和PQFP等。
STC89C51單片機的引腳說明:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
P3.0RXD(串行輸入口)
P3.1TXD(串行輸出口)
P3.2/INT0(外部中斷0)
P3.3/INT1(外部中斷1)
P3.4T0(記時器0外部輸入)
P3.5T1(記時器1外部輸入)
P3.6/WR(外部數據存儲器寫選通)
P3.7/RD(外部數據存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。
I/O口作為輸入口時有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時實際上并不從外部讀入數據,而是把端口鎖存器的內容讀入到內部總線,經過某種運算或變換后再寫回到端口鎖存器。只有讀端口時才真正地把外部的數據讀入到內部總線。上面圖中的兩個三角形表示的就是輸入緩沖器CPU將根據不同的指令分別發出讀端口或讀引腳信號以完成不同的操作。這是由硬件自動完成的,不需要我們操心,1然后再實行讀引腳操作,否則就可能讀入出錯,為什么看上面的圖,如果不對端口置1端口鎖存器原來的狀態有可能為0Q端為0Q^為1加到場效應管柵極的信號為1,該場效應管就導通對地呈現低阻抗,此時即使引腳上輸入的信號為1,也會因端口的低阻抗而使信號變低使得外加的1信號讀入后不一定是1。若先執行置1操作,則可以使場效應管截止引腳信號直接加到三態緩沖器中實現正確的讀入,由于在輸入操作時還必須附加一個準備動作,所以這類I/O口被稱為準雙向口。89C51的P0/P1/P2/P3口作為輸入時都是準雙向口。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
STC89C51單片機最小系統:
最小系統包括單片機及其所需的必要的電源、時鐘、復位等部件,能使單片機始終處于正常的運行狀態。電源、時鐘等電路是使單片機能運行的必備條件,可以將最小系統作為應用系統的核心部分,通過對其進行存儲器擴展、A/D擴展等,使單片機完成較復雜的功能。
STC89C51是片內有ROM/EPROM的單片機,因此,這種芯片構成的最小系統簡單﹑可靠。用STC89C52單片機構成最小應用系統時,只要將單片機接上時鐘電路和復位電路即可,結構如圖2-3所示,由于集成度的限制,最小應用系統只能用作一些小型的控制單元。


圖6單片機最小系統原理框圖
中斷技術主要用于實時監測與控制,要求單片機能及時地響應中斷請求源提出的服務請求,并作出快速響應、及時處理。這是由片內的中斷系統來實現的。當中斷請求源發出中斷請求時,如果中斷請求被允許,單片機暫時中止當前正在執行的主程序,轉到中斷服務處理程序處理中斷服務請求。中斷服務處理程序處理完中斷服務請求后,再回到原來被中止的程序之處(斷點),繼續執行被中斷的主程序。圖6為整個中斷響應和處理過程。

圖7中斷響應和處理過程
如果單片機沒有中斷系統,單片機的大量時間可能會浪費在查詢是否有服務請求發生的定時查詢操作上。采用中斷技術完全消除了單片機在查詢方式中的等待現象,大大地提高了單片機的工作效率和實時性。
四、電路系統設計
4.1硬件電路設計系統總體框圖
本設計采用STC89C51單片機作為主控制器,外部加上三極管驅動放音設備。系統總體框圖如下:
圖8系統總體框圖
4.2最小系統設計
最小系統包括單片機及其所需的必要的電源、時鐘、復位等部件,能使單片機始終處于正常的運行狀態。電源、時鐘等電路是使單片機能運行的必備條件,可以將最小系統作為應用系統的核心部分,通過對其進行存儲器擴展、A/D擴展等,使單片機完成較復雜的功能。
4.3時鐘電路
STC89C51內部有一個用于構成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。內部時鐘在此不做詳細介紹。外部方式的時鐘電路如圖3所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率在12MHz或11.0592MHZ晶振。

圖9 89c51內部時鐘電路
4.4復位電路
當在89C51單片機的RST引腳引入高電平并保持2個機器周期時,單片機內部就執行復位操作(若該引腳持續保持高電平,單片機就處于循環復位狀態)。
復位電路通常采用上電自動復位和按鈕復位兩種方式。
最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充放電來實現的。只要Vcc的上升時間不超過1ms,就可以實現自動上電復位。
除了上電復位外,有時還需要按鍵手動復位。本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過RST(9)端與電源Vcc接通而實現的。按鍵手動復位電路見圖4。時鐘頻率用11.0592MHZ時C取10uF,R取10kΩ。

圖10 89C51復位電路
4.5按鍵控制模塊
電子琴設有8個按鍵,8個按鍵分別代表8個音符,包括中音段的全部音符,通過軟硬件設計。
如下圖:

圖11按鍵模塊
4.6播放模塊
播放模塊是由2個三極管構成,三級管將信號放大,然后傳輸到喇叭,喇叭它幾乎不存在噪聲,音響效果較好。
下圖是該模塊電路:

圖12播放模塊
三極管是電流放大器件,有三個極,分別叫做集電極C,基極B,發射極E。分成NPN和PNP兩種。我們僅以NPN三極管的共發射極放大電路為例來說明一下三極管放大電路的基本原理。
(1)電流放大
下面的分析僅對于NPN型硅三極管。如上圖所示,我們把從基極B流至發射極E的電流叫做基極電流Ib;把從集電極C流至發射極E的電流叫做集電極電流Ic。這兩個電流的方向都是流出發射極的,所以發射極E上就用了一個箭頭來表示電流的方向。三極管的放大作用就是:集電極電流受基極電流的控制(假設電源能夠提供給集電極足夠大的電流的話),并且基極電流很小的變化,會引起集電極電流很大的變化,且變化滿足一定的比例關系:集電極電流的變化量是基極電流變化量的β倍,即電流變化被放大了β倍,所以我們把β叫做三極管的放大倍數(β一般遠大于1,例如幾十,幾百)。如果我們將一個變化的小信號加到基極跟發射極之間,這就會引起基極電流Ib的變化,Ib的變化被放大后,導致了Ic很大的變化。如果集電極電流Ic是流過一個電阻R的,那么根據電壓計算公式U=R*I可以算得,這電阻上電壓就會發生很大的變化。我們將這個電阻上的電壓取出來,就得到了放大后的電壓信號了。
(2)偏置電路
三極管在實際的放大電路中使用時,還需要加合適的偏置電路。這有幾個原因。首先是由于三極管BE結的非線性(相當于一個二極管),基極電流必須在輸入電壓大到一定程度后才能產生(對于硅管,常取0.7V)。當基極與發射極之間的電壓小于0.7V時,基極電流就可以認為是0。但實際中要放大的信號往往遠比0.7V要小,如果不加偏置的話,這么小的信號就不足以引起基極電流的改變(因為小于0.7V時,基極電流都是0)。如果我們事先在三極管的基極上加上一個合適的電流(叫做偏置電流,上圖中那個電阻Rb就是用來提供這個電流的,所以它被叫做基極偏置電阻),那么當一個小信號跟這個偏置電流疊加在一起時,小信號就會導致基極電流的變化,而基極電流的變化,就會被放大并在集電極上輸出。另一個原因就是輸出信號范圍的要求,如果沒有加偏置,那么只有對那些增加的信號放大,而對減小的信號無效(因為沒有偏置時集電極電流為0,不能再減小了)。而加上偏置,事先讓集電極有一定的電流,當輸入的基極電流變小時,集電極電流就可以減小;當輸入的基極電流增大時,集電極電流就增大。這樣減小的信號和增大的信號都可以被放大了。
(3)開關作用
下面說說三極管的飽和情況。像上面那樣的圖,因為受到電阻Rc的限制(Rc是固定值,那么最大電流為U/Rc,其中U為電源電壓),集電極電流是不能無限增加下去的。當基極電流的增大,不能使集電極電流繼續增大時,三極管就進入了飽和狀態。一般判斷三極管是否飽和的準則是:Ib*β〉Ic。進入飽和狀態之后,三極管的集電極跟發射極之間的電壓將很小,可以理解為一個開關閉合了。這樣我們就可以拿三極管來當作開關使用:當基極電流為0時,三極管集電極電流為0(這叫做三極管截止),相當于開關斷開;當基極電流很大,以至于三極管飽和時,相當于開關閉合。如果三極管主要工作在截止和飽和狀態,那么這樣的三極管我們一般把它叫做開關管。

圖13三極管引腳介紹
4.7單片機發聲概述
一般來說,單片機不像其他專業樂器那樣能奏出多種音色的聲音,即不包含相應幅度的諧振頻率。單片機演奏的音樂基本都是單音頻率。因此單片機演奏音樂比較簡單,只需能清楚“音調”和“節拍”兩個概念即可。音調表示一個音符唱多高的頻率。節拍表示一個音符唱多長的時間。
知道了一個音符的頻率后,便可以讓單片機發出相應頻率的振蕩信號,從而產生相應的音符聲音。通過單片機的定時器進行定時中斷,在中斷服務程序中將單片機上完結單片機I/O口來回置高電平或者是低電平的,從而讓揚聲器發出聲音。通過節拍計算出每個音符所需要的時間,采用循環延時的方法來實現控制一個音符唱多長的時間,從而構成一首完整的音樂。
音調主要由聲音的頻率決定。對一定強度的純音,音調隨頻率的升降而升降;對一定頻率的純音、低頻純音的音調隨響度增加而下降,高頻純音的音調卻隨響度增加而上升。
音調的高低還與發聲體的結構有關,因為發聲體的結構影響了聲音的頻率。大體上,2000赫茲以下的低頻純音的音調隨響度的增加而下降,3000赫茲以上高頻純音的音調隨響度的增加而上升。
例如,在音樂中常常把中音C上方的A音定位標準高音,其頻率F=440HZ,其余音均與其進行比較。F1和F2為兩個音符,如果這兩個音符的頻率相差一倍時,也即F2=2*F1時,則稱F2比F1高一個頻程。
在音樂中音符1與音符2,音符2與音符3……等等之間正好相差一個倍頻程,在音樂學中稱它相差一個八度音。在一個八度內,有12個半音。由于人耳的聽覺效果,這12個音階的分度基本上是以對數的關系來劃分的。只要知道12個音符的音高,也就是其基本頻率,就可以根據音符之間的倍頻關系得到其他音符的基本音調頻率[3]。
以標準高音A的頻率F=440HZ,其對應的周期為:T=1/F=1/440=2272us
因此需要在單片機I/O端口輸出周期為T=2272us的方波脈沖,也就是t=T/2=2272/2=1136us
也就是說,單片機上定時器的中斷出發時間為1136us。如果單片機采用定時器為工作方式1,它以振蕩器的十二分頻信號為計數脈沖。設外接晶振的振蕩器頻率為f,則定時器的預置初始值有以下公式來確定:
Temp=65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC)
TH=Temp/256
TL=Temp%256
4.8編程軟件KeilC51
KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用C來開發,體會更加深刻。KeilC51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。下面詳細介紹KeilC51開發系統各部分功能和使用。Keil_c軟件界面如圖14:

圖14 Keil_c軟件界面
該軟件是一款集編程和仿真于一體的軟件,它支持匯編、C語言及二者的混合編程。
4.9畫圖軟件Protel99SE
Protel99SE是PORTEL公司在80年代末推出的EDA軟件。Protel99SE是應用于Windows9X/2000/NT操作系統下的EDA設計軟件,采用設計庫管理模式,可以網設計,具有很強的數據交換能力和開放性及3D模擬功能,是一個32位的設計軟件,可以完成電路原理圖設計,印制電路板設計和可編程邏輯器件設計等工作,可以設計32個信號層,16個電源--地層和16個機加工層。
Protel99SE軟件的特點:
可生成30多種格式的電氣連接網絡表;
強大的全局編輯功能;
在原理圖中選擇一級器件,PCB中同樣的器件也將被選中;
同時運行原理圖和PCB,在打開的原理圖和PCB圖間允許雙向交叉查找元器件、引腳、網絡
既可以進行正向注釋元器件標號(由原理圖到PCB),也可以進行反向注釋(由PCB到原理圖),以保持電氣原理圖和PCB在設計上的一致性;
滿足國際化設計要求(包括國標標題欄輸出,GB4728國標庫);*方便易用的數模混合仿真(兼容SPICE3f5);
支持用CUPL語言和原理圖設計PLD,生成標準的JED下載文件;*PCB可設計32個信號層,16個電源-地層和16個機加工層;
強大的“規則驅動”設計環境,符合在線的和批處理的設計規則檢查;
智能覆銅功能,覆鈾可以自動重鋪;
提供大量的工業化標準電路板做為設計模版;
放置漢字功能;
可以輸入和輸出DXF、DWG格式文件,實現和AutoCAD等軟件的數據交換;
智能封裝導航(對于建立復雜的PGA、BGA封裝很有用);
方便的打印預覽功能,不用修改PCB文件就可以直接控制打印結果;
獨特的3D顯示可以在制板之前看到裝配事物的效果;
強大的CAM處理使您輕松實現輸出光繪文件、材料清單、鉆孔文件、貼片機文件、測試點報告等;
經過充分驗證的傳輸線特性和仿真精確計算的算法,信號完整性分析直接從PCB啟動;
反射和串擾仿真的波形顯示結果與便利的測量工具相結合;
Protel99SE的工作界面是一種標準的Windows界面,如圖所示,包括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態欄、對象選擇按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形編輯窗口。Protel99SE軟件界面如圖15。

圖15 Prtel99SE軟件界面
五、調試結果分析
這是本設計較為困難的一部分,需要經過反反復復的調試,才能達到理想中的效果,以下將分文硬件與軟件兩部分介紹此次調試的過程,以及調試過程中遇到的困難和解決辦法。
程序主要取自一個音樂播放程序,但沒有功率放大部分,更沒有按鈕部分。在此基礎之上,首先是對其進行一定的修改,在保留原來音調產生程序的前提下,進行主程序的設計,首先對所有端口進行初始化操作,接著進入不斷循環部分,直到按鍵按下,進入防止抖動程序,如果不是抖動,則進入音樂播放程序,直到按鍵松開,再次進入等待按鍵按下部分。
在keil軟件經不斷改進后,生成hex文件,再用開發板燒入程序,并通過stc-isp燒錄軟件燒錄后,最終得以完成。
程序在開始之初是用簡單的中斷延遲來實現,對于編歌曲來講需要很大的工作量,在網上查找大量的資料之后,找到了一個做音樂播放器的程序,他也是基于中斷延遲來實現播放功能,但是他對于歌曲編輯的靈活性,有很大的發展空間,所以我就采用了他的部分程序。
所以,主要考慮到的是如何在播放完一個音節后,進入在此等待狀態。對于該段程序中的主要保護手段,就是按鈕防治抖動部分,因此在等待按鈕按下后,采用一小段的延遲程序,再次判定是否有按鈕的按下,再進入播放程序。
1)元器件的裝插焊接應遵循先小后大,先輕后重,先低后高,先里后外的原則,這樣有利于裝配順利進行。
2)在瓷介電容、電解電容及三極管等元件立式安裝時,引線不能太長,否則降低元器件的穩定性;但也不能過短,以免焊接時因過熱損壞元器件。一般要求距離電路板面2mm,并且要注意電解電容的正負極性,不能插錯。
3)集成電路的焊接,在焊接時,首先要弄清引線腳的排列順序,并與線路板上的焊盤引腳對準,核對無誤后,先固定IC,然后再重復檢查,確認后再焊接其余腳位。由于IC引線腳較密,焊接完后要檢查有無虛焊,連焊等現象,確保焊接質量。
4)焊錫之前應該先插上電烙鐵的插頭,給電烙鐵加熱。
5)焊接時,焊錫與電路板、電烙鐵與電路板的夾角最好成45度,這樣焊錫與電烙鐵夾角成90度。
6)焊接時,焊錫與電烙鐵接觸時間不要太長,以免焊錫過多或是造成漏錫;也不要過短,以免造成虛焊。
7)元件的腿盡量要直,而且不要伸出太長,以1毫米為好,多余的可以剪掉。
8)焊完時,焊錫最好呈圓滑的圓錐狀,而且還要有金屬光澤
9)設計裝上3節5號電池,確保電壓在4.5v~5.5v之間,首先檢測電路板有無焊接短路,然后通電。確保萬無一失!
六、總結
Protel使用常見問題
1、原理圖常見錯誤:
(1)ERC報告管腳沒有接入信號:
a、創建封裝時給管腳定義了I/O屬性;
b、創建元件或放置元件時修改了不一致的grid屬性,管腳與線沒有連上;
c、創建元件時pin方向反向,必須非pinname端連線。
(2)元件跑到圖紙界外:沒有在元件庫圖表紙中心創建元件。
(3)創建的工程文件網絡表只能部分調入pcb:生成netlist時沒有選擇為global。
(4)當使用自己創建的多部分組成的元件時,千萬不要使用annotate.
2、PCB中常見錯誤:
(1)網絡載入時報告NODE沒有找到:
a、原理圖中的元件使用了pcb庫中沒有的封裝;
b、原理圖中的元件使用了pcb庫中名稱不一致的封裝;
c、原理圖中的元件使用了pcb庫中pinnumber不一致的封裝。如三極管:sch中pinnumber為e,b,c,而pcb中為1,2,3。
(2)打印時總是不能打印到一頁紙上:
a、創建pcb庫時沒有在原點;
b、多次移動和旋轉了元件,pcb板界外有隱藏的字符。選擇顯示所有隱藏的字符,縮小pcb,然后移動字符到邊界內。
(3)DRC報告網絡被分成幾個部分:
表示這個網絡沒有連通,看報告文件,使用選擇CONNECTEDCOPPER查找。
另外提醒朋友盡量使用WIN2000,減少藍屏的機會;多幾次導出文件,做成新的DDB文件,減少文件尺寸。如果作較復雜得設計,盡量不要使用自動布線。
在當今高新技術產業迅猛發展的時期,頻率計在計算機、通訊設備、音頻視頻等科研生產領域是不可缺少的測量儀器。隨著數字電子技術的發展,單片機成為一項越來越普遍的東西,正受到越來越多的關注,本次設計以單片機為核心,設計合理,效果良好。
在本次設計的過程中,我深刻體會到了自己在專業知識的掌握上的不足,特別是在程序編寫上,遇到了許多問題,這使我不得不認真的去學習程序編寫,去深入了解程序編寫的原理。由于本次設計涉及的知識面較廣,需要經常通過網上查詢資料,隨時和老師、同學進行交流,受益菲淺,并在老師的指導下,彌補了自己在許多知識面上的不足。這次設計更讓我認識到了查閱資料自學的重要性,在今后的學習中,應該多看一些專業方面的書籍,豐富自己的知識,提高自己的專業水平,相信這一定會對以后走上工作崗位的我有很大的幫助。
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |