freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的多功能數(shù)碼相框設計與實現(xiàn)-資料下載頁

2025-06-22 13:24本頁面
  

【正文】 實現(xiàn)。按鍵電路如圖 36 所示:圖 36 按鍵電路 LCD 液晶顯示電路TFT(Thin Film Transistor)薄膜場效應晶體管,是值液晶顯示器上的每一個像素點都是由集成在其后的薄膜晶體管來驅動。從而可以做到高速高亮高對比度顯示液晶屏上的信息,TFT 液晶顯示屏是現(xiàn)在常用顯示器中的一種,普遍應用于手機、筆記本電腦、MPMP4 等電子產品。本系統(tǒng)采用的 TFT 彩屏為 英寸的 24 位真彩數(shù)字屏,由 ILI9325 控制器控制,分辨率為240X320,數(shù)據傳輸是采用 8 位數(shù)據方式,通過 8 根數(shù)據線與單片機連接進行通信。顯示時,一個像素用 16 位表示,即采用 565RGB 方式,紅色分量用 5 位表示,綠色分量用 6 位表示,藍色分量用 5 位表示。要想液晶顯示屏正常工作,還要通過片選 CS、寫入 WR、數(shù)據命令選擇 RS、復位RST、RD 寫五根線與單片機連接進行控制。液晶彩屏顯示電路如圖 37 所示。系統(tǒng)整個電路圖設計見附錄 1。圖 37 LCD 液晶顯示電路4 數(shù)碼相框的軟件設計 軟件總體設計整個數(shù)碼相框的軟件系統(tǒng)可以分為三個功能模塊:系統(tǒng)主任務、系統(tǒng)菜單顯示任務、系統(tǒng)時間宜春學院物理科學與工程技術學院畢業(yè)設計7顯示任務。在主函數(shù)前,先創(chuàng)建三個以上三個任務。系統(tǒng)主任務主要完成的是系統(tǒng)各種設備的初始化操作以及不停的進行按鍵的掃描,通過按鍵掃描來確定鼠標移動到液晶顯示屏的哪個位置,從而調用相關函數(shù),按下確定鍵后轉到按鍵處理程序執(zhí)行對應的功能;系統(tǒng)菜單顯示任務主要完成的是菜單的選擇與 GUI 窗口的顯示以及各種應用程序的選擇處理程序;系統(tǒng)時間顯示任務主要完成的是系統(tǒng)時間的顯示功能,通過調用相關函數(shù)實現(xiàn)時間的顯示。創(chuàng)建了以上三個任務以后,主函數(shù)在 while(1)死循環(huán)中調用三個任務,不停的循環(huán)執(zhí)行,等待某個事件發(fā)生再轉到相應程序處理。程序流程圖如圖 41 所示:NYNYNY圖 41 主程序流程圖 Protothreads 極輕量級系統(tǒng)介紹Protothreads 是一種在小 RAM 單片機上實現(xiàn)多線程的方法,使用 Protothreads 可以很方便的在單片機上實現(xiàn)多任務操作,使得每個任務都有自己單獨的 while(1)循環(huán)。對于單片機這樣的小 RAM微處理器不能進行移植操作系統(tǒng),而使用 Protothreads 可以輕松實現(xiàn),達到一樣的效果,大大簡化了程序的設計。Protothreads 最大的特點是占用內存非常小,每個 Protothreads 只需占用 2 字節(jié)的RAM,而且代碼非常短,移植很方便,只需在工程中包含三個頭文件 、 即可。主函數(shù)中創(chuàng)建的三個任務就是利用 protothreads 創(chuàng)建的。以下幾個函數(shù)是 Protothreads 中比較重要的幾個函數(shù),分別對其進行說明 [11]:PT_INIT(pt):初始化任務變量,只需在初始化函數(shù)中執(zhí)行一次即可。PT_BEGIN(pt):啟動任務處理,放在函數(shù)的開始處。PT_END(pt):結束任務,放在函數(shù)的最后。開始初始化任務 MAINTASK初始化任務 MENUTASK初始化任務 OSTIMETASKmaintaskt==100?運行任務 MainTask()運行任務 MenuTask()menutaskt==200?運行任務 OSTime()timetaskt==100?宜春學院物理科學與工程技術學院畢業(yè)設計8PT_WAIT_UNTIL(pt, condition):等待某個條件(條件可以為時鐘或其它變量,IO 等)成立,否則直接退出本函數(shù),下一次進入本函數(shù)就直接跳到這個位置運行,再次判斷運行條件是否滿足,并執(zhí)行后續(xù)程序或繼續(xù)阻塞。 驅動程序設計 SPI 驅動程序設計SPI 總線接口是 STC12C5A60S2 單片機提供的高速串行外設接口,SPI 接口是一種高速、全雙工、同步的串行通信總線。與 SPI 通信相關的特殊功能寄存器主要有三個:控制寄存器 SPCTL、狀態(tài)寄存器 SPSTAT 以及數(shù)據寄存器 SPDAT。(1)控制寄存器 SPCTL:確定單片機作為主機還是從機,使能 SPI,設定 SPI 發(fā)送和接收的位順序以及設定 SPI 傳輸數(shù)據的時鐘速率。(2)狀態(tài)寄存器 SPSTAT:用來判斷 SPI 數(shù)據有沒有傳輸完成以及檢測是否對數(shù)據寄存器SPDAT 進行寫操作。(3)數(shù)據寄存器 SPDAT:所要傳輸?shù)?8 位數(shù)據,為 Bit7~Bit0。SPI 驅動程序主要包括四個函數(shù):SPI 初始化函數(shù)主要對以上三個寄存器進行初始化操作;SPI時鐘速率設置函數(shù)用來設置數(shù)據傳輸時的速率,為高速模式還是低速模式;SPI 發(fā)送數(shù)據函數(shù)用來發(fā)送指定數(shù)據到 SPI 總線上; SPI 接收數(shù)據函數(shù)則是用來接收來自 SPI 總線上的數(shù)據。 SD 卡驅動程序設計SD 卡是在單片機的控制下進行通信的,單片機發(fā)送特定指令給 SD 卡,并且接收來自 SD 卡的響應并確定 SD 卡是否初始化完成,再進行下一步的命令操作。在對 SD 卡操作之前,應該首先確保單片機已選擇 SD 卡,即將 SD 卡的片選線 CS 置為低電平,再發(fā)送相關命令對 SD 卡進行讀寫。單片機與 SD 卡之間通信的命令有幾十個,但是常用的只有 19 個,每個命令都會產生不同的響應碼,用以判斷 SD 卡處于什么狀態(tài)。SD 卡驅動程序設計主要有兩個函數(shù):SD 卡初始化函數(shù)和 SD卡讀扇區(qū)函數(shù)。(1)SD 卡初始化函數(shù):初始化函數(shù)主要完成 SD 卡的上電復位并將 SD 卡初始化為 SPI 模式。初始化程序流程圖如 42 所示:NYN開始發(fā)送 74 個時鐘周期發(fā)送復位命令 CMD0進入 SPI 低速模式應答信號=01?發(fā)送激活命令 CMD1應答信號=00?宜春學院物理科學與工程技術學院畢業(yè)設計9Y圖 42 SD 卡初始化流程圖當單片機檢測到 SD 卡插入卡槽后,單片機會給 SD 卡發(fā)送至少 74 個時鐘周期,以便完成 SD卡的上電過程,然后再發(fā)送 SD 卡的復位命令 CMD0。如果此時 SD 卡的片選信號為低電平,則 SD卡進入 SPI 模式,否則 SD 卡一直處于 SD 模式。進入 SPI 模式后,單片機發(fā)送 CMD1,如果接收到的響應碼為 0,則說明 SD 卡初始化已經完成,此時 SD 卡處于空閑狀態(tài),等待單片機給 SD 卡發(fā)送下一個命令,否則單片機不停地給 SD 卡發(fā)送 CMD1 命令,直到返回的響應碼為 0。(2)SD 卡讀扇區(qū)函數(shù):SD 卡有讀單個扇區(qū)和多個扇區(qū)的命令,分別為 CMD17 和 CMD18,一般單個扇區(qū)的大小為 512 個字節(jié)。SD 卡讀扇區(qū)函數(shù)的流程圖如圖 43 所示NYNY圖 43 SD 卡讀扇區(qū)流程圖 ILI9325 驅動程序設計在進行 TFT 彩屏的顯示之前首先必須的進行初始化操作,配置 TFT 彩屏的各種寄存器,ILI9325 控制的彩屏的寄存器有恨多個,每個都要正確配置,才有可能驅動彩屏顯示各種字符、漢字、圖片。下面就 ILI9325 中的幾個重要的寄存器進行說明 [12]:(1)R0 寄存器:這個寄存器的命令有兩個功能,對它寫則最低位為振蕩周期,啟動振蕩器。如果對它讀,則讀取到的是彩屏控制器的型號,有了控制器的型號就能方便的進行彩屏的初始化操開始發(fā)送命令 CMD17響應為 0xFE? 返回接收 512 字節(jié)數(shù)據接收 2 字節(jié) CRC 碼CRC 校正碼對嗎?結束結束宜春學院物理科學與工程技術學院畢業(yè)設計10作了。(2)R1 寄存器:這個命令是驅動器輸出控制命令,控制輸出轉變方向是從 S1 到 S720 還是從S720 到 S1。(3)R3 寄存器:入口模式命令。對這個命令中的幾個重要位進行設置,就可以設置屏幕的顯示方向,是從左開始寫入還是從右開始寫入,是從上開始寫入還是從下開始寫入。這個寄存器很重要,如果配置不正確,會導致字符、漢字、圖片顯示不出來或者是顯示出來的是倒置的,漢字可能是左右倒置或者是上下倒置,致使整個工程的顯示界面不正常。(4)水平和垂直位置的 RAM 地址寄存器(R50h, R51h,R52h, R53h):這 4 個寄存器主要用來設置水平、垂直的起止位置,給 4 個寄存器配置不同的值,設定的顯示窗口的大小就不同,如果要顯示的字符、漢字、圖片的大小超過設定的顯示窗口大小,就會導致顯示不正常。了解并熟悉了 ILI9325 的各個寄存器功能后,就可以進行驅動程序的設計了。 ILI9325 驅動程序設計主要包括:初始化函數(shù)、寫總線函數(shù)、寫命令函數(shù)、寫數(shù)據函數(shù)以及畫點、畫線、畫矩形函數(shù),通過這些程序的調用,就可以畫出各種漂亮的顯示窗口。當然,還有兩個重要函數(shù),就是顯示字符、漢字函數(shù),這兩個函數(shù)是整個系統(tǒng)的語言系統(tǒng),下面介紹一些重要的函數(shù)。不管是顯示字符還是顯示漢字,都要建立相應的點陣數(shù)據庫,然后根據相應的算法,到相應的點陣庫里找到要顯示的字符,將其顯示到彩屏上。英文字符的大小一般為寬為 8 個像素,高為 16個像素,而漢字的大小為寬 16,高 16。所以一個字符有 16 個字節(jié)的點陣數(shù)據,而一個漢字有 32字節(jié)的點陣數(shù)據。找到一個字符的點陣數(shù)據后,用一個 for( )循環(huán)的嵌套,檢測每個字節(jié)的 8 個位是否為 1,若為 1,則在屏幕相應位置的像素點亮,反之則不點亮,16 個字節(jié)檢測完畢后,就可以在屏幕上顯示出所需要顯示的字符,漢字的顯示也一樣。點陣數(shù)據可以用軟件 提取,使用很方便。(1)字符顯示函數(shù):LCD_sprintf_char(INT8U x, INT16U y,INT8U c, INT16U color,INT16U b_color,bit bcst),第一個和第二個參數(shù)分別為顯示字符的橫縱坐標,第三個參數(shù)為所要顯示的字符,第四個參數(shù)為字符的顏色,第五個參數(shù)為字符背景色,第六個參數(shù)為是否顯示背景色,為 1 則顯示背景色,反之則不顯示。(2)漢字顯示函數(shù):LCD_sprintf_HZ(INT8U x, INT16U y, INT8U c[2], INT16U fColor,INT16U bColor,bit bcst),各個參數(shù)的含義與字符顯示函數(shù)一樣,所不同的是漢字要查詢漢字的內碼,內碼查到了在執(zhí)行循環(huán)嵌套,就可以顯示出所需顯示的中文了。顯示漢字的流程圖與顯示字符的流程圖差不多,就不再畫了。(3)窗口設置函數(shù):void LCD_setwindow(INT8U x0,INT16U y0,INT8U x1,INT16U y1),設置以 x0,y0 為左上角坐標,以 x1,y1 為右下角坐標的一個矩形框為顯示窗口。(4)畫點函數(shù):void LCD_Point(INT8U x,INT16U y,INT16U color) ,在坐標(x,y)處以顏色 color畫一個點。(5)清屏函數(shù):void LCD_clearscreen(INT16U b_color),以顏色 b_color 填充整個液晶顯示屏。(6)矩形填充函數(shù):void LCD_FilledRectangle(INT8U x,INT16U y,INT8U width,INT16U high,INT16U color),在坐標(x,y)處畫一個寬為 width,高為 high 的矩形,并以顏色 color 填充。(7)數(shù)字顯示函數(shù):void LCD_WriteNumlen(INT8U x, INT16U y, INT16U num, INT8U length,INT16U color,INT16U b_color,bit bcst),在以(x,y) 為右上角坐標處顯示一個數(shù)字 num,數(shù)據長度為 length 位,顏色為 color,背景色為 b_color,bcst 為是否顯示背景色控制位,1 則顯示,反之則不顯示。(8)24 位 RGB 到 16 位 RGB 轉換函數(shù):INT16U LCD_RGB(INT8U R,INT8U G,INT8U B),該函數(shù)的功能是將 24 位的 RGB 值轉換成 16 位的 RGB 值并返回轉換的 16 位 RGB 值。宜春學院物理科學與工程技術學院畢業(yè)設計11 鼠標按鍵驅動程序設計鼠標是由左邊的一個白色小矩形和右邊的一個黑色小矩形組成,然后按下上、下、左、右鍵后,鼠標會向上、向下、向左、向右移動一段距離。在第四章中講了按鍵是采用獨立按鍵的連接方式,檢測很方便,沒有按鍵按下時,單片機相應 IO 口為高電平,當檢測到按鍵按下時,相應 IO 口會拉低。所以,通過檢測相應 IO 口的電平值,就可以確定哪個按鍵按下了,哪個按鍵沒有被按下。所以鼠標的驅動程序設計比較簡單,不過多敘述。 FATFS 文件系統(tǒng)移植設計文件的打開、刪除、寫入都是通過文件系統(tǒng)來完成的。所以,要打開 SD 卡中的 BMP 圖像文件,就必須在單片機中移植一種 SD 卡所支持的文件系統(tǒng),從而通過文件系統(tǒng)的相關函數(shù)讀取 SD卡中的圖像文件。 FATFS 文件系統(tǒng)介紹FATFS 文件系統(tǒng)是專門為小型嵌入式系統(tǒng)設計的一個通用 FAT 文件系統(tǒng),它完全有 C 語言編寫,并且完全與 SD 卡 I/O 層分開,不依賴于特定的硬件系統(tǒng),所以非常利于移植,它可以嵌入到低成本的微控制器中,而不用做任何的修改 [13]。FATFS 有兩個版本,一個是適合于 RAM 資源充足的微控制器,接口函數(shù)多,文件系統(tǒng)功能也更多。還有一個版本是適合于 RAM 資源不充足的單片機,叫 TinyFATFS。TinyFATFS 文件系統(tǒng)是在完全版 FATFS 文件系統(tǒng)的基礎上進行剪切的,保留了用戶所使用的必須功能,而刪除了一些不必要的
點擊復制文檔內容
職業(yè)教育相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1