![簡單實例助你快速掌握PROTEUS的用法_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/1/9ea11c7b-dec4-4f70-acaa-f92249cf8b48/9ea11c7b-dec4-4f70-acaa-f92249cf8b481.gif)
![簡單實例助你快速掌握PROTEUS的用法_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/1/9ea11c7b-dec4-4f70-acaa-f92249cf8b48/9ea11c7b-dec4-4f70-acaa-f92249cf8b482.gif)
![簡單實例助你快速掌握PROTEUS的用法_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/1/9ea11c7b-dec4-4f70-acaa-f92249cf8b48/9ea11c7b-dec4-4f70-acaa-f92249cf8b483.gif)
![簡單實例助你快速掌握PROTEUS的用法_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/1/9ea11c7b-dec4-4f70-acaa-f92249cf8b48/9ea11c7b-dec4-4f70-acaa-f92249cf8b484.gif)
![簡單實例助你快速掌握PROTEUS的用法_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/1/9ea11c7b-dec4-4f70-acaa-f92249cf8b48/9ea11c7b-dec4-4f70-acaa-f92249cf8b485.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、簡單實例助你快速掌握proteus的用法雙擊自動滾屏發(fā)布者:ebnar 發(fā)布時間:2011-12-30 閱讀:794次 【字體:大 中 小】子情境1:簡單實例助你快速掌握proteus的用法為了更快掌握proteus設計與仿真操作,我們先從一簡單實例入手帶你入門。讓我們首先來熟悉一下仿真軟件的主界面:圖51 仿真軟件的主界面運行protues的isis模塊,進入仿真軟件的主界面,如圖51所示,區(qū)域為菜單及工具欄,區(qū)域為元器件預覽區(qū),區(qū)域為對象選擇器窗口,區(qū)域為編輯窗口,區(qū)域為繪圖工具欄,區(qū)域為元器件調(diào)整工具欄,區(qū)域為運行工具條。proteus是一種集單片機仿真和spice分析于一身的仿真軟件。
2、其功能非常強大,不僅能仿真模擬電路、數(shù)字電路以及模擬數(shù)字混合電路,更重要的是可以仿真51系列、avr、pic等常用主流單片機。protues提供了豐富的資源:(1)proteus擁有的元器件資源:proteus可提供30多種元件庫,超過8000種模擬、數(shù)字元器件。(2)proteus可提供的仿真儀表資源 :仿真儀器儀表的數(shù)量、類型和質(zhì)量是衡量仿真實驗室是否合格的一個關鍵因素。proteus可提供常用的示波器(本文的實例中示波器被用來觀察產(chǎn)生的波形)、邏輯分析儀、虛擬終端、spi調(diào)試器、i2c調(diào)試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。以下簡要羅列了proteus中常用元器件和仿
3、真儀表中英文對照表:7407 驅(qū)動門 1n914 二極管 74ls00 與非門 74ls04 非門74ls08 與門 74ls390 ttl 雙十進制計數(shù)器 7seg 4針bcd-led 輸出從0-9 對應于4根線的bcd碼7seg 3-8譯碼器電路bcd-7seg轉(zhuǎn)換電路 and 與門 battery 電池/電池組 bus 總線 cap 電容 capacitor 電容器
4、60; clock 時鐘信號源 crystal 晶振 fuse 保險絲 ground 地 lamp 燈 led-red 紅色發(fā)光二極管 lm016l 2行16列液晶可顯示2行16列英文字符,有8位數(shù)據(jù)總線d0-d7,rs,r/w,en三個控制端口(共14線),工作電壓為5v。logic analyser 邏輯分析器 logicprobe 邏輯探針 logicprobebig 邏輯探針 用來顯示連接位置的邏輯狀態(tài)
5、logicstate 邏輯狀態(tài) 用鼠標點擊,可改變該方框連接位置的邏輯狀態(tài)logictoggle 邏輯觸發(fā) motor 馬達 or 或門 pot-lin 三引線可變電阻器power 電源res 電阻 resistor 電阻器 switch 按鈕 手動按一下一個狀態(tài)voltmeter 伏特計 voltmeter-milli mv伏特計vterm 串行口終端 electromechanical 電機 inductors 變壓器 laplace pri
6、mitives 拉普拉斯變換miscellaneous 各種器件 aerial-天線;atahdd;atmega64;battery;cell;crystal-晶振;fuse;meter-儀表;optoelectronics 各種發(fā)光器件 發(fā)光二極管,led,液晶等等resistors 各種電阻 simulator primitives 常用的器件 speakers & sounders 揚聲器switches & relays 開關,繼電器,鍵盤transistors 晶體管(三極管,場效應管)ttl 74 s
7、eries ttl 74als series ttl 74as series ttl 74f series ttl 74hc series ttl 74hct series ttl 74ls series ttl 74s series 此 模擬電路集成芯片 capacitors 電容集合 connectors 排座,排插 data converters adc,dacdebugging tools 調(diào)試工具 下面開始我們的第一個任務:11 子情境內(nèi)
8、容:讓單片機動起來,用單片機控制一個led燈閃爍發(fā)光。用p1口的第一個引腳控制一個led燈, 1秒鐘閃爍一次。12 子情境目標:通過此子情境的練習,快速掌握proteus的基本用法13 子情境步驟131步驟一: proteus電路設計整個設計都是在isis編輯區(qū)中完成的。(1)單擊工具欄上的“新建”按鈕,新建一個設計文檔。單擊“保存”按鈕,彈出如圖52所示的“save isis designe file”對話框,在文件名框中輸入“l(fā)ed”(簡單實例的文件名),再單擊“保存”按鈕,完成新建設計文件操作,其后綴名自動為.dsn。圖52保存isis設計文件(2)選取元器件此簡
9、單實例需要如下元器件:單片機:at89c51發(fā)光二極管:led-red瓷片電容:cap*電阻:res*晶振:crystal按鈕:button單擊圖53中的“p”按鈕,彈出如圖54所示的選取元器件對話框,在此對話框左上角“keywords(關鍵詞)”一欄中輸入元器件名稱,如“at89c52”,系統(tǒng)在對象庫中進行搜索查找,并將與關鍵詞匹配的元器件顯示在“results”中。在“results”欄中的列表項中,雙擊“at89c51”,則可將“at89c52”添加至對象選擇器窗口。按照此方法完成其它元器件的選取,如果忘記關鍵詞的完整寫法,可以用“*”代替,如“cry*”可以找到晶振。被選取的元器件都加
10、入到isis對象選擇器中。如圖55所示。圖53單擊“p”按鈕選取元器件圖54選取元器件窗口圖55選取元器件均加入到isis對象選擇器中(3)放置元器件至圖形編輯窗口在對象選擇器窗口中,選中at89c51,將鼠標置于圖形編輯窗口該對象的欲放置的位置、單擊鼠標左鍵,該對象被完成放置。同理,將button、res等放置到圖形編輯窗口中。如圖5-6所示。若元器件方向需要調(diào)整,先在isis對象選擇器窗口中單擊選中該元器件,再單擊工具欄上相應的轉(zhuǎn)向按鈕,把元器件旋轉(zhuǎn)到合適的方向后再將其放置于圖形編輯窗口。若對象位置需要移動,將鼠標移到該對象上,單擊鼠標右鍵,此時我們已經(jīng)注意到,該對象的顏色已變至紅色,表明
11、該對象已被選中,按下鼠標左鍵,拖動鼠標,將對象移至新位置后,松開鼠標,完成移動操作。通過一系列的移動、旋轉(zhuǎn)、放置等操作,將元器件放在isis編輯窗口中合適的位置。如圖56所示。(4)放置終端(電源、地)放置電源操作:單擊工具欄中的終端按鈕,在對象選擇器窗口中選擇“power”如圖57所示,再在編輯區(qū)中要放電源的位置單擊完成。放置地(ground)的操作與此類似。圖56各元器件放在isis編輯窗口中合適的位置圖57放置終端符號(5)元器件之間的連線proteus的智能化可以在你想要畫線的時候進行自動檢測。下面,我們來操作將電阻r1的右端連接到led顯示器的左端,如圖56所示。當鼠標的指針靠近r1
12、右端的連接點時,跟著鼠標的指針就會出現(xiàn)一個“”號,表明找到了r1的連接點,單擊鼠標左鍵,移動鼠標(不用拖動鼠標),將鼠標的指針靠近led的左端的連接點時,跟著鼠標的指針就會出現(xiàn)一個“”號,表明找到了led顯示器的連接點,單擊鼠標左鍵完成電阻r1和led的連線。proteus具有線路自動路徑功能(簡稱war),當選中兩個連接點后,war將選擇一個合適的路徑連線。war可通過使用標準工具欄里的“war”命令按鈕來關閉或打開,也可以在菜單欄的“tools”下找到這個圖標。同理,我們可以完成其它連線。在此過程的任何時刻,都可以按esc鍵或者單擊鼠標的右鍵來放棄畫線。(6)修改、設置元器件的屬性prot
13、eus庫中的元器件都有相應的屬性,要設置修改元器件的屬性,只需要雙擊isis編輯區(qū)中的該元器件。例如,發(fā)光二極管的限流電阻r1,雙擊它彈出如圖57所示的屬性窗口,在窗口中已經(jīng)將電阻的阻值修改為330歐姆。圖59是編輯完成的“簡單實例”的電路。圖58設置限流電阻阻值為330歐姆圖59編輯完成的簡單實例的電路圖132步驟二:源程序設計與生成目標代碼文件(1)程序流程圖 shape * mergeformat 圖510 發(fā)光二極管閃爍的流程圖(2)源程序設計將放光二極管閃爍的程序保存在文件flash_led.c中,在keil中編譯生成目標代碼文件,本例為flash_led.he
14、x。#include<reg52.h> /頭文件#define uint unsigned int /宏定義sbit d1=p10; /聲明單片機p1口的第一位void delay(uint z);
15、60; /聲明子函數(shù)void main() while(1) /大循環(huán) d1=0; /點亮第一個發(fā)光二極管 delay(500); /延時500毫秒
16、160; d1=1; /關閉第一個發(fā)光二極管 delay(500); /延時500毫秒 void delay(uint z) /延時子程序延時約z毫秒 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);133 步驟
17、三:proteus仿真(1)加載目標代碼文件雙擊編輯窗口的at89c52器件,在彈出如圖511所示屬性編輯對話框program file一欄中單擊打開按鈕,出現(xiàn)文件瀏覽對話框,找到flash_led.hex文件,單擊“打開”按鈕,完成添加文件。在clock frequency欄中把頻率設置為12mhz,仿真系統(tǒng)則以12mhz的時鐘頻率運行。因為單片機運行的時鐘頻率以屬性設置中的“clock frequency”為準,所以在編輯區(qū)設計mcs-51系列單片機系統(tǒng)電路時,可以略去單片機振蕩電路,并且復位電路也可以略去。所以從子情境三開始就將振蕩電路和復位電路省略。圖511加載目標代碼文件窗口(2)仿
18、真單擊按鈕,啟動仿真,仿真運行片段如圖512所示。發(fā)光二極管間隔500毫秒閃爍。圖512仿真運行片段紅色方塊代表低電平,藍色方塊代表高電平,灰色方塊代表不確定電平14 擴展練習改成讓p1.1口控制led燈1秒鐘閃爍一次。子情境二:用發(fā)光二極管實現(xiàn)流水燈乒乓球效果21 子情境目標:(1)通過at89c52單片機控制8個發(fā)光二極管,實現(xiàn)亮點由低位到高位再由高位到低位來回流動的乒乓球效果(2)用proteus設計、仿真以at89c52為核心的放光二極管流水燈電路。(3)掌握發(fā)光二極管的控制方法22 子情境步驟221 步驟一: proteus電路設計(1)選取元器件:按快捷鍵“p”按鈕,打
19、開元器件選擇窗口。在關鍵詞欄中輸入元器件的關鍵詞,選取需要的元器件。單片機:at89c52 電阻、8排阻:res*紅色發(fā)光二極管:led-red瓷片電容:cap*晶振:crystal(2)放置元器件:在對象選擇器中單擊選中at89c52,在編輯區(qū)中合適的位置單擊,器件at89c52就被放置到編輯區(qū)中。如果要改變元器件的放置方向,先在isis對象選擇器中單擊選中該元器件,再單擊工具欄上相應的轉(zhuǎn)向按鈕,把元器件旋轉(zhuǎn)到合適的方向后再將其放置于圖形編輯窗口。(3)放置終端(電源、地)放置電源操作:單擊工具欄中的終端按鈕,在對象選擇器窗口中選擇“power”,再在編輯區(qū)中要放電源的位置單擊完成。放置地(
20、ground)的操作與此類似。(4)元器件之間的連線 因為isis的智能化程度很高,只要單擊所要連線的起點和終點。例如元器件的引腳、終端等,在這兩點間會自動生成一條線。若要畫折線,只要在轉(zhuǎn)折點單擊;若中途想取消連線,右擊即可。(5)元器件屬性設置proteus庫中的元器件都有相應的屬性,要設置修改元器件的屬性,只需要雙擊isis編輯區(qū)中的該元器件。設置好的原理圖如圖513所示。圖513流水燈乒乓效果原理圖222步驟二:源程序設計與目標代碼文件生成 (1)程序流程圖 shape * merg
21、eformat (2)源程序設計#include<reg52.h> /52系列單片機頭文件#include <intrins.h> /包含_crol_(循環(huán)左移)函數(shù)所在的頭文件void delay(int z); /聲明子函數(shù)unsigned char temp; /定義一個變量,用來給p1口賦值int i,j;void main() temp
22、=0xfe; /賦初值11111110 p1=temp; /先點亮第一個發(fā)光二極管 while(1) /大循環(huán) for(i=7;i>0;
23、i-) /控制亮點從低位往高位移動7次 delay(500); /延時500毫秒 temp=_crol_(temp,1); /將temp循環(huán)左移一位后再賦給tempp1=temp
24、; /將移位后的值賦給p1口,從低位到高位逐個點亮發(fā)光二極管 for(j=7;j>0;j-) /控制亮點從高位往低位移動7次 delay(500);
25、; /延時500毫秒 temp=_cror_(temp,1); /將temp循環(huán)右移一位后再賦給tempp1=temp; /將移位后的值賦給p1口,從高位到地位逐個點亮發(fā)光二極管 void delay
26、(int z) unsigned int x,y; for(x=z;x>0;x-) /延時z毫秒 for(y=110;y>0;y-);(2)生成目標代碼文件在keil軟件中,編譯c語言源程序,生成目標代碼文件,本例中為pingpang.hex。223 步驟三:proteus仿真加載目標代碼文件,雙擊編輯窗口的at89c51器件,在彈出屬性編輯對話框progr
27、am file一欄中單擊打開按鈕,出現(xiàn)文件瀏覽對話框,找到pingpang.hex文件,單擊“打開”按鈕,完成添加文件。單擊按鈕,啟動仿真,仿真運行片段如圖515所示。通過at89c52單片機控制8個發(fā)光二極管,實現(xiàn)亮點由低位到高位再由高位到低位來回流動的乒乓球效果。圖515流水燈乒乓效果運行片段24 擴展練習此子情境中流水燈在同一時刻只顯示一盞燈,現(xiàn)在完成同時亮著兩個燈流動的效果。子情境三:數(shù)碼管動態(tài)掃描31子情境內(nèi)容:利用動態(tài)掃描讓四位數(shù)碼管穩(wěn)定的顯示1234。32 子情境目標:(1)掌握單片機控制四位數(shù)碼管的動態(tài)掃描技術,包括程序設計和電路設計,本任務的效果是讓四位數(shù)碼管穩(wěn)定
28、的顯示1234。(2)用proteus進行電路設計和實時仿真33 知識點鏈接(1)數(shù)碼管動態(tài)掃描 (動態(tài)掃描的定義以及與靜態(tài)顯示的區(qū)別)動態(tài)顯示的特點是將所有位數(shù)碼管的段選線s一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。 (2)總線的應用元器件與總線的連線p0口的接線采用總線方式,詳細如圖517所示。 選擇總線按鈕 繪制總線:與普通電線的繪制方法一樣,選擇合適的起點、終點單擊。如果終點在空白處,左鍵雙擊結束連線。畫總
29、線的時候為了和一般的導線區(qū)分,我們一般喜歡畫斜線來表示分支線。此時我們需要自己決定走線路徑,只需在想要拐點處單擊鼠標左鍵即可。在畫斜線時,需要關閉線路自動路徑功能才好繪制。proteus的線路自動路徑功能簡稱war,當選中兩個連接點后,war將選擇一個合適的路徑連線。war可通過使用標準工具欄里的“war”命令按鈕來關閉或打開,也可以在菜單欄的“tools”下找到這個圖標。 給與總線連接的導線貼標簽part labels與p0口相連的線標簽名依次為p00p06,本電路中的p0口的上拉電阻通過總線與p0口相連,數(shù)碼管也是通過總線與p0口相連,這些都需要標注,以表明正確的電
30、氣連接。單擊繪圖工具欄中的導線標簽按鈕,使之處于選中狀態(tài)。將鼠標置于圖形編輯窗口的欲標標簽的導線上,跟著鼠標的指針就會出現(xiàn)一個“×”號,表明找到了可以標注的導線,單擊鼠標左鍵,彈出編輯導線標簽窗口,如圖516所示。 在“string”欄中,輸入標簽名稱(如p00),單擊“ok”按鈕,結束對該導線的標簽標定。同理,可以標注其它導線的標簽,如圖516所示。注意,在標定導線標簽的過程中,相互接通的導線必須標注相同的標簽名。圖516編輯導線標簽窗口34 任務步驟341 步驟一:proteus電路設計,單片機控制四位共陰極數(shù)碼管動態(tài)掃描顯示的原理圖如圖517所示。圖517 四位共陰極數(shù)碼管動態(tài)
31、掃描顯示的原理圖1、選取元器件單片機:at89c52帶公共端的排阻:respack-8四位共陰極數(shù)碼管:7seg-mpx4-cc2、放置元器件、放置電源和地、連線、元器件屬性設置數(shù)碼管動態(tài)掃描顯示的原理圖如圖517所示,整個電路設計操作都在isis平臺中進行。(1)帶公共端的排阻(respack-8)如圖518所示,在本電路中作為p0的上拉電阻,在如圖519所示component value一欄中可更改阻值,例如本例中將阻值更改為200歐姆。 圖518排阻
32、0; 圖519排阻屬性框至此,我們便完成了整個電路圖的繪制。342 步驟二:源程序設計與目標代碼文件生成(1)程序流程圖 shape * mergeformat shape * mergeformat 圖520 數(shù)碼管動態(tài)掃描的流程圖(2)源程序設計#include
33、<reg52.h> /52系列單片機頭文件#define uchar unsigned char#define uint unsigned intuint x,y;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; &
34、#160; /共陰極數(shù)碼管編碼void display(uchar,uchar,uchar,uchar); /聲明子函數(shù)void delay(int); /聲明子函數(shù)void main() while(1) display(1,2,3,4
35、); /主程序始終調(diào)用數(shù)碼管顯示子程序 void display(uchar a,uchar b,uchar c,uchar d) p2=0xef; p0=tablea;
36、60; /給第一個數(shù)碼管送"a" delay(1);
37、 /延時1ms p2=0xdf; p0=tableb;
38、160; /給第二個數(shù)碼管送"b" delay(1); /延時1ms p2=0xbf; p0=tablec;
39、160; /給第三個數(shù)碼管送"c" delay(1); /延時1ms p2=0x7f; &
40、#160; p0=tabled; /給第三個數(shù)碼管送"d" delay(1);
41、0; /延時1msvoid delay(uint z) /延時子函數(shù) uint x,y;
42、0; for(x=z;x>0;x-) for(y=110;y>0;y-);(2)生成目標代碼文件在keil軟件中,編譯c語言源程序,生成目標代碼文件,本例中為dongtai.hex。343 步驟三:proteus仿真加載目標代碼文件,雙擊編輯窗口的at89c51器件,在彈出屬性編輯對話框program file一欄中單擊打開按鈕,出現(xiàn)文件瀏覽對話框,找到dongtai.hex文件,單擊“打開”按鈕,完成添加文件。單擊按鈕,啟動仿真,仿真運行片段如圖521所示。通過at89c52單片機控制四位數(shù)碼管,實現(xiàn)讓四位數(shù)碼管穩(wěn)定的顯示“1234
43、”的效果。圖521數(shù)碼管動態(tài)掃描顯示“1234”35 擴展練習本子情境中單片機趨動的是共陰極的數(shù)碼管,請使用四位共陽極的數(shù)碼管重新設計和仿真。子情境四:定時/計數(shù)器的使用方波發(fā)生器41子情境內(nèi)容:用at89c51單片機定時/計數(shù)器0的定時功能可構成一簡單的方波發(fā)生器,實現(xiàn)周期為2s的方波,并能在虛擬示波器上直觀地顯示波形。42 子情境目標:(1)通過用at89c52單片機定時/計數(shù)器0的定時功能構成一簡單的方波發(fā)生器,掌握定時器的基本用法。(2)用proteus進行電路設計和實時仿真(3)學會使用虛擬示波器觀察波形43 知識點鏈接虛擬示波器的基本操作:單擊工具欄中的按鈕(虛擬儀器)
44、,在對象選擇器列表中選擇oscilloscope(示波器),在isis編輯窗口中合適位置單擊就可以將示波器放置好了。最后將單片機的p1.0口與示波器的a通道相連,如圖522所示。44 任務步驟441 步驟一:proteus電路設計,實現(xiàn)周期為2s的方波的原理圖如圖522所示。圖522 方波發(fā)生器原理圖1、選取元器件單片機:at89c52電阻:resled發(fā)光二極管:led-red2、放置元器件、放置電源和地、連線、元器件屬性設置方波發(fā)生器的原理圖如圖522所示,整個電路設計操作都在isis平臺中進行。與子情景3相似,故不詳述。(1)程序流程圖中斷服務程序 主程序
45、;shape * mergeformat shape * mergeformat 圖523 方波發(fā)生器的流程圖(2)源程序設計#include<reg52.h&
46、gt;#define uchar unsigned char#define uint unsigned intsbit d1=p10;uchar aa;void main() tmod=0x01; th0=(65536-50000)/256; tl0=(65536-50000)%256; /定時50ms中斷一次 ea=1;
47、 /開總中斷 et0=1; /允許定時器t0中斷 tr0=1; /起動定時器開始工作 d1=1;
48、 /讓led燈初始時處在熄滅狀態(tài) while(1); /等待中斷產(chǎn)生void my_timer0() interrupt 1 /中斷服務程序 th0=(65536-50000)/256; tl0=(65536-50000)%256;
49、60; /重新賦初值 aa+; /中斷一次變量aa加1if(aa=20) /當aa=20時中斷了20次,定時時間為20*50ms=1s,更改一次p1.0口的輸出狀態(tài),這樣得到的方波周期為2s
50、; aa=0; /將變量aa清零,以便于下次重新定時 d1=d1; /改變引腳p1.0的輸出狀態(tài) 443 步驟三:proteus仿真加載目標代碼文件,雙擊編輯窗口的at89c51器件,在彈出屬性編輯對話框program file一欄中單擊打開按鈕,出
51、現(xiàn)文件瀏覽對話框,找到fangbo.hex文件,單擊“打開”按鈕,完成添加文件。單擊按鈕,啟動仿真,仿真運行片段如圖524所示。用at89c51單片機定時/計數(shù)器0的定時功能可構成一簡單的方波發(fā)生器,實現(xiàn)周期為2s的方波,并能在虛擬示波器上直觀地顯示波形。我們可以適當調(diào)整示波器面板上的按鈕來使波形最有利于我們觀察。調(diào)整好以后,系統(tǒng)產(chǎn)生的波形效果如圖525所示。轉(zhuǎn)動如圖526所示的a通道的轉(zhuǎn)盤旋鈕,可調(diào)整a通道的電壓顯示幅值,范圍為2ms20v/格,如圖電壓幅值為2v/格,從波形可以看出p1.0口輸出電壓近似為5v。轉(zhuǎn)動如圖527所示的轉(zhuǎn)盤旋鈕,可調(diào)整時基。如圖時基為0.5s/格。從圖中我們能夠
52、看出,波形的周期為2s,這與我們設定的目標相一致。 圖524方波發(fā)生器仿真運行圖圖525示波器上顯示的方波圖 圖526 調(diào)節(jié)電壓幅值
53、 圖527 調(diào)節(jié)時基45 擴展練習將子情境中方波的周期更改為1秒,并能在虛擬示波器上直觀地顯示波形。子情境五:單片機外部中斷仿真51子情境內(nèi)容:外部中斷是單片機的重要內(nèi)容,本子情境用外部中斷功能改變流水燈和數(shù)碼管的顯示狀態(tài)。沒有發(fā)生中斷時,數(shù)碼管從0至f順序顯示,不斷循環(huán)。當有外部中斷0發(fā)生時(在單片機p3.2引腳上有低電平),立即產(chǎn)生中斷,數(shù)碼管從0至f順序顯示的工作停下來,轉(zhuǎn)去執(zhí)行中斷服務程序。中斷服務程序為:流水燈上下來回
54、流動3次。完成中斷服務程序后,返回主程序原斷點處繼續(xù)執(zhí)行,數(shù)碼管接著原來的數(shù)字繼續(xù)順序顯示。程序流程圖如529所示。52 子情境目標:(1)理解單片機的中斷原理及中斷過程(2)用proteus設計、仿真單片機的外部中斷。53 知識點鏈接54 任務步驟541 步驟一:proteus電路設計,實現(xiàn)外部中斷功能改變流水燈和數(shù)碼管的顯示狀態(tài)的原理圖如圖528所示。1、選取元器件單片機:at89c51電阻、排阻:res*led發(fā)光二極管:led-red按鈕:button帶公共端共陽七段藍色數(shù)碼管:7seg-com-an-blue2、放置元器件、放置電源和地、連線、元器件屬性設置外部中斷實驗的原理圖如圖5
55、28所示,整個電路設計操作都在isis平臺中進行。與子情景3相似,故不詳述。與led串聯(lián)的排阻阻值為1k歐姆,與數(shù)碼管串聯(lián)的電阻的阻值為330歐姆左右。圖528外部中斷子情境原理圖542 步驟二:源程序設計與目標代碼文件生成(1)程序流程圖 shape * mergeformat 圖529 外部中斷流程圖(2)源程序設計#include<reg52.h>#include<intrins.h> /包含_crol_和_cror_函數(shù)所在的頭文件#define uchar unsigned char#define uint uns
56、igned intsbit d1=p10; /定義p1口的第一個引腳char i,j,m,n,temp,k;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0x88,0x83,0xa7,0xa1,0x06,0x8e;/共陽極數(shù)碼管編碼void delay(int z);void main() ea=1;
57、160; /中斷總允許 ex0=1; /允許外部中斷0中斷 it0=0; /外部中斷0的觸發(fā)方式為低電平觸發(fā) while(1) for(i=0;i<16;i+)
58、 /主程序一直在從事順序顯示數(shù)字的工作 p0=tablei; /將段碼逐個送至p0口 delay(500); /延時500ms void my_int0() int
59、errupt 0 /外部中斷0的中斷服務程序:中斷后流水燈上下循環(huán)三次 temp=0xfe; /給流水燈賦初值 p1=temp; / 讓第一個燈點亮 for(k=0;k<3;k+)/ 實現(xiàn)循環(huán)三次的功能
60、60; for(m=0;m<7;m+)/左移7次 delay(200);temp=_crol_(temp,1);/庫函數(shù)里面的循環(huán)左移函數(shù),將temp的值左移一位后重新賦給temp &
61、#160; p1=temp; /將左移一位后的temp值送p1口顯示 for(n=0;n<7;n+)/右移7次
62、 delay(200);temp=_cror_(temp,1);/庫函數(shù)里面的循環(huán)右移函數(shù),將temp的值右移一位后重新賦給temp p1=temp;/將右移一位后的temp值送p1口顯示
63、 delay(200); d1=1; void delay(int z)/延時子函數(shù) int x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);543 步驟三:proteus仿真加載目標代碼文件,雙擊編輯窗口的at89c51器件,在彈出屬性編輯對話框program file一欄中單擊打開按鈕,出現(xiàn)文件瀏覽對話框,找到zhongduan.hex文件,單擊“打開”按鈕,
64、完成添加文件。單擊按鈕,啟動仿真,仿真運行片段如圖530、531、532所示。圖530中是主程序的運行片段,主程序中數(shù)碼管從0至f順序顯示圖531中,按下按鈕后,在單片機p3.2引腳上有低電平,立即產(chǎn)生中斷,數(shù)碼管從0至f順序顯示的工作停下來,流水燈上下循環(huán)移動三次。圖532中,完成中斷服務程序后,返回主程序原斷點處繼續(xù)執(zhí)行,數(shù)碼管接著原來的數(shù)字繼續(xù)順序顯示。圖530主程序中數(shù)碼管從0至f順序顯示圖531按下按鈕后數(shù)碼管停下來,流水燈上下循環(huán)移動三次圖532完成中斷服務程序后,返回主程序原斷點處繼續(xù)執(zhí)行,數(shù)碼管接著原來的數(shù)字繼續(xù)順序顯示。55 擴展練習
65、60; 主程序中數(shù)碼管從0至9順序顯示數(shù)字,中斷發(fā)生后(在單片機p3.2引腳上有低電平),數(shù)碼管從9至0反序顯示。子情境六:直流電機正反轉(zhuǎn)61子情境內(nèi)容:用單片機at89c51控制直流電機正反轉(zhuǎn)。在此將由89c51的p2.0,p2.1通過晶體管控制繼電器,當p2.0輸出低電平,p2.1輸出高電平時,三極管q1導通,而三極管q2截止,從而導致與q1相連的繼電器吸合,電機因兩端產(chǎn)生電壓而轉(zhuǎn)動。由p3.0,p3.1,p3.2控制電機的正傳、反轉(zhuǎn)和停止。62 子情境目標:(1)掌握趨動電機正反轉(zhuǎn)的電路(2)用proteus實現(xiàn)電機正反轉(zhuǎn)電路的設計,并進行實時交互仿真63 知識點鏈接二極管保
66、護電路:在圖533中,在兩個繼電器的兩端都反相接了一個二極管,這個二極管非常重要,當使用電磁繼電器時必須接。原因如下:線圈通電正常工作時,二極管對電路不起作用。當繼電器線圈在斷電的一瞬間會產(chǎn)生一個很強的反向電動勢,在繼電器線圈兩端反相并聯(lián)二極管就是用來消耗這個反向電動勢的,通常這個二極管叫做消耗二極管,如果不加這個消耗二極管,反向電動勢就會直接作用在趨動三極管上,很容易將三極管燒毀。64 任務步驟641 步驟一:proteus電路設計,實現(xiàn)用單片機at89c51控制直流電機正反轉(zhuǎn)原理圖如圖533所示。圖533直流電機正反轉(zhuǎn)原理圖1、選取元器件單片機:at89c51電阻:res*直流電機:mot
67、or按鈕:button三極管:npn*繼電器:relay* 二極管:diode*2、放置元器件、放置電源和地、連線、元器件屬性設置直流電機正反轉(zhuǎn)的原理圖如圖533所示,整個電路設計操作都在isis平臺中進行。與子情景3相似,故不詳述。(1)關于元器件屬性的設置在此實例中需要特別注意:三極管基極的限流電阻更改為1k歐姆雙擊電機圖標,彈出如圖534所示的電機屬性對話框,在nominal voltage一欄中將默認值更改為5v 雙擊繼電器圖標,在彈出的如圖535所示的繼電器屬性對話框中,在component value一欄中將默
68、認值更改為5 v圖534更改電機屬性圖535更改繼電器屬性642 步驟二:源程序設計與目標代碼文件生成(1)程序流程圖 shape * mergeformat 圖536 電機正反轉(zhuǎn)流程圖(2)源程序設計#include<reg51.h> sbit p20=p20; /p20的功能是控制三極管的導通和截止sbit p21=p21;
69、0; /p21的功能是控制三極管的導通和截止sbit p30=p30; /聲明直流電機的正傳位置sbit p31=p31; /聲明直流電機的反轉(zhuǎn)位置sbit p32=p32;
70、60; /聲明直流電機的停止位置void main()while(1) /無窮循環(huán) if(p30=0) /若按下p30 p20=1; /p20控制的三極管截止p21=0;
71、0; /p21控制的三極管導通,線圈吸合,兩者共同控制電機正轉(zhuǎn) if(p31=0)/若按下p31 p20=0;/p20控制的三極管導通,線圈吸合 p21=1;/p21控制的三極管截止,兩者共同控制電機反轉(zhuǎn) if(p32=0)/若按下p32
72、0; p20=1;/p20控制的三極管截止 p21=1;/p21控制的三極管截止,兩者共同控制電機停轉(zhuǎn)
73、 643 步驟三:proteus仿真加載目標代碼文件,雙擊編輯窗口的at89c51器件,在彈出屬性編輯對話框program file一欄中單擊打開按鈕,出現(xiàn)文件瀏覽對話框,找到dianji.hex文件,單擊“打開”按鈕,完成添加文件。單擊按鈕,啟動仿真,仿真運行片段如圖所示。圖537為電機正轉(zhuǎn)運行狀態(tài),按下“正轉(zhuǎn)”按鈕,p2.0口輸出高電平,三極管處于導通狀態(tài),繼電器吸合,從而使電機左端為高電
74、平。右端依然為低電平(由于p2.1 口輸出低電平,三極管處于截止狀態(tài),繼電器不吸合)。在電機兩端有一個5v的電壓,所以電機正轉(zhuǎn)。圖538為電機反轉(zhuǎn)運行狀態(tài),按下“反轉(zhuǎn)”按鈕,原理與正轉(zhuǎn)的情況恰好相反,故不詳述。但請大家關注兩個圖中繼電器開關的狀態(tài),是恰好相反的。這樣在兩種情況下,電機的轉(zhuǎn)向是相反的。圖537電機正轉(zhuǎn)運行狀態(tài)圖538電機反轉(zhuǎn)運行狀態(tài)65 擴展練習在此子情境的基礎上加上兩個按鍵:加速和減速。控制電機的轉(zhuǎn)速。想想硬件和軟件應該做如何改動。子情境七:用adc0809實現(xiàn)電壓表71子情境內(nèi)容:利用單片機at89c52和adc0809設計一個數(shù)字電壓表,能夠測量05v之間的電壓
75、值,用四位數(shù)碼管顯示。72 子情境目標:(1)掌握proteus中電壓探針和電壓表的使用方法(2)通過制作簡易電壓表,學會ad轉(zhuǎn)換芯片在單片機應用系統(tǒng)中的硬件接口技術和編程方法。73 知識點鏈接了解adc0809芯片的功能以及使用方法(1)功能:adc0809芯片為8通道模/數(shù)轉(zhuǎn)換器,可以和單片機直接接口,將in0in7任何一通道輸入的模擬電壓轉(zhuǎn)換成八位二進制數(shù),在時鐘為500khz時,一次變換時間約為100us。(2)使用方法:28腳雙列直插式封裝如圖539所示,各引腳功能如下:圖539 adc0809引腳圖in0in7:8個通道的模擬量輸入端??奢斎?5v待轉(zhuǎn)換的模擬電壓。本實
76、例中采用in0通道。adda、addb、addc:為地址輸入線,用于選通in0in7上的一路模擬量輸入,通道選擇表如表51所示。在本實例中直接將adda、addb、addc接地,選通in0通道。地址碼輸入通道addcaddbadda000in0001in1010in2011in3100in4101in5110in6111in7clk:外部時鐘信號輸入端。adc0809的典型時鐘頻率為640khz,轉(zhuǎn)換時間約為100s。本實例中產(chǎn)生時鐘信號的方法由軟件來提供。start:啟動轉(zhuǎn)換信號輸入端。在start上升沿時,所有的內(nèi)部寄存器清零,在下降沿時,開始進行a/d轉(zhuǎn)換;a/d轉(zhuǎn)換期間,start應保
77、持低電平。d0d7:8位轉(zhuǎn)換結果輸出端。三態(tài)輸出,d7是最高位,d0是最低位。eoc:adc0809自動發(fā)出的轉(zhuǎn)換狀態(tài)端,eoc0,表示正在進行轉(zhuǎn)換;eoc1,表示轉(zhuǎn)換結束;oe:轉(zhuǎn)換數(shù)據(jù)允許輸出控制端。oe=0,表示禁止輸出;oe=1,表示允許輸出。ref(-)、ref(+):參考電壓輸入端。adc0809的參考電壓為5v。ale:為高電平時,通道地址輸入到地址鎖存器中,下降沿將地址鎖存,并譯碼。所以本實例中將ale與start相連。由于ale和start連在一起,因此adc0809啟動轉(zhuǎn)換同時也在鎖存通道地址。74 任務步驟741 步驟一:proteus電路設計,利用單片機at89c52和
78、adc0809設計一個數(shù)字電壓表的原理圖如圖540所示。圖540 adc0809與單片機的接口電路1、選取元器件單片機:at89c52電阻:res*4位共陰極的數(shù)碼管:7seg-mpx4-cca/d轉(zhuǎn)換芯片:adc0808(代替0809)電位器:pot-log瓷片電容:cap晶振:crystal2、放置元器件、放置電源和地、連線、元器件屬性設置數(shù)字電壓表的原理圖如圖540所示,整個電路設計操作都在isis平臺中進行。與子情景3相似,故不詳述。(1)電壓探針和電壓表單擊工具欄中中的電壓探針按鈕,連接到要實時監(jiān)控的電路上,以便仿真時觀察該處電壓的實時變化。見圖540所示。單擊工具欄中的
79、按鈕(虛擬儀器),在對象選擇器列表中選擇dc voltmeter(直流電壓表),在isis編輯窗口中合適位置單擊就可以將電壓表放置 好了。通過電壓表可以觀察到電位器電壓的實時變化。(2)adc0809與單片機的接口電路需要做些說明adda、addb、addc:在本實例中直接將adda、addb、addc接地,選通in0通道。clk:在圖540所示的電路中,clk與p33口相連,單片機通過軟件的方法在p33
80、口輸出時鐘信號供adc0809使用。start:在圖540所示的電路中,start與p30口相連。d0d7:8位轉(zhuǎn)換結果輸出端。在圖540所示的電路中,與p0口相連,從p0口讀出轉(zhuǎn)換結果。eoc:adc0809自動發(fā)出的轉(zhuǎn)換狀態(tài)端,在圖540所示的電路中,eoc與p32口相連。oe:轉(zhuǎn)換數(shù)據(jù)允許輸出控制端,在圖540所示的電路中,oe與p31口相連。ale:在圖540所示的電路中將ale與start相連。由于ale和start連在一起,因此adc0809啟動轉(zhuǎn)換同時也在鎖存通道地址。742 步驟二:源程序設計與目標代碼文件生成(1)程序流程圖 shape * mergeformat 圖541 電壓表流程圖(2)源程序設計#include<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園秋游活動工作總結
- 第一學期學年度工作總結
- 工會個人工作計劃
- KVA箱變施工安裝合同范本
- 三方公司合作協(xié)議書范本
- 浙江省出租車經(jīng)營權轉(zhuǎn)讓合同范本
- 住家保姆雇傭合同范本
- 多人股份制合伙人協(xié)議書范本
- 工程審計業(yè)務協(xié)議書范本代理合同
- 音頻作品授權合作協(xié)議書范本
- 心臟手術麻醉的一般流程課件
- 信號與系統(tǒng)復習題及答案
- 班組月度考核評分表
- 部編版一年級下冊《道德與法治》教學工作計劃及全冊教案
- 三重一大事項決策流程
- 精密配電列頭柜介紹講義
- 廣東部分地區(qū)的暴雨強度公式
- 授居家二眾三皈、五戒儀規(guī)
- 裝修工程竣工驗收報告模板
- 簡單娛樂yy頻道設計模板
- 防止機組非計劃停運措施(鍋爐專業(yè))
評論
0/150
提交評論