需要用到三個軟件:KEIL,VSPD XP5(virtual serial ports driver xp5.1虛擬串口軟件),串口調試助手。
1、首先在KEIL里編譯寫好的程序: 2、打開VSPD,界面如下圖所示: 
左邊欄最上面的是電腦自帶的物理串口。點右邊的add pair,可以添加成對的串口。一對串口已經虛擬互聯了,如果添加的是COM3、COM4,用COM3發送數據,COM4就可以接收數據,反過來也可以。 3、接下來的一步很關鍵。把KEIL和虛擬出來的串口綁定。現在把COM3和KEIL綁定。在KEIL中進入DEBUG模式。在最下面的COMMAND命令行,輸入 MODE COM3 4800,0,8,1(設置串口3的波特率、奇偶校驗位、數據位、停止位,打開COM3串口,注意設置的波特率和程序里設置的波特率應該一樣) ASSIGN COM3 SOUT(把單片機的串口和COM3綁定到一起。因為我用的單片機是AT892051,只有一個串口,所以用SIN,SOUT,如果單片機有幾個串口,可以選擇S0IN,S0OUT,S1IN,S1OUT。) 4、打開串口調試助手 可以看到虛擬出來的串口COM3、COM4,選擇COM4,設置為波特率4800,無校驗位、8位數據位,1位停止位(和COM3、程序里的設置一樣)。打開COM4。 現在就可以開始調試串口發送接收程序了。可以通過KEIL發送數據,在串口調試助手中就可以顯示出來。也可以通過串口調試助手發送數據,在KEIL中接收。 比如我將com4和com5連接,利用單片機串口2.輸入的命令為 MODE COM4 9600,n, 8, 1 ASSIGN COM4<S2IN> S2OUT 說明: MODE命令的作用是設置被綁定計算機串口的參數。基本使用方式為: MODE COMx baudrate, parity, databits, stopbits 其中: COMx(x = 1,2,…)代表計算機的串口號; baudrate代表串口的波特率;parity代表校驗方式; databits代表數據位長度; stopbits代表停止位長度。 例如:MODE COM1 9600, n, 8, 1 設置串口1。波特率為9 600,無校驗位,8位數據,1位停止位。 MODE COM2 19200, 1, 8, 1 設置串口2。波特率為19 200,奇校驗,8位數據,1位停止位。 4、點回車后,再輸入 ASSIGN COM4 <S1IN>S1OUT 
說明: COMx代表計算機的串口,可以是COM1、COM2、COM3或其他; inreg和outreg代表單片機的串口。對于只有一個串口的普通單片機,即SIN和SOUT;對于有兩個或者多個串口的單片機,即SnIN和SnOUT(n=0,1,…即單片機的串口號)。 例如:ASSIGN COM1 < SIN > SOUT 將計算機的串口1綁定到單片機的串口(針對只有一個串口的單片機)。 ASSIGN COM2 < SIN > SOUT 將計算機的串口2綁定到單片機的串口0(針對有多個串口的單片機,注意串口號的位置)。 需要注意的是,參數的括號是不能省略的,而outreg則是沒有括號的。 5、然后調試程序。可以看到串口COM5打印出了串口1的數據了。 
這樣就能夠將計算機的串口模擬成單片機的串口了。在進行軟件仿真時,所有發送到被綁定的計算機串口上的數據都會轉發到Keil模擬的單片機串口上,用戶程序可以通過中斷處理程序或查詢方式接收到這些數據;同樣,單片機程序中發送到單片機串口上的數據也會通過被綁定的計算機串口發送出來,可以被其他軟件所接收。利用這個特點,就可以方便地仿真、調試單片機的串口部分程序。要注意的是,這兩個命令需要一起使用。
|