PC機(jī)之間串口通信的實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?nbsp;1.熟悉微機(jī)接口實(shí)驗(yàn)裝置的結(jié)構(gòu)和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學(xué)會(huì)串行通信程序的編制方法。 二、實(shí)驗(yàn)內(nèi)容與要求 1.基本要求主機(jī)接收開關(guān)量輸入的數(shù)據(jù)(二進(jìn)制或十六進(jìn)制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過調(diào)整乒乓開關(guān)的狀態(tài),設(shè)置8位數(shù)據(jù);(2)在小鍵盤上按“R”鍵,系統(tǒng)將此時(shí)乒乓開關(guān)的狀態(tài)讀入計(jì)算機(jī)I中,并顯示出來,同時(shí)顯示經(jīng)串行通訊后,計(jì)算機(jī)II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤按下“Y”鍵,則重復(fù)步驟(1),進(jìn)行另一數(shù)據(jù)的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進(jìn)行出錯(cuò)處理,例如采用奇偶校驗(yàn),出錯(cuò)重傳或者采用接收方回傳和發(fā)送方確認(rèn)來保證發(fā)送和接收正確。 三、設(shè)計(jì)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時(shí),必須首先設(shè)置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號(hào),是命令寄存器中的一位;CTS#(Clear To Send)是由外設(shè)發(fā)來的對(duì)CPU請(qǐng)求發(fā)送信號(hào)的響應(yīng)信號(hào)。然后就開始發(fā)送過程。在發(fā)送時(shí),每當(dāng)CPU送往發(fā)送緩沖器一個(gè)字符,發(fā)送器自動(dòng)為這個(gè)字符加上1個(gè)起始位,并且按照編程要求加上奇/偶校驗(yàn)位以及1個(gè)、1.5個(gè)或者2個(gè)停止位。串行數(shù)據(jù)以起始位開始,接著是最低有效數(shù)據(jù)位,最高有效位的后面是奇/偶校驗(yàn)位,然后是停止位。按位發(fā)送的數(shù)據(jù)是以發(fā)送時(shí)鐘TXC的下降沿同步的,也就是說這些數(shù)據(jù)總是在發(fā)送時(shí)鐘TXC的下降沿從8251A發(fā)出。數(shù)據(jù)傳輸?shù)牟ㄌ芈嗜Q于編程時(shí)指定的波特率因子,為發(fā)送器時(shí)鐘頻率的1、1/16或1/64。當(dāng)波特率指定為16時(shí),數(shù)據(jù)傳輸?shù)牟ㄌ芈示褪前l(fā)送器時(shí)鐘頻率的1/16。CPU通過數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器以后,再傳輸?shù)桨l(fā)送緩沖器,經(jīng)移位寄存器移位,將并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),從TxD端送往外部設(shè)備。在8251A接收字符時(shí),命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過檢測(cè)RxD引腳上的低電平來準(zhǔn)備接收字符,在沒有字符傳送時(shí)RxD端為高電平。8251A不斷地檢測(cè)RxD引腳,從RxD端上檢測(cè)到低電平以后,便認(rèn)為是串行數(shù)據(jù)的起始位,并且啟動(dòng)接收控制電路中的一個(gè)計(jì)數(shù)器來進(jìn)行計(jì)數(shù),計(jì)數(shù)器的頻率等于接收器時(shí)鐘頻率。計(jì)數(shù)器是作為接收器采樣定時(shí),當(dāng)計(jì)數(shù)到相當(dāng)于半個(gè)數(shù)位的傳輸時(shí)間時(shí)再次對(duì)RxD端進(jìn)行采樣,如果仍為低電平,則確認(rèn)該數(shù)位是一個(gè)有效的起始位。若傳輸一個(gè)字符需要16個(gè)時(shí)鐘,那么就是要在計(jì)數(shù)8個(gè)時(shí)鐘后采樣到低電平。之后,8251A每隔一個(gè)數(shù)位的傳輸時(shí)間對(duì)RxD端采樣一次,依次確定串行數(shù)據(jù)位的值。串行數(shù)據(jù)位順序進(jìn)入接收移位寄存器,通過校驗(yàn)并除去停止位,變成并行數(shù)據(jù)以后通過內(nèi)部數(shù)據(jù)總線送入接收緩沖器,此時(shí)發(fā)出有效狀態(tài)的RxRDY信號(hào)通知CPU,通知CPU8251A已經(jīng)收到一個(gè)有效的數(shù)據(jù)。一個(gè)字符對(duì)應(yīng)的數(shù)據(jù)可以是5~8位。如果一個(gè)字符對(duì)應(yīng)的數(shù)據(jù)不到8位,8251A會(huì)在移位轉(zhuǎn)換成并行數(shù)據(jù)的時(shí)候,自動(dòng)把他們的高位補(bǔ)成0。 五、系統(tǒng)總體設(shè)計(jì)方案根據(jù)系統(tǒng)設(shè)計(jì)的要求,對(duì)系統(tǒng)設(shè)計(jì)的總體方案進(jìn)行論證分析如下:1.獲取8位開關(guān)量可使用實(shí)驗(yàn)臺(tái)上的8255A可編程并行接口芯片,因?yàn)橹灰@取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實(shí)驗(yàn)臺(tái)上的8位開關(guān)量。2.當(dāng)使用串口進(jìn)行數(shù)據(jù)傳送時(shí),雖然同步通信速度遠(yuǎn)遠(yuǎn)高于異步通信,可達(dá)500kbit/s,但由于其需要有一個(gè)時(shí)鐘來實(shí)現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復(fù)雜,通常計(jì)算機(jī)之間的通信只采用異步通信。3.由于8251A本身沒有時(shí)鐘,需要外部提供,所以本設(shè)計(jì)中使用實(shí)驗(yàn)臺(tái)上的8253芯片的計(jì)數(shù)器2來實(shí)現(xiàn)。4:顯示和鍵盤輸入均使用DOS功能調(diào)用來實(shí)現(xiàn)。設(shè)計(jì)思路框圖,如下圖所示: 六、硬件設(shè)計(jì)硬件電路主要分為8位開關(guān)量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個(gè)部分。1.8位開關(guān)量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關(guān)的數(shù)據(jù)。此次設(shè)計(jì)在獲取8位開關(guān)數(shù)據(jù)量時(shí)采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實(shí)驗(yàn)臺(tái)上CS1口,對(duì)應(yīng)端口為280H-283H,PA0-PA7接8個(gè)開關(guān)。2.串行通信電路串行通信電路本設(shè)計(jì)中8253主要為8251充當(dāng)頻率發(fā)生器,接線如下圖所示。
上傳時(shí)間: 2013-12-19
上傳用戶:小火車?yán)怖怖?/p>
IO口狀態(tài)切換說明
上傳時(shí)間: 2013-10-09
上傳用戶:truth12
T2作為波特率控制UART_RXD 是硬中斷0或1口,如果能進(jìn)入中斷,說明該線有一個(gè)起始位產(chǎn)生,進(jìn)入中斷后調(diào)用下面的接收程序。退出硬中斷之前還需要將硬中斷標(biāo)志重新復(fù)位。UART_TXD 是任何其它IO即可。UART_SEND: PUSH IE PUSH DPH PUSH DPL PUSH PSW PUSH 00H PUSH ACC CLR EA SETB UART_TXD ;START BIT MOV R0,A CLR TR2 ;TR2置1,計(jì)數(shù)器2啟動(dòng),時(shí)間計(jì)數(shù)啟動(dòng)。 MOV A,RCAP2L;計(jì)數(shù)器2重新裝載值 MOV TL2,A ;置計(jì)數(shù)器2初值 ;T2需要重新裝載 MOV A,DPH MOV A,RCAP2H MOV TH2,A MOV A,R0 SETB TR2 ;TR2置1,計(jì)數(shù)器 JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2
上傳時(shí)間: 2014-01-12
上傳用戶:二十八號(hào)
PL2303或PV8651USB轉(zhuǎn)串口原理圖:由PV8651芯片組成。
上傳時(shí)間: 2013-11-01
上傳用戶:CHENKAI
MCS51單片機(jī)內(nèi)部有4個(gè)并行口,當(dāng)內(nèi)部并行口不夠用時(shí)可以外擴(kuò)并行口芯片。可外擴(kuò)的并行口芯片很多,分成2類:不可編程的并行口芯片(74LS3734和74LS245)和可編程的并行口芯片(8255)。7.1 不可編程并行口芯片的擴(kuò)展7.1.1 74LS373的擴(kuò)展1、 74LS245的結(jié)構(gòu)2、 74LS245的引腳3、 74LS245與89C51的連接 7.1.2 74LS245的擴(kuò)展 7.2 可編程并行口芯片的擴(kuò)展 7.2.1 8255的結(jié)構(gòu)7.2.2 8255的引腳7.2.3 8255的工作方式7.2.4 8255的控制字7.2.5 8255的應(yīng)用
上傳時(shí)間: 2013-11-13
上傳用戶:lnnn30
C51控制并口打印機(jī)實(shí)例:/* 沈陽新榮達(dá)電子 *//* 2004-12-7 */#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define data_8 P0sbit BUSY = P1^2; //打印機(jī) BUSY 接P1.2sbit STB = P1^0; //打印機(jī) STB 接P1.0void print(uchar j) //打印子程序{ uchar i;while(BUSY){}; //BUSY=1,打印機(jī)忙,等待BUSY 為0 再發(fā)數(shù)data_8=j;STB=0;i++;i--;STB=1; //給出數(shù)據(jù)鎖存時(shí)鐘BUSY=1;}void main(void){BUSY = 1; //忙信號(hào)置高STB = 1; //選通信號(hào)置高print(0x1b); //打印機(jī)初始化命令print(0x38);print(0x04);for(;;){print(0xd0); //發(fā)送漢字內(nèi)碼“新榮達(dá)”print(0xc2);print(0xc8);print(0xd9);print(0xb4);print(0xef);print(0x0d); //換行}}
上傳時(shí)間: 2013-11-13
上傳用戶:lwq11
單片機(jī)基礎(chǔ)知識(shí)單片機(jī)的外部結(jié)構(gòu):1、 DIP40雙列直插;2、 P0,P1,P2,P3四個(gè)8位準(zhǔn)雙向I/O引腳;(作為I/O輸入時(shí),要先輸出高電平)3、 電源VCC(PIN40)和地線GND(PIN20);4、 高電平復(fù)位RESET(PIN9);(10uF電容接VCC與RESET,即可實(shí)現(xiàn)上電復(fù)位)5、 內(nèi)置振蕩電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍)6、 程序配置EA(PIN31)接高電平VCC;(運(yùn)行單片機(jī)內(nèi)部ROM中的程序)7、 P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 單片機(jī)內(nèi)部I/O部件:(所為學(xué)習(xí)單片機(jī),實(shí)際上就是編程控制以下I/O部件,完成指定任務(wù))1、 四個(gè)8位通用I/O端口,對(duì)應(yīng)引腳P0、P1、P2和P3;2、 兩個(gè)16位定時(shí)計(jì)數(shù)器;(TMOD,TCON,TL0,TH0,TL1,TH1)3、 一個(gè)串行通信接口;(SCON,SBUF)4、 一個(gè)中斷控制器;(IE,IP)針對(duì)AT89C52單片機(jī),頭文件AT89x52.h給出了SFR特殊功能寄存器所有端口的定義。教科書的160頁給出了針對(duì)MCS51系列單片機(jī)的C語言擴(kuò)展變量類型。 C語言編程基礎(chǔ):1、 十六進(jìn)制表示字節(jié)0x5a:二進(jìn)制為01011010B;0x6E為01101110。2、 如果將一個(gè)16位二進(jìn)數(shù)賦給一個(gè)8位的字節(jié)變量,則自動(dòng)截?cái)酁榈?位,而丟掉高8位。3、 ++var表示對(duì)變量var先增一;var—表示對(duì)變量后減一。4、 x |= 0x0f;表示為 x = x | 0x0f;5、 TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變量TMOD的低四位賦值0x5,而不改變TMOD的高四位。6、 While( 1 ); 表示無限執(zhí)行該語句,即死循環(huán)。語句后的分號(hào)表示空循環(huán)體,也就是{;}第一章 單片機(jī)最小應(yīng)用系統(tǒng):?jiǎn)纹瑱C(jī)最小系統(tǒng)的硬件原理接線圖:1、 接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF2、 接晶體:X1(PIN18)、X2(PIN19)。注意標(biāo)出晶體頻率(選用12MHz),還有輔助電容30pF3、 接復(fù)位:RES(PIN9)。接上電復(fù)位電路,以及手動(dòng)復(fù)位電路,分析復(fù)位工作原理4、 接配置:EA(PIN31)。說明原因。第二章 基本I/O口的應(yīng)用第三章 顯示驅(qū)動(dòng)第七章 串行接口應(yīng)用
標(biāo)簽: 單片機(jī)
上傳時(shí)間: 2013-10-30
上傳用戶:athjac
LCD為L(zhǎng)CM161(HD44780驅(qū)動(dòng)器)字符顯示器驅(qū)動(dòng)程序 ;說明:本LCD為L(zhǎng)CM161(HD44780驅(qū)動(dòng)器)字符顯示器. ;接線:LCD D0-D8(PIN7-14) 對(duì)映用戶板P0.0--P0.7 ; LCD VSS(PIN1) 接 GND,VDD(PIN2)接+5V,LCD驅(qū)動(dòng)電源V0(PIN3)接可調(diào)電阻ADJ,調(diào)節(jié)亮度 ; LCD寄存器選擇RS(PIN4)接P2.0,讀寫選擇R/W(PIN5)接P2.1,使能端EN(PIN6)接P2.2(高電平有效) ;本程序采用I/O口模仿總線時(shí)序,故無需做任何硬件擴(kuò)展.屏幕顯示:"I'm SuperICES! ",
上傳時(shí)間: 2013-10-17
上傳用戶:ssz1990
1. RS-232-C 詳解 22. 串口通信基本接線方法 123. 串口通訊的概念及接口電路 134. 有關(guān)RS232和RS485接口的問答 145. 同步通信方式 166. 通信協(xié)議197. 實(shí)戰(zhàn)串行通訊258. 全雙工和半雙工方式 339. 淺析PC 機(jī)串口通訊流控制 3410. 奇偶校驗(yàn) 3511. 開發(fā)通信軟件的技術(shù)與技巧 3612. 接口技術(shù)的基本知識(shí) 4113. 一個(gè)單片機(jī)串行數(shù)據(jù)采集/傳輸模塊的設(shè)計(jì) 4414. 單工、半雙工和全雙工的定義 4815. 從RS232 端口獲得電源4916. 串行同步通信的應(yīng)用5017. 串行通信波特率的一種自動(dòng)檢測(cè)方法5318. RS-232、RS-422 與RS-485 標(biāo)準(zhǔn)及應(yīng)用5619. 串口泵 6串行通信接口標(biāo)準(zhǔn)經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在RS-232標(biāo)準(zhǔn)的基礎(chǔ)上經(jīng)過改進(jìn)而形成的。所以,以RS-232C為主來討論。RS-323C 標(biāo)準(zhǔn)是美國EIA(電子工業(yè)聯(lián)合會(huì))與BELL等公司一起開發(fā)的1969 年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在0~20000b/s 范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問題,如信號(hào)線功能、電器特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與RS-232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用。在討論RS-232C 接口標(biāo)準(zhǔn)的內(nèi)容之前,先說明兩點(diǎn):首先,RS-232-C標(biāo)準(zhǔn)最初是遠(yuǎn)程通信連接數(shù)據(jù)終端設(shè)備DTE(Data Terminal Equipment)與數(shù)據(jù)通信設(shè)備DCE(Data Communication Equipment)而制定的。因此這個(gè)標(biāo)準(zhǔn)的制定,并未考慮計(jì)算機(jī)系統(tǒng)的應(yīng)用要求。但目前它又廣泛地被借來用于計(jì)算機(jī)(更準(zhǔn)確的說,是計(jì)算機(jī)接口)與終端或外設(shè)之間的近端連接標(biāo)準(zhǔn)。顯然,這個(gè)標(biāo)準(zhǔn)的有些規(guī)定及和計(jì)算機(jī)系統(tǒng)是不一致的,甚至是相矛盾的。有了對(duì)這種背景的了解,我們對(duì)RS-232C標(biāo)準(zhǔn)與計(jì)算機(jī)不兼容的地方就不難理解了。其次,RS-232C 標(biāo)準(zhǔn)中所提到的“發(fā)送”和“接收”,都是站在DTE 立場(chǎng)上,而不是站在DCE 的立場(chǎng)來定義的。由于在計(jì)算機(jī)系統(tǒng)中,往往是CPU 和I/O設(shè)備之間傳送信息,兩者都是DTE,因此雙方都能發(fā)送和接收。
上傳時(shí)間: 2013-11-21
上傳用戶:crazyer
主要功能:1、將串口通訊協(xié)議存儲(chǔ)為一個(gè)通訊文件,可是隨時(shí)將存儲(chǔ)通訊協(xié)議文件調(diào)入計(jì)算機(jī)運(yùn)行與下位機(jī)通訊可以實(shí)現(xiàn)通訊對(duì)話,供下位機(jī)工程師參考使用,其主要的通訊協(xié)議本程序把它們分成四種情況。以下說明:1)下位機(jī)直接發(fā)送數(shù)據(jù),上位機(jī)只接收不回應(yīng)數(shù)據(jù)。2)下位機(jī)直接發(fā)送數(shù)據(jù),上位機(jī)接收并回應(yīng)數(shù)據(jù)。3)上位機(jī)直接發(fā)送數(shù)據(jù),下位機(jī)只接收不回應(yīng)數(shù)據(jù)。4)上位機(jī)直接發(fā)送數(shù)據(jù),下位機(jī)接收并回應(yīng)數(shù)據(jù)。下位機(jī)工程師完全可以利用這個(gè)功能單獨(dú)的并且很方便的調(diào)試與上位機(jī)通訊程序,更改雙方的通訊協(xié)議,不再需要上位機(jī)工程師的配合。windwos標(biāo)準(zhǔn)操作,使用方便。2、可以監(jiān)聽活動(dòng)串口的數(shù)據(jù),將監(jiān)聽到的數(shù)據(jù)顯示到數(shù)據(jù)顯示區(qū)里面,可以保存。也可以將原先保存的文件數(shù)據(jù)讀進(jìn)來,以供分析。數(shù)據(jù)可以按照十六進(jìn)制和ascii碼顯示出來。3、自動(dòng)識(shí)別串口設(shè)置,當(dāng)不知道對(duì)方設(shè)備的通訊串口設(shè)置時(shí),可以利用該功能讓此程序自動(dòng)識(shí)別,當(dāng)然前提是對(duì)方設(shè)備必須是一直在發(fā)數(shù)據(jù),整個(gè)識(shí)別過程大概需要二分鐘。4、可以通過該程序,利用串口將文件發(fā)送到另一個(gè)計(jì)算機(jī)上。另一個(gè)計(jì)算機(jī)通過接收文件接收所發(fā)出的文件。
上傳時(shí)間: 2013-11-11
上傳用戶:semi1981
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1