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

正文內(nèi)容

片機課程設(shè)計--電子日歷時鐘(編輯修改稿)

2025-07-10 06:46 本頁面
 

【文章內(nèi)容簡介】 88H 89H 0112 0 0 0 10M MONTH 周寄存器 8AH 8BH 0107 0 0 0 0 0 DAY 年份寄存器 8CH 8DH 0099 10YEAR YEAR 電路設(shè)計最終方案決定 綜上 硬件的介紹 所述,對此次作品的方案選定:采用 AT89S51 作為主控制系統(tǒng); DS1302 提供時鐘; LCD1602 液晶作為顯示。 第二章 系統(tǒng)的硬件設(shè)計與實現(xiàn) 電路設(shè)計框圖 電路結(jié)構(gòu)概述: 本電路系統(tǒng)共分為五部分構(gòu)成,分別為主控模塊、振蕩器、以及時鐘電路、顯示模塊、鍵盤掃描電路。其中,振蕩器為主控模塊提供工作的時序信號,時鐘電路提供時鐘信號,并有時間顯示模塊顯示出來,鍵盤掃描模塊則提供時間的校正與修改。 電路 系統(tǒng) 設(shè)計框圖 如圖 5。 主 控 模 塊A T 8 9 S 5 1顯 示 模 塊L C D 1 6 0 2時 鐘 電 路D S 1 0 3 2鍵 盤 掃 描 電 路振 蕩 器 圖 5電路設(shè)計框圖 系統(tǒng)硬件概述 本電路是由 AT89S51 單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由 DS1302 提供,它是一種高性能、低功耗、帶 RAM 的實時時鐘電路,它可以對年、月、日、時、分、秒進行計時,具有閏年補償功能,工作電壓為 ~ 。采用三線接口與 CPU 進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 RAM 數(shù)據(jù)。 DS1302 內(nèi)部有一個 31*8 的用于臨時性存放數(shù)據(jù)的 RAM 寄存器??僧a(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等 特點,同時具有掉電自動保存功能 ,本電路采用DS1302 單字節(jié)傳送方式實現(xiàn)與主控機之間數(shù)據(jù)的傳送;顯示部分由液晶 LCD1602構(gòu)成。 主要單元電路的設(shè)計 單片機主控模塊的設(shè)計 AT89S51單片機為 40引腳雙列直插芯片 ,有四個 I/O口 P0,P1,P2,P3, MCS51單片機共有 4 個 8 位的 I/O 口( P0、 P P P3) ,每一條 I/O線都能獨立地作輸出或輸入。 單片機的最小系統(tǒng)如下圖所示 ,18引腳和 19引腳接時鐘電路 ,XTAL1接外部晶振和微調(diào)電容的一端 ,在片內(nèi) 它是振蕩器倒相放大器的輸入 ,XTAL2 接外部晶振和微調(diào)電容的另一端 ,在片內(nèi)它是振蕩器倒相放大器的輸出 , 如圖 6。 圖 6 單片機最小 控制系統(tǒng) 2.單片機按鍵復(fù)位電路設(shè)計 單片機復(fù)位系統(tǒng)如下圖 7 所示, 第 9 引腳為復(fù)位輸入端 ,接上電容 、 電阻及開關(guān)后 構(gòu)成 按鍵電平 復(fù)位電路 。 圖 7 單片機按鍵復(fù)位系統(tǒng) 時鐘電路 模塊的設(shè)計 1. DS1302 的性能特性 圖 8 示出 DS1302 的引腳排列圖,其中 Vcc1 為后備電源, Vcc2 為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。 DS1302 由 Vcc1 或 Vcc2 兩者中的較大者供電。當 Vcc2 大于 Vcc1+ 時, Vcc2 給 DS1302 供電。當 Vcc2小于 Vcc1 時, DS1302 由 Vcc1 供電。 X1 和 X2 是振蕩源,外接 晶振。RST 是復(fù) 位 /片選線,通過把 RST 輸 入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。 RST輸 入有兩種功能:首先, RST 接通控制邏輯,允許地址 /命令序列送入移位寄存器;其次, RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當 RST 為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 DS1302 進行操作。如果在傳送過程中 RST 置為低電 平,則會終 止此次數(shù)據(jù)傳送, I/O引腳變?yōu)楦咦钁B(tài)。上電動行時,在 Vcc 大于等于 之前, RST 必須保持低電平。中有在 SCLK 為低電平時,才能將 RST置為高電平, I/O 為串行數(shù)據(jù)輸入端(雙向)。 SCLK 始終是輸入端。 圖 8 時鐘電路 DS1302 接線 圖 2. DS1302 數(shù)據(jù) 操作原理 DS1302 在每次進行讀、寫程序前都必須初始化,先把 SCLK 端置“ 0”,接著把 RST 端置“ 1”,最后才給予 SCLK 脈沖。 DS1302 的控制字,此控制字的位 7必須置 1,若為 0則不能把對 DS1302 進行讀寫數(shù)據(jù)。對于位 6,若對程序進行讀 /寫時 RAM=1,對時間進行讀 /寫時, CK=0。位 1 至位 5 指操作單元的地址。位 0是讀 /寫操作位,進行讀操作時,該位為 1;該位為 0 則表示進行的是寫操作??刂谱止?jié)總是從最低位開始輸入 /輸出的。 DS1302 的日歷、時間寄存器內(nèi)容:“ CH”是時鐘暫停標志位,當該位為 1 時,時鐘振蕩器停止, DS1302 處于低功耗狀態(tài);當該位為 0 時,時鐘開始運行?!?WP”是寫保護位,在任何的對時鐘和 RAM 的寫操作之前,“ WP”必須為 0。當“ WP”為 1 時,寫保護位防止對任一寄存器的寫操作。 顯示模塊的設(shè)計 液 晶顯示 顯示模塊由主控模塊和 LCD1602 構(gòu)成,其硬件連接 調(diào)試電路 如圖 9所示: 圖 9 LCD1602 液晶顯示 模塊 電路 2. LCD1602 的一般初始化(復(fù)位)過程 延時 15mS 寫指令 38H(不檢測忙信號) 延時 5mS 寫指令 38H(不檢測忙信號) 延時 5mS 寫指令 38H(不檢測忙信號) 以后每次寫指令、讀 /寫數(shù)據(jù)操作均需要檢測忙信號 寫指令 38H:顯示模式設(shè)置 寫指令 08H:顯示關(guān)閉 寫指令 01H:顯示清屏 寫指令 06H:顯示光標移動設(shè)置 寫指令 0CH:顯示開及光標設(shè)置 按鍵模塊的設(shè)計 根據(jù)設(shè)計要求需要選擇三個獨立按鍵分別為 設(shè)置 、加、減 , 按鍵模塊如圖 10所示 。 圖 10 按鍵模塊設(shè)計 按鍵介紹: K1:功能鍵(設(shè)置鍵),本按鍵共有秒、分、時、日、月、年、返回共 7 個功能循環(huán),設(shè)置按鍵按動一次,秒位置顯示光標,每多按一次依次向下循環(huán),到按動 7次時返回。 K2:加鍵,當光標處于相應(yīng)位置時,此按鍵按動一次,該光標處的數(shù)值將增一,并且在相應(yīng)的數(shù)據(jù)范圍內(nèi)循環(huán)。 K3:減鍵,功能類似加鍵,只是當光標處于相應(yīng)位置時,此按鍵按動一次,該光標處的數(shù)值將減一。 第三章 系統(tǒng)的軟件設(shè)計 主函數(shù) 設(shè)計 主程序流程圖 在程序中,液晶寫入有關(guān)函數(shù)會在 DS1302 的函數(shù)中調(diào)用,所以液晶程序要放在前面;當時間顯示后方可設(shè)置,則鍵盤掃描子函數(shù)凡在 DS1302 的函數(shù)后面 ,具體流程圖如下圖 11 所示。 開 始液 晶 初 始 化D S 1 3 0 2 時 鐘 初 始 化設(shè) 置 定 時 計 數(shù) 器鍵 盤 掃 描 子 函 數(shù)顯 示 子 函 數(shù)返 回 圖 11 主程序流程圖 主程序的具體實現(xiàn) 主程序: //*******************主函數(shù) **************************// void main() { lcd_init()。 //調(diào)用液晶屏初始化子函數(shù) ds1302_init()。 //調(diào)用 DS1302 時鐘的初始化子函數(shù) init()。 //調(diào)用定時計數(shù)器的設(shè)置子函數(shù) //led=0。 //打開 LCD 的背光電源 delay(80)。 while(1) //無限循環(huán)下面的語句: { keyscan()。 //調(diào)用鍵盤掃描子函數(shù) } } DS1302 子函數(shù) DS1302 初始化子函數(shù): void ds1302_init() //1302 芯片初始化子函數(shù) (20210612,09:45:05) { RST=0。 SCLK=0。 write_1302(0x8e,0x00)。 //允許寫,禁止寫保護 //write_1302(0x80,0x05)。 //向 DS1302 內(nèi)寫秒寄存器 80H 寫入初始秒數(shù)據(jù) 05 //write_1302(0x82,0x45)。 //向 DS1302 內(nèi)寫分寄存器 82H 寫入初始分數(shù)據(jù) 43 //write_1302(0x84,0x09)。//向 DS1302 內(nèi)寫小 時寄存器 84H 寫入初始小時數(shù)據(jù) 09 //write_1302(0x86,0x012)。 //向 DS1302 內(nèi)寫日期寄存器 86H 寫入初始日期數(shù)據(jù) 12 //write_1302(0x88,0x06)。 //向 DS1302 內(nèi)寫月份寄存器 88H 寫入初始月份數(shù)據(jù) 06 write_1302(0x8c,0x12)。 //向 DS1302 內(nèi)寫年份寄存器 8cH 寫入初始年份數(shù)據(jù) 12 write_1302(0x8e,0x80)。 //打開寫保護 } 顯示模塊程序設(shè)計 液晶 初始化子程序 序流程圖 在液晶顯示子函數(shù)中,首先應(yīng)對 LCD1602 進行初始化設(shè)置,然后再對顯示數(shù)據(jù)的位置進行設(shè)置;在需要對時間進行校準時,還要設(shè)置光標的顯示位置,其流程圖如下圖, 設(shè) 置 工 作 模 式開 始光 標 移 動是 否 顯 示 光 標清 顯 示結(jié) 束設(shè) 置 日 歷 顯 示 位 置寫 入 并 顯 示 日 歷 數(shù) 據(jù)設(shè) 置 時 間 顯 示 位 置寫 入 并 顯 示 時 間 位 置 圖 12 液晶初始化程序流程圖 具體函數(shù)如下: //***液晶初始化函數(shù) ****// lcd_init() { write_1602(0x38)。//設(shè)置液晶工作模式 write_1602(0x0c)。//開顯示不顯示光標 write_1602(0x06)。//整屏不移動,光標自動右移 write_1602(0x01)。//清顯示 write_1602(yh+1)。//日歷顯示固定符號從第一行第 1 個位置之后開始顯示 for(a=0。a10。a++) { write_1602dat(tab1[a])。//向液晶屏寫日歷顯示的固定符號部分 delay(3)。 } write_1602(er+2)。//時間顯示固定符號寫入位置,從第 2 個位置后開始顯示 for(a=0。a8。a++) { write_1602dat(tab2[a])。//寫顯示時間固定符號,兩個冒號 //delay(3)。 } } 液晶寫入子程序 1.液晶寫入子函數(shù)流程圖 ,如圖 13 所示。 開 始指 令 函 數(shù) 寫 入數(shù) 據(jù) 函 數(shù) 寫 入顯 示 數(shù) 據(jù)結(jié) 束 圖 13 液晶寫入子函數(shù)流程圖 /********液晶寫入指令函數(shù)與寫入數(shù)據(jù)函數(shù),以后可調(diào)用 **************/ write_1602(uchar )//****液晶寫入指令函數(shù) **** { rs=0。//數(shù)據(jù) /指令選擇置為指令 rw=0。 //讀寫選擇置為寫 P1=。//送入數(shù)據(jù) delay(1)。 en=1。//拉高使能端,為制造有效的下降沿做準備 delay(1)。 en=0。//en 由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令 } write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù) **** { rs=1。//數(shù)據(jù) /指令選擇置為數(shù)據(jù) rw=0。 //讀寫選擇置為寫 P1=dat。//送入數(shù)據(jù) delay(1)。 en=1。 //en 置高電平,為制造下降沿做準備 delay(1)。 en=0。 //en 由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令 } 按鍵掃描子程序 調(diào)整時間用 3 個調(diào)整按鈕, 1個作為 功能 控制用,另外 2 個分別作為加調(diào)整,減調(diào)整 。 時間調(diào)整程序流程圖如圖 B 所示 : 調(diào) 用 子 函 數(shù)返 回 主 程 序計 時 停 止顯 示 子 程 序時 間 相 應(yīng) 位 閃爍對 應(yīng) 位 數(shù) 據(jù) 減 1減 鍵 按 下對 應(yīng) 位 數(shù) 據(jù) 加 1加 鍵 按 下判 斷 功 能 鍵
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1