【正文】
/ CMOS level pin 1 pin T1OUT, T2OUT, R1IN, R2IN to access RS 232C level 1 so the pin TTL / CMOS level T1IN, T2IN MCS51 pin should be connected to the serial transmit pin TXD。實現(xiàn)了分別在 PC 微機(jī)和單片機(jī)中使用匯編語言和 C++Builder 的編程。該步進(jìn)電機(jī)是通過單芯片來實現(xiàn)微機(jī)控制脈沖分配的。但是當(dāng)傳輸距離遠(yuǎn),并且傳輸數(shù)據(jù)的數(shù)量很多時,它需要的傳輸線的數(shù)目也更多。 串行通信是最古老的溝通機(jī)制之一。 要使串行通信工作,你只需要一根三根線的電纜 —— 1根發(fā)送, 1根用來接收, 1根接地。使用串行端口,你可以連接到調(diào)制解調(diào)器,鼠標(biāo)或其它設(shè)備,如一個橋梁 /路由器進(jìn)行配置。 12 如前所述,一個串行設(shè)備一次發(fā)送和接收一個位的數(shù)據(jù)。該數(shù)據(jù)位可以是五、六、七或八位,基于商定而定。波特率是數(shù)據(jù)從一個設(shè)備到另一個的傳輸速度。一個校驗位可以是以下內(nèi)容:奇數(shù),偶數(shù),標(biāo)記,空白或無(空的奇偶位標(biāo)志幾乎總是被使用)。大多數(shù)系列設(shè)備使用 9針連接器。在異步通信中,數(shù)據(jù)是一幀一幀傳送的 ,每一串行幀的數(shù)據(jù)格式由一位起始位 ,5~ 8位的數(shù)據(jù)位 ,一位奇偶校驗位 (可省略 )和一位停止位四部分組成。在 PC 機(jī)中一般有兩個標(biāo)準(zhǔn) RS232C 串行接口 COM1和 COM2。串行通信擁有很多的標(biāo)準(zhǔn)接口,如 RS232, RS485, USB 接口和IEEE1394。 RS232是在 PC 機(jī)中和通信行業(yè)中應(yīng)用最廣泛的的串行接口。該標(biāo)準(zhǔn)適用于 DCE和 DTE間的串行二進(jìn)制通信 ,最高數(shù) 據(jù)傳送速率可達(dá) , 13 最長傳送電纜可達(dá) 15米。 MAX232芯片可以完成電平轉(zhuǎn)換這一工作。為了實現(xiàn)可靠的,實時的傳輸,該系統(tǒng)采用三線連接方式,即 RS232端口的 GND引腳, RXD 引腳和 TXD 的引腳與外部端口連接,如圖 1所示。 TTL 電平可由 MCI1488轉(zhuǎn)換為 RS232電平,它需要177。 MAX232芯片是 Maxim公司生產(chǎn)的低功耗、單電源雙 RS232發(fā)送 /接收器,適用于各種 EIA232E 和 14 的通信接口。其取值均為 1μ F/25V,宜選用鉭電容并且應(yīng)盡量靠近芯片, C5為 F 的去耦電容。因此,它適應(yīng)了串行通信接口。 圖 2 串行通信模塊的硬件電路 四、串口通信的軟件設(shè)計 單片機(jī)的通信程序與 PC 機(jī)之間通過中斷通信, PC 機(jī)被稱為主控制器。子程序的串口接收數(shù)據(jù),逐個發(fā)送脈沖,通過上升沿判斷指令子程序和中斷子程序發(fā)送的數(shù)據(jù)。 15 B 發(fā)送步 進(jìn)脈沖子程序 使用反單晶片微控制器定時器 0,作為固定的時間計時,能使 ,從而產(chǎn)生周期性的驅(qū)動脈沖。經(jīng)過單片機(jī)接收數(shù)據(jù),并調(diào)用串口中斷子程序,它第一次發(fā)送的數(shù)據(jù)被處理。 D 發(fā)送中斷處理子程序 發(fā)送中斷處理子程序負(fù)責(zé)將數(shù)據(jù)發(fā)送到計算機(jī),中斷狀態(tài)一般為不允許中斷。這時,單片機(jī)返回到主程序和等待接收指令。該設(shè)計的步驟如下: ( 1)設(shè)置通信協(xié)議,打開串行端口,這是所謂的初始化,然后阻止其他程序使用串行端口。 子接口很簡單,其中的子接口的參數(shù)設(shè)置,如波特率通信模塊的芯片已被設(shè)置為2400Bps,在計算機(jī)上的端口的默認(rèn)設(shè)置 2400Bps。現(xiàn)約定其通信協(xié)議如下 : ( 1)串行通信波特率為 1200bps。 ( 4)無奇偶校驗位。 ( 6)聯(lián)絡(luò)方式為 PC 機(jī)主動聯(lián)絡(luò) MCS51單片機(jī)。 PC 微機(jī)通過友好 的用戶界面向單片機(jī)發(fā)送控制指令。 六、結(jié)論 串口通信的硬件設(shè)計基于 RS232, PC機(jī)和單片機(jī)之間進(jìn)行通信的軟件模塊使用 C++和匯編語言編程。 17 ( 5)通信可以有中斷傳送方式和查詢方式。 ( 3)設(shè)定單片機(jī)的地址碼為 F1H。 串行通信程序包括兩部分 ,一部分是 MCS51單片機(jī)的通信程序 ,另一部分是 PC機(jī)的通信程序。 ( 3)傳遞串口轉(zhuǎn)來的數(shù)據(jù),驗證數(shù)據(jù)的傳輸過程。串行口通信可以利用兩種方式:一是注冊組件,生成的 C++本身并不提供單獨的串行通訊組件,但是它可通過已注冊的 Microsoft MSComm32成分,生成相對簡單的 VB, VC 代碼。隨著計算機(jī)接收代碼“ 1”,這表明,單片機(jī)上執(zhí)行完全由 PC 微機(jī)發(fā) 送的指令。 16 如果第一個數(shù)據(jù)是一個數(shù)字標(biāo)記“ 49”,這意味著步進(jìn)電機(jī)反轉(zhuǎn),則單片機(jī)接收到發(fā)送來的速度和步驟信息。同時,單片機(jī)重新載入由 PC 機(jī)通過串行通信微機(jī)發(fā)送的初始值。由單片機(jī)接收到的數(shù)據(jù)包括一些信息,如速度,步驟和開 /關(guān)指示,由于緩沖區(qū)的大小足夠把這些數(shù)據(jù)發(fā)送到電腦中,所以省略了軟件握手協(xié)議,以提高 CPU 利用率。中斷服務(wù)子程序流程圖如圖 3所示。因此,用它來作為電壓轉(zhuǎn)換器適用。因此 TTL/CMOS 電平的 T1IN、 T2IN 引腳應(yīng)接 MCS51的串行發(fā)送引腳 TXD; R1OUT、 R2OUT 應(yīng)接 MCS51的串行接收引腳 RXD,與之對應(yīng)的 RS232C 電平的 T1OUT、 T2OUT 應(yīng)接 PC 機(jī)的接收端 RD; R1IN、 R2IN 應(yīng)接 PC機(jī)的發(fā)送端 TD。 10V 電壓 ,所以采用此芯片接口的串行通信系統(tǒng)只要單一的 +5V電源就可以。由于適用三個電源電壓,電路將不可避免地變得復(fù)雜,所以該電 路采用標(biāo)準(zhǔn)的 RS232芯片MAX232。為了溝通上位機(jī)和下位機(jī),就需要將單片機(jī)輸出的 TTL 電平進(jìn)行轉(zhuǎn)換。 RS232是一個基本現(xiàn)代化的計算機(jī)接口,它包括 COM1和 COM2端口,該端口 COM1有九針連接器。 RS232C標(biāo)準(zhǔn)的電平采用負(fù)邏輯 ,規(guī)定 +3V~ +15V之間的任意電平為邏輯“ 0”電平 ,3V~ 15V 之間的任意電平為邏輯“ 1”電平 ,與 TTL和 CMOS 電平是不同的。許多短距離打印機(jī)等電腦外設(shè),所有磁盤和終端與 PC 機(jī)通過 RS232串行接口通信。 RS485的數(shù)據(jù)傳輸 具有抗噪聲的特點,因此它通常用于工業(yè)生產(chǎn)。 智能傳感器的 CMOS 芯片因為其低成本,小型化,智能化和標(biāo)準(zhǔn)化的特點已得到廣泛應(yīng)用。 PC 機(jī)采用可編程串行異步通信控制器 8250來實現(xiàn)異步串行通信。同步通信適用于傳送速度高的情況 ,其硬件復(fù)雜。然而,校驗位可用于改善完整數(shù)據(jù)的傳送。大多數(shù)串行設(shè)備傳輸七、八位數(shù)據(jù)。數(shù)據(jù)位被 發(fā)送完后,就會發(fā)送一個停止位。其他可以在任何時間發(fā)送或接收被稱為單雙工設(shè)備。它的優(yōu)點是只需一對傳輸線進(jìn)行傳送信息 ,因此其成本低 ,適用于遠(yuǎn)距離通信 。 盡管相對較慢的傳輸速度遠(yuǎn)低于并行端口,串行端口通信依然因為它簡單的設(shè)備和高的成本效益而成為一個受歡迎的連接選項。顧名思義,一個串行端口發(fā)送和接收串行數(shù)據(jù),一次一位數(shù)據(jù)。串行通信是一個數(shù)據(jù)按一個個序位單向傳輸?shù)耐ǖ?,其中兩個過渡線是實現(xiàn)雙向通信傳輸?shù)男枰?。上位機(jī)與下位機(jī)之間的通信有兩個方法,它們分別 是并行通信和串行通信。因此,PC 微機(jī)和驅(qū)動系統(tǒng)之間的通信是系統(tǒng)通信所必需的。 R1IN, R2IN should be connected PCsender TD. MAX232 chip has a voltage converter which can transform the voltage of +5 V to the required voltage. Therefore, it adapts to the serial munication inter face, moreover it has much characteristic, such as moderate price, the hardware simple, so it is used to be a voltage converter. The hardware circuit of serial munication module is shown in Figure 2. Figure 2. The hardware circuit of serial munication module IV. THE SOFTWARE DESIGN OF SERIAL PORT COMMUNICATION The munication program of the single chip microputer municates with PC puter by interrupt and PC puter is called as main controller. When the single chip puter receives the data signals sent by PC puter, then it calls interrupt service program. The flowchart of the interrupt service main subprogram is shown in Figure 3. In order to fully exploit the efficiency of single chip puter to minimize CPU ?time occupied by munication, the control program will be we will promptly respond to and control 6 objects. The munication program will be optimized. The subprogram of serial port interrupt for receiving data, the subprogram for sending stepbystep impulse, the subprogram for judging instruction and the subprogram foe sending data. A. The subprogram of serial port interrupts for receiving data The subprogram of serial port interrupts for receiving data is mainly responsible for receiving data sent by PC microputer and storing the data into allocated memory (it does not deal with data so as to reduce the time taken up by interruptions). The data received by the single chip microputer includes little information, such as speed, steps and on/off instructions, and the buffer is large enough to send the puter, so the software shake hands protocol is omit so as to raises the CPU utilization. When the program of serial port interrupt receives the specified data, it exits the serial port interrupt. B. The subprogram of se