單片機課程設計報告_第1頁
單片機課程設計報告_第2頁
單片機課程設計報告_第3頁
單片機課程設計報告_第4頁
單片機課程設計報告_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告學號: 1328403028 姓名: 張帥華 班級: 13電子信息工程 指導老師: 鄧晶蘇州大學 電子信息學院2016年5月摘要隨著時代的進步和發(fā)展,單片機技術已經成為一種比較成熟的技術,普及到我們生活、工作、科研等各個領域。本次課程設計包含四個基于STC89C52單片機的設計,分別是:基于單總線數字式溫度傳感器DS18b20的數字溫度計的設計;基于2K位串行CMOS 的EEPROM AT24C02的數字密碼鎖的設計;基于SPI接口實時時鐘芯片DS1302的電子日歷的設計以及基于無線收發(fā)芯片nrf24L01的簡單無線通訊系統(tǒng)的設計。關鍵詞:單片機 DS18B20 AT24C02 D

2、S1302 NRF24L01目錄摘要.1目錄.2第1章 基于DS18B20的數字溫度計設計.31.1 設計要求.31.2 系統(tǒng)組成.31.3 系統(tǒng)設計.31.3.1 硬件設計.31.3.2 軟件設計.41.4 設計結果.6第2章 基于AT24C02的電子密碼鎖設計.82.1 設計要求.82.2 系統(tǒng)組成.82.3 系統(tǒng)設計.92.3.1 硬件設計.92.3.2 軟件設計.102.4 設計結果.11第3章 基于DS1302的電子日歷的設計.123.1 系統(tǒng)功能.123.2 系統(tǒng)組成.123.3 系統(tǒng)設計.123.3.1 硬件設計.123.3.2 軟件設計.143.4 設計結果.15第4章 基于N

3、RF24L01的無線通信系統(tǒng)的設計.164.1 系統(tǒng)功能.164.2 系統(tǒng)組成.164.3 系統(tǒng)設計.164.3.1 硬件設計.164.3.2 軟件設計.174.4 設計結果.18總結.19第1章基于DS18b20的數字溫度計設計1.1 設計要求 (1)采用DS18b20與單片機STC89C52相結合設計數字溫度計,實現液晶屏實時顯示當前溫度;(2)讀取并顯示DS18B20的序列碼。1.2 系統(tǒng)組成本方案設計的系統(tǒng)由單片機系統(tǒng)、數字式溫度傳感器DS18B20和LCD1602顯示模塊組成。DS18B20:DS18B20是單線式數字溫度傳感器,與微處理器連接時僅需要一條口線即可實現微處理器與 DS

4、18B20 的雙向通訊;有溫度測量范圍寬,測量精度高的特點;同時它的供電方式靈活,可以通過內部寄生電路從數據線上獲取電源;測量參數可配置 ,其測量分辨率可通過程序設定為 912 位。LCD1602:1602液晶也叫1602字符型液晶,是一種專門用來顯示字母、數字、符號的點陣型液晶模塊,它由若干個5x7或者5x11的點陣字符位組成,每個點陣字符位都可以用顯示一個字符。1.3 系統(tǒng)設計1.3.1硬件設計圖1-1 數字溫度計硬件原理圖在本次系統(tǒng)設計中,STC89C52單片機作為控制器,完成所有功能的控制,包括:(1)DS18B20數字溫度傳感器的初始化和讀取溫度值;(2)LCD1602顯示驅動與控制

5、。以數字式溫度傳感器DS18B20作為傳感元件。DS18B20是單總線數字式溫度傳感器,采用單總線協(xié)議,即與單片機接口僅需占用一個I/O端口,無需任何外圍器件,直接將溫度轉化為數字信號,以數字碼形式串行輸出??捎梢桓鵌/O數據線既供電又傳輸數據。DS18B20直接讀取被測溫度值,送到LCD1602上進行顯示,LCD1602可以顯示兩行字符,每行16個字符,只能顯示ASCII碼字符。本實驗中需要顯示的數據是溫度和DS18B20的唯一序列碼??傮w架構如圖1-1所示。將18B20的單總線DQ與單片機接口P2.2相連,通過時序控制首先對其進行初始化,然后發(fā)送讀寫和溫度轉換命令,使DS18B20內部溫度

6、傳感器開始工作,最后從溫度寄存器中讀取兩字節(jié)二進制碼,轉換為溫度值后顯示在LCD上。同理,對于序列碼的讀取,也要在18B20初始化成功的基礎上,發(fā)送讀ROM命令(該命令只適用于總線上存在單只DS18B20),將讀取的字符顯示在液晶屏上。1.3.2 軟件設計主程序:圖1-2 主程序流程圖Ø 先進行初始化,該初始化包括DS18b20的初始化和液晶屏的初始化。DS18b20的初始化是為器件應答準備,作為從器件的DS18B20在一上電后就一直在檢測總線上是否有480960微秒的低電平出現,如果有,在總線轉為高電平后等待1560微秒后將總線電平拉低60240微秒做出響應存在脈沖,告訴主機本器件

7、已做好準備;液晶屏的初始化是為顯示溫度準備;Ø 調用顯示子程序顯示當前檢測到的溫度值;Ø 不斷刷新溫度數據進行實時顯示。DS18B20的初始化:圖1-3 DS18B20初始化時序圖初始化流程:Ø 將總線拉低480us960usØ 拉高總線,若DS18B20做出反應會將在15us60us后將總線拉低 Ø 等待DS18B20拉低總線圖1-4 DS18B20初始化流程圖DS18B20讀字節(jié)和寫字節(jié)子程序:圖1-5 寫字節(jié)子程序流程圖 圖1-6 讀字節(jié)子程序流程圖寫字節(jié):寫周期最少為60微秒,最長不超過120微秒。寫周期一開始主機先把總線拉低1微秒表示

8、寫周期開始。隨后若主機想寫0,則將總線置為低電平,若主機想寫1,則將總線置為高電平,持續(xù)時間最少60微秒直至寫周期結束,然后釋放總線為高電平至少1微秒給總線恢復 。而DS18B20則在檢測到總線被拉底后等待15微秒然后從15us到45us開始對總線采樣,在采樣期內總線為高電平則為1,若采樣期內總線為低電平則為0。讀字節(jié):讀周期是從主機把單總線拉低1微秒之后開始,先釋放單總線為高電平,以讓DS18B20把數據傳輸到單總線上。作為從機DS18B20在檢測到總線被拉低1微秒后,便開始送出數據,若是要送出0就把總線拉為低電平直到讀周期結束。若要送出1則釋放總線為高電平。主機在一開始拉低總線1微秒后釋放

9、總線,然后在包括前面的拉低總線電平1微秒在內的15微秒時間內完成對總線進行采樣檢測,采樣期內總線為低電平則確認為0。采樣期內總線為高電平則確認為1。完成一個讀時序過程,至少需要60微秒才能完成。讀取溫度子程序:圖1-7 讀取溫度子程序流程圖讀取溫度流程:Ø 跳過ROM操作 (0CCH)Ø 發(fā)送溫度轉換命令 (044H) Ø 跳過ROM操作 (0CCH) Ø 發(fā)送讀取溫度命令 (033H) Ø 讀取溫度值 (0BEH)1.4 設計結果摁下獨立按鍵1可以顯示溫度信息 摁下獨立按鍵2可現實序列碼 圖1-8 設計測試結果圖第2章基于AT24C02的數字

10、密碼鎖設計2.1 設計要求(1)設置初始密碼為“000000”(2)進入密碼鎖后,按鍵S11修改密碼,并在液晶顯示密碼(3)S12為確定鍵,修改成功(4)S13為重新設置鍵(5)S14為退出密碼鎖(6)在未進入密碼鎖時,S11,S12,S13,S14無效2.2 系統(tǒng)組成本設計由STC89C52單片機芯片和具有2K位串行CMOS 的EEPROM AT24C02以及LED數碼管顯示模塊組成。AT24C02:(1) 模塊原理圖圖2-1 AT24C02模塊原理圖(2)發(fā)送器件地址的格式圖2-2 發(fā)送器件地址的格式圖高四位1010是24Cxx系列的固定器件地址,接下來是A2、A1、A0是根據器件連接來決

11、定,我們的原理圖都接地所以是000。R/W為是選擇讀還是寫,1的時候是讀,0的時候是寫。(3)芯片工作時序l 初始化(scl=H,sda=H)l 寫入過程Ø 發(fā)送器件地址(0XA0):SendByte(0xa0);Ø 發(fā)送要寫入24C02的內存地址:SendByte(addr);Ø 發(fā)送要寫入的數據: SendByte(dat);l 讀出過程Ø 發(fā)送寫入的器件地址(0XA0)Ø 發(fā)送要讀的24C02的內存地址Ø 發(fā)送讀出的器件地址(0XA1)Ø 讀取數據(4)AT24C02的數據發(fā)送時序Ø 總線起始信號 圖2-3

12、總線起始信號時序圖 Ø 總線應答信號Ø 總線結束信號圖2-4 總線結束信號時序圖2.3 系統(tǒng)設計2.3.1 硬件設計圖2-5 硬件原理圖單片機是電子密碼鎖系統(tǒng)的主控制器。AT24C02是密碼儲存電路,它的SCL、SDA端分別接單片機的P2.1、P2.0端口,用于與單片機之間讀寫操作的數據傳輸;WP接低電平表示單片機可以對器件進行正常的讀/寫操作;A0、A1、A2是器件地址輸入端,都接低電平表示只有一個AT24C02被器件尋址。用戶設置的密碼存放在AT24C02中,當需要更改或讀取用戶密碼時,只需對AT24C02里的數據更改或讀取。矩陣鍵盤電路主要作用是對密碼進行輸入、修改、

13、確定等操作,它由行線和列線組成,按鍵位于行、列的交叉點上,行列分別連接到按鍵開關的兩端。無按鍵按動作時列線處于高電平狀態(tài);有按鍵按下時,交點的行線和列線相通,列線電平狀態(tài)將由與此列線相連的行線電平決定。顯示電路由LED數碼管和LED指示燈組成。2.3.2 軟件設計主程序:圖2-6 主程序流程圖Ø 先對數碼管的顯示進行初始化;Ø 按鍵掃描判斷是否輸入密碼,如果輸入密碼并且輸入正確,則密碼鎖開啟;Ø 按鍵掃描判斷是否進行密碼的更改或者密碼鎖的關閉;Ø 輸入更改后的密碼,若正確則密碼鎖開啟;Ø 假如系統(tǒng)斷電或密碼鎖關閉按鍵按下則密碼鎖關閉。AT24C

14、02子程序:開始AT24C02初始化輸入密碼密碼是否正確 否是解鎖圖2-7 AT24C02子程序流程圖2.4 設計結果功能鍵:S1-S10數字鍵0-9S11-更改密碼 S12-更改密碼完畢后確認S13-重試密碼、重新設定S14-關閉密碼鎖初始密碼:000000 密碼位數:6位 1、開鎖:下載程序后,直接按六次S1(即代表數字0),8位LED亮,鎖被打開,輸入密碼時,六位數碼管依次顯示小橫杠。 2、更改密碼:只有當開鎖(LED亮)后,該功能方可使用。首先按下更改密碼鍵S11,然后設置相應密碼,此時六位數碼管會顯示設置密碼對應的數字。最后設置完六位后,按下S12確認密碼更改,此后新密碼即生效。 3

15、、重試密碼:當輸入密碼時,密碼輸錯后按下鍵S13,可重新輸入六位密碼。當設置密碼時,設置中途想更改密碼,也可按下此鍵重新設置。 4、關閉密碼鎖:按下S14即可將打開的密碼鎖關閉。密碼鎖的初始密碼為000000,密碼輸入正確后可啟動密碼鎖對密碼進行修改的操作,六為密碼分別對應LED燈D1,D2,D3,D4,D5,D6,密碼所有位數輸入正確則六個LED等被點亮,并且D7,D8也被點亮;若某一位密碼不正確,則所對應的LED燈不亮且D7,D8兩個LED燈也不亮。 圖2-8 設計測試結果圖 第3章基于DS1302的電子日歷設計3.1 設計要求(1)在LCD上顯示當前的時間信息,即年、月、日、星期、時、分

16、、秒 (2)具有時間的調校功能(3)顯示當前調節(jié)對象(4)日期時間加調整與保存。3.2 系統(tǒng)組成本設計由STC89C52單片機最小系統(tǒng)、實時時鐘芯片DS1302以及顯示液晶LCD1602組成。DS1302采用SPI三線接口與CPU進行通信,僅用到三根信號線:RST(復位),I/O(數據線),SCLK(同步串行時鐘)。并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數據。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調整,且具有閏年補償功能。3.3 系統(tǒng)設計3.3.1 硬件設計圖3-1 電子日歷硬件原理圖本系統(tǒng)主要由ST89C52主控模塊、時鐘復位電路模塊、DA1302

17、電路模塊、按鍵掃描模塊和LCD1602液晶顯示模塊組成。DS1302與51單片機的連接只需要利用單片機的三個I/O引腳對DS1302的SCLK、I/O、和RST進行控制,51單片機的P2.0,P2.1和P2.4分別與DS1302 的SCLK,I/O和RST相連,DS1302的主電源VCC2與系統(tǒng)電源VCC相連。DS1302實時時鐘:DS1302時鐘芯片包括實時時鐘(日歷)和31字節(jié)的靜態(tài)RAM,它通過一個簡單的串行接口與微處理器通信,實時時鐘提供秒,分,時,日,周,月,年等信息,對于小于30天的月和月末的日期自動進行調整,還包括閏年校正的功能,時鐘的運行可以采用24h或帶AM/PM的12h格式

18、。(1)DS1302的控制字格式圖3-2 DS1302的控制字格式DS1302的時鐘控制字最高有效位(位7)必須是邏輯1,如果它為邏輯0,則不能把數據寫到DS1302中;位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5 1(A4A0)指示操作單元的地址,最低有效位(位0)為0表示進行寫操作,為1表示進行讀操作??刂谱挚偸菑淖畹臀婚_始進行輸入/輸出。(2)DS1302的讀/寫時序圖3-3 DS1302的讀/寫時序圖在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始;同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS

19、1302的數據,讀出數據時從低位0位到高位7。(3)DS1302的時鐘寄存器圖3-4 DS1302的時鐘寄存器圖DS1302共有12個寄存器,其中有七個寄存器與日歷,時鐘相關,存放的數據位為BCD碼形式。時鐘寄存器的第8個字節(jié)是寫保護寄存器。當WP為“1”的時候是開啟寫保護,這個時候是禁止對DS1302進行寫操作的。當WP為“0”的時候是關閉寫保護,這個時候才能對DS1302進行寫操作。按鍵掃描電路:按鍵掃描電路模塊主要用于對日歷時間的修改,由四個按鍵組成,分別是:選擇鍵,數值加鍵,數值減鍵和返回鍵。其中,選擇鍵用于選定要修改的時間項目,如年、月、日數值加鍵和減鍵用于對修改項的數值加減操作,返

20、回鍵用于修改完成后的啟動計時。3.3.2 軟件設計主程序:圖3-5 主程序流程圖Ø 液晶初始化顯示DS1302設定的初始化時間;Ø 按鍵掃描更改顯示時間,使之與當前實際時間對應;Ø 將更改后的時間送到液晶顯示,啟動計時。時間調整程序:圖3-6 時間調整子程序流程圖調整時間用四個調整按鍵,分別定義為選擇鍵,數值加鍵,數值減鍵,返回鍵。在調整時間過程中,首先要按下選擇鍵,在顯示屏上會顯示對應的要調試的時間項光標閃爍,然后可對數值進行加或減的操作,時間調整結束后按返回鍵從當前調整的時刻開始計時。時間調整程序流程圖如圖3-6所示。3.4 實驗結果將程序下載到系統(tǒng),加電后液

21、晶屏顯示程序設置的初始化時間,通過按鍵選擇、加、減可對年、月、日、周、時、分、秒幾個時間進行更改,更改完成后按下返回鍵從更改的時間處開始計時。 圖3-7 設計測試結果圖 第4章基于nrf24L01的無線通訊系統(tǒng)的設計4.1 設計要求(1)實現兩個單片機之間的點對點通訊,最大通訊距離為100米。(2)主機按“K1K4”,發(fā)送“19”,從機會接收到相應的字符并用數碼管顯示。(3)主從機可以隨時調換角色。4.2 系統(tǒng)組成本系統(tǒng)主要由單片機最小系統(tǒng)和無線收發(fā)芯片nrf24L01模塊組成。單片機在整個系統(tǒng)中起到控制無線短距通信的作用。由NRF24L01無線通信收發(fā)模塊實現無線數據傳輸。整個系統(tǒng)有發(fā)送和接

22、收兩部分,當主機設置為發(fā)送模式時,通過SPI時序給既定的發(fā)送緩沖區(qū)寫入數據。當從機設置為接受模式時,通過SPI從相應的接收緩沖區(qū)讀出數據,并在數碼管上顯示。 4.3 系統(tǒng)設計4.3.1 硬件設計NRF24L01數碼管顯示AT89C52矩陣鍵盤圖4-1 無線通訊硬件原理圖在該系統(tǒng)中,鍵盤輸入是人機交換的接口,其主要功能是設置nRF24L01的工作模式和實現鍵盤輸入字符、數字等。單片機是主控模塊實現數據的儲存、處理,將各模塊聯系起來協(xié)調各模塊的工作。LCD1602主要功能就是顯示作用,將鍵盤輸入或接收到的信息顯示出來。NRF24L01模塊:nrf24L01模塊實際上就是一個芯片,連了一些必要的電容

23、電阻電感和一個天線,然后留出了和單片機通信的SPI口和IRQ中斷引腳。NRF24L01,任何單片機可以驅動,帶硬件SPI口的單片機,可以配置好SPI外設以后驅動,沒有硬件SPI口的單片機,可以用IO口模擬SPI時序通信。NRF24L01是一個數字芯片,內部有若干寄存器,例如數據寄存器、配置寄存器、狀態(tài)寄存器等。單片機通過SPI口,首先配置好NRF24L01的配置寄存器,諸如頻道,通道,地址,接收還是發(fā)送模式等等。然后分兩種情況:(1)如果配置為了發(fā)送模式,就可以發(fā)送數據了,發(fā)送完數據以后,IRQ引腳會拉低,所以觀察IRQ引腳就可以知道有沒有發(fā)送成功;(2)如果配置為了接收模式,就需要不斷的觀察

24、IRQ引腳,IRQ引腳正常是高電平,如果接收到數據,就會變成低電平,所以觀察這個引腳就知道有沒有接收到數據。在做NRF24L01的通信程序時,最好拿兩個相同的單片機,做相同的程序(除了一個配置未發(fā)送,一個配置為接收)。首先要確保單片機和NRF24L01能夠正常的SPI通信,這就需要驗證。驗證方法是:找一個可讀可寫的寄存器,先寫進去,然后再讀出來,如果數據一樣,那么SPI通信就正常,如果讀出來的數據和寫進去的數據不一樣,說明無法通信。兩個nrf24l01通信,需要滿足3個條件相同:(1)頻道相同(設置頻道寄存器RF_CH)(2)地址相同(設置TX_ADDR和RX_ADDR_P0相同)(3)每次發(fā)

25、送接收的字節(jié)數相同(如果設置了通道的有效數據寬度為n,那么每次發(fā)送的字節(jié)數也必須為n,當然,n<=32)NRF24L01可以進行一對多相互通信,官方手冊上說,nrf24l01可以一對六,指的是自身的通道有6個,而且這種模式只能是1收6發(fā),不能1發(fā)6收。我們一般用nrf24l01的通道0,通過改變頻道和地址來實現1對多的互發(fā)。它屬于2.4G芯片,但實際上,可以在2.4G到2.5G之間的頻道上通信,一共有125個頻道,它的地址是5字節(jié)的。所以用這種方式,可以實現一對無數的通信。但這只是理論數值,實際上由于環(huán)境中的各種干擾,通信太多就會混亂。實現一對多通信的一種最常用的辦法就是跳頻通信,其實就

26、是換頻道。原理是:假設現在1對10通信相互收發(fā)數據,給10個節(jié)點的NRF24L01設置為不同的頻道,如10 20 30 主機的NRF24L01,要想獲得某個節(jié)點的數據,就設置為某個節(jié)點的頻道,然后收發(fā)數據,完成以后,可以再去和另外一個節(jié)點通信。由于單片機運行速度快,挨個獲取10個節(jié)點的數據,所用的時間也很短。4.3.2 軟件設計開始K1鍵按下K4鍵按下K3鍵按下K2鍵按下配置為發(fā)送模式,發(fā)送數字4配置為發(fā)送模式,發(fā)送數字1配置為發(fā)送模式,發(fā)送數字3配置為發(fā)送模式,發(fā)送數字2數碼管顯示圖4-2 主程序流程圖4.4 實驗結果 1、左邊為發(fā)射機,右邊為接收機。左邊發(fā)射信號為時間,且信號比較穩(wěn)定,右邊

27、接收信號在短距離內接收信號穩(wěn)定,延遲很短,可以忽略不計,但是接收信號略有閃爍。 2、室內接收約30米左右,隔墻只有十五米左右。室外接收約26米。天氣影響很大,下雨時信號接收約為15米。 3、由于連接線不穩(wěn)定,稍有觸碰就會影響接收距離,所以誓言時最好將連接的導線固定設計總結這個學期的單片機課已經早早的上完了,但是理論純屬理論,沒有與實踐的結合總讓我們學的不踏實,感覺沒有達到學以致用的效果。所慶幸的是在課程介紹考試完之后,老師給我們安排了這次單片機課程設計,給了我們學以致用的做好的實踐。 關于這次課程設計,我們花費了比較多的心思,既是對課程理論內容的一次復習和鞏固,還讓我們豐富了更多與該專業(yè)

溫馨提示

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

評論

0/150

提交評論