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