畢業(yè)論文 計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)_第1頁
畢業(yè)論文 計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)_第2頁
畢業(yè)論文 計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)_第3頁
畢業(yè)論文 計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)_第4頁
畢業(yè)論文 計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 目錄1 設(shè)計(jì)任務(wù)12 設(shè)計(jì)方案13硬件設(shè)計(jì)13.1 at89c51簡介13.2 max232芯片簡介43.3 串行通信電路54 軟件設(shè)計(jì)64.1 bios串行通信口功能64.2 單片機(jī)串行口控制寄存器及波特率的計(jì)算74.3 程序流程圖104.3.1 pc機(jī)部分程序流程圖104.3.2 單片機(jī)部分125 心得體會(huì)13參考文獻(xiàn)14附錄一15附錄二17 計(jì)算機(jī)通信系統(tǒng)設(shè)計(jì)1 設(shè)計(jì)任務(wù)1. 畫出簡要的硬件原理圖,編寫通信程序。 2. 程序運(yùn)行后,實(shí)現(xiàn)pc機(jī)和單片機(jī)之間的串行通信。2 設(shè)計(jì)方案pc機(jī)與單片機(jī)之間最簡單的連接是零調(diào)制3線經(jīng)濟(jì)型,所謂三線就是指發(fā)送數(shù)據(jù)線txd、接收數(shù)據(jù)線rxd以及信號地線

2、gnd。連接時(shí),雙方的地線直接相連,收發(fā)數(shù)據(jù)線交叉相連。這是進(jìn)行全雙工通信所必需的最少數(shù)目的線路。由于單片機(jī)的輸入、輸出、均為ttl電平,而pc機(jī)配置的是rs-232標(biāo)準(zhǔn)串行接口,二者的電氣規(guī)范不一致,因此要完成pc機(jī)與單片機(jī)之間的串行通信,必須進(jìn)行電平轉(zhuǎn)換。本次課程設(shè)計(jì)我們選用at89c51單片機(jī),電平轉(zhuǎn)換芯片選用maxim公司生產(chǎn)的max232芯片。3硬件設(shè)計(jì)3.1 at89c51簡介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomflash programmable and erasable read only memory)的低電壓,高性能cmos 8位微處理器,

3、俗稱單片機(jī)。at89c2051是一種帶2k字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡版本。at89c單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。以下是at89c51芯片的引腳圖: 圖3-1 at89c51引腳圖接下來對單片機(jī)個(gè)管教進(jìn)行簡要說明:vcc:供電電壓。gnd:接地。p0口:p0口為一個(gè)8位漏級開路雙向

4、i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl

5、門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。p3口:p3口管腳是帶8個(gè)內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(il

6、l)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:管腳 備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 int0(外部中斷0)p3.3 int1(外部中斷1)p3.4 t0(記時(shí)器0外部輸入)p3.5 t1(記時(shí)器1外部輸入)p3.6 wr(外部數(shù)據(jù)存儲器寫選通)p3.7 rd(外部數(shù)據(jù)存儲器讀選通)p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在flash編程期間,此引

7、腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部

8、程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2:來自反向振蕩器的輸出。3.2 max232芯片簡介max232芯片是maxim公司生產(chǎn)的、包含兩路接收器和驅(qū)動(dòng)器的ic芯片,適用于各種eia232c和v.28/v.24的通信接口。max232芯片內(nèi)部有一個(gè)電源電壓變換器,可以把輸入的+5v電源電壓變換成rs-232c輸出所需要的正負(fù)10v電壓。所以,采用此芯

9、片的接口串行通信系統(tǒng)只需要單一的+5v電源就可以了。 以下是max232芯片的引腳圖: 圖3-2max232引腳max232典型工作電路圖: 圖3-3 max232典型工作電路圖在max232工作電路中,電容c1、c2、c3、c4、以及v_、v+是電源變換電路部分。在實(shí)際應(yīng)用中,期間對電源噪聲很敏感。因此,vcc必須要對地加去耦電容,其他電容同樣是用以提高抗干擾能力,在連接時(shí)必須盡量靠近器件。下半部分是發(fā)送和接收部分,實(shí)際應(yīng)用中,和可直接接ttl/cmos點(diǎn)評的89c51單片機(jī)的串行發(fā)送端txd;和可直接接ttl/cmos電平的89c51單片機(jī)的串行接收端rxd;和可直接接pc機(jī)的rs-232

10、串口接收端rxd;和可直接接pc機(jī)的rs-232串口發(fā)送端txd.3.3 串行通信電路通過以上對at89c51和max232兩個(gè)芯片的介紹,接下來設(shè)計(jì)串行通信電路。現(xiàn)從max232芯片中兩路發(fā)送接收中任選一路作為接口。應(yīng)注意其發(fā)送、接受的引腳要對應(yīng)。以下為接口電路圖: 圖3-4 pc機(jī)與單片機(jī)通信電路4 軟件設(shè)計(jì)編寫程序,實(shí)現(xiàn)單片機(jī)與pc機(jī)之間的串行通信。程序?qū)崿F(xiàn)以下功能:單片機(jī)向pc機(jī)發(fā)送數(shù)據(jù),pc機(jī)接收后將接收到的數(shù)據(jù)反饋給單片機(jī),由單片機(jī)檢測發(fā)送的數(shù)據(jù)是否正確,正確則繼續(xù)發(fā)送并由數(shù)碼管顯示該數(shù)字,否則重新發(fā)送,直至數(shù)據(jù)發(fā)送完畢。4.1 bios串行通信口功能pc機(jī)提供比較靈活的關(guān)于串行口

11、的bios中斷調(diào)用方法,即通過”int 14”調(diào)用rom bios串行通信口例行程序。該例行程序包括將串口初始化為指定的字節(jié)結(jié)構(gòu)和傳輸速率,檢查控制器的狀態(tài)、讀寫字符等功能。下面介紹”int 14”中斷調(diào)用功能。1 初始化串行通信口(ah=0) 調(diào)用參數(shù):al=初始化參數(shù) dx=通信口號,0:com1, 2:com2 返回參數(shù):ah=通信口狀態(tài) al=調(diào)制解調(diào)器狀態(tài) 2 向串行通信口寫字符(ah=1) 輸入?yún)?shù):al=所寫字符 dx=通信口號,0:com1, 2:com2 輸出參數(shù):寫字符成功:ah.7=0,al=已寫入字符 寫字符失?。篴h.7=1,ah.06=通信口狀態(tài)3 從串行通信口讀字

12、符(ah=2) 輸入?yún)?shù):dx=通信口號,0:com1, 2:com2 輸出參數(shù):讀字符成功:ah.7=0,al=讀入字符 讀字符失?。篴h.7=1,ah.06=通信口狀態(tài)4 取通信口狀態(tài)(ah=3) 輸入?yún)?shù):dx=通信口號,0:com1, 2:com2 輸出參數(shù):ah=通信口狀態(tài) al=調(diào)制解調(diào)器狀態(tài) 4.2 單片機(jī)串行口控制寄存器及波特率的計(jì)算89c51串行通信的方式選擇、接收和發(fā)送控制以及串行口的狀態(tài)標(biāo)志等均由特殊功能寄存器scon控制和指示。scon 串行口控制寄存器通常在芯片或設(shè)備中為了監(jiān)視或控制接口狀態(tài),都會(huì)引用到接口控制寄存器。scon 就是51 芯片的串行口控制寄存器。它的尋

13、址地址是98h,是一個(gè)可以位尋址的寄存器,作用就是監(jiān)視和控制51 芯片串行口的工作狀態(tài)。51 芯片的串口可以工作在幾個(gè)不同的工作模式下,其工作模式的設(shè)置就是使用scon 寄存器。它的各個(gè)位的具體定義如下:sm0 sm1 sm2 ren tb8 rb8 ti rism0、sm1 為串行口工作模式設(shè)置位,這樣兩位可以對應(yīng)進(jìn)行四種模式的設(shè)置。串行口工作模式設(shè)置。sm0 sm1 模式 功能 波特率 0 0 0 同步移位寄存器 fosc/12 0 1 1 8位uart 由定時(shí)器設(shè)置 1 0 2 9位uart fosc/32 或fosc/64 1 1 3 9位uart 由定時(shí)器設(shè)置在這里只說明最常用的模式

14、1,其它的模式也就一一略過。表中的fosc 代表振蕩器的頻率,也就是晶振的頻率。uart 為(universal asynchronous receiver)的英文縮寫。sm2: 在模式2、模式3 中為多處理機(jī)通信使能位。在模式0 中要求該位為0。ren: 為允許接收位,ren 置1 時(shí)串口允許接收,置0 時(shí)禁止接收。ren 是由軟件置位或清零。如果在一個(gè)電路中接收和發(fā)送引腳p3.0,p3.1 都和上位機(jī)相連,在軟件上有串口中斷處理程序,當(dāng)要求在處理某個(gè)子程序時(shí)不允許串口被上位機(jī)來的控制字符產(chǎn)生中斷,那么可以在這個(gè)子程序的開始處加入ren=0 來禁止接收,在子程序結(jié)束處加入ren=1 再次打開

15、串口接收。tb8: 發(fā)送數(shù)據(jù)位8,在模式2 和3 是要發(fā)送的第9 位。該位可以用軟件根據(jù)需要置位或清除,通常這位在通信協(xié)議中做奇偶位,在多處理機(jī)通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。rb8: 接收數(shù)據(jù)位8,在模式2 和3 是已接收數(shù)據(jù)的第9 位。該位可能是奇偶位,地址/數(shù)據(jù)標(biāo)識位。在模式0 中,rb8 為保留位沒有被使用。在模式1 中,當(dāng)sm2=0,rb8 是已接收數(shù)據(jù)的停止位。ti: 發(fā)送中斷標(biāo)識位。在模式0,發(fā)送完第8 位數(shù)據(jù)時(shí),由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。ti 置位后,申請中斷,cpu 響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下,ti 都必須由軟件來清除,也

16、就是說在數(shù)據(jù)寫入到sbuf 后,硬件發(fā)送數(shù)據(jù),中斷響應(yīng)(如中斷打開),這時(shí)ti=1,表明發(fā)送已完成,ti 不會(huì)由硬件清除,所以這時(shí)必須用軟件對其清零。ri: 接收中斷標(biāo)識位。在模式0,接收第8 位結(jié)束時(shí),由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。ri=1,申請中斷,要求cpu 取走數(shù)據(jù)。但在模式1 中,sm2=1時(shí),當(dāng)未收到有效的停止位,則不會(huì)對ri 置位。同樣ri 也必須要靠軟件清除。常用的串口模式1 是傳輸10 個(gè)位的,1 位起始位為0,8 位數(shù)據(jù)位,低位在先,1 位停止位為1。它的波特率是可變的,其速率是取決于定時(shí)器1 或定時(shí)器2 的定時(shí)值(溢出速率)。at89c51

17、和at89c2051 等51 系列芯片只有兩個(gè)定時(shí)器,定時(shí)器0 和定時(shí)器1,而定時(shí)器2是89c52 系列芯片才有的。波特率:在使用串口做通訊時(shí),一個(gè)很重要的參數(shù)就是波特率,只有上下位機(jī)的波特率一樣時(shí)才可以進(jìn)行正常通訊。波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。如果波特率為9600,它是指每秒可以傳送9600 個(gè)二進(jìn)位,而一個(gè)字節(jié)要8 個(gè)二進(jìn)位,如用串口模式1 來傳輸那么加上起始位和停止位,每個(gè)數(shù)據(jù)字節(jié)就要占用10 個(gè)二進(jìn)位,9600 波特率用模式1 傳輸時(shí),每秒傳輸?shù)淖止?jié)數(shù)是960010960 字節(jié)。51 芯片的串口工作模式0的波特率是固定的,為fosc/12,以一個(gè)12m 的晶振來計(jì)算,那

18、么它的波特率可以達(dá)到1m。模式2 的波特率是固定在fosc/64 或fosc/32,具體用那一種就取決于pcon 寄存器中的smod位,如smod 為0,波特率為focs/64,smod 為1,波特率為focs/32。模式1 和模式3 的波特率是可變的,取決于定時(shí)器1 或2(52 芯片)的溢出速率。那么我們怎么去計(jì)算這兩個(gè)模式的波特率設(shè)置時(shí)相關(guān)的寄存器的值呢?可以用以下的公式去計(jì)算。波特率(32)定時(shí)器1 溢出速率上式中如設(shè)置了pcon 寄存器中的smod 位為1 時(shí)就可以把波特率提升2 倍。通常會(huì)使用定時(shí)器1 工作在定時(shí)器工作模式2 下,這時(shí)定時(shí)值中的tl1 做為計(jì)數(shù),th1 做為自動(dòng)重裝值

19、 ,這個(gè)定時(shí)模式下,定時(shí)器溢出后,th1 的值會(huì)自動(dòng)裝載到tl1,再次開始計(jì)數(shù),這樣可以不用軟件去干預(yù),使得定時(shí)更準(zhǔn)確。在這個(gè)定時(shí)模式2 下定時(shí)器1 溢出速率的計(jì)算公式如下:溢出速率(計(jì)數(shù)速率)/(256th1)上式中的“計(jì)數(shù)速率”與所使用的晶體振蕩器頻率有關(guān),在51 芯片中定時(shí)器啟動(dòng)后會(huì)在每一個(gè)機(jī)器周期使定時(shí)寄存器th 的值增加一,一個(gè)機(jī)器周期等于十二個(gè)振蕩周期,所以可以得知51 芯片的計(jì)數(shù)速率為晶體振蕩器頻率的1/12,一個(gè)12m 的晶振用在51 芯片上,那么51 的計(jì)數(shù)速率就為1m。通常用11.0592m 晶體是為了得到標(biāo)準(zhǔn)的無誤差的波特率,那么為何呢?計(jì)算一下就知道了。如我們要得到96

20、00 的波特率,晶振為11.0592m 和12m,定時(shí)器1 為模式2,smod 設(shè)為1,分別看看那所要求的th1 為何值。代入公式:11.0592m9600(232)(11.0592m/12)/(256-th1)th125012m9600(232)(12m/12)/(256-th1)th1249.49上面的計(jì)算可以看出使用12m 晶體的時(shí)候計(jì)算出來的th1 不為整數(shù),而th1 的值只能取整數(shù),這樣它就會(huì)有一定的誤差存在不能產(chǎn)生精確的9600 波特率。當(dāng)然一定的誤差是可以在使用中被接受的,就算使用11.0592m 的晶體振蕩器也會(huì)因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對波特率的

21、影響是十分之小的,可以忽略不計(jì)。4.3 程序流程圖4.3.1 pc機(jī)部分程序流程圖 開始串口初始化接收字符數(shù)據(jù)是否就緒 ?接收成功?取回發(fā)送保持器是否空?發(fā)送字符是否成功nynynyny接收完畢?結(jié)束n 圖3-5 pc機(jī)通信程序流程圖4.3.2 單片機(jī)部分 開始 串口初始化n發(fā)送出錯(cuò)結(jié)束發(fā)送完畢?重新發(fā)送是否正確?發(fā)送數(shù)據(jù) 等待反饋數(shù)據(jù)nyy 圖3-6 單片機(jī)通信程序流程圖5 心得體會(huì)這學(xué)期學(xué)習(xí)了微機(jī)原理與接口技術(shù),接觸匯編語言,開始對其有一定的了解,以前編寫程序用的都是c語言,基本上不涉及硬件方面的東西,而匯編語言則不同,它需要對硬件電路有一定的了解,這樣在學(xué)習(xí)匯編語言的時(shí)候,就需注意硬件方

22、面的知識的掌握。本次課程設(shè)計(jì)我所做的題目是實(shí)現(xiàn)單片機(jī)與pc機(jī)之間的串行通信,對于這個(gè)題目,在微機(jī)原理與接口技術(shù)這門課程里曾學(xué)過關(guān)于pc機(jī)的串行通信的知識,而對于單片機(jī),在以前也曾經(jīng)自學(xué)過,所以最初看到這個(gè)題目的時(shí)候,并沒有感到無從下手,接下來需要做的事情就是通過查找資料確定硬件電路,然后再通過硬件電路編寫實(shí)現(xiàn)功能的程序。通過查找資料,最終確定下來硬件電路圖,進(jìn)而根據(jù)要求編寫程序。由于對此類題目以前沒有做過,所以本次課程設(shè)計(jì),無論是硬件電路方面,還是軟件方面,難免會(huì)有些不足之處,比如硬件電路可以嘗試其他的實(shí)現(xiàn)方法,而軟件方面,則可以修改程序使其實(shí)現(xiàn)更加復(fù)雜的功能等。雖然如此,通過此次課程設(shè)計(jì)還是

23、感覺獲益匪淺,首先是對匯編語言和微機(jī)的串行通信知識有了進(jìn)一步的了解和鞏固,為以后更加系統(tǒng)的學(xué)習(xí)和應(yīng)用奠定了一定的基礎(chǔ);其次是對單片機(jī)知識有了很好的認(rèn)識,以前只是很粗淺的學(xué)習(xí)了單片機(jī),經(jīng)過這幾天的學(xué)習(xí)和應(yīng)用,有了很大程度的提高;最后一點(diǎn)就是提高了自己分析和解決問題的能力,面對我們未知的問題,我們應(yīng)該知道如何下手,如何解決??傊?,通過此次課程設(shè)計(jì),讓我收獲了很多。參考文獻(xiàn)1 周佩玲. 微機(jī)原理與接口技術(shù).電子工業(yè)出版社,20052 周堅(jiān). 單片機(jī)c語言輕松入門.北京航空航天大學(xué)出版社,20063 李朝青. 單片機(jī)原理及接口技術(shù)(第三版). 北京航空航天大學(xué)出版社,20054 潘超群. 單片機(jī)控制技

24、術(shù)在通信中的應(yīng)用-mcs-51系列.電子工業(yè)出版社,20085 程學(xué)先. 匯編語言程序設(shè)計(jì).武漢理工大學(xué)出版社,2002附錄一pc機(jī)通信程序: data segment rbuf db 10 dup(0) count db 10 data ends code segment assume cs:code,ds:data,start proc far push ds push axmov ax,datamov ds,axlea di ,rbuf ;置接收數(shù)據(jù)塊首地址mov cl,count ;置接收數(shù)據(jù)塊長度mov ah,00h ;0號功能 mov al,0e3h ;串口初始化:波特率9600,

25、無校驗(yàn),1位停止位,8位數(shù)據(jù)位mov dx,00h ;指定com1端口int 14hrept1:mov ah,02h ;2號功能:接收字符mov dx,00h ;指定com1端口int 14h ;出口參數(shù):al中為接收到的參數(shù),ah中為線路狀態(tài)mov bx,ax ;ax中的內(nèi)容暫存于bx中mov al,ah ;取線路狀態(tài)至altest al,80h ;接收是否成功(d7=0?) jnz rept1 ;不成功,重接test al,01h ;數(shù)據(jù)是否準(zhǔn)備就緒jnz rept1 ;未就緒,重接mov al,bl ;就緒,取回字符mov di,al ;保存inc di ;指向下一個(gè)地址單元rept2:

26、mov ah,03h ;3號功能檢查串口狀態(tài)mov dx,00h ;指定com1端口int 14hmov al,ah ;取線路狀態(tài)至altest al,20h ;發(fā)送保持器是否空(d5=1?)jz rept2rept3:mov al,bl ;將接收到的字符存至almov ah,01h ;1號功能:發(fā)送字符mov dx,00h ;指定com1端口int 14hmov al,ah ;取線路狀態(tài)至altest al,80h ;發(fā)送是否成功(d7=0?) jnz rept3 ;不成功,重發(fā)loop rept1 ;數(shù)據(jù)是否接收完畢?未完,繼續(xù)pop dspop axcode endsend start附錄二單片機(jī)通信程序:#include#include#define uchar unsigned c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論