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

正文內(nèi)容

單片機(jī)液晶顯示資料(已修改)

2025-04-03 05:06 本頁面
 

【正文】 課題四 液晶顯示 ? 任務(wù)一 1602液晶顯示 ? 任務(wù)二 12864液晶顯示 ? 課題目標(biāo) 本課題的任務(wù)是用單片機(jī)實現(xiàn)液晶顯示,演示效果如圖 51所示。通過編程,學(xué)會在單片機(jī)上實現(xiàn)液晶顯示控制方法,以及不同數(shù)據(jù)顯示的程序編寫方法。 圖 51 液晶顯示效果圖 任務(wù)一 1602液晶顯示方式 本任務(wù)就是將單片機(jī)與 1602液晶接成圖 52所示電路圖,編程實現(xiàn)。用液晶顯示出” I LIKE MCU” “” 圖 52 液晶顯示電路圖 一、液晶顯示原理 液晶顯示器及其特點 液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,沒有電磁輻射、壽命長等優(yōu)點,在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用。 這里介紹的字符型液晶模塊是一種用 5x7點陣圖形來顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為 1行 16個字、 2行 16個字、 2行 20個字等等,這里以常用的 2行 16個字的 1602液晶模塊來介紹它的編程方法。 液晶引腳定義 表 51 LCD1602引腳功能 ?字符代碼與顯示字符關(guān)系 ? 1602液晶模塊內(nèi)部的字符發(fā)生存儲器( CGROM)已經(jīng)存儲了 160個不同的點陣字符圖形,如表 52所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“ A” 的代碼是 01000001B( 41H),顯示時模塊把地址 41H中的點陣字符圖形顯示出來,我們就能看到字母“ A” 。 表 52 字符發(fā)生存儲器字符代碼與顯示字符關(guān)系 LCD1602指令表 1602液晶模塊內(nèi)部的控制器共有 11條控制指令,如表 53所示。 表 53 1602指令表 ? 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表 54是 DM1602的內(nèi)部顯示地址。 表 54 1602地址表 比如第二行第一個字符的地址是 40H,那么是否直接寫入 40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 D7恒定為高電平 1所以實際寫入的數(shù)據(jù)應(yīng)該是 01000000B( 40H)+10000000B(80H)=11000000B(C0H) 二、時序圖 1602基本操作時序 寫操作時序 圖 55 操作時序圖 時序時間表 表 55 時序表 ① 初始化 通過初始化設(shè)置堆棧棧底為 60H,調(diào)用 LCD初始化子程序完成對 LCD的初始化設(shè)置。 ② 字符顯示 完成對 LCD初始化后,調(diào)用 LCD字符顯示子程序顯示第一行字符和第二行字符。 主程序設(shè)計流程圖如圖 。 【 項目實踐 】 3.程序設(shè)計 (1) 主程序設(shè)計 主程序主要完成硬件初始化、子程序調(diào)用等功能。 初始化堆棧指針 調(diào)用 LCD初始化子程序 調(diào)用字符顯示 子程序顯示第二行字符 調(diào)用字符顯示 子程序顯示第一行字符 開始 圖 主程序流程圖 (2) 寫入顯示數(shù)據(jù)到 LCD子程序模塊設(shè)計 當(dāng) LCD1602的寄存器選擇信號 RS為 1時,選擇數(shù)據(jù)寄存器;當(dāng) LCD1602的讀寫選擇線 R/W為 0時,進(jìn)行寫操作;當(dāng) LCD1602的使能信號 E至高電平后再過兩個時鐘周期至低電平,產(chǎn)生一個下降沿信號,往 LCD寫入顯示數(shù)據(jù)。寫入顯示數(shù)據(jù)到 LCD子程序設(shè)計流程圖如圖 。 當(dāng) RS= 1時 , 選擇數(shù)據(jù)寄存器 讀 /寫標(biāo)志位 R/W= 0時,進(jìn)行寫操作 LCD使能信號 E至高電平后再過兩個時鐘周期至低電平 , 產(chǎn)生一個下降沿信號 , 往 LCD寫入顯示數(shù)據(jù) 子程序返回 把 顯示數(shù)據(jù)送至 P0口 ( LCD數(shù)據(jù)線 DB7~ DB0) 開始 圖 寫入顯示數(shù)據(jù)到 LCD子程序流程圖 (3) 寫入指令數(shù)據(jù)到 LCD子程序模塊設(shè)計 當(dāng) LCD1602的寄存器選擇信號 RS為 0時,選擇指令寄存器;當(dāng) LCD1602的讀寫選擇線 R/W為 0時,進(jìn)行寫操作;當(dāng) LCD1602的使能信號 E至高電平后再過兩個時鐘周期至低電平,產(chǎn)生一個下降沿信號,往 LCD寫入指令代碼。寫入指令數(shù)據(jù)到 LCD子程序設(shè)計流程圖如圖 。 RS= 0時 , 選擇指令寄存器 讀 /寫標(biāo)志位 R/W= 0時,進(jìn)行寫操作 LCD使能信號 E至高電平后再過兩個時鐘周期至低電平 , 產(chǎn)生一個下降沿信號 , 往 LCD寫入指令代碼 , LCD執(zhí)行命令 調(diào)用延時子程序 DELAY 子程序返回 把指令數(shù)據(jù)送至 P0口 ( LCD數(shù)據(jù)線 DB7~ DB0) 開始 圖 寫入指令數(shù)據(jù)到 LCD子程序流程圖 (4) 字符顯示子程序模塊設(shè)計 設(shè)置 LCD的 DDRAM地址,調(diào)用寫入指令到 LCD子程序設(shè)置 DDRAM地址指針;然后設(shè)置顯示數(shù)據(jù)個數(shù) R7,設(shè)置顯示數(shù)據(jù)索引值 R6,將顯示數(shù)據(jù)表地址送入 DPTR中,用查表指令查表取得顯示數(shù)據(jù),調(diào)用寫入顯示數(shù)據(jù)到 LCD子程序,使數(shù)據(jù)顯示在 LCD上;顯示數(shù)據(jù)個數(shù) R7減 1,顯示數(shù)據(jù)索引值 R6加 1,按照上面的步驟顯示下一個數(shù)據(jù),直到顯示數(shù)據(jù)個數(shù) R7為 0,所有字符均顯示在LCD上。字符顯示子程序設(shè)計流程圖如圖 。 圖 字符顯示子程序流程圖 【 項目實踐 】 (5) LCD初始化子程序模塊設(shè)計 1602字符型 LCD的初始化過程為: 延時 15ms,寫指令 38H(不檢測忙信號 ); 延時 5ms,寫指令 38H(不檢測忙信號 ); 延時 5ms,寫指令 38H(不檢測忙信號 ); 以后每次寫指令、讀 /寫數(shù)據(jù)操作均需要檢測忙信號; 寫指令 38H:顯示模式設(shè)置; 寫指令 08H:顯示關(guān)閉; 寫指令 01H:顯示清屏; 寫指令 06H:顯示光標(biāo)移動設(shè)置; 寫指令 0CH:顯示開及光標(biāo)設(shè)置。 根據(jù)它的初始化過程, LCD初始化子程序設(shè)計流程圖如 圖 。 【 項目實踐 】 功能設(shè)置命令 調(diào)用寫入指令到 LCD子程序 設(shè)定工作方式 設(shè)置顯示狀態(tài) 調(diào)用寫入指令到 LCD子程序 調(diào)用寫入指令到 LCD子程序 清屏 調(diào)用寫入指令到 LCD子程序 子程序返回 設(shè)置輸入方式 調(diào)用寫入指令到 LCD子程序 開始 圖 LCD 初始化 子程序 流程圖 【 項目實踐 】 (6) 延時子程序模塊設(shè)計 延時子程序模塊設(shè)計請參考項目 1。 4.匯編源程序 ************************************************************** ;項目名稱:字符型 LCD接口實驗 ;功能:在 1602字符型液晶第一行顯示: I LIKE MCU; ;在第二行顯示: ;作者: ;日期: ************************************************************** ; 1602LCD信號接口定義 E BIT ; LCD使能信號 RW BIT ;讀 /寫選擇信號 R/W: 0為寫入數(shù)據(jù); 1為讀出數(shù)據(jù) RS BIT ;數(shù)據(jù) /命令選擇信號 R/S: 0為指令; 1為數(shù)據(jù) 【 項目實踐 】 LCDPORT EQU P1 ;液晶的數(shù)據(jù)線 DB7~ DB0 CMD_BYTE EQU 30H ;寫命令入口參數(shù) DAT_BYTE EQU 31H ;寫顯示數(shù)據(jù)入口參數(shù) ;主程序 ORG 0000H AJMP MAIN ORG 0050H MAIN: MOV SP,60H ;設(shè)置堆棧指針 LCALL INITLCD ;調(diào)用 LCD初始化子程序 LCALL DISPMSG1 ;調(diào)用液晶字符顯示程序 LCALL DISPMSG2 ;調(diào)用液晶字符顯示程序 SJMP $ ; LCD1602要用到的一些子程序 ;函數(shù)功能:寫入指令到 LCD1602子程序 ;入口參數(shù) CMD_BYTE ;出口參數(shù): 【 項目實踐 】 WRITE_CMD: CLR RS ;當(dāng) RS=0, RW=0時,寫指令 CLR RW MOV A,CMD_BYTE;把寫命令入口參數(shù) CMD_BYTE傳給 A MOV LCDPORT,A; LCDPORT為液晶數(shù)據(jù)線 DB7~ DB0 SETB E ;打開液晶使能信號 E NOP NOP CLR E ;關(guān)閉液晶使能信號 E LCALL DELAY ;調(diào)用延時子程序 RET ;函數(shù)功能:寫入顯示數(shù)據(jù)到 LCD1602子程序 ;入口參數(shù): DAT_BYTE ;出口參數(shù): WRITE_DAT: SETB RS ;當(dāng) RS=1, RW=0時,寫入數(shù)據(jù)到 LCD CLR RW MOV A,DAT_BYTE;把寫數(shù)據(jù)入口參數(shù) DAT_BYTE傳給 A MOV LCDPORT, A; LCDPORT為液晶數(shù)據(jù)線 DB7~ DB0 【 項目實踐 】 SETB E ;打開液晶使能信號 E NOP NOP CLR E ;關(guān)閉液晶使能信號 E LCALL DELAY ;調(diào)用延時子程序 RET ;函數(shù)功能:寫入顯示數(shù)據(jù)到 LCD1602子程序 ;入口參數(shù): DAT_BYTE;出口參數(shù): WRITE_DAT: SETB RS ;當(dāng) RS=1, RW=0時,寫入數(shù)據(jù)到 LCD CLR RW MOV A, DAT_BYTE;把寫數(shù)據(jù)入口參數(shù) DAT_BYTE傳給 A MOV LCDPORT, A ; LCDPORT為液晶數(shù)據(jù)線 DB7~ DB0 SETB E ;打開 LCD使能信號 E NOP NOP CLR E ;關(guān)閉 LCD使能信號 E LCALL DELAY ;調(diào)用延時子程序 RET ;函數(shù)功能: LCD顯示初始化子程序 ;入口參數(shù):;出口參數(shù): INITLCD: MOV CMD_BYTE, 30H LCALL WRITE_CMD ;調(diào)用寫命令子程序 MOV CMD_BYTE,30H LCALL WRITE_CMD ;調(diào)用寫命令子程序 MOV CMD_BYTE, 30H LCALL WRITE_CMD ;調(diào)用寫命令子程序 MOV CMD_BYTE, 38H ;設(shè)定工作方式 LCALL WRITE_CMD ;調(diào)用寫命令子程序 MOV CMD_BYTE, 0CH ;顯示狀態(tài)設(shè)置 LCALL WRITE_CMD ;調(diào)用寫命
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1