單片機(jī)的LED顯示屏硬件設(shè)計(jì)方案_第1頁(yè)
單片機(jī)的LED顯示屏硬件設(shè)計(jì)方案_第2頁(yè)
單片機(jī)的LED顯示屏硬件設(shè)計(jì)方案_第3頁(yè)
單片機(jī)的LED顯示屏硬件設(shè)計(jì)方案_第4頁(yè)
單片機(jī)的LED顯示屏硬件設(shè)計(jì)方案_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、【W(wǎng)ord版本下載可任意編輯】 單片機(jī)的LED顯示屏硬件設(shè)計(jì)方案 row = (+row)&0 x0f; P0 = (P0 & 0 xf0)|(row)& 0 xf); col = 0;SPDAT = SCR_BUF; 這樣編寫的屏體驅(qū)動(dòng), 應(yīng)用只要在初始化屏體后,向屏幕緩沖區(qū)中寫入要顯示的數(shù)據(jù)即可, 而不必關(guān)心屏幕顯示的細(xì)節(jié)。 3.2 UART 接口 UART 接口負(fù)責(zé)與上位機(jī)的數(shù)據(jù)收發(fā), 盡管發(fā)送可以同步開(kāi)展, 但接收必須異步開(kāi)展。因而UART 接口的仍然應(yīng)該是一個(gè)中斷服務(wù)程序。 UART 接口的頭文件uart.h 隱藏了接收緩沖區(qū)的信息, 用戶可調(diào)用的函數(shù)只有初始化、發(fā)送和接收。 #if

2、ndef _UART_H_ #define _UART_H_ void uart_init(void); void uart_put_c(u8 ch); u8 uart_get_c(u8 *); #endif UART 的接口實(shí)現(xiàn)首先定義一個(gè)接收緩沖FIFO, 以及對(duì)FIFO 的讀下標(biāo)uart_rd 和寫下標(biāo)uart_wr, 他們都是文件內(nèi)可見(jiàn)的靜態(tài)變量: static u8 xdata uart_buf; static u8 uart_rd,uart_wr; bit fSend UART 的初始化包括開(kāi)展FIFO 的初始化和UART格式、波特率、中斷的初始化。代碼略。 UART 的ISR 主

3、要是服務(wù)于接收, 無(wú)條件地將數(shù)據(jù)裝入FIFO, 并調(diào)整寫入指針。 static void uart_isr(void)interrupt 4 using 1 if(RI)RI = 0; uart_buf = SBUF; uart_wr &= 0 x0f; 提供應(yīng)用戶的發(fā)送程序首先檢測(cè)發(fā)送結(jié)束標(biāo)記, 如果為0, 表示上次發(fā)送尚未結(jié)束, 直接返回錯(cuò)誤信息1。 否則將要發(fā)送的信息發(fā)送并清零發(fā)送結(jié)束標(biāo)記。這樣設(shè)計(jì)的發(fā)送程序, 其目的是將發(fā)送等待不限制在接口底層, 而是給上層一個(gè)決定是否等待發(fā)送結(jié)束的時(shí)機(jī)。 u8 uart_put_c(u8 ch) if(! TI)return 1; TI = 0;SB

4、UF = ch; return 0; 同樣, 接收程序也給上層一個(gè)選擇等待的時(shí)機(jī)。接收函數(shù)首先判斷接收FIFO 是否為空, 如果為空或輸入指針參數(shù)錯(cuò)誤, 則直接返回錯(cuò)誤, 否則才從FIFO 中讀取數(shù)據(jù)并將數(shù)據(jù)存儲(chǔ)到指針指向的地址, 然后返回成功。 u8 uart_get_c(u8 *ch) u8 i; if(! ch)return 1; if(i = (uart_rd+1)&0 x0f) = uart_wr)return 1; uart_rd = i; *ch = uart_buf;return 0; 3.3 閃存接口 閃存的存取有特殊的時(shí)序, 閃存的內(nèi)部構(gòu)造也和具體應(yīng)用要求有很大的不同。因此

5、閃存的接口需要仔細(xì)設(shè)計(jì)。 K9F4008 閃存芯片的存儲(chǔ)構(gòu)造組織如圖2所示。 K9F4008 閃存的存儲(chǔ)以塊為單位, 每個(gè)芯片共有128 塊。每塊有32 行, 每行有4 個(gè)幀, 每幀含有32 B.全部芯片為512 KB。 閃存接口提供的閃存初始化函數(shù)中就包括對(duì)這樣情況的處理。初始化函數(shù)要從閃存的個(gè)塊中讀出一個(gè)塊映射表, 該表下標(biāo)是邏輯扇區(qū), 表內(nèi)每項(xiàng)存儲(chǔ)的是該邏輯扇區(qū)對(duì)應(yīng)的物理塊編號(hào)。初始化函數(shù)在必要時(shí)對(duì)閃存開(kāi)展讀寫校驗(yàn), 然后將壞塊從表中刪除。再尋找新的良好塊, 將其編號(hào)填入到對(duì)應(yīng)邏輯扇區(qū)的表項(xiàng)中。這樣對(duì)應(yīng)用來(lái)說(shuō), 只見(jiàn)到連續(xù)的扇區(qū)編號(hào), 而不知道扇區(qū)終究對(duì)應(yīng)到那個(gè)塊。 閃存的接口頭文件fl

6、ash.h 如下: #ifndef _K9F4008_H_ #define _K9F4008_H_ void read_log_page(u8 sector,u8 page,u8 xdata *buf); u8 prog_log_page(u8 sector,u8 page,u8 xdata *buf); void erase_log_blk(u8 sector); bit flash_init(void); #endif 實(shí)現(xiàn)閃存的接口, 首先就是依據(jù)說(shuō)明書的時(shí)序定義閃存的基本操作。這里是以宏定義實(shí)現(xiàn)基本操作的。 #define W_CMD(cmd_) bCLE=1; bWE=0; P2=(

7、cmd_); bWE=1; bCLE=0 #define W_ADDR(addr1_,addr2_,addr3_) bALE=1; bWE=0; P2=(addr1_); bWE=1; bWE=0; P2=(addr2_); bWE=1; bWE=0; P2=(addr3_); bWE=1; bALE=0 #define W_DAT(dat_) bWE=0; P2=(dat_); bWE=1 #define wait_RB while(! bRB) #define l2p(x_) fat_tbl 3.4 EEPROM 內(nèi)部集成的EEPROM 是與程序空間分開(kāi)的, 利用ISP/IAP 技術(shù)可將內(nèi)部DATAFLASH 當(dāng)EEPROM,擦寫次數(shù)10 萬(wàn)次以上。EEPROM 可分為若干個(gè)扇區(qū), 每個(gè)扇區(qū)包含512 B.使用時(shí), 建議同修改的數(shù)據(jù)放在同一個(gè)扇區(qū), 不是同修改的數(shù)據(jù)放在不同的扇區(qū), 不一定要用滿。數(shù)據(jù)存儲(chǔ)器的擦除操作是按扇區(qū)開(kāi)展的。 sfr IAP_DATA = 0 xC2; /Flash data register sfr IAP_ADDRH = 0 xC3; /Flash address HIGH sfr IAP_ADDRL = 0 xC4; /Flash address LOW sfr IAP_CMD = 0 xC5; /Flash command

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論