Proteus是一個仿真軟件,可以在里面設計電路並模擬測試,也可生成PCB的布線等等,反正就是強大的不行。初學單片機,除了開發板,這個仿真器就是一個很好的調式環境。軟件安裝信息:
- Proteus 8.7
- Keil uvision4
- Window 10
很多人說window10安裝不成功,其他還好,剛開始裝Proteus 8.7,出現了一個缺少hhctrl.ocx的組件,下載后注冊,就好了。其他安裝不再說明,沒有什么大問題。目前Keil和Proteus聯調成功:

代碼如下所示:
/*------------------------------------------------------------------------------ HELLO.C Copyright 1995-2005 Keil Software, Inc. ------------------------------------------------------------------------------*/ #include <REG52.H> /* special function register declarations */ /* for the intended 8051 derivative */ #include <stdio.h> /* prototype declarations for I/O functions */ #ifdef MONITOR51 /* Debugging with Monitor-51 needs */ char code reserve [3] _at_ 0x23; /* space for serial interrupt if */ #endif /* Stop Exection with Serial Intr. */ /* is enabled */ /*------------------------------------------------ The main C function. Program execution starts here after stack initialization. ------------------------------------------------*/ void main (void) { /*------------------------------------------------ Setup the serial port for 1200 baud at 16MHz. ------------------------------------------------*/ #ifndef MONITOR51 SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */ TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */ TR1 = 1; /* TR1: timer 1 run */ TI = 1; /* TI: set TI to send first char of UART */ #endif /*------------------------------------------------ Note that an embedded program never exits (because there is no operating system to return to). It must loop and execute forever. ------------------------------------------------*/ while (1) { P1 ^= 0x01; /* Toggle P1.0 each time we print */ printf ("Hello World\n"); /* Print "Hello World" */ } }
這段代碼為安裝Keil之后,打開默認顯示的代碼,我沒有修改,就直接用了,它是修改P1口的狀態。
先看看Proteus的界面:

新建工程就不說了,建好之后,就是找元件了,如圖:

圖中標記了幾處,元件庫,端點POWER和GROUND,探針,其中元件初始化為空,需要自己添加,點P,打開搜索框添加。幾個常用的元件名稱如下(搜索時用英文名稱搜索,右側可看見符號):
- 電池組BATTERY
- 按鍵BUTTON
- 電容CAP
- 晶振CEYSTAL
- 發光二極管LED
- 黃色發光二極管LED-YELLOW(其他顏色類似)
- 電阻RES
- 開關SWITCH
- 單片機80C51
(元件)
(端點,連線的終端)
(探針,電流、電壓)
在使用POWER的時候,需要設置全局的電壓值,如圖:
(打開菜單)
(新增GND和VCC,並設置電壓值,在POWER屬性上可以選擇)
關於探針,在探針使用時不要與線路交叉重疊就行,動態顯示探針的值,需要設置:System-》Set Animation Options,右側Animation Options下面的復選框,全部勾上就行,保存。
關於Keil4與Proteus8聯調,配置如下:
1.Proteus中,菜單欄Debug-》Enable Remote Debug Monitor,即允許遠程調式;
2.Keil中,打開Target Options
,即選擇模擬器;
3.打開DEBUG頁簽,如圖:

4.在Use下拉框中選擇Proteus VSM Simulator模擬器,新安裝的如果沒有的話,需要給keil安裝Proteus的調試插件:vdmagdi.exe,安裝時選擇Keil的安裝路徑,會自動修改配置文件:
D:\Keil\TOOLS.INI
[UV2]
ORGANIZATION="**"
NAME="**", "**"
EMAIL="**"
BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN)
[C51]
PATH="D:\Keil\C51\"
VERSION=V9.00
BOOK0=HLP\Release_Notes.htm("Release Notes",GEN)
BOOK1=HLP\C51TOOLS.chm("Complete User's Guide Selection",C)
TDRV0=BIN\MON51.DLL ("Keil Monitor-51 Driver")
TDRV1=BIN\ISD51.DLL ("Keil ISD51 In-System Debugger")
TDRV2=BIN\MON390.DLL ("MON390: Dallas Contiguous Mode")
TDRV3=BIN\LPC2EMP.DLL ("LPC900 EPM Emulator/Programmer")
TDRV4=BIN\UL2UPSD.DLL ("ST-uPSD ULINK Driver")
TDRV5=BIN\UL2XC800.DLL ("Infineon XC800 ULINK Driver")
TDRV6=BIN\MONADI.DLL ("ADI Monitor Driver")
TDRV7=BIN\DAS2XC800.DLL ("Infineon DAS Client for XC800")
TDRV8=BIN\UL2LPC9.DLL ("NXP LPC95x ULINK Driver")
RTOS0=Dummy.DLL("Dummy")
RTOS1=RTXTINY.DLL ("RTX-51 Tiny")
RTOS2=RTX51.DLL ("RTX-51 Full")
LIC0=14R8T-R0VMF-C5DT5-GNLT9-76GJH-QEQ8V
TDRV9=BIN\VDM51.DLL ("Proteus VSM Simulator")
BOOK2=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[ARM]
TDRV0=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK0=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[KARM]
TDRV0=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK0=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
如果這個配置文件中有Proteus VSM Simulator,說明可用;
5.選擇好模擬器,就可以運行程序,會自動運行Proteus的電路,可以點亮LED燈,如出現一下,請檢查步驟1:

如出現一下情況,則表明沒有選對模擬器,如圖:

以上就是我的總結,最后,放一張設計的80C51的電路圖結束。

轉載請注明出處

