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