用PROTEUS對單片機(jī)進(jìn)行仿真的方法與實(shí)例
6.連線
在仿真時單片機(jī)的晶振電路和復(fù)位電路可以省略不畫,時鐘頻率可以在AT89C51的屬性中設(shè)置,默認(rèn)值為12MHz。
對于設(shè)計(jì)好的文件可以保存以便下次調(diào)用。
電感測試儀以電感加上電壓后電流增加的規(guī)律作為測量依據(jù),因?yàn)殡姼屑由想妷汉箅娏髟黾拥乃俣扰c電感量相關(guān),通過測量電流達(dá)到某一預(yù)定值所花的時間就能測量出電感的電感量。單片機(jī)使用AT89C2051,測量電路如圖8所示,A為
AT89C2051內(nèi)部構(gòu)造的電壓比較器,利用電壓比較器測量電感中電流的變化,合上開關(guān)后電源電壓E+ 加在電感LX和電阻R的串聯(lián)回路上,這時回路中電流IL由零開始逐漸增加,在電阻R兩端電壓從0升到0.632E+的過程中,P3.6口輸出為0,當(dāng)電阻R兩端電壓一旦超過0.632E+后,P3.6口輸出電平即變?yōu)?。以P3.6口的輸出狀態(tài)為依據(jù),用AT89C2051內(nèi)部的定時器T0對時間進(jìn)行計(jì)數(shù),再將計(jì)數(shù)結(jié)果顯示出來即得出測量結(jié)果。量程可分為多檔,采用兩位半數(shù)碼管顯示,單位為mH。我們只要仿真其中的一檔即可,這里取×10檔進(jìn)行仿真,即讀數(shù)乘以10為實(shí)際電感量。
電感測試儀的源程序如下:
#include
unsigned char j,m,n,t,DispBuf[3];
unsigned int L;
unsigned char code
BitTab[3]={0xdf,0xef,0xf7};//位驅(qū)動碼
unsigned char code
DispTab[11]={0x41,0xcf,0x52,0x46,0xcc,0x64,0x60,0x4f,0x40,0x44,0xff};//字形碼
sbit P1_2=P1^2;
sbit P3_6=P3^6;
void Delay1ms(unsigned int count) //延時程序
{
}
void main()
{
}
用Keil uVision將上述程序編譯生成目標(biāo)文件DGZS.hex。
電路中所使用的元件見表2。
表2
名稱 | 元件 | 種類(Category) | 子種類(Sub-category) |
單片機(jī) | AT89C2051 | Microprocessor ICs | 8051 Family |
電阻器 | RES | Resistors | Generic |
可變電阻器 | POT-LIN | Resistors | Variable |
三極管 | 2N2905 | Transistors | Bipolar |
電感器 | IND-AIR | Inductors | Generic |
4位共陰數(shù)碼管 | 7SEG-MPX4-CA | Optoelectronics | 7-Segment Displays |
繪制好的仿真電路圖如圖9。圖中添加示波器時,先左鍵選擇模型選擇工具
欄中的 圖標(biāo),再選擇OSCILLOSCOPE,并在原理圖編輯窗口中左擊,這樣示波器就被放置到原理圖中了。
由于AT89C2051的P1.0和P1.1是復(fù)用端口,除了作I/O口外,還有一個功能是作為電壓比較器的輸入端,P1.0為同相輸入端,P1.1為反相輸入端,這里作電壓比較器的輸入端使用,因此在設(shè)置AT89C2051的屬性時要將其設(shè)置電壓比較器的輸入端,即Ehable Comparator選擇Yes,如圖10。
被測電感器的電感量定為1H。單擊開始仿真,可變電阻RP1是用來校準(zhǔn)測量值的,按動RP1的+或-按鈕,調(diào)節(jié)RP1使數(shù)碼管顯示100。仿真結(jié)果見圖10。電阻R2為換擋電阻,改變它的值即可改變擋位。
2. 充電器
圖11是電路圖,圖中PIC12F675的7腳作模擬信號輸入端AN0使用。單片
機(jī)使用內(nèi)部時鐘振蕩器,引腳3作充電控制電壓輸出端GP4使用。S為復(fù)位開關(guān),復(fù)位開關(guān)主要在重新放上電池后使用。
評論