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

正文內(nèi)容

畢業(yè)設(shè)計數(shù)字萬年歷(編輯修改稿)

2025-01-06 16:50 本頁面
 

【文章內(nèi)容簡介】 令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清顯示 0 0 0 0 0 0 0 0 0 1 2 光標返回 0 0 0 0 0 0 0 0 1 * 3 置輸入模式 0 0 0 0 0 0 0 1 I/D S 4 顯示開 /關(guān)控制 0 0 0 0 0 0 1 D C B 5 光標或字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL N F * * 7 置字符發(fā)生存貯器地址 0 0 0 1 字符發(fā)生存貯器地址 8 置數(shù)據(jù)存貯器地址 0 0 1 顯示數(shù)據(jù)存貯器地址 9 讀忙標志或地址 0 1 BF 計數(shù)器地址 10 寫數(shù)到 CGRAM或 DDRAM) 1 0 要寫的數(shù)據(jù)內(nèi)容 11 從 CGRAM或 DDRAM讀數(shù) 1 1 讀出的數(shù)據(jù)內(nèi)容 表 22字符控制命令說明: 1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明: 1為高電平、 0為低電平) 指令 1:清顯示,指令碼 01H,光標復(fù)位到地址 00H位置。 指令 2:光標復(fù)位,光標返回到地址 00H。 指令 3:光標和顯示模式設(shè)置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令 4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 指令 5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。 指令 6:功能設(shè)置命令 DL:高電平時為 4位總線,低電平時為 8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示 5x7的點陣字符,高電平時顯示 5x10的點陣字符。 指令 7:字符發(fā)生器 RAM地址設(shè)置。 指令 8: DDRAM地址設(shè)置。 指令 9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令 10:寫數(shù)據(jù)。 指令 11:讀數(shù)據(jù)。 芯片時序表如下: 讀狀態(tài) 輸入 RS=L, R/W=H, E=H 輸出 D0—D7=狀態(tài)字 寫指令 輸入 RS=L, R/W=L, D0—D7=指令碼, E=高脈沖 輸出 無 讀數(shù)據(jù) 輸入 RS=H, R/W=H, E=H 輸出 D0—D7=數(shù)據(jù) 寫數(shù)據(jù) 輸入 RS=H, R/W=L, D0—D7=數(shù)據(jù), E=高脈沖 輸出 無 表 23 基本操作時序表 讀寫操作時序如圖 27和 28所示: 圖 27讀操作時序 圖 28 寫操作時序 1602LCD的 RAM地址映射及標準字庫表 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊 在哪里顯示字符,圖 29是 1602的內(nèi)部顯示地址。 圖 29液晶內(nèi)部顯示地址 例如第二行第一個字符的地址是 40H,那么是否直接寫入 40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 D7恒定為高電平 1所以實際寫入的數(shù)據(jù)應(yīng)該是 01000000B( 40H)+10000000B(80H)=11000000B(C0H)。 在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。 1602液晶 模塊內(nèi)部的字符發(fā)生存儲器( CGROM)已經(jīng)存儲了 160個不同的點陣字符圖形,如圖 1058所示,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母 “A” 的代碼是 01000001B( 41H),顯示時模塊把地址 41H中的點陣字符圖形顯示出來,我們就能看到字母 “A” 。 圖 210 字符代碼與圖形對應(yīng)圖 1602LCD的一般初始化(復(fù)位)過程 1. 延時 15mS 2. 寫指令 38H(不檢測忙信號) 3. 延時 5mS 4. 寫指令 38H(不檢測忙信號) 5. 延時 5mS 6. 寫指令 38H(不檢測忙信號)以后每次寫指令、讀 /寫數(shù)據(jù)操作均需要檢測忙信號 7. 寫指令 38H:顯示模式設(shè)置 8. 寫指令 08H:顯示關(guān)閉 9. 寫指令 01H:顯示清屏 10. 寫指令 06H:顯示光標移動設(shè)置 11. 寫指令 0CH:顯示開及光標設(shè)置 12. 1602LCD的電路連接 液晶 5端為讀 /寫選擇端, 因為我們不從液晶中讀取數(shù)據(jù),只向其寫入命令和顯示數(shù)據(jù),因此此端始終選擇為寫狀態(tài),即低電平接地。液晶 6端為使能信號,是操作時必須的信號。其電路如圖 211所示: 圖 211 1602的電路連接 167。 蜂鳴器鬧鈴電路 當單片機給蜂鳴器一個低電平時,三極管導(dǎo)通驅(qū)動蜂鳴器發(fā)出聲音作為定時鬧鈴,其電路圖如圖 212所示: 圖 212 蜂鳴器連接電路 167。 按鍵調(diào)整電路 系統(tǒng)四個獨立鍵盤均采用查詢方式 , S2用于設(shè)置 年、月、日、時、分、秒、星期的數(shù)值加,以及鬧鐘開 ,S3用于設(shè)置 年、月、日、時、分、秒、星期的數(shù)值減以及鬧鐘關(guān), s1用于具體設(shè)置 時鐘位的切換, s4鍵用于設(shè)置鬧鐘 。其電路圖如 213所示: 圖 213 按鍵電路連接 167。 電源模塊 電子鐘的電源為 5伏直流電源,本設(shè)計中我使用的是 5V的充電電池,電源模塊的原理圖如圖 215所示: 圖 214電源模塊 第三章 軟件部分設(shè)計 本系統(tǒng)主要包括五個模塊編程: 1. 蜂鳴器鬧鈴響編程 2. 時鐘芯片 12C887的編 3. 液晶顯示屏 1602的編程 4. 按鍵編程 5. DS18B20溫度采集編程 167。 主程序流程 主程序開始初始化,并打開中斷,然后執(zhí)行掃描鬧鐘、鍵盤及讀取18B20值。當有 S1鍵按下時,執(zhí)行時鐘設(shè)置,當有 S4鍵按下時,則進入鬧鐘設(shè)置,無論是時鐘還是鬧鐘,設(shè)置完后退出,溫度、時鐘恢復(fù)實時顯示。主程序流程圖如圖 31所示: 圖 31主程序流程圖 167。 時間設(shè)置子程序流程 通過單片機判斷 S1按下的次數(shù)來設(shè)置,由 s1num標志位來記錄次數(shù),用if語句判斷執(zhí)行命令。系統(tǒng)程序不斷掃面鍵盤,當 s1鍵按下后產(chǎn)生一個低電平,即 s1num加一。在調(diào)節(jié)時間之前首先進行各個變量初始化,及設(shè)置起始時間,同時為讀取數(shù)據(jù)作準備。當 s1=1時進入秒的設(shè)置,地址指針指向 miao顯示位置處,通過兩個 if語句分別循環(huán)控制顯示秒數(shù)的加和減。當 s1=2時,地址指針指向 fen顯示位置處,變量最大值為 59。當 s1=3時,地址指針指向初始化開中斷 讀 18b20 S1 或 S2 是否按下 掃描鬧鐘 顯示溫度 設(shè)置鬧鐘 顯示溫度 設(shè)置時間 shi顯示位置處,變量最大值設(shè)為 23。當 s1=4時,地址指針指向 week顯示位置處,最大值設(shè)為 7, 1至 7分別用 MON、 TUE、 WED、 THU 、 FRI、 SAT、 SUN字符串顯示。隨著 s s3值的的變化顯示不同的字符串。當 s1=5時,地址指針指向 day顯示位置,變量最大值為 31。當 s1=6時,地址指針指向 month顯示位置,變量最大值為 12。 當 s1=7時,地址指針指向 year顯示位置,最大值為 99。 圖 32時間設(shè)置流 程圖 167。 鬧鐘設(shè)置子程序流程 時間設(shè)置程序流程圖如圖 33所示。在開始時間設(shè)置之前程序會關(guān)閉全局中斷,直至設(shè)置結(jié)束,中斷又會重新開啟,進入計時狀態(tài)。 鬧鐘的設(shè)置時通過 S1鍵的按下次數(shù)來判斷的。當單片機檢測到 S4鍵按下一次時則進入鬧鐘設(shè)置界面,光標并自動跳到秒設(shè)置位置,可以對秒進行設(shè)置,當 S1鍵依次按下 3次時,則分別進入鬧鐘的秒、分、時關(guān)的設(shè)置。: 圖 33 鬧鐘設(shè)置流程圖 S4=1設(shè)置鬧鐘 S4=2退出設(shè)置 S1=1 調(diào)節(jié)秒 S1=2 調(diào)節(jié)分 S1=3 調(diào)節(jié)時 S1=4 退出 S1=1 秒 S1=2 分 S1=7 月 S1=8 退出 S2 調(diào)加秒 S3 調(diào)減秒 S3 調(diào)減年 S2 調(diào)加年 167。 程序設(shè)計問題 按鍵抖動問題 按鍵在按下時因為機械原因會產(chǎn)生抖動,抖動的后果就是當按下一次按鍵時因為抖動的原因讓系統(tǒng)讀取到多次的按鍵按下的次數(shù),由此導(dǎo)致設(shè)置時出現(xiàn)錯誤。解決的方法如下:當按鍵按下時讀取按鍵鍵值,若 5ms后鍵值和按下是相等,則確認為有效按鍵,以此消除按鍵抖動帶來的問題。 蜂鳴器設(shè)置 蜂鳴器報警時,設(shè)置響 100毫秒,停 100毫秒,循環(huán)響應(yīng),產(chǎn)生滴滴的聲音。 液晶顯示的設(shè)置 初始化設(shè)置 顯示模式設(shè)置 寫入指令碼 write_(0x38),設(shè)置功能 16*2顯示, 5*7點陣, 8位數(shù)據(jù)接口 顯示 /開關(guān)及光標設(shè)置 8) 寫入指令碼 write_(0x0c),設(shè)置開顯示,不顯示光標,光標不閃爍。 9) 寫入指令碼 write_(0x06),設(shè)置當讀或?qū)懸粋€字符后地址指針加一,且光標加一。當寫一個字符,整屏顯示不移動。 顯示清屏 , 寫入指令碼 write_(0x01)。 寫入指令碼函數(shù) write_() 寫指令過程 : 輸入 : rs=0, D0D7=指令碼 ,E=高脈沖 寫入數(shù)據(jù)函數(shù) write_date() 寫指令過程: 輸入: rs=1,D0D7=數(shù)據(jù),E=高脈沖 寫入指令和數(shù)據(jù)時 rw端已經(jīng)接地。 數(shù)據(jù)指針設(shè)置 指令碼 80H+地址碼( 027H)顯示第一行的字符 指令碼 80H+地址碼( 40H67H)顯示的第二行字符 中斷設(shè)置 EA=1。//打開總中斷 EX1=1。//打開外部中斷 IT1=1。//設(shè)置負跳變沿觸發(fā)中斷 當鬧鐘到點時響應(yīng)外部中 1 時間到時 IRQ端從高阻態(tài)轉(zhuǎn)為低電平,此時讀一次 c寄存器清除 IRQ端的輸出,等待下一次定時。 void exter() interrupt 2 //外部中斷 1服務(wù)程序 { uchar c。//進入中斷表示鬧鐘時間到 flag_ri=1。 //設(shè)置標志位,用以大程序中報警 c=read_ds(0x0c)。//讀取 12c887c寄存器表示響應(yīng)了中端 } 時鐘芯片設(shè)置 首次上電初始化時間函數(shù): void set_time() {//首次上電初始化時間函數(shù) write_ds(0,0)。//初始化秒 write_ds(1,0)。//初始化秒鬧鐘 write_ds(2,0)。// 初始化分 write_ds(3,0)。//初始化分鬧鐘 write_ds(4,0)。//初始化時 write_ds(5,0)。// 初始化時鬧鐘 write_ds(6,0)。//初始化星期 write_ds(7,0)。// 初始化日 write_ds(8,0)。//初始化月 write_ds(9,0)。// 初始化年 } 寫 12C887函數(shù) : void write_ds(uchar add,uchar date) { //寫 12C887函數(shù) dscs=0。 打開片選信號 dsas=1。 dsds=1。 dsrw=1。 P0=add。 dsas=0。 //下降沿鎖存地址 dsrw=0。 P0=date。 dsrw=1; //上升沿鎖存數(shù)據(jù) dsas=1。//上升沿清除地址 dscs=1。 //關(guān)掉片選信號 } 圖 35 寫時序圖 讀 12C887函數(shù): uchar read_ds(uchar add) { uchar ds_date。 dsas=1。 dsds=1。 dsrw=1。 dscs=0。打開片選信號 P0=add。 dsas=0。 //下降沿鎖存地址 dsds=0。 P0=0xff。 ds_date=P0。 dsds=1。 //下降沿鎖存地址 dsas=1。//上升沿清除地址 dscs=1。//關(guān)掉片選信號 return ds_date。 } 圖 36 讀 時序圖
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1