RDA5807的數控收音機#(精選.)_第1頁
RDA5807的數控收音機#(精選.)_第2頁
RDA5807的數控收音機#(精選.)_第3頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要 現在人們常使用的收音機為手動調頻收臺, 使用較為麻煩, 而且由于接收靈 敏度不高,所接收的頻段較窄。為了解決這些問題,本次采用RDA5807攵音模塊 與單片機相結合,實現FM收音并顯示頻率。單片機自20世紀70年代問世以來, 以極其高的性能價格比受到人們的重視和關注, 所以應用很廣, 發(fā)展很快。 單片 機的特點是體積小、集成度高、重量輕、抗干擾能力強,對環(huán)境要求不高,價格 低廉,可靠性高,靈活性好,開發(fā)較為容易,所以本次采用 stc89c52 單片機。 此外,RDA5807模塊具有65-108MHZ全球FM接收頻段相容的效果,具備噪聲消 除、軟靜音、低音增強,靈敏度高、噪聲小、抗干擾能力

2、強等功能,還可以具備 頻率顯示功能,所以使用本模塊很容易實現。目錄引言11. 方案選擇 .21.1 方案一 .1.2 方案二 .1.3 方案確定2. 系統(tǒng)方案設計及各模塊原理2.1 STC89C5孩心模塊2.1.1 STC89C5單片機簡介2.1.2 STC89C5主要性能2.2 RDA5807模塊2.2.1 RDA5807模塊特點2.2.2 RDA5807模塊使用2.3 顯示模塊2.3.1 1602液晶簡介2321602引腳說明2.4 IIC 通信2.4.1 IIC 簡介2.4.2 IIC 時序3系統(tǒng)程序設計4 印刷電路板的設計與制作4.1印刷電路板的布線設計4.2印刷電路板的制作5電路板的

3、調試6 結論謝 辭參考文獻附 錄 引言本設計研究 FM 收音機分為硬件電路和程序設計兩個方面。從硬件電路來說, 主要是實現所需電壓值、 穩(wěn)壓、搜臺、控制和頻率顯示等方面; 從系統(tǒng)程序來說, 主要是通過軟件來實現 RDA5807莫塊的功能,使用IIC總線方式調臺,并且得到 當前的頻率,處理并實現頻率轉換、顯示。1. 方案選擇1.1 方案一使用分立元件來搭接電路, 實現莫塊的功能, 收發(fā)信號, 對信號調頻或者調 幅,從而得到可以處理的信號,實現收聽功能。呢 1空BG30G49C1B901B90149013*30X201由于本方案,調試極為復雜,很難成功,而且接收頻率范圍小,工作也很不 穩(wěn)定,很容易

4、受外界影響。1.2方案二采用RDA5807莫塊,實現接收信號,并處理功能,并于單片機相結合,實 現數控,操作簡單。由于RDA5807模塊高度的集成,很多功能都集成在內部,所以工作穩(wěn)定,不 容易受外界影響,而且需要的外部東西少,使用IIC總線與單片機相連接, 使 用的線少,模塊簡單,操作方便,并且接收頻率范圍很廣。2 系統(tǒng)方案設計及各模塊原理本方案采用STC89C5單片機與RDA模塊連接,從而實現數控收音機, STC89C5單片機在這方面的設計為我們提供了極大的方便,用它實現的好處在 于,外圍電路極其簡單,另外在 STC89C5洋片機的編程方面又提供及其便利的 編程環(huán)境。外圍電路的設計包括兩大部

5、分,分別是液晶的顯示和鍵盤控制電路的 設計。這里采用一個復位按鍵,來實現對RDA5807模塊的初始化。設計的特點是 全面采用數字電路方案,因而工作穩(wěn)定可靠。利用單片機控制管理,使設置及調 整操作準確。STC89C5最小系統(tǒng)原理圖RDA5807攵音模塊2.1 STC89C52核心模塊STC89C52是 STC公司生產的一種低功耗、高性能 CMOS位微控制器,具有 8K在系統(tǒng)可編程Flash存儲器。STC89C52使用經典的MCS-51內核,但做了很 多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的 8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用

6、系統(tǒng)提 供高靈活、超有效的解決方案。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM 32位I/O 口線,看門狗定時器,內置4KBEEPRO,MMAX81(復位電路,3 個16位定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng) 51的5向量2級中斷結構),全雙工串行口。另外STC89C52可降至0Hz靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。2.1.1 STC89C52單片機簡介其引腳結構及說明如下:VCC :電源GND:地P0 口: P0 口是一個8位漏極開路的雙向I/O 口。作為輸出口,每位能驅動 8個TTL邏輯電平。對P0端口寫“1”時,弓I腳用作高阻抗輸入。當訪問

7、外部程 序和數據存儲器時,P0 口也被作為低8位地址/數據復用。在這種模式下,P0 具有內部上拉電阻。在flash編程時,P0 口也用來接收指令字節(jié);在程序校驗 時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1 口 : P1 口是一個具有內部上拉電阻的 8位雙向I/O 口,pl輸出緩沖器 能驅動4個TTL邏輯電平。對P1端口寫“ T時,內部上拉電阻把端口拉高, 此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的 原因,將輸出電流(IIL )。此外,P1.0和P1.2分別作定時器/計數器2的外部 計數輸入(P1.0/T2 )和時器/計數器2的觸發(fā)輸入P1.1/T2EX)。

8、在flash編程 和校驗時,P1 口接收低8位地址字節(jié)。P2 口 : P2 口是一個具有內部上拉電阻的 8位雙向I/O 口,P2輸出緩沖器 能驅動4個TTL邏輯電平。對P2端口寫“ T時,內部上拉電阻把端口拉高, 此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的 原因,將輸出電流(IIL )。在訪問外部程序存儲器或用16位地址讀取外部數據 存儲器(例如執(zhí)行MOVXDPRR時,P2 口送出高八位地址。在這種應用中,P2口使用很強的內部上拉發(fā)送1。在使用8位地址(如MOVR)訪問外部數據存 儲器時,P2 口輸出P2鎖存器的內容。在flash編程和校驗時,P2 口也接收高8 位

9、地址字節(jié)和一些控制信號。P3 口 : P3 口是一個具有內部上拉電阻的 8位雙向I/O 口,p2輸出緩沖器 能驅動4個TTL邏輯電平。對P3端口寫“ T時,內部上拉電阻把端口拉高, 此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的 原因,將輸出電流(IIL )。P3 口亦作為AT89S52特殊功能(第二功能)使用, 如下所示。P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INTO(外部中斷0)P3.3外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 WR(外部數據存儲器寫選通)P3.7 RD(外部數據存儲器讀

10、選通)在 flash 編程和校驗時, P3 口也接收一些控制信號。RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機 復位。看門狗計時完成后,RST 腳輸出 96 個晶振周期的高電平。特殊寄存器AUXR地址8EH上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高 電平有效。ALE/PROG地址鎖存控制信號(ALE是訪問外部程序存儲器時,鎖存低8位 地址的輸出脈沖。在flash編程時,此引腳(PROG也用作編程輸入脈沖。在一 般情況下, ALE 以晶振六分之一的固定頻率輸出脈沖, 可用來作為外部定時器或 時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,A

11、LE脈沖將會跳過。 如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位 置“1”,ALE僅在執(zhí)行MOVX或MOVC旨令時有效。否則,ALE將被微弱拉高。 這個ALE使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外 部執(zhí)行模式下無效。PSEN外部程序存儲器選通信號(PSEN是外部程序存儲器選通信號。當 AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次, 而在訪問外部數據存儲器時,PSEN將不被激活。EA/VPP訪問外部程序存儲器控制信號。 為使能從0000H到FFFFH的外部程 序存儲器讀取指令,EA必須接GND為了執(zhí)行內

12、部程序指令,EA應該接VCC在 flash編程期間,EA也接收12伏VPP電壓。XTAL1振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。XTAL2振蕩器反相放大器的輸出端。2.1.2 STC89C52 主要性能-與MCS-51單片機產品兼容-8K 字節(jié)在系統(tǒng)可編程 Flash 存儲器-1000 次擦寫周期-全靜態(tài)操作:0Hz33Hz- 三級加密程序存儲器-32 個可編程 I/O 口線- 三個 16 位定時器 /計數器- 八個中斷源-全雙工UART串行通道- 低功耗空閑和掉電模式- 掉電后中斷可喚醒- 看門狗定時器-雙數據指針-掉電標志位-內帶2K字節(jié)EEPRO存儲空間-可直接使用串口下載-512

13、字節(jié)數據存儲空間2.2 RDA5807 模塊“ RRD-1O2V2.0 立體聲收音模塊(FM Stereo radio Module) 高靈敏度、低功耗、超小體積的調頻立體聲收音模組。采用RDA Microelectro nics的RDA5807M或RDA5802NM,此電路外圍元件少、噪聲系數極小。具有體積小、 低功耗、低成本、應用簡單、使用范圍廣等優(yōu)點。是一款簡單易用且具極高性價 比的單芯片FM立體聲收音模組。09*02H ZZlnO L-TOP View -91夢號4IM1f2Rh列(CfJt裁林號 側CLOOL !' -* 1 : .131-iHTl ! -人:.-GP1 NC

14、49-P- NC5FM It七八貯-14VDD -AOVDC模塊的引腳及外圍電路圖B,八用if!簾:221 RDA5807模塊特點A、采用通用的102BC模塊的封裝,用戶可直接替換使用,無需更改電路設計。B、靈敏度高、噪聲小、抗干擾能力強、外接元件極少、體積小(11*11.2MMMaX、 使用極其簡單。C、76-108MHZ全球FM頻段兼容(包括日本 76-91MHZ和歐美)。D I2C串行數據總線接口通訊,支持外部基準時鐘輸入方式。E、完全整合的COM工藝單晶片集成電路,功耗極小。F、內置高精度A/D (模數轉換器)及數字頻率合成器。G 內置LDO調整、低功耗、超寬電壓使用范圍()。H、內置

15、噪聲消除、軟靜音、低音增強電路設計。I、高功率32Q負載音頻輸出,直接耳機駁接,無需外接音頻驅動放大。J、應用簡便、成本低,性價比高。2.2.2 RDA5807模塊使用說明A、模塊供電濾波電容設計是應盡量靠近模塊電源輸入腳。B、I2C DAT, CLK芯片內部已經包含47k的上拉電阻;C、如用耳機的地線做天線,則參照上圖應用大原理圖D為了模塊能良好的可靠的工作,FM模塊供電電壓一般應大于2.7V以上。E、此模塊內部已集成LDO電源輸入端可使用簡單的LC電源濾波網絡即可。F、使用時應做好ESDI電防護工作。G模塊可串電容后直接驅動32ohm耳機,如需推動更大功率喇叭請外加功放;2.3顯示模塊顯示

16、模塊由1602液晶電路構成。2.3.1 1602液晶簡介1602液晶是工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)。2.3.2 1602引腳說明1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線 是背光電源線。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全 一樣,其中:引腳功能說明tVSS般接地2VDD接電源(3V0釀晶顯示器對比度調整端,接正電源時對比度最 藹接地電源時對上UE最高(肘比度過高時會產生'鬼,使用時可以通過一個代K的電位器調整 對比度).4RS沖寄苻器選擇*咼電平t時選擇數據寄存器、低 電平0時選擇

17、指令寄存甌5R/WRA療礙寫信號緝 高電平(肋進行讀操隹,低 電平e)w進行寫操作口6E巳或匚M端為曲也的則£滯,下曜沿淒融7DB0底4位三態(tài)、J5!向魏據總黠Ofc (SfStt)8DB1底4位三蕊 收向數據總線1fc9DB2底4位三總27向數據總線1 10DB3底4位三忑歡向數揖總線3位11DB4高也位三態(tài)、戲向數據息線4位pt2DB5高4位二產、雙向壩據思統(tǒng)5位| 13DB6局4位二態(tài);収向數據總搓G&14DB7高4位三態(tài)、雙向數據總袪7位(最高位)也 量busy flag)| 15BLA背光電源正極I16BLK背免電源負極.1602液晶引腳說明2.4 IIC通信根據R

18、DA5807莫塊的要求,使用IIC通信,與單片機相連接,實現數控。2.4.1 IIC 簡介IIC是由菲利浦半導體公司在八十年代初設計出來的,主要是用來連接整體電路(ICS) ,IIC是一種多向控制總線,也就是說多個芯片可以連接到同一總 線結構下,同時每個芯片都可以作為實施數據傳輸的控制源。 這種方式簡化了信 號輸總線。IIC串行總線一般有兩根信號線,一根是雙向的數據線SDA另一根是時鐘 線SCL所有接到IIC總線設備上的串行數據SDA都接到總線的SDA上,各設備 的時鐘線SCL接到總線的SCL上。243 IIC 時序在IIC總線傳輸過程中,將兩種特定的情況定義為開始和停止條件:當SCL保持“高

19、”時,SDA由 “高”變?yōu)椤暗汀睘殚_始條件;當 SCL保持“高”且SDA 由“低”變?yōu)椤案摺睍r為停止條件。 開始和停止條件均由主控制器產生。 使用硬 件接口可以很容易地檢測到開始和停止條件, 沒有這種接口的微機必須以每時鐘 周期至少兩次對SDA取樣,以檢測這種變化。SDA線上的數據在時鐘“高”期間必須是穩(wěn)定的,只有當SCL線上的時鐘信號為低時,數據線上的“高”或“低”狀態(tài)才可以改變。 輸出到SDA線上的每個字節(jié) 必須是8位,每次傳輸的字節(jié)不受限制,但每個字節(jié)必須要有一個應答ACK如果一接收器件在完成其他功能(如一內部中斷)前不能接收另一數據的完整字節(jié) 時,它可以保持時鐘線SCL為低,以促使發(fā)送

20、器進入等待狀態(tài);當接收器準備好 接受數據的其它字節(jié)并釋放時鐘 SCL后,數據傳輸繼續(xù)進行。I2C數據總線傳送 時序。數據傳送具有應答是必須的。與應答對應的時鐘脈沖由主控制器產生, 發(fā)送器在 應答期間必須下拉SDA線。當尋址的被控器件不能應答時,數據保持為高并使主 控器產生停止條件而終止傳輸。在傳輸的過程中,在用到主控接收器的情況下, 主控接收器必須發(fā)出一數據結束信號給被控發(fā)送器,從而使被控發(fā)送器釋放數據線,以允許主控器產生停止條件。3系統(tǒng)程序設計程序框圖初始化液晶顯示初始值檢測是否有按 、鍵按下-10 - / 26word.模塊進行搜索頻道和音量的相關變化液晶顯示當前頻率和音L結束具體程序詳見

21、附錄4.1印刷電路板的布線設計此過程是用Altium Designer來完成。布線設計按以下流程實現。圖4.1布線流程布線時的注意事項:(1)在擺放元件時先按原理圖擺放,再細調位置。 所用的為單面板,故布線時應在底層 Button Layer上。 布線區(qū)域應在禁止布線層 Keep Out Layer上圈定。(4)兩根線之間的距離不能太小,在線拐彎處不能用成直角,一般用45度角為宜。(5) 線寬設置在 0.8 1.0 毫米,在一些拐角的地方還可以適當地補線,以 防止腐蝕的時候將線腐蝕掉或是因為線太細而對電路造成不良的影響。4.2 印刷電路板的制作首先,把PCB合打印出來,用砂紙把銅板除去外層的氧

22、化銅,在預熱熨斗后, 把PCB放到板上,把線熨至銅板上。待銅板冷卻后再將紙從銅板撕下, 檢查銅板 上有沒有斷線的地方, 若有少量, 則用油性筆把線合補上! 太多的話就用砂紙把 線去除之后再重新燙過。然后,盡快把熨好的銅板放到氯化鐵溶液中。第三,腐蝕完后先進行打孔,再把銅線上的墨去掉。這樣打孔比較方便。 第四,就是裝元件,在此過程中一定要注意有正負極性的元件,比如 LED 燈、電解電容等。最后進行焊接。5 電路板的調試調試過程是一個非常重要的環(huán)節(jié),這是整個電路板成功與否的關鍵。首先應斷開電源, 用數字萬用表認真檢查電路連線是否有誤, 是否有短路或 者斷路和虛焊等的現象。 經過初步檢查以后, 方可

23、接通電源。 此時還不應該把芯 片裝上。接上電源時應該明確電源的正負極性, 切不可接反, 一接反則馬上可能會出 現燒毀重要元件的情況! 時刻用手觸摸各元件有沒有發(fā)熱現象, 并注意其是否冒 煙等。待過一段時間穩(wěn)定后,如沒有出現不良的現象,則電路基本上正常,可依 次用數字萬用表檢查各點的工作電壓情況, 各點工作穩(wěn)定, 并且確認芯片插座兩 端的電壓符合芯片的工作電壓時,則可以關閉電源,把芯片裝上。 附錄主程序#include "reg52.h"#include "intrins.h"#include "lcd.h"#include "

24、;IIC.h"#include "delay.h"sbit K1 = P2A0;sbit K2 = P2A1;sbit K3 = P2A2;sbit K4 = P2A3;unsigned long frequency;/ RDA5807 寄存器 unsigned char RDA_reg_data8 =0xd0,0x00, / 02H0x00,0x00, / 03H0x00,0x40, / 04H0x90,0x88, / 05H;unsigned char code cdis1 = "FM cui's RADIO "unsigned c

25、har code cdis2 = "FM VOL "char code reserve3_at_ 0x3b; / 保留 0x3b 開始的 3 個字節(jié) 連續(xù)寫寄存器子函數void RDA5807_write_reg(void)uchar i;I2C_start();/收音模塊寫入操作I2C_write_byte(0x20);/寄存器連續(xù)寫操作for(i=0; i<8; i+)I2C_write_byte(RDA_reg_datai);I2C_stop();連續(xù)讀寄存器子函數void RDA5807_read_reg(uchar *reg_buf)I2C_start();

26、/ 收音模塊讀取操作I2C_write_byte(0x21);/ 寄存器連續(xù)讀操作reg_buf0 = I2C_read_byte(I2C_ACK); reg_buf1 = I2C_read_byte(I2C_ACK); reg_buf2 = I2C_read_byte(I2C_ACK);reg_buf3 = I2C_read_byte(I2C_NACK);I2C_stop();模塊上電初始化子函數void RDA5807_power(void)delayms(50);/ 發(fā)送軟件復位指令RDA_reg_data0 = 0x00;RDA_reg_data1 = 0x02;RDA5807_wri

27、te_reg();delayms(10);/ 收音模塊默認參數RDA_reg_data0 = 0xd0;RDA_reg_data1 = 0x01;RDA5807_write_reg(); 功能描述:收音模塊自動尋臺模式void RDA5807_FM_seek(void)uint chan;uchar reg_data4 = 0x00, 0x00, 0x00, 0x00;RDA_reg_data3 &= (1 << 4); / 調諧禁用/ 內部自動尋臺使能RDA_reg_data0 |= (1 << 0); /SEEK 位置 1 RDA5807_write_reg

28、();/ 等待 STC 標志置位while(0 = (reg_data0 & 0x40)delayms(20);/ 讀取內部狀態(tài)RDA5807_read_reg(reg_data);/ 獲取當前工作頻點chan = reg_data0 & 0x03;chan = reg_data1 | (chan << 8);chan = chan << 6;/ 保存當前工作頻點RDA_reg_data2 = (chan >> 8) & 0xff;RDA_reg_data3 = (chan & 0xff);頻率顯示子函數void show_f

29、requency(void)unsigned char i,display5;unsigned int temp;計算temp = (RDA_reg_data2*256)+(RDA_reg_data3&0xc0); /temp = temp>>6;frequency = (unsigned long)(100*temp+87000)/100;for(i=0; i<5; i+) / displayi = 0x00;清顯存單元display0 = (frequency)/1000 ; / display1 = (frequency%1000)/100; display2

30、= (frequency%100)/10;display3 = 0x2e;/display4 = (frequency%10);數據轉換小數點if(display0 = 0)display0 = display1+0x30; display1 = display2+0x30; display2 = display3;display3 = display4+0x30; display4 = 0x20;elsedisplay0 += 0x30;display1 += 0x30;display2 += 0x30;display4 += 0x30;lcd_pos_xy(3,2); /lcd_wdat(

31、display0);lcd_wdat(display1);lcd_wdat(display2);lcd_wdat(display3);lcd_wdat(display4);頻率顯示如果高位為 0低位顯存內容進入高位顯存低位不顯示音量值顯示 音量顯示子函數 void show_volume()unsigned char temp,display2;temp = RDA_reg_data7 & 0x0f; / 取音量值display0 = temp/10;display1 = temp%10;if(display0 = 0) /display0 = display1; / display1

32、 = 0x20;/ elsedisplay1 += 0x30;display0 += 0x30;lcd_pos_xy(13,2); /lcd_wdat(display0);lcd_wdat(display1);主函數void main(void)P0 = 0xff;P1 = 0xff;P2 = 0xff;lcd_init();lcd_w_string(0,1,cdis1,0);lcd_w_string(0,2,cdis2,0);RDA5807_power();while(1)if(K1 = 0)delayms(20);if(K1 = 0)RDA_reg_data0 |= (1 <<

33、 1);/SEEK UPRDA5807_FM_seek();while(K1 = 0);if(K2 = 0) delayms(20); if(K2 = 0) RDA_reg_data0 &= (1 << 1); /SEEK DOWNRDA5807_FM_seek(); while(K2 = 0);if(K3 = 0) delayms(20); if(K3 = 0) if(RDA_reg_data7 & 0x0f) < 0x0f)RDA_reg_data0 = 0xd0;RDA_reg_data1 = 0x01;RDA_reg_data3 &= (1 &

34、lt;< 4);RDA_reg_data7+; /RDA5807_write_reg();while(K3 = 0);if(K4 = 0)delayms(20);if(K4 = 0)if(RDA_reg_data7 & 0x0f) > 0x00)RDA_reg_data0 = 0xd0;RDA_reg_data1 = 0x01;RDA_reg_data3 &= (1 << 4);RDA_reg_data7-;/RDA5807_write_reg();while(K4 = 0);show_volume();show_frequency();音量遞增音量遞減

35、Lcd 程序#include "reg52.h"#include "intrins.h"#include "lcd.h"#include "delay.h"#define uchar unsigned char#define uint unsigned int#define DATA_PORT P1sbit LCD_RS = P2A6;sbit LCD_RW =卩2八5;sbit LCD_EN = P2A4;檢查LCD忙狀態(tài)lcd_busy 為 1時,忙,等待。 lcd-busy 為 0 時,閑,可寫指令與數據 b

36、it lcd_busy()bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;delayNOP();result = (bit)(DATA_PORT&0x80);LCD_EN = 0;return(result);寫指令數據到 LCDRS=L , RW=L E=S脈沖,D0-D7=f 令碼。Check=1 ,進行忙檢測。void lcd_wcmd(uchar cmd, bit Check)if(Check)while(lcd_busy();LCD_RS = 0; LCD_RW = 0;LCD_EN = 0; delayNOP();DATA_PORT

37、= cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0;寫顯示數據到 LCDRS=H, RW=L 丘=高脈沖,D0-D7=t據。void lcd_wdat(uchar dat) while(lcd_busy(); / 進行忙檢測LCD_RS = 1; LCD_RW = 0;LCD_EN = 0;DATA_PORT = dat; delayNOP();LCD_EN = 1; delayNOP();LCD_EN = 0;delayms(50); lcd_wcmd(0x38,0); /16*2 delayms(5);LCD 初始化設定 void l

38、cd_init() 顯示, 5*7 點陣, 8位數據lcd_wcmd(0x38,0); / delayms(5);lcd_wcmd(0x38,0);delayms(5);不進行忙檢測,強制執(zhí)行進行忙檢測顯示開,關光標移動光標清除LCD的顯示內容lcd_wcmd(0x38,1); / delayms(5); lcd_wcmd(0x0c,1); / delayms(5); lcd_wcmd(0x06,1); / delayms(5); lcd_wcmd(0x01,1); / delayms(5);設定顯示位置void lcd_pos_xy(uchar pos_x,uchar pos_y) uchar pos_temp;pos_temp=pos_x & 0x0f; pos_y &= 0x0f;if(pos_y=0x01) pos_temp |= 0x80; else if(pos_y=0x02) pos_temp |= 0xc0;lcd_wcmd(pos_temp,1);寫字符串子函數void lcd_w_string(uchar pos_x,uchar pos_y,uchar code *str,

溫馨提示

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

評論

0/150

提交評論