




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本科畢業(yè)設計說明書(論文) 第II頁共II頁目 錄第1章 引 言31.1 RS-485通信技術的發(fā)展31.2 設計任務與方案31.2.1 設計任務31.2.2 系統(tǒng)總體設計方案4第2章 系統(tǒng)硬件設計52.1 硬件系統(tǒng)的結構52.2 系統(tǒng)部件功能描述52.2.1 AT89C51單片機52.2.2 單片機最小應用系統(tǒng)72.2.3 紅外接收102.2.4 MAX485接口電路112.3 RS-485串口標準13第3章 系統(tǒng)的軟件設計153.1 MCS-51匯編語言簡介153.2 串行通信原理153.2.1 數據通信的基本概念153.2.2 串行通信的過程163.2.3 串行通信協(xié)議163.3 串行通信程序設計173.3.1 串行口的結構和功能173.3.2 選擇串行口工作方式183.3.3 串行口波特率的設置183.3.4 初始化串口193.3.5 程序的編制193.4 紅外通信原理203.4.1 紅外發(fā)送原理213.4.2 紅外解碼原理223.5 紅外解碼程序設計223.5.1 延時子程序223.5.2 解碼子程序233.6 RS-485程序設計流程圖253.6.1 數據接收部分253.6.2 命令執(zhí)行部分253.6.3 數據發(fā)送部分26第4章 系統(tǒng)的調試284.1 WAVE6000軟件簡介284.2 程序調試284.3 系統(tǒng)硬件的調試30總 結31致 謝32參 考 文 獻33附 錄 一34附 錄 二35本科畢業(yè)設計說明書(論文) 第45頁共45頁第1章 引 言1.1 RS-485通信技術的發(fā)展單片機技術和PC機技術在現實生活中都起著不可取代的作用,而結合這兩種技術的應用有著極大的發(fā)展前景。單片機和PC機串行通信技術有著其特有的魅力,現已經在工業(yè)、農業(yè)、科研等各個領域廣泛地應用。它憑著成本低、實現簡單等特點,在單片機與PC機的通信中占著一席之地。如今形成了RS-232總線標準、RS-485總線標準、總線、CAN總線、無線通信、USB總線等并行發(fā)展的趨勢??梢灶A測單片機和PC機串行通信技術的應用將更為廣泛,并隨著其他新技術的發(fā)展而發(fā)展。單片機與微機之間以RS-232通信最為常見,微機對外的兩個串口COM1、COM2都是專門為RS-232通信而設置的。雖然RS-232的通信方式方便,但它也有一些缺點。例如,RS-232只能實現短距離通信,通常只有十余米,要實現長距離通信還得依賴于調制解調器。另外,RS-232對地而言是共模傳輸方式,而各種電氣干擾大多也是對地共模方式,它的抗干擾能力不理想。RS-485通信方式與RS-232相比有很多優(yōu)點,首先它的通信距離比RS-232要遠得多,通??梢宰龅綌蛋倜咨踔燎滓陨希疫€可以實現多點通信方式,從而可以建立一個小范圍內的局域網,因而更有實用價值。RS-485采用差分信號傳輸方式,它的抗干擾能力比RS-232強的多,即便在信號電壓比較小的情況下也能獲得穩(wěn)定的傳輸。所以RS-485通信方式比RS-232應用要廣泛。近年來,紅外遙控技術在工業(yè)生產、家用電器、安全保衛(wèi)以及人們的日常生活中的使用越來越廣泛,特別是在家庭生活中,如電視、空調的遙控器,智能開關,電梯等。利用紅外遙控技術具有的控制簡單、實施方便、傳輸可靠性高的特點,將紅外遙控技術和RS-485通信技術結合起來,實現基于紅外控制的RS-485通信系統(tǒng)。這個通信系統(tǒng)將更加實用,也更容易實現。研究這個課題對于了解RS-485通信系統(tǒng)、紅外遙控技術都會有幫助。1.2 設計任務與方案1.2.1 設計任務 采用51單片機作為微處理器,設計出紅外控制的RS-485通信系統(tǒng)。要能過實現基于紅外控制的,可靠的RS-485串行通信。1.2.2 系統(tǒng)總體設計方案本次設計采用AT89C51單片機作為微處理器,51系列單片機以其優(yōu)良的性價比,得到了廣泛的應用。其特點主要有以下幾點:1.可靠性高因為芯片是按工業(yè)測控環(huán)境要求設計的,故抗干擾的能力優(yōu)于PC 機。系統(tǒng)軟件(如:程序指令,常數,表格)固化在ROM 中,不易受病毒破壞。許多信號的通道均在一個芯片內,所以運作時系統(tǒng)穩(wěn)定可靠。2.便于擴展片內具有計算機正常運行所必需的部件,片外有很多供擴展用的(總線、并行和串行的輸入/輸出)管腳,很容易組成一定規(guī)模的計算機應用系統(tǒng)。3.控制功能強具有豐富的控制指令。如:條件分支轉移指令,I/O 口的邏輯操作指令,位處理指令。4.實用性好體積小,功耗低,價格便宜,易于產品化。整個系統(tǒng)分為兩大部分,第一部分是紅外發(fā)射(紅外遙控器),第二部分是紅外接收電路。本次設計所采用的紅外遙控器是現成的,里面的發(fā)射芯片是LC7461。紅外接收電路包括紅外接收和MAX485接口兩部分。當紅外遙控器有鍵按下時,紅外接收器接收到來自遙控發(fā)射器的紅外信號,將收到的紅外遙控信號轉為電信號,經放大、調解、濾波后,經紅外接收器將原編碼輸入到AT89C51的外部中斷0的引腳,然后由AT89C51對接收到的原編碼信號進行判斷、識別,然后做出相應判斷。PC機通過MAX485芯片實現和單片機的通信,紅外信號經過解碼以后,按遙控器不同的鍵,在串口調試助手窗口會有不同的數字顯示。第2章 系統(tǒng)硬件設計2.1 硬件系統(tǒng)的結構整個硬件系統(tǒng)是由紅外接收模塊和MAX485接口電路兩大部分組成,紅外接收模塊的作用是將接收的紅外信號轉換為電信號,經放大、調解、濾波后,輸入到AT89C51,然后由AT89C51對所接收的原編碼信號進行判斷、識別、然后做出相應的處理。MAX485接口電路負責傳送數據。2.2 系統(tǒng)部件功能描述2.2.1 AT89C51單片機AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖2.1所示為AT89C51的引腳圖,它的主要功能引腳有:1) 電源引腳Vcc和VssVcc(40腳):電源端,為+5V。Vss(20腳):接地端。2) 外接晶體引腳XTAL1和XTAL2XTAL2(18腳):接外部晶體和微調電容的一端。在89C51片內它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體的固有頻率。若須采用外部時鐘電路,則該引腳懸空。要檢查89C51的振蕩電路是否正常工作,可用示波器查看XTAL2端是否有脈沖信號輸出。XTAL1(19腳):接外部晶體和微調電容的另一端。在片內,它是振蕩電路反相放大器的輸入端。在采用外部時鐘時,該引腳輸入外部時鐘脈沖。3) 控制信號引腳RST RST(9腳):RST是復位信號輸入端,高電平有效。當此輸入端保持兩個機器周期(24個時鐘振蕩周期)的高電平時,該引腳輸入外部時鐘脈沖。4) 輸入/輸出端口P0、P1、P2和P3P0端口(P0.0P0.7,3932 腳):P0口是一個漏極開路的8位準雙向I/O端口。作為漏極開路的八路輸出端口,每次能驅動8個LS型TTL負載。當P0口作為輸入口使用時,應先向口鎖存器(地址80H)寫入全1,此時P0口的全部引腳懸空,可作為高阻抗輸入。P1端口(P1.0P1.7,18 腳):P1口是一個帶有內部上拉電阻的8位雙向I/O端口。P1的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P1作輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流()。P2端口(P2.0P2.7,2128 腳):P2口是一個帶有內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P2作輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流()。P3端口(2128 腳):P3口是一個帶有內部上拉電阻的8位雙向I/O端口。P3口的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。P3口與其它的I/O口有很大區(qū)別,它除作為般準雙向I/O口外,每個引腳還具有專門的功能,見表2.1。圖2.1 AT89C51引腳圖 表2.1 端口引腳功能端口引腳第二功能P3.0 (串行輸入口)P3.1 (串行輸出口)P3.2 (外中斷0)P3.3 (外中斷1)P3.4 (定時/計數器0)P3.5 (定時/計數器1)P3.6 (外部數據存儲器寫選通)P3.7 (外部數據存儲器讀選通)2.2.2 單片機最小應用系統(tǒng)單片機最小應用系統(tǒng)是指僅使用單片機內部資源輔以必需的外圍電路所構建的簡單的應用系統(tǒng)。它包括:單片機的選擇和單片機最小應用系統(tǒng)的設計。通過單片機的選擇,最大限度滿足應用系統(tǒng)對硬件資源的要求,本次課程設計選用AT89C51單片機。最小應用系統(tǒng)設計則是指單片機最基本的、最常用的外圍電路設計。時鐘電路和復位電路就可以構成一個最小系統(tǒng)。1) 時鐘電路 時鐘電路是單片機的心臟,它控制著單片機的工作節(jié)奏。單片機工作時,是在統(tǒng)一的時鐘脈沖控制下一拍一拍地進行著,這個脈沖是由時序電路發(fā)出的。時鐘信號可以由兩種方式產生:一種是內部方式,利用芯片內部的振蕩電路產生時鐘信號;另一種為外部方式,時鐘信號由外部引入。AT89C51單片機有一個用于構成內部振蕩器的反相放大器,引腳XTAL1和XTAL2分別是放大器的輸入、輸出端。外接石英晶體和陶瓷晶體構成自激振蕩器。這種方式稱為內部時鐘方式,如圖2.2所示。如果振蕩器已啟振,則在XTAL2引腳上輸出3V左右的正弦波。振蕩器的頻率取決于晶振的頻率。電容C1和C2主要作用是幫助啟振(諧振),其值的大小對振蕩頻率也有影響。因此常用調節(jié)C1或C2的容量大小對頻率進行微調,電容容量通常在20pF100pF之間選擇,當時鐘頻率為12MHz時其典型值為30pF。本次設計就是采用內部時鐘方式。圖2.2 內部振蕩電路如果從外部時鐘頻率驅動器件,XTAL2可以不接,而從XTAL1接入,如圖2.3所示。對外部振蕩器的信號沒有特殊的要求,一般為0.512MHz的方波,方波的波形應盡量規(guī)范。 圖2.3 外部振蕩電路2) 復位電路復位是單片機的初始化操作。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為了擺脫困境,也須按復位鍵重新啟動。除PC之外,復位操作還對其他一些寄存器有影響。復位是由外部復位電路來實現的,可分為上電自動復位和按鍵手動復位兩種方式。a) 上電自動復位上電自動復位電路只需在RST端接一個電容至Vcc和一個電阻至Vss即可,如圖2.4所示。上電復位的工作過程是在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。電路中,時間常數RC越大,上電時保持高電平的時間越長,當震蕩頻率為12MHz時,典型值C=10, R=8.2,當時鐘頻率選用6MHz時,C=22, R=1。為了保證系統(tǒng)能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。上電時,只要電源Vcc的上升時間不超過1ms,就可以實現自動上電復位,即接通電源就完成了系統(tǒng)的復位初始化。在圖2.4的上電復位電路中,當Vcc掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內部電路的限制作用,這個負電壓將不會對器件產生損害。另外,在復位期間,端口引腳處于隨機狀態(tài),復位后,系統(tǒng)將端口置為全“l(fā)”態(tài)。本次設計就是采用上電自動復位電路。若上電復位失效,用戶上電后CPU從一個隨機狀態(tài)開始工作,系統(tǒng)則不能正常工作。上電復位后,RAM單元數據是隨機的。圖2.4 上電復位電路b) 手動復位除了上電復位外,有時還需要手動復位。所謂手動復位,是指通過接通一按鈕開關,使單片機進入復位狀態(tài)。其電路圖如圖2.5所示。按一下開關就會在RST端出現一段時間的高電平,使單片機復位。圖2.5 手動復位電路2.2.3 紅外接收接收電路可以使用紅外接收器,一般不需要任何外接元件就能完成從紅外接收到輸出TTL電平兼容信號的所有工作,注意選擇接收器件時要保證接收器件的中心頻率與發(fā)射信號的中心頻率相匹配。本次設計紅外接收芯片采用LT0038。LT0038是塑封一體化紅外線接收器,它是一種集紅外線接收、放大、整形于一體的集成電路,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,沒有紅外遙控信號時為高電平,收到紅外信號時為低電平,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數據傳輸。接收器對外只有3個引腳:Vcc、GND和1個脈沖信號輸出OUT,與單片機接口非常方便。脈沖信號輸出接AT89C51芯片的外部中斷0引腳,數據由紅外接收頭接收后,經過單片機AT89C51進行解碼,數據由P1口輸出,因為P1口通常做通用的I/O口使用,所以在結構上有其自身的特點;另外電路的內部有上拉電阻,這些電阻與場效應管共同組成輸出驅動。為此,P1口作為輸出使用時,已能向外提供推拉電流負載,而無需再接上拉電阻。P1口出來的數據經電阻分壓后直接接到發(fā)光二極管上,8個發(fā)光二極管對應8位的數據碼,當數據碼為“1”時亮,為“0”時暗,圖2.6所示是一個紅外遙控器的接收電路。采用這種連接方法,軟件解碼既可以工作于查詢方式,也可以工作于中斷方式。在實際應用中,還可以進一步增加抑制干擾電路和提高驅動能力電路,增強系統(tǒng)穩(wěn)定性。例如將遙控器的數字“1”按下時,則圖2.6中的紅外接收器接收來自遙控發(fā)射器的紅外信號,將接收的紅外信號轉換為電信號,經放大、調解、濾波后,經紅外接收器的第2腳(OUT)將原編碼輸入到AT89C51的12腳(外部中斷0),然后由AT89C51對所接收的原編碼信號進行判斷、識別、然后做出相應的處理。圖2.6 紅外接收電路2.2.4 MAX485接口電路 MAX485芯片是用于RS-485通信的低功率收發(fā)器,芯片中包含有一個驅動器和一個收發(fā)器,它的電氣特性如表2.2所示。表2.2 MAX485芯片的電氣特性通信方式數據率/Mbps轉換率限制低功耗關機接收器/驅動器使能靜態(tài)電流/mA總線上收發(fā)器數目管腳數半雙工2.5NONOYES300328 MAX485芯片由八個引腳組成,圖2.7為其引腳圖,芯片各個引腳功能如下所示。1)腳(接收器輸出端):若比大200 mV,為高;若比小200 mV,為低。2)腳(接收器輸出使能端):為低時,有效;為高時,成高阻狀態(tài)。3)腳(驅動器輸出使能端):若為高,驅動輸出和有效;若為低,它們成高阻狀態(tài),若驅動器輸出有效,器件作為線驅動器用;若為高阻狀態(tài)時,為低,它們作線接收器用。4)腳 (驅動器輸入):為低,將迫使輸出為低,為高;若為高,將迫使輸出為高,為低。5)腳:接地。6)腳:反相接收器輸入和反相驅動器輸出。7)腳:同相接收器輸入和同相驅動器輸出。8):電源正極4.755.25V。圖2.7 MAX485芯片引腳圖MAX485芯片的引腳的邏輯關系如表2.3、表2.4所示。表2.3 MAX485發(fā)送邏輯關系輸入端輸出端X1101X101000X高阻抗高阻抗10X關閉關閉表2.4 MAX485接收邏輯關系輸入端輸出端00100000輸入端開路110高阻抗由于PC機的接口采用的是RS-232串行通信標準接口,所以MAX485芯片不可以直接與PC機串口相連,需要一個RS232-485轉換器,把RS-232信號電平轉換成RS-485的信號電平,然后再將RS-485電平轉換成TTL電平,并在合適的通信協(xié)議和合理的通信程序支持下,完成PC機與單片機的長距離、抗干擾能力強的串行數據通信任務。MAX485芯片與PC機和AT89C51的接口電路如圖2.8所示。圖2.8 PC機與單片機接口電路2.3 RS-485串口標準單片機串行口的輸入輸出為TTL電平,抗干擾性較差,只能在幾米的范圍之內傳輸數據。為了提高串行通信的可靠性,增強抗干擾性,增加傳輸距離,必須采用標準串行總線接口將串行口的輸入輸出電平進行轉換。目前流行的標準串行總線接口有RS-232C, RS-422A、RS-485等,它們各有優(yōu)缺點。RS-232C是最早的串行接口標準,在短距離(15m),較低波特率串行通信當中得到了廣泛應用。RS-422A接口是對RS-232C接口的改進,它采用平衡傳輸電氣標準,輸入/輸出均采用差分驅動,因此具有更強的抗干擾能力,傳送速率也大大提高,它向外部的連接器采用9針“D”型插頭。RS-232C和RS-422A雖然應用廣泛,但有明顯的不足,主要體現為:接口的信號電平值較高,易損壞接口的電路芯片;必須經過電平轉換電路方能與TTL電路相連;傳輸速率較低;對噪聲的抗干擾性弱;傳輸距離有限。RS-485以良好的抗干擾性、長距離傳輸特性和多站能力等優(yōu)點成為用戶首選的串行接口。1) 性能特點a) RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(26)V表示;邏輯“0”以兩線間的電壓差為-(26)V表示。接口信號電平比RS-232C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。 b) RS-485的數據最高傳輸速率為10Mbps。 c) RS-485接口是采用平衡驅動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。 d) RS-485接口的最大傳輸距離標準值為4000英尺,實際上可達到3000米,另外RS-232C接口在總線上只允許連接1個收發(fā)器,即單站能力。而RS-485接口在總線上是允許連接多達128個收發(fā)器,即具有多站能力。RS-485接口所組成的半雙工網絡一般只需要兩根連線, RS-485接口均采用屏蔽雙絞線傳輸。RS-485接口連接器采用DB9插頭座。2) 與其他標準接口的對照表2.5是RS-485與其他標準接口的對照表。表2.5 標準串行接口的對照表RS-232CRS-422ARS-485工作方式邏輯“0”電平邏輯“1”電平節(jié)點數最大傳輸距離最大傳輸速率驅動器加載輸出電壓接收器輸入電阻抗干擾能力單端315V-15-3V1發(fā)1收50英尺20Kb/s5 15V37弱差分26V-6-2V1發(fā)10收400英尺10Mb/s2V4(最?。姴罘?(26)V+(26)V1發(fā)32收400英尺10Mb/s1.5V12強所以時至今日,雖然工業(yè)以太網、CAN等現場總線,ZIGBEE等傳感器網絡,USB等接口,IEEE802等無線網絡等都提供全面的配置,但是由于RS-485串行通信兼容性好,簡單易用,成本低,在工業(yè)通信上使用最廣泛的仍然是RS-485串行通信。第3章 系統(tǒng)的軟件設計3.1 MCS-51匯編語言簡介匯編語言是面向機器的程序設計語言。在匯編語合中,用助記符代替操作碼,用地址符號或標號代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。于是匯編語言亦稱為符號語言。使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統(tǒng)軟件中語言處理系統(tǒng)軟件。匯編程序把匯編語言翻譯成機器語言的過程稱為匯編。匯編語言是一種功能很強的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。匯編語言,作為一門語言,對應于高級語言的編譯器,需要一個“匯編器”來把匯編語言原文件匯編成機器可執(zhí)行的代碼。高級的匯編器如MASM,TASM等等為我們寫匯編程序提供了很多類似于高級語言的特征,比如結構化、抽象等。在這樣的環(huán)境中編寫的匯編程序,有很大一部分是面向匯編器的偽指令,已經類同于高級語言?,F在的匯編環(huán)境已經如此高級,即使全部用匯編語言來編寫windows的應用程序也是可行的,但這不是匯編語言的長處。匯編語言的長處在于編寫高效且需要對機器硬件精確控制的程序。3.2 串行通信原理3.2.1 數據通信的基本概念在實際工作中,計算機的CPU與外部設備之間常常要進行信息交換,一些計算機與其他計算機之間也往往要交換信息,所有這些信息交換均可稱為通信。基本的通信方法有并行通信和串行通信兩種。一組信息(通常是字節(jié))的各位數據被同時傳送的通信方法稱為并行通信。并行通信依靠并行I/O接口實現。并行通信速度快,但傳輸線根數多,只適用于近距離(相距數公尺)的通信。一組信息的各位數據被逐位順序傳送的通信方式稱為串行通信。串行通信可通過串行接口來實現。它的突出優(yōu)點是只需一對傳輸線,這樣就大大降低了傳送成本,特別適合遠距離通信,其缺點是傳送速度較低。串行通信的傳送方式通常有3種:單向(或單工)配置,只允許數據向一個方向傳送;半雙工(或半雙工)配置,允許數據向兩個方向中的任一方向傳送,但每次只能有一個站點發(fā)送;全雙向(全雙工)配置,允許同時雙向傳送數據,因此,全雙工配置是一對單向配置,它要求兩端的通信設備都具有完整和獨立的發(fā)送和接收能力。3.2.2 串行通信的過程兩個通信設備在串行線路上成功地實現通信必須解決兩個問題:一是串并轉換,即如何把要發(fā)送的并行數據串行化;二是設備同步,即同步發(fā)送設備和接收設備的工作節(jié)拍,以確保發(fā)送數據在接收端被正確讀出。1) 串并轉換串行通信是將計算機內部的并行數據轉換成串行數據,將其通過一根通信線傳送,并將接收的串行數據再轉換成并行數據送到計算機中。在計算機串行發(fā)送數據之前,計算機內部的并行數據被送入移位寄存器,并一位一位地移出,將并行數據轉換成串行數據。在接收數據時,來自通信線路的串行數據被送入移位寄存器,滿8位后并行送到計算機內部。在串行通信控制電路中,串并、并串轉換邏輯被集成在串行異步通信控制器芯片中。89C51單片機的串行口和IBM-PC機中的8250芯片都可實現這一功能。2) 設備同步進行串行通信的兩臺設備必須同步工作,才能有效的檢測通信線路上的信號變化,從而采樣傳送數據脈沖。設備同步對通信雙方有兩個共同要求:一是通信雙方必須采用統(tǒng)一的編碼方法;二是通信雙方必須能產生相同的傳送速率。采用統(tǒng)一的編碼方法確定了一個字符二進制表示值的位發(fā)送順序和位串長度,當然還包括統(tǒng)一的邏輯電平規(guī)定,即電平信號高低與邏輯1和邏輯0的固定對應關系。通信雙方只有產生相同的傳送速率,才能確保設備同步,這就要求發(fā)送設備和接收設備采用相同頻率的時鐘。發(fā)送設備在統(tǒng)一的時鐘脈沖上發(fā)送數據,接收設備才能正確檢測出與時鐘脈沖同步的數據信息。3.2.3 串行通信協(xié)議通信協(xié)議是對數據傳送方式的規(guī)定,包括數據格式定義和數據位定義等。通信雙方必須遵守統(tǒng)一的通信協(xié)議。串行通信協(xié)議包括同步協(xié)議和異步協(xié)議兩種,在此只討論異步串行通信協(xié)議和異步串行協(xié)議規(guī)定的字符數據的傳送格式。1) 起始位通信線上沒有數據被傳送時處于邏輯1狀態(tài)。當發(fā)送設備要發(fā)送一個字符數據時,首先發(fā)送一個邏輯0信號,這個邏輯低電平就是起始位。起始位通過通信線傳向接收設備,接收設備檢測到這個邏輯低電平后,就開始準備接收數據位信號。起始位所起的作用就是設備同步,通信雙方必須在傳送數據位前協(xié)調同步。2) 數據位當接收設備收到起始位后,緊接著就會收到數據位。數據位的個數可以是5、6、7或8.IBM-PC中經常采用7位或8位數據傳送,89C51串行口采用8位或9位數據傳送。這些數據位被接收到移位寄存器中,構成傳送數據字符。在字符數據傳送過程中,數據位從最低有效位開始發(fā)送,依次順序在接收設備中被轉換為并行數據。3) 奇偶校驗位數據位發(fā)送完之后,可以發(fā)送奇偶校驗位。奇偶校驗用于有限差錯檢測,通信雙方須約定一致的奇偶校驗方式。如果選擇偶校驗,那么組成數據位和奇偶位的邏輯1的個數必須是偶數;如果選擇奇校驗,那么邏輯1的個數必須是奇數。4) 停止位在奇偶校驗位位或數據位(當無奇偶校驗時)之后發(fā)送的是停止位。停止位是一個字符數據的結束標志,可以是1位、1.5位或2位的高電平。接收設備收到停止位之后,通信線路上便又恢復邏輯1狀態(tài),直至下一個字符數據的起始位到來。5) 波特率設置通信線上傳送的所有位信號都保持一致的信號持續(xù)時間,每一位的信號持續(xù)時間都由數據傳送速度確定,而傳送速度是以每秒多少個二進制位來衡量的,這個速度叫波特率。如果數據以每秒300個二進制位在通信線上傳送,那么傳送速度為300波特,通常記為300b/s。3.3 串行通信程序設計3.3.1 串行口的結構和功能AT89C51單片機有一個全雙工異步串行I/O口,占P3.0(串行數據接收端RXD)和P3.1(串行數據發(fā)送端TXD)兩個引腳,是P3口的第二個功能。該接口不僅能同時進行數據的發(fā)送和接收,也可以作為一個同步移位寄存器使用。串行口的工作過程可概括為如下。1)用戶通過串行口的初始化操作規(guī)定串行口的工作方式。2)串行口自動完成發(fā)送和接收。a發(fā)送:將待發(fā)送的數據由A送入SBUF(以指令“MOV SBUF,A”實現),在發(fā)送控制器的控制下組成幀結構,并自動以串行方式發(fā)送到TXD端。在發(fā)送完畢后自動將TI置1,向CPU申請中斷。b接收:先用指令(SETB REN)置位接收允許才能開始串行接收操作。在接收控制器的控制下,通過移位寄存器將串行數據送入SBUF中。在接收完畢后自動將RI置1,向CPU申請中斷。3.3.2 選擇串行口工作方式AT89C51單片機串行口有四種工作方式,用特殊功能寄存器SCON中的SM0、SM1兩位進行設定,如表3.1所示。表3.1 串行口的工作方式SM0 SM1 工作方式說明波特率0 0方式0同步移位寄存器 0 1方式110位異步收發(fā)由定時器控制 1 0方式211位異步收發(fā)或 1 1方式311位異步收發(fā)由定時器控制本次設計采用串行口工作方式1。方式1真正用于串行發(fā)送或接收,為10位通用異步接口。TXD與RXD分別用于發(fā)送與接收數據。收發(fā)一幀數據的格式為1位起始位、8位數據位(低位在前)、1位停止位,共10位。在接收時,停止位進入SCON的RB8,此方式的波特率可調。3.3.3 串行口波特率的設置波特率(Baud rate),即數據傳送速率,表示每秒傳送二進制代碼的位數,它的單位是b/s。波特率對于CPU與外界的通信是很重要的。假設數據傳送率是120字符/s,而每個字符格式包括包含10個代碼位(1個起始位、1個終止位、8個數據位)。這時,傳送的波特率為:10b/字符120字符/s=1200b/s每一位代碼的傳送時間為波特率的倒數。=1/1200=0.833ms國際上規(guī)定了一個標準波特率系列,標準波特率系列為110、300、600、1200、1800、2400、4800、9600和19200。標準波特率也是最常用的波特率,大多數CRT終端都能夠按1109600b/s范圍中的任何一種波特率工作。大多數接口的接收波特率和發(fā)送波特率可以分別設置,而且可通過編寫程序來指定。由上表可以看出串行通信的波特率取決于串行口的工作方式,其中方式0和方式2的波特率是固定的;而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。本設計選擇串行口工作方式1,波特率由下式確定:波特率=(T1溢出速率)定時器T1用作波特率發(fā)生器時,通常選用定時器模式2(自動重裝初值定時器)比較實用,此時,T1溢出速率為(X為TH1和TL1定時計數初值):T1溢出速率=波特率=本次設計中波特率取4800b/s。3.3.4 初始化串口串行口初始化應該包括對SCON、PCON和T1的初始化,也包括TMOD寄存器初始化(將T1設置為波特率發(fā)生器)、根據波特率求解時間常數,并對TH1和TL1賦值、啟動T1等過程。已知本次設計中,波特率為4800b/s,SMOD=0, =11.059MHz,于是可得出定時器T1模式2的初始值X:該串行口初始化格式如下:ORG 0000HMOV SCON,#50H ; 設置串行口工作于方式1MOV TMOD,#20H ; 波特率發(fā)生器T1工作在模式2上MOV PCON,#00H ; 波特率不翻倍 MOV TH1,#0FAH ; 預置初值(按照波特率4800bps預置初值)MOV TL1,#0FAH ; 預置初值(按照波特率4800bps預置初值)SETB TR1 ; 啟動定時器T13.3.5 程序的編制圖3.1所示為串口通信流程圖。圖3.1 串口通信流程圖以下為串口通信部分程序:WAIT1: JB P3.6,$ ;判斷K1是否按下,如果沒有按下就等待ACALL DELAY10;延時10毫秒消觸點抖動JB P3.6,WRIT1;去除干擾信號JNB P3.6,$ ;等待按鍵松開MOV A,#0A5H ;將16進制的字符A5發(fā)送到串口去MOV SBUF,A ;將A5通過串口發(fā)送出去WAIT2: JBC TI, WAIT1AJMP WAIT2;10毫秒延時子程序DELAY10:MOV R4, #20D2: MOV R5, #248 DJNZ R5, $ DJNZ R4, D23.4 紅外通信原理紅外遙控系統(tǒng)一般由發(fā)射系統(tǒng)和接收系統(tǒng)組成。發(fā)射系統(tǒng)由專用芯片產生指令代碼,經載波調制后驅動紅外發(fā)射器件,發(fā)射紅外控制信號。紅外信號的指令代碼均為二進制碼,編碼調制由專用芯片完成,編碼的方法有多種,不同芯片的編碼方法和代碼長度有所不同。指令信號常用的編碼調制方法有脈沖寬度調制和脈沖位置調制兩種。紅外遙控信號被紅外接收頭接收后,經放大、檢波、整形,得到TTL電平的代碼信號,再送給編碼電路,經譯碼并執(zhí)行,實現遙控功能。3.4.1 紅外發(fā)送原理紅外遙控發(fā)射的整體過程如圖3.2所示,當不同的指令鍵被按下時,指令信號電路產生不同的脈沖編碼的指令信號,然后經調制電路調制,變成編碼脈沖調制信號,再由驅動電路驅動紅外發(fā)射器發(fā)射紅外信號。圖3.2 紅外發(fā)射流程圖本次設計所用的紅外遙控器是現成的,里面的發(fā)射芯片用的是LC7461。當發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同,遙控編碼也不同。這種遙控碼采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”。上述“0”和“1”組成的42位二進制碼經38KHz的載頻進行二次調制后可提高發(fā)射效率,從而達到降低電源功耗的目的。LC7461產生的遙控編碼是連續(xù)的42位二進制碼組。其中前26位為客戶識別碼,也可以稱為客戶碼和客戶反碼,能區(qū)別不同的紅外遙控設備,防止不同機種遙控碼互相干擾,后16位為8位的數據碼和8位的數據反碼用于核對數據是否接收準確。當遙控器上任意一個按鍵按下超過36ms時,LC7461芯片的振蕩器使芯片激活,將發(fā)射一個特定的同步碼頭,對于接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭以后可以開始接收數據。3.4.2 紅外解碼原理脈沖波形進入一體化接收頭(這里紅外接收器采用芯片LT0038)以后,因為接收頭要進行解調、信號放大和整形,所以要注意在沒有紅外信號時,其輸出端為高電平,有信號時為低電平,故其輸出信號正好和發(fā)射端相反。解碼的關鍵是如何識別“0”和“1”,“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據高電平的寬度來區(qū)別“0”和“1”。如果從0.56ms低電平過后,開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了準確起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此?。?.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。3.5 紅外解碼程序設計3.5.1 延時子程序以下為紅外解碼的延時子程序。YS1: MOV R4,#20 ;延時子程序1,精確延時882微秒D1: MOV R5,#20 DJNZ R5,$ DJNZ R4,D1RETYS2: MOV R4,#10 ;延時子程序2,精確延時4740微秒D2: MOV R5,#235 DJNZ R5,$ DJNZ R4,D2RETYS3: MOV R4,#2 ;延時程序3,精確延時1000微秒D3: MOV R5,#248 DJNZ R5,$ DJNZ R4,D3RET3.5.2 解碼子程序圖3.3為紅外遙控解碼流程圖,以下程序為紅外解碼的子程序。圖3.3 紅外遙控流程圖INT: CLR EA ;暫時關閉CPU的所有中斷請求 MOV R6,#10SB: ACALL YS1; JB P3.2,EXIT; DJNZ R6, SB;JNB P3.2, $ ; ACALL YS2 ;延時4.74毫秒避開4.5毫秒的結果碼MOV R7,#26 ;忽略前26位系統(tǒng)識別碼JJJJA: JNB P3.2,$ ;等待地址碼第一位的高電平信號 LCALL YS1 ;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態(tài) MOV C,P3.2 ;將P3.2引腳此時的電平狀態(tài)0或1存入C中 JNC UUUA ;如果為0就跳轉到UUUA LCALL YS3 ;檢測到高電平1的話延時1毫秒等待脈沖高電平結束UUUA: DJNZ R7,JJJJA MOV R1,#1AH ;設定1AH為起始RAM區(qū) MOV R2,#2 ;接收從1AH到1BH的2個內存,用于存放操作碼和操作反碼PP: MOV R3,#8 ;每組數據為8位JJJJ: JNB P3.2,$ ;等待地址碼第一位的高電平信號 LCALL YS1; MOV C,P3.2; JNC UUU ;如果為0就跳轉到UUU LCALL YS3 ;檢測到高電平1的話延時1毫秒等待脈沖高電平結束UUU: MOV A,R1 ;將R1中地址的給A RRC A; MOV R1,A; DJNZ R3,JJJJ; INC R1 ;對R1中的值加1,換下一個RAM DJNZ R2,PP MOV A,1AH CPL A ;對1AH取反后和1BH比較 CJNE A,1BH,EXIT;如果不等表示接收數據發(fā)生錯誤,放棄MOV P1,1AH; CLR P2.5; LCALL YS2 LCALL YS2 LCALL YS2 SETB P2.5 ;蜂鳴器停止EXIT: SETB EA ;允許中斷 RETI ;退出解碼子程序3.6 RS-485程序設計流程圖整個通訊程序分為3 個部分:數據接收部分、命令執(zhí)行部分、數據發(fā)送部分。3.6.1 數據接收部分數據接收程序主要接收一幀正確的數據,數據幀錯誤的判斷符合以下原則:1) 有一個字節(jié)偶校驗錯誤,數據幀錯誤。2) 數據幀格式不正確,數據幀錯誤。3) 數據幀校驗碼不正確,數據幀錯誤。整個程序是在接收中斷服務程序中執(zhí)行的。圖 3.4 接收程序流程圖3.6.2 命令執(zhí)行部分這一部分是主程序執(zhí)行部分,是從機接收一幀正確數據后,通過地址域判斷RS-485 總線中主控器是否呼叫本從機,如果是則所有接收到的從機都應響應命令,同時通過密碼的方式,可以設置權限,密碼和地址是保存在E2PROM 中。在地址和密碼判斷正確的時候,程序進行命令譯碼,對要求的命令執(zhí)行相應的操作,同時如果要通過總線發(fā)送數據,應準備好發(fā)送數據緩存器的內容,啟動發(fā)送程序,發(fā)送完畢時清除接收事件發(fā)生標志。圖 3.5 命令執(zhí)行流程圖3.6.3 數據發(fā)送部分本程序的數據發(fā)送部分是在主程序中執(zhí)行的。圖 3.6 發(fā)送程序流程圖第4章 系統(tǒng)的調試4.1 WAVE6000軟件簡介本次軟件調試可以采用WAVE6000軟件(keil51也可),WAVE6000是一款功能強大的優(yōu)秀的單片機程序編輯、調試、仿真中文Windows軟件。該軟件可以配合硬件進行單片機的硬件仿真,也可以單獨進行單片機的軟件仿真。利用該軟件進行單片機軟件的編輯調試和模擬仿真,結合一臺寫碼器,就可進行低投入的單片機的開發(fā)工作。WAVE6000編譯軟件,采用中文界面。用戶源程序大小不受限制,有豐富的窗口顯示方式,能夠多方位、動態(tài)地展示程序的執(zhí)行過程。其項目管理功能強大,可使單片機程序化大為小,化繁為簡,便于管理。另外,其書簽、斷點管理功能以及外設管理功能等為51單片機的仿真帶來極大的便利。圖4.1為WAVE6000的調試軟件界面。圖4.1 wave 調試軟件界面4.2 程序調試1)打開WAVE編譯軟件,打開“文件”菜單,選擇“新建文件”,在出現的文本編輯區(qū),編寫相應的實驗程序。注意程序編寫時,輸入法必須切換成英文模式。2)打開“文件”菜單,選擇“新建項目”。依次加入模塊文件,加入包含文件(如果沒有包含文件,按取消鍵),保存項目。3)打開“仿真器”菜單,選擇“仿真器設置”。對各個選項進行設置。4)點擊“項目”菜單選擇“編譯”或點擊快捷鍵“F9”。打開“窗口”菜單選擇“信息窗口”觀察程序編譯是否出錯。如有出錯“X”號提示,鼠標雙擊信息窗口中“”號行找到對應指令,進行修改,直至編譯正確為止。5)單步調試程序以及全速執(zhí)行程序。觀察分析程序執(zhí)行過程中各個窗口數據變化,如有錯誤,修改程序重新執(zhí)行。程序調試結果如圖4-2、4-3所示。 按照上面所示步驟進行調試,圖4.2為紅外遙控解碼程序的調試結果,圖4.3為串口通信程序的調試結果。圖4.2 紅外遙控解碼程序調試結果圖4.3 串口通信程序調試結果4.3 系統(tǒng)硬件的調試將調試好的程序載入各自對應的芯片中,按下遙控器不同的按鍵,在串口調試助手頁面中就會顯示不同的數字。圖4.4所示為串口調試的窗口。圖4.4 串口調試窗口 總結在整個畢業(yè)設計過程中,我對大學所學的知識有了一個系統(tǒng)的認識和理解,尤其是對本課題所用到串行通信系統(tǒng)和紅外控制技術相關知識有了進一步的掌握,對單片機串口通信編程、紅外解碼以及對整個系統(tǒng)的分析和問題的解決有了深刻的認識和切身的體會。正所謂學以致用,在此實踐過程中我增長了知識、豐富了經驗,提高了解決實際問題的能力。對整個系統(tǒng)的分析與設計過程是對學習的總結過程,更是進一步學習和探索的過程。在實際操作中必須嚴格按照系統(tǒng)的分析、設計、系統(tǒng)的實施、系統(tǒng)的運行與調試的過程來進行。系統(tǒng)的分析和設計是項很重要的工作,同時也充滿了難度。在設計過程中,要邊學習,邊實踐,遇到問題就要不斷探索,努力找到問題的解決方法。另外也要細心,堅決避免一些低級的錯誤的發(fā)生。在設計初期,結合理論知識,提出不同的設計方案,經過對比,找到一個最方便最適合的解決方案。設計中還要廣泛收集資料,多翻閱一些相關書籍,對所用知識要做到心中有數。和指導老師要保持聯(lián)系,遇到自己解決不了的問題或者一些疑問,要及時向老師
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物品交接單管理制度
- 獼猴桃公司管理制度
- 瑪尼康財產管理制度
- 生產部輪休管理制度
- 畜禽出入場管理制度
- 礦山頂底板管理制度
- 高中英語大概念教學在提升學生閱讀理解能力中的應用論文
- 中國醫(yī)藥商業(yè)行業(yè)市場發(fā)展趨勢預測報告-智研咨詢重磅發(fā)布
- 節(jié)日費發(fā)放管理制度
- 英俊鎮(zhèn)應急管理制度
- 2024年人教版八年級語文下冊期末考試卷(附答案)
- 國開《農村社會學》形考作業(yè)1-4參考答案
- 電子煙質量管理手冊
- 城市數字底座CIM數字城市發(fā)展方向與技術
- 財政學學習通題庫及答案
- 2023-2024學年全國初二下歷史人教版期末試卷(含答案解析)
- 耳穴考核試題及答案
- 形勢與政策智慧樹知到答案2024年西北師范大學
- 2024-2030年中國射擊場行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 施工現場建筑垃圾減量化專項方案
- 高三數學一輪復習題型與戰(zhàn)法精準訓練(新高考專用)7.2.2點線面的位置關系(針對練習)(原卷版+解析)
評論
0/150
提交評論