




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業設計說明書單片機多機通信實現專 業 電子信息工程學生姓名杜運福班 級b電子062學 號0610620224指導教師張春永完成日期2010年6月10日單片機多機通信實現摘要:h前,單片機在多機通信領域應用很廣。但研究最多的是上位機與下位 機的通信及多單片機構成的主從式多機通信系統。本文重點研究了多單片機的平 權式多機通信,使各單片機有相同的權限。本文從平權式多機通信協議入手,首先設計了具體平權式多機通信協議;主 機通信用按鍵控制,模擬實際應用屮的觸發信號輸入。對于1號單片機,還可通 過液晶實時顯示工作狀態,初始為主機。在不需置其他單片機為主機的情形下, 本多機通信系統可以作為主從式多機通信系
2、統。從機通信模式通過串口中斷觸發 啟動,通信結束即恢復之前的從機狀態。通信過程屮,主機先發送尋址的從機號, 待從機響應后開始通信。通信結束后,主機發送自己的主機號,告知從機。然后 從機發給主機校驗字節數據,主機檢驗錯誤,檢驗無謀后,作出響應,1號單片 機液晶會顯示,2號和3號單片機收發數據無誤后會使led指示燈亮起。其外, 木文研究了可切換雙向接口的實現方法。通過用單片機的一個引腳控制單片機的 串口的連接方式,使其工作在主機模式或從機模式。本研究已經仿真通過,真實可行。具有一定的檢錯能力,串行通信的比特率 是9600bit/s,通信速度較快,且可靠性高。本研究通過硬件電路解決了通信過 程中多單
3、片機爭用主機權的問題。關鍵詞:單片機;多機通信;平權;at89s52realization of many scm communicationabstract: at present, the single chip multi-machine communication in a wide field of applications however, the most studied is the host computer and lower computer communications and multi-chip microprocessor master-slave multi-m
4、achine communication system. this paper focuses on a number of single chip multi-machine communication affirmative, so that the mcu has the same permissions.the paper machine from the multi-level communication protocol of the right to start with, first, the specific communication protocol. host comm
5、unication button control, the practical application of simulation in the trigger signal input. for the no. 1 microcontroller, but also through the lcd display working status, the initial for the host. no other single chip set in the case of the host, the multi-machine communication system can be use
6、d as master-slave multi-machine communication system. communication mode from the machine through the serial port interrupt triggering, communication before the end of the recovery from the machine state. communication process, the host sends the address number from the machine until the response fr
7、om the plane after communications. after communication, the host sends its own host number, informed from the machines. and then distributed to the host from the machine check bytes of data, the host test error, test and proved correct response, 1 single chip lcd displays, 2 and 3, after the mcu wil
8、l send and receive data coirect led light is on. besides, this paper, bi-directional switch implementation of the interface methods. through the use of microcomputer control of a microcontroller pin serial port connection, to work in master mode or slave mode.this study has been simulated by the rea
9、l feasible. have some error detection capability, the bit rate of serial communication 9600bit / s, communication speed, and reliability. in this study, the hardware circuit through the communication process to resolve the contention over the host microcontroller over the issue.key words: : scm; mul
10、ti-machine communication; equal rights; at89s52目錄1緒論11.1論文研究的背景與意義11.2單片機多機通信領域的歷史及國內外發展現狀11.3本論文的研究內容22單片機多機通信理論及方案選擇32. 1單片機串口通信32.2單片機多機通信方案選擇52. 3微處理器的選擇52. 4液晶lcd1602介紹93單片機多機通信協議設計 154便件電路設計164.1單片機最小系統的設計 164.2矩陣鍵盤電路設計174.3液晶顯示電路設計184.4可切換接口電路設計194.5 2號與3號單片機按鍵電路設計234. 6 led顯示電路設計234.7主機權分配電路
11、設計244.8 電源電路設計285軟件設計295.1多機通信協議的算法設計295. 2鍵盤程序設計325.3系統初始化程序設計356結論35參考文獻36致謝37附錄1: 1號單片機電路原理圖38附錄2: 2號單片機電路原理圖39附錄3: 3號單片機電路原理圖錯誤!未定義書簽。附錄4:仿真電路圖42附錄5:源程序:43單片機多機通信實現1緒論1.1課題研究的背景與意義冃前單片機滲透到我們生活的各個領域,兒乎很難找到哪個領域沒有單片機 的蹤跡。導彈的導航裝置,&機上齊種儀表的控制,計算機的網絡通訊與數據傳 輸,工業自動化過程的實時控制和數據處理,廣泛使用的齊種智能ic卡,民用 豪華轎車的安
12、全保障系統,錄彖機、攝彖機、全自動洗衣機的控制,以及程控玩 具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智 能儀表、醫療器械了。單片機廣泛應用于儀器儀表、家用電器、醫用設備、航空航天、專用設備的 智能化管理及過程控制等領域隨著計算機技術的發展及t業自動化水平的提高, 在許多場合采用單機控制已不能滿足現場要求,因而必須采用多機控制的形式, 而多機控制主要通過多個單片機z間的串行通信實現。串行通信作為單片機z間 常用的通信方法z-,由于其通信編程靈活、硬件簡潔并遵循統一的標準,因此 其在工業控制領域得到了廣泛的應用o構成校大規模的檢測、控制系統,經常要采用多個單片機,組成可
13、以通信的 多機系統。mcs51系列單片機為實現多機通信聯網設計了方便的串行通信接口 功能。將多個mcs-51單片機組成串行總線形式的相互通道,通過寫單片機的吊 行控制方式寄存器,將串行口置成方式2或方式3,就可以實現主機與分機z間的 串行通信。這種多機系統結構簡單,應用廣泛,但它只能實現曲主機呼叫分機, 然后實現主機與分機z間的全雙工串行通信。我們在監控系統小要求既有主機與 分機主動通信,又有分機與主機主動通信,這種結構的多機系統就無法滿足要求。多機協同工作已是單片機發展的一個重要趨勢,冃前單片機多機通信的主要 方式仍然是主從式多機通信系統。單片機多機通信的h的是實現分布式處理系統,單片機多機
14、通信的方式有很 多種,應用前景廣闊,非常具有研究意義!1.2單片機多機通信領域的歷史及國內外發展現狀單片微型計算機(single chip microcomputer)簡稱單片機,又稱mcu (micro controller unit),是將計算機的基木部分微型化,使z集成在一塊芯片上的微 機片內含有cpu、rom、ram、并行i/o、串行i/o、定時器/計數器、中斷控制、 系統時鐘及系統總線等。隨著科技的發展,單片機已不是一個陌生的名詞,它的出現是近代計算機技 術發展史上的一個重耍里程碑,因為單片機的誕生標志著計算機正式形成了通用 計算機系統和嵌入式計算機系統兩大分支。單片機單芯片的微小體
15、積和低的成 本,可廣泛地嵌入到如玩具、家用電器、機器人、儀器儀表、汽車電子系統、丁 業控制單元、辦公自動化設備、金融電子系統、艦船、個人信息終端及通訊產品 中,成為現代電子系統小最重要的智能化工具。所涉及的市場占有率最高的是mcs51系列,因為世界上很多知名的ic生 產廠家都生產51兼容的芯片。生產mcs51系列單片機的廠家如美國amd公司、 atmel 公司、intel 公司、w1nb0nd 公司、philips 公司、issi 公司、temic 公司 及南韓的lg公司、日本nec、西門子公司等。到冃前為止,mcs51單片機已有 數百個品種,述在不斷推出功能更強的新產品。現代的單片機普遍具備
16、通信接口,可以很方便地與計算機進行數據通信,為 在計算機網絡和通信設備間的應用提供了極好的物質條件,現在的通信設備基本 上都實現了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信 呼叫系統、列車無線通信、再到日常工作屮隨處可見的移動電話,集群移動通信, 無線電對講機等。單片機的通信領域應用首先從兩片單片機z間的通信發展起來,后來有了主 從式多機通信并得到了廣泛的應用,又出現了以單片機作為下位機與以pc機作 為上位機的通信應用,上位機用vb或vc+等面向對彖的程序設計語言編寫通信 收發程序,也得到了廣泛的應用。雖然,單片機多機通信己經有較長的研究歷史 t,但其形式大多是主從式的,很少
17、是平權式的。1.3本課題的研究內容本文在研究傳統的多機通信系統的基礎上,設計了種基于mcs-51系列單 片機at89s52的多機通信系統。初始時,1號單片機為主機。主機通過串口向 從單片機發送指定格式的數據,從單片機收數據并作出響應,主機通過液晶屏 顯示通信信息,從機通過led顯示通信狀態。主機通信結束即轉為從機,其他 單片機可置為主機,獲得總線控制權。1號單片機通過矩陣鍵盤控制通信過程與 顯示,2與3號單片機通過獨立按鍵控制通信狀態與主從機切換。在此多機通信系統中,各個單片機具有平等的權限。僅在初始時,1號單片 機被默認置為主機,若不需使2號與3號單片機變成主機,則此通信系統可以作 為主從式
18、多機通信系統。任何時刻,系統只有一片單片機作為主機,其他均為從 機。主機發送的信息可以傳送到指定從機,各從機z間也不能直接通信。主機發 起通信,從機接收到自己的單片機號后,開始與主機通信。2單片機多機通信理論及方案選擇2.1單片機串口通信2,1.1單片機串口介紹at89s52單片機內部含有一個可編程全雙工串行通信接口,具有uart的全 部功能。該接口電路不僅能同時進行數據的發送和接收,也可作為一個同步移位 寄存器使用。在進行異步通信時,數據的發送和接收分別在各自的時鐘(tclk和rclk) 控制下進行的,但都必須與字符位數的波特率保持一致。mcs-51串行口的發送 和接收時鐘可由兩種方式產生,
19、一種是出主機頻率fosc經分頻后產生,另一種 方式是由內部定時器t1或t2的溢出率經16分頻后提供。串行口的發送過程曲一條寫發送緩沖器的指令把數據(字符)寫入串行口的 發送緩沖器sbuf (發)中,再出硬件電路口動在字符的始、末加上起始位(低 電平)、停止位(高電平)及其它控制位(如奇偶位等),然后在移位脈沖shift 的控制下,低位在前,高位在后,從txd端(方式0除外)一位位地向外發送。串行口的接收與否受制于允許接收位ren的狀態,當ren被軟件置“1”后, 允許接收器接收。接收端rxd-位位地接收數據,直到收到一個完整的字符數據 后,控制電路進行最后一次移位,口動去掉啟始位,使接收中斷標
20、志ri置“1”, 并向cpu巾請中斷。ti和ri是由硬件置位的,但需要用軟件復位。2.1.2單片機串口控制寄存器a. sbuf是兩個在物理上獨立的接收、發送緩沖器,可同時發送、接收數據。 兩個緩沖器只用一個字節地址99h,可通過指令對sbuf的讀寫來區別是對接收 緩沖器的操作還是對發送緩沖器的操作。串行口對外有兩條獨立的收發信號線 rxd (p3.0)、txd (p3. 1),因此可以同時發送、接收數據,實現全雙工。b. scon寄存器用來控制串行口的工作方式和狀態,可按位尋址,其字節地 址為98ho它用于定義串行口的t作方式及實施接收和發送控制。字節地址為98h,其 各位定義如表2 1。表2
21、 1scon寄存器的各位功能定義d7d6d5d4d3d2d1dosmosm1sm2rentb8rb8ttrt表2-2串行口工作方式選擇位定義3smo、 sm1工作方式功能描述波特率00方式08位移位寄存器fosc/1201方式110位 uart可變10方式211位 uartfosc/64或 fosc/3211方式311位 uart可變具中fosc為晶振頻率sm2:多機通訊控制位。在方式0時,sm2 一定要等于0o在方式1中,當 sm2二1時,則只有接收到有效停止位時,ri才置1。袒/式2或方式3下,當sm2二1 且接收到的第九位數據rb8二1時,ri才置1。ren:接收允許控制位。由軟件置位以
22、允許接收,乂由軟件清0來禁止接收。tb8:是要發送數據的第9位。在方式2或方式3中,要發送的第9位數據, 根據需要由軟件置1或清0。rb8:接收到的數據的笫9位。在方式0中不使用rb80ffij-式1中,若sm2=0, rb8為接收到的停止位。在方式2或方式3中,rb8為接收到的第9位數據。ti:發送屮斷標志。在方式0屮,第8位發送結束時,由硬件置位。在其它 方式的發送停止位前,由硬件置位。ti置位既表示一幀信息發送結束,同時也 是中請中斷,可根據需要,用軟件查詢的方法獲得數據已發送完畢的信息,或用 屮斷的方式來發送下一個數據。ti必須用軟件清0。ri:接收中斷標志位。在方式0,當接收完第8位
23、數據后,由破件置位。在 其它方式中,在接收到停止位的中間時刻由硬件置位(例外情況見于sm2的說 叨o ri置位表示一幀數據接收完畢,可用查詢的方法獲知或者用屮斷的方法獲 知。ri也必須用軟件清0。c. pcon中的smod用來控制波特率加倍。d. tmod設置定時器1的工作方式,用來產生波特率e. 如果用到屮斷,則還需要用到屮斷相關的寄存器ie, ip等2.1.3單片機串口的四種工作方式方式0:同步移位寄存器方式,其波特率是固定為振蕩頻率fosc的1/120 在這種工作方式下,發送和接收串行數據都通過rxd(p3.0)iffi亍,從txd(p3. 1) 輸出移位脈沖,控制外部的移位寄存器移位。
24、1幀信息為8位,沒有起始位,停 止位。方式1: 8位uart, 1幀信息為10位,其中一位起始位“0”、八位數據位(先 低位后高位)和一個停止位“1”,波特率可變,根據定時器1的溢出率計算。方式2: 9位uart, 1幀信息為11位,其中一位起始位“0”、八位數據位(先 低位后高位),一位控制位(第九位)和一個停止位“1”。波特率為振蕩頻率的 1/64 或 1/32方式3: 9位uart,幀信息為11位,其屮一位起始位“0”、八位數據位(先 低位后高位),一位控制位(第九位)和一個停止位“1”。波特率可變,根據定 時器1的溢出率計算。附加的第9位數據為sco"中的tb8的值,它由軟件
25、置位或清零,可作為多 機通信中地址/數據信息的標志位,也可作為數據的奇偶校驗位。單片機的串行通信傳輸方式有三種:單工制式、半雙工制式和全雙工制式。 2.2單片機多機通信方案選擇根據需要,各片單片機有相等的權限,每塊單片機都可設置為主機或從機, 因此單片機的串口應具有雙向可選擇性。采用兩個同相三態門加上一個反相器即 可構成這樣的接口,并由單片機的一根引腳控制單片機串口的連接方式。發送數據區可存放1b48b的數據,以空字符0'作為發送數據結朿標志。 接收數據時以空字符作為接收有效數據結朿標志。通信結朿時,從機發回收發長 度作為校驗。2.3微處理器的選擇木系統對微處理器要求不是太高,速度不要
26、求太高,但代碼較長,因此要求 微處理器應有較人的程序存儲空間,最好用flash romo通信的發送緩沖區與接 收緩沖區均從ram中分配,為了能傳送更多的數據,要求要有較大的ram。此外, 處理器還應有一個全雙工的串行口。綜合考慮以上各種因索,選用mcs-51系列的單片機at89s52oat89s52是一種低功耗高性能的cmos 8位微處理器,具有8k在系統可編程 flash存儲器。使用atmel公司高密度非易失性存儲技術制造,與工業80c51產 品指令和引腳完全兼容。片上flash允許程序存儲器在系統可編程,亦適用于常 規編程器。在單芯片上,擁有靈巧的8位cpu和在系統可編程flash, w
27、at89s52 為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。at89s52具有以下標準功能:8k字節flash, 256字節ram, 32位i/o 口 線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2 級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,at89s52可降至0hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,cpu停止工作,允 許ram、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,ram內容被 保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。其引腳結構如下圖:(t2) p1.0 匚 vcc140(t2 ex
28、)p1.1 匚239 po.o (ado)p1.2 匚338 p0.1 (ad1)p1.3 匚437 p0.2 (ad2)p1.4 匚536 p0.3 (ad3)(mosi) p1.5 匚635 p0.4 (ad4)(miso) p1.6 匚734 p0.5 (ad5)(sck) p1.7 匚833 p0.6 (ad6)rst匚932 p0.7 (ad7)(rxd) p3.0 匚1031 ea/vpp(txd) p3.1 匚1130 ale/prog(into) p3.2 匚1229 psen(int1)p3.3 匚1328 p2.7 (a15)(to) p3.4 匚1427 p2.6 (a1
29、4)(t1) p3.5 匚1526 p2.5 (a13)(wr) p3.6 匚1625 p2.4 (a12)(rd) p3.7 匚1724 p2.3 (a11)xtal2 匚1823jp2.2 (a10)xtal1 匚1922 p2.1 (a9)gnd匚2021 p2.0 (a8)圖2-1at89s52的引腳結構單片機at89s52的引腳說明:vcc:電源gnd:地p0口: p0 口是一個8位漏極開路的雙向i/o 口。作為輸出口,每位能驅 動8個ttl邏輯電平。對p0端口寫“廣時,引腳用作高阻抗輸入。當訪問外 部程序和數據存儲器時,p0 口也被作為低8位地址/數據復用。在這種模式下, p0具有
30、內部上拉電阻。在flash編程時,p0 口也用來接收指令字節;在程序校驗時,輸出指令字 節。程序校驗時,需要外部上拉電阻。p1 口: p1 口是一個具有內部上拉電阻的8位雙向i/o 口,pl輸出緩沖 器能驅動4個ttl邏輯電平。對p1端口寫時,內部上拉電阻把端口拉高, 此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳山于內部電阻的原因,將輸出電流(1丄)。此外,p1.0和p1.2分別作定時器/計數器2的外部計數輸入(p1.0/t2)和 時器/計數器2的觸發輸入(pl1 /t2ex),具體如下表所示。在flash編程和校 驗時,p1 口接收低8位地址字節。p1 口的第二功能如下表:表2-
31、2 p1 口的第二功能引腳號第一功能p1.0t2 (定吋器/計數器t2的外部計數輸入),吋鐘輸出pl. 1t2ex (定時器/計數器t2的捕捉/重載觸發信號和方向控制)p1.5m0si (在系統編程用)p1.6mis0 (在系統編程用)p1.7sck (在系統編程用)p2口: p2 口是一個具有內部上拉電阻的8位雙向i/o 口,p2輸岀緩沖器 能驅動4個ttl邏輯電平。對p2端口寫時,內部上拉電阻把端口拉高,此時可以 作為輸入口使用。作為輸入使用時,被外部拉低的引腳出于內部電阻的原因,將 輸出電流(iq o在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執 行movx dptr)時,
32、p2口送出高八位地址。在這種應用中,p2口使用很強的 內部上拉發送1。在使用8位地址(如movxri)訪問外部數據存儲器時,p2 口輸出p2鎖存器的內容。在flash編程和校驗時,p2 口也接收高8位地址字節和一些控制信號。p3 口: p3 口是一個具有內部上拉電阻的8位雙向i/o 口,p2輸出緩沖器能 驅動4個ttl邏輯電平。對p3端口寫“1"時,內部上拉電阻把端口拉高,此時 可以作為輸入口使作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將 輸出電流(iq。p3 口亦作為at89s52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,p3 口也接收一些控制信號。
33、p3 口具有笫二功能,具體如下表。表2-3 p3 口的第二功能引腳號第一功能p3.0rxd (串行輸入)p3. 1txd (串行輸出)p3.2into (外部中斷0)p3. 3int1 (外部中斷1)p3.4to (定時器0的外部輸入)p3.5t1 (定時器0的外部輸入)p3.6wr (外部數據存儲器寫選通)p3.7rd (外部數據存儲器讀選通)rst:復位輸入。晶振丁作時,rst腳連續兩個機器周期高電平使單片機復 位。看門狗計時完成后,rst腳輸出96個晶振周期的高電平。ale/prog:地址鎖存控制信號(ale)是訪問外部程序存儲器時,鎖存低8位 地址的輸出脈沖。在flash編程時,此引腳
34、(prog)也用作編程輸入脈沖。在 一般情況下,ale以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘 使用。然而,特別強調,在每次訪問外部數據存儲器時,ale脈沖將會跳過。如 杲需耍,通過將地址為8eh的sfr的第0位置ale操作將無效。這一 位置“廠,ale僅在執行movx或movc指令時有效。否則,ale將被微弱 拉高。這個ale使能標志位(地址為8eh的sfr的第0位)的設置對微控制器處于 外部執行模式下無效。psen:外部程序存儲器選通信號(psen)是外部程序存儲器選通信號。當at89s52從外部程序存儲器執行外部代碼時,psen在每個機器周期被 激鋰次,而在訪問外部數
35、據存儲器時,psen將不被激活。ea/vpp:訪問外部程序存儲器控制信號。為使能從0000h到ffffh的 外部程序存儲器讀取指令,ea必須接gndo為了執行內部程序指令,ea應該接vcc。在flash編程期間,ea也接收12伏必卩電壓。xtal1:振蕩器反相放大器和內部時鐘發生電路的輸入端。xtal2:振蕩器反相放大器的輸出端。表2-4at89s52特殊寄存器映象及復位值0f8hofoh0e8hoeoh0d8hodoh0c8hocoh0b8hoboh0a8hoaoh98h90h88h80hb00000000acc00000000psw cqqqoooqt2con 00000000t2mod
36、xxxxxxoorcap2l 00000000rcap2h 00000000tl200000000th200000000ip xxoooooop311111111ie0x000000p2 11111111auxr1xxxxxxxowdtrstxxxxxxxxsconm000000sbuf xxxxxxxxp111111111tcon coooooootmod00000000tlooocxjooootl1000cxxxx3th0ooocooooth1oooocoooauxrxxxooxxopo11111111sp 00000111dpol oooooooodp0h 000cxxkx3dp1l 0
37、0000000dp1h00000000pc on oxxxoooooffh0f7hoefh0e7hodfh0d7h ocfh 0c7h obfh 0b7hoafh0a7h 9fh97h 8fh 87h并不是所有的地址都被定義了,片上沒有定義的地址是不能用的。讀這些地 址,一般將得到一個隨機數據;寫入的數據將會無效。用戶不應該給這些未定義 的地址寫入數據“1覽由于這些寄存器在將來可能被賦予新的功能,復位后,這 些位都為“(f。定時器2寄存器:寄存器t2con和t2mod包含定吋器2的控制位和狀態 位(如表2和表3所示),寄存器對rcap2h和rcap2l是定時器2的捕捉/口 動重載寄存器。中斷寄
38、存器:各中斷允許位在ie寄存器中,六個中斷源的兩個優先級也可 在ie中設置。t2con地址為 0c8h 復位值:0000 0000b位可尋址表2-5 t2c0n位定義tf2exf2rclktclkexen2tr2c/t2cp/rl2d7d6d5d4d3d2d1d0tf2:定時器2溢出標志位。必須軟件清“(f。rclk=1或tclk=1時, tf2不用置位。exf2:定時器2外部標志位。exen2=1時,t2ex上的負跳變而出現捕 捉或重載時,exf2會被硬件置位。定時器2打開,exf2=1時,將引導cpu 執行定時器2中斷程序。exf2必須如見清“0j 在向下/向上技術模式 (dcen=1)下
39、exf2不能引起中斷。rclk:串行口接收數據時鐘標志位。若rclk=1,串行口將使用定時器2溢出脈沖作為串行口工作模式1和3的串口接收時鐘;rclk=0,將使用定時器1計數溢出作為串口接收時鐘。tclk:串行口發送數據時鐘標志位。若tclk=1,串行口將使用定時器 2溢出脈沖作為串行口工作模式1和3的串口發送時鐘;tclk=0,將使用 定時器1計數溢出作為串口發送時鐘。定時器2外部允許標志位。當 exen2=1時,如果定時器2沒有用作串行時鐘,t2ex (p1)的負跳變見引 起定時器2捕捉和重載。若exen2=0,定時器2將視t2ex端的信號無效tr2:開始/停止控制定時器2。tr2=1,定
40、時器2開始工作定時器2定時 /計數選擇標志位。為o,定時;為1,外部事件計數(卜降沿觸發)cp/rl2:捕捉/重載選擇標志位。當exen2=1時,為1, t2ex出現負脈 沖,會引起捕捉操作;當定時器2溢出或exen2=1時t2ex出現負跳變, 都會出現自動重載操作。為0將引起t2ex的負脈沖。當rckl=1或tckl 為1時,此標志位無效,定時器2溢出時,強制做自動重載操作。2.4液晶lcd1602介紹市面上字符液晶絕人多數是基于hd44780液晶芯片的,控制原理是完全相同 的,因此hd44780寫的控制程序可以很方便地應用于市面上大部分的字符型液 晶。字符型lcd通常有14條引腳線或16條
41、引腳線的lcd,多出來的2條線是背光電源線vcc(15腳)和地線gnd(16腳),其控制原理與14腳的lcd完全-樣,定義如下表所示:表2-6 lcd1602的引腳定義引腳號引腳名電平輸入/輸出作用1uss電源地2ucc電源(*5u)3uee對比調整電壓4rs0/1輸入5r/w0/1輸入4向lcd寫入指今或數據 侶從lcd讀取信意6e輸入使能信號,迥謗取信息,1-叭下降沿)執仔指令7db00/1輸入/輸岀數據總線“re呎最低位)8db10/1輸入/輸岀數據總線linel9db20/1輸入/輸岀數據總線line210db30/1輸入/輸岀數據總線lines11db40/1輸入/輸岀數據總線川詁1
42、2db50/1輸入/輸出數據總線川酊13db60/1輸入/輸出數據總線"旺614db70/1輸入/輸出數據總線line7(最高位)15a+ucc“d背光電源正極16k接地lcd背光電源負極hd44780 內置了 ddram、cgrom 和 cgram。ddram 就是顯示數據ram,用來寄存待顯示的字符代碼。共80個字節,其地址和屏幕的對應關系如 下表:表2-7 ddram地址與屏幕對應關系顯示位置12345740ddram第一行ooh01h02h03ho4h05h06h27h地址第二行4oh41h42h43h44ha5h46h67h要在lcd1602屏幕的第一行第一列顯示一個a字,
43、就要向ddram的00h地址寫入“a”字的代碼就行了。但具體的寫入是耍按lcd模塊的指令格式來進行的。在1602中我們就用前16個就行了。第二行也一樣用前16個地址。對應如下:表2-8 ddram地址與顯示位置的對應關系cj:o0h 01h 02h 03h 0uh 05h 06h 07h 08h 09h oah 0bh 0ch 0dh 0eh 0fh40h 41h 42h 43h 44h 45h 46h 47h 48h 49h 4ah 4bh 4ch 4dh 4eh 4fh文本文件中每一個字符都是用一個字節的代碼記錄的。一個漢字是用兩個字節的 代碼記錄。在pc上我們只耍打開文本文件就能在屏幕上
44、看到對應的字符是因為 在操作系統里和bios里都固化有字符字模。字模就代表了是在點陣屏幕上點亮 和熄滅的信息數據。例如“a”01110oihho10001 ooob10001 ooob10001 ooob11111 10001 ooob10001 ooob圖2-2的字模上圖左邊的數據就是字模數據,右邊就是將左邊數據用“o”代表0,用 “”代表1。在lcd模塊上也固化了字模存儲器,這就是cgrom和cgramo hd44780內置了 192個常用字符的字模,存于字符產生器cgrom(character generator rom)中,另外還有8個允許用戶自定義的字符產生ram,稱為 cgram(
45、character generator ram)。卜圖說明了 cgrom 和 cgram 與字符的對應關 系o表2-9 cgrom中字符碼與字模關系對照表0000000100100011010001010110011110001001101010111100110111101111xxxxooolxxxxooloxxxxool 1xxxxoioixxxxol 10xxxxol 11xxxxiooo xxxxioolxxxx1010tei (4)iihiixxxx1011 i (4) xxxxhoo | (s) xxxxlloi | (6)xxxx1110 (7)"isibiriblr
46、l #|3|c|s|c|s| $|4|d|t|d|t| |5|e|u|e|u| &i6ifiu 7 |7|g|w|g|w| <|8|h|x|h|x| >l9iiivii|y| *|:|j33|z| +l5|k|k|<|.kil|¥|1|i|-|=|m|j|m|j>inia|nhxxkx1111 (8)/iwi-lohj工卜卯i" 口應hp|ti川lb門可hihi'iizet 甲illi ilb-ijptivitinf-y|y|7|d o從上圖可以看出,“a”字的對應上面高位代碼為0100,對應左邊低位代碼 為0001,合起來就是010
47、00001,也就是4111。可見它的代碼與我們pc中的字符 代碼是基本一致的。因此我們在向ddram寫c51字符代碼程序時甚至可以直接用 p1 = 'a'這樣的方法。pc在編譯時就把“a”先轉為41h代碼了。iid44780的指令集介紹,共11條指令:1.清屏指令<3>將地址計數器(ac)的值設為oo2.光標歸位指令指令功能指令編碼/nsrsr/wdb7db6db5db4db3db2db1db0光標歸位0006;'6001x1.64功能:1把光標撤回到顯示器的左上方;2把地址計數器(ac)的值設置為0;3保持ddram的內容不變。3.進入模式設置指令位名設置
48、i/d0二寫入新數據后光標左移1二寫入新數據后光標右移s0二寫入新數據后顯示屏不移動1二寫入新數據后顯示屏整體右移1個字符4.顯示開關控制指令指令功能指令編碼/usrsr/wdb7db6db5dbadb3db2db1db0顯示開關控制0066001vcb40功能:控制顯示器開/關、光標顯示/關閉以及光標是否閃爍。參數設定的情況如 下:位名設置d0二顯示功能關1二顯示功能開c0二無光標1二有光標b0二光標閃爍1二光標不閃爍5.設定顯示屏或光標移動方向指令指令功能指令編碼1/usrsr/wdb7db6dbsdbadb3db2db1db000091s/cr/lxx40功能:使光標移位或使整個顯示屏幕
49、移位。參數設定的情況如下:s/cr/l設定情況00光標左移1格,且ac值減101光標右移1格,且ac值加110顯示器上字符全部左移一格,但光標不動11顯示器上字符全部右移一格,但光標不動6功能設定指令dl0二數彈總選為4位1二數垂總辱為8位n0二顯示1行1二顯示2行f0=5x 7點陣/每字符1=5x 10點陣/每字符7.設定cgram地址指令指令功能指令編碼/usrsr/wdb7db6db5db4db3db2db1db0設定cgram 、地址0001cgram的地址(6位)40功能:設定下一個要存入數據的cgram的地址。8設定ddram地址指令指令功能指令編碼1/usrsr/wdb7db6d
50、b5db4db3db2db1dbo設定0dram地址001cgram的地址(7位)40功能:設定下一個要存入數據的cgram的地址。9讀取忙信號或ac地址指令指令功能指令編碼1/usrsr/wdb7db6db5db4db3db2db1dbq瞬i81fbac內容(7位)40功能:1讀取忙碌信號bf的內容,1321表示液晶顯示器忙,暫時無法接收單 片機送來的數據或指令;當bf=0時,液晶顯示器可以接收單片機送來的數據或指 令;2讀取地址計數器(ac)的內容。10.數據寫入ddram或cgram指令一覽:指令功能指令編碼rsr/wdb7db6dbsdb4db3db2db1db0叮i日j /us數據寫
51、入到ddram或cgram10要寫入的數據”d040功能:1將字符碼與入ddram,以使液晶顯不屏顯不出相對應的字符;2將使用者自己設計的圖形存入cgramo11.從cgram或ddram讀出數據的指令一覽:指令功能指令編碼/usrsr/wdb7db6dbsdb4db3db2db1db0從cgram或 ddrahh賣岀 數據11要讀出的數據d7d040功能:讀取ddram或cgram中的內容。基本操作時序:讀狀態 輸入:rs二l, rw二h, e二h 輸出:db0db7二狀態字寫指令 輸入:rs=l, rw=l, e二下降沿脈沖,db0db7二指令碼輸hh 無讀數據 輸入:rs二h, rw二h
52、, e二h輸hh db0db7二數據 寫數據 輸入:rs二h, rw二l, e二下降沿脈沖,db0db7二數據 輸出:無3單片機多機通信協議設計at89s52的內部ram只有256字節,不能存儲太多的數據包;其次,單片機 的外接晶振選用11.0592mhz,片內cpu的速度不理想,控制多個時鐘,cpu資源 消耗太多,會大大降低系統性能。因此,取消了停止等待協議有發送窗口這一機 制,而采用發送一個數據包就等待當前數據包的確認包,超時再發。主機通信協議如下:(1) 主機的sm2=0;發送從機地址。(2) 若從機無應答則等待。若有應答,地址若不符,則發從機復位命令, 返凹(1);若有應答且地址相符則繼續,準備發送命令。(3)發送通信方向控制命令(0x00發或0x01收。(4)若從機無應答則等待;若從機有應答但狀態字不正確,則令從機復位, 返回(1);若從機有應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論