




已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
南華大學(xué) 摘要摘要 隨著單片機(jī)技術(shù)的飛速發(fā)展 在其推動下 現(xiàn)代的電子產(chǎn)品幾乎滲透到了社會的各個領(lǐng) 域 有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高 同時也使現(xiàn)代電子產(chǎn)品性能 進(jìn)一步提高 時間就是金錢 時間就是生命 時間就是勝利 準(zhǔn)確的掌握時間和分配時間對人們 來說至關(guān)重要 時鐘是我們生活中必不可少的工具 電子鐘的設(shè)計(jì)方法有很多種 但是基于 單片機(jī)并通過 LCD 顯示的電子時鐘具有編程靈活 精確度高 便于攜帶 顯示直觀等特點(diǎn) 利用 STC89C52 單片機(jī)對 DS1302 時鐘芯片進(jìn)行讀寫操作并通過 1602 字符液晶顯示實(shí)時 時鐘信息 這樣便構(gòu)成了一個單片機(jī)電子時鐘 關(guān)鍵詞 單片機(jī) 電子時鐘 STC89C52 蜂鳴器 ABSTRACT With the rapid development of microcomputer technology in its promotion modern electronics into almost all areas of society a strong impetus to the development of social productive forces and social improvement in the level of information but also to further improve the performance of modern electronic products Time is a money time is life time is victory Accurate grasp of time and allocation of time is crucial to people The clock is necessary in our life tools Clock Design There are many ways however produced by single chip electronic clock is more flexible programming and easy expansion of electronic capabilities high accuracy easy to carry display visual and so on In this paper through the use of STC89C52 microcontroller by DS1302 clock chips for reading and writing operation and through 1602 character liquid crystal display real time clock information so that forming a single chip electronic clock Key Words Microcontroller STC89C52 Electronic clock buzzer 南華大學(xué) 目錄目錄 緒論 1 概述 1 研究目的 1 第 1 章 設(shè)計(jì)要求與方案論證 2 1 1 設(shè)計(jì)要求 2 1 2 系統(tǒng)基本方案選擇和論證 2 1 2 1 單片機(jī)芯片的選擇方案和論證 2 1 2 2 顯示模塊選擇方案和論證 2 1 2 3 時鐘芯片的選擇方案和論證 2 1 3 電路設(shè)計(jì)最終方案決定 3 第 2 章 主要元件介紹 3 2 1 STC89C52 以及最小系統(tǒng)介紹 3 2 1 1 STC89C52 主要功能及 PDIP 封裝 4 2 1 2 STC89C52 引腳介紹 4 2 1 3 STC89C52 最小系統(tǒng) 4 2 2 DS1302 時鐘芯片以及集成時鐘模塊介紹 5 南華大學(xué) 2 2 1 DS1302 概述 6 2 2 2 DS1302 引腳介紹 6 2 2 3 DS1302 使用方法 6 2 2 4 時鐘集成模塊內(nèi)部原理圖以及實(shí)物圖 8 2 3 1602 字符液晶以及顯示模塊介紹 9 2 3 1 1602 液晶概述 9 2 3 2 1602 引腳介紹 10 2 3 3 1602 字符液晶使用方法 11 2 3 4 LCD 顯示模塊原理圖 13 第 3 章 系統(tǒng)硬件設(shè)計(jì) 14 3 1 電路設(shè)計(jì)框圖 14 3 2 系統(tǒng)硬件概述 14 第 4 章 系統(tǒng)的軟件設(shè)計(jì) 15 4 1 程序流程框圖 15 第 5 章 系統(tǒng)測試與總結(jié) 南華大學(xué) 17 5 1 系統(tǒng)測試 17 5 2 總結(jié) 17 致謝 18 參考文獻(xiàn) 18 源程序清單 18 附錄 35 南華大學(xué) 緒論 概述 時間 對人們來說是非常寶貴的 準(zhǔn)確的掌握時間和分配時間對人們來說至關(guān)重要 因 此自從時鐘發(fā)明的那刻起 就成為人類的好朋友 隨著時間的流逝 科學(xué)技術(shù)的不斷發(fā)展和 提高 人們對時間計(jì)量的精度要求越來越高 應(yīng)用越來越廣 怎樣讓時鐘更好 更方便 更 精確的顯示時間 這就要求人們不斷設(shè)計(jì)研發(fā)出新型的時鐘 高精度的計(jì)時工具大多數(shù)都使用了石英晶體振蕩器 由于電子鐘 石英表 石英鐘都采 用了石英技術(shù) 因此走時精度高 穩(wěn)定性好 使用方便 不需要經(jīng)常調(diào)校 數(shù)字式電子鐘用 集成電路計(jì)時時 譯碼代替機(jī)械式傳動 用 LED 顯示器代替指針進(jìn)而顯示時間 減小了計(jì)時 誤差 這種表具有時 分 秒顯示時間的功能 還可以進(jìn)行時和分的校對 片選的靈活性好 時鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用 是保證系統(tǒng)正常工作的基礎(chǔ) 在單片機(jī) 的應(yīng)用系統(tǒng)中 時鐘有兩個方面的含義 一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時信號 主要由晶振和外圍電路組成 晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢 二是指系統(tǒng)的 標(biāo)準(zhǔn)定時時鐘 即定時時間 它通常有兩種實(shí)現(xiàn)方法 一是用軟件實(shí)現(xiàn) 即用單片機(jī)內(nèi)部的 可編程定時器 計(jì)數(shù)器來實(shí)現(xiàn) 二是用專門的時鐘芯片實(shí)現(xiàn) 研究目的 通過利用 STC89C52 單片機(jī)和 DS1302 芯片以及外圍的按鍵和 LCD 顯示器等部件 設(shè)計(jì)一 個基于單片機(jī)的電子時鐘 設(shè)計(jì)的電子時鐘通過液晶顯示器顯示 并能通過按鍵對時間以及 鬧鐘進(jìn)行設(shè)置 第 1 章 設(shè)計(jì)要求與方案論證 1 1 設(shè)計(jì)要求 具有年 月 日 星期 時 分 秒顯示功能 具備年 月 日 星期 時 分 秒校準(zhǔn)功能 具有鬧鐘顯示 調(diào)節(jié)設(shè)定 鳴叫功能 南華大學(xué) 1 2 系統(tǒng)基本方案選擇和論證 1 2 1 單片機(jī)芯片的選擇方案和論證 方案一 采用 STC89C52 芯片作為硬件核心 STC89C52 內(nèi)部具有 8KB ROM 存儲空間 512 字節(jié)數(shù)據(jù) 存儲空間 帶有 2K 字節(jié)的 EEPROM 存儲空間 與 MCS 51 系列單片機(jī)完全兼容 STC89C52 可以 通過串口下載 方案二 采用 AT89S52 AT89S52 片內(nèi)具有 8K 字節(jié)程序存儲空間 256 字節(jié)的數(shù)據(jù)存儲空間沒有 EEPROM 存儲空間 也與 MCS 51 系列單片機(jī)完全兼容 具有在線編程可擦除技術(shù) 兩種單片機(jī)都完全能夠滿足設(shè)計(jì)需要 STC89C52 相對 ATS89C52 價(jià)格便宜 且抗干擾能 力強(qiáng) 考慮到成本因素 因此選用 STC89C52 1 2 2 顯示模塊選擇方案和論證 方案一 采用點(diǎn)陣式數(shù)碼管顯示 點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成 對于顯示文 字比較適合 如采用在顯示數(shù)字顯得太浪費(fèi) 且也相對較高 所以不用此種作為顯示 方案二 采用 LED 數(shù)碼管動態(tài)掃描 LED 數(shù)碼管價(jià)格便宜 對于顯示數(shù)字最合適 但功耗較大 且 顯示容量不夠 所以也不用此種方案 方案三 采用 LCD 液晶顯示屏 液晶顯示屏的顯示功能強(qiáng)大 可顯示大量文字 顯示多樣 清晰可 見 且價(jià)格適中 所以采用了 LCD 數(shù)碼管作為顯示 1 2 3 時鐘芯片的選擇方案和論證 方案一 直接采用單片機(jī)定時計(jì)數(shù)器提供秒信號 使用程序?qū)崿F(xiàn)年 月 日 星期 時 分 秒 計(jì)數(shù) 采用此種方案雖然減少芯片的使用 節(jié)約成本 但是 實(shí)現(xiàn)的時間誤差較大 所以不 采用此方案 方案二 南華大學(xué) 采用 DS1302 時鐘芯片實(shí)現(xiàn)時鐘 DS1302 芯片是一種高性能的時鐘芯片 可自動對秒 分 時 日 周 月 年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù) 而且精度高 工作電壓 2 5V 5 5V 范圍內(nèi) 2 5V 時耗電小于 300nA 1 3 電路設(shè)計(jì)最終方案決定 綜上各方案所述 對此次作品的方案選定 采用 STC89C52 單片機(jī)作為主控制系統(tǒng) 采用 DS1302 作為時鐘芯片 采用 1602 LCD 液晶作為顯示器件 第 2 章 主要元件介紹 2 1 STC89C52 以及最小系統(tǒng)介紹 2 1 1 STC89C52 主要功能及 PDIP 封裝 STC89C52 是由深圳宏晶科技公司生產(chǎn)的與工業(yè)標(biāo)準(zhǔn) MCS 51 指令集和輸出管腳相兼容的 單片機(jī) STC89C52 主要功能如表 1 所示 其 PDIP 封裝如圖 2 所示 表 1 STC89C52 主要功能 主要功能特性 兼容 MCS51 指令系統(tǒng)8K 可反復(fù)擦寫 Flash ROM 32 個雙向 I O 口256x8bit 內(nèi)部 RAM 3 個 16 位可編程定時 計(jì)數(shù)器中斷時鐘頻率 0 24MHz 2 個串行中斷可編程 UART 串行通道 2 個外部中斷源共 6 個中斷源 2 個讀寫中斷口線3 級加密位 低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能 2 1 2 STC89C52 引腳介紹 主電源引腳 2 根 VCC Pin40 電源輸入 接 5V 電源 南華大學(xué) GND Pin20 接地線 外接晶振引腳 2 根 XTAL1 Pin19 片內(nèi)振蕩電路的輸入端 XTAL2 Pin20 片內(nèi)振蕩電路的輸出端 控制引腳 4 根 RST VPP Pin9 復(fù)位引腳 引腳上出現(xiàn) 2 個機(jī)器周期的高電平將使單片機(jī)復(fù)位 ALE PROG Pin30 地址鎖存允許信號 PSEN Pin29 外部存儲器讀選通信號 EA VPP Pin31 程序存儲器的內(nèi)外部選通 接低電平從外部程序存儲器讀指令 如果接 高電平則從內(nèi)部程序存儲器讀指令 可編程輸入 輸出引腳 32 根 STC89C52 單片機(jī)有 4 組 8 位的可編程 I O 口 分別位 P0 P1 P2 P3 口 每個口有 8 位 8 根引腳 共 32 根 P0 口 Pin39 Pin32 8 位雙向 I O 口線 名稱為 P0 0 P0 7 P1 口 Pin1 Pin8 8 位準(zhǔn)雙向 I O 口線 名稱為 P1 0 P1 7 P2 口 Pin21 Pin28 8 位準(zhǔn)雙向 I O 口線 名稱為 P2 0 P2 7 P3 口 Pin10 Pin17 8 位準(zhǔn)雙向 I O 口線 名稱為 P3 0 P3 7 STC 89C52 40 39 38 34 35 36 37 27 28 29 30 31 32 33 23 24 25 26 22 21 P1 01 2 3 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 T0 P3 4 INTO P3 2 RXD P3 0 RST Vcc SCK P1 7 MISO P1 6 MOSI P1 5 P1 4 P1 3 P1 2 P1 1 TXD P3 1 INTI P3 3 T1 P3 5 WR P3 6 RD P3 7 XTAL2 XTAL1 GND P0 0 AD0 PSEN ALE PROG EA Vpp P0 1 AD1 P0 7 AD7 P0 6 AD6 P0 5 AD5 P0 4 AD4 P0 3 AD3 P0 2 AD2 P2 7 AD15 P2 6 AD14 P2 1 AD9 P2 2 AD10 P2 3 AD11 P2 4 AD12 P2 5 AD13 P2 0 AD8 圖 2 STC89C52 PDIP 封裝圖 南華大學(xué) 2 1 3 STC89C52 最小系統(tǒng) 最小系統(tǒng)是指能進(jìn)行正常工作的最簡單電路 STC89C52 最小應(yīng)用系統(tǒng)電路如圖 3 所示 它包含五個電路部分 電源電路 時鐘電路 復(fù)位電路 片內(nèi)外程序存儲器選擇電路 輸入 輸出接口電路 其中電源電路 時鐘電路 復(fù)位電路是 保證單片機(jī)系統(tǒng)能夠正常工作的最 基本的三部分電路 缺一不可 電源電路 芯片引腳 VCC 一般接上直流穩(wěn)壓電源 5V 引腳 GND 接電源 5V 的負(fù)極 電源 電壓范圍在 4 5 5 之間 可保證單片機(jī)系統(tǒng)能正常工作 時鐘電路 單片機(jī)引腳 18 和引腳 19 外接晶振及電容 STC89C52 芯片的工作頻率可在 2 33MHz 范圍之間選 單片機(jī)工作頻率取決于晶振 XT 的頻率 通常選用 11 0592MHz 晶振 兩個小電容通常取值 3pF 以保證振蕩器電路的穩(wěn)定性及快速性 復(fù)位電路 一般若在引腳 RST 上保持 24 個工作主頻周期的高電平 單片機(jī)就可以完成 復(fù)位 但為了保證系統(tǒng)可靠地復(fù)位 復(fù)位電路應(yīng)使引腳 RST 保持 10ms 以上的高電平 如圖 復(fù)位電路帶有上電自動復(fù)位功能 當(dāng)電路上電時 由于 C1 電容兩端電壓值不能突變 電源 5V 會通過電容向 RST 提供充電電流 因此在 RST 引腳上產(chǎn)生一高電平 使單片機(jī)進(jìn)入復(fù)位 狀態(tài) 隨著電容 C1 充電 它兩端電壓上升使得 RST 電位下降 最終使單片機(jī)退出復(fù)位狀態(tài) 正常運(yùn)行時 可按復(fù)位按鈕對單片機(jī)復(fù)位 圖 3 STC89C52 最小系統(tǒng) 2 2 DS1302 時鐘芯片以及時鐘集成模塊介紹 南華大學(xué) 2 2 1 DS1302 概述 DS1302 是美國 DALLAS 公司推出的一種高性能 低功耗 帶 RAM 的實(shí)時時鐘芯片 它可 以對年 月 日 周日 時 分 秒進(jìn)行計(jì)時 具有閏年補(bǔ)償功能 工作電壓為 2 5V 5 5V 采用雙電源供電 主電源和備用電源 同時提供了對后背電源進(jìn)行涓細(xì)電流 充電的能力 采用三線接口與 CPU 進(jìn)行同步通信 DS1302 Vcc1 SCLK Vcc2 X1 X2 GNDCE I O 1 2 7 6 5 4 3 8 圖 4 DS1302 封裝圖 2 2 2 DS1302 引腳介紹 各引腳功能為 Vcc 主電源 Vcc2 備用電源 當(dāng) Vcc2 Vcc1 0 2V 時 由 Vcc2 向 DS1302 供電 當(dāng) Vcc2 Vcc1 時 由 Vcc1 向 DS1302 供電 SCLK 串行時鐘輸入端 控制數(shù)據(jù)的輸入與輸出 I O 三線接口時的雙向數(shù)據(jù)線 CE 輸入信號 在讀 寫數(shù)據(jù)期間必須為高 2 2 3 DS1302 使用方法 1 時鐘芯片 DS1302 的工作原理 DS1302 在每次進(jìn)行讀 寫程序前都必須初始化 先把 SCLK 端置 0 接著把 RST 端 置 1 最后才給予 SCLK 脈沖 讀 寫時序如圖 5 所示 表 2 為 DS1302 的控制字 此控制 字的位 7 必須置 1 若為 0 則不能把對 DS1302 進(jìn)行讀寫數(shù)據(jù) 對于位 6 若對程序進(jìn)行讀 寫時 RAM 1 對時間進(jìn)行讀 寫時 CK 0 位 1 至位 5 指操作單元的地址 位 0 是讀 寫操作 位 進(jìn)行讀操作時 該位為 1 該位為 0 則表示進(jìn)行的是寫操作 控制字節(jié)總是從最低位開 始輸入 輸出的 表 6 為 DS1302 的日歷 時間寄存器內(nèi)容 CH 是時鐘暫停標(biāo)志位 當(dāng)該 位為 1 時 時鐘振蕩器停止 DS1302 處于低功耗狀態(tài) 當(dāng)該位為 0 時 時鐘開始運(yùn)行 南華大學(xué) WP 是寫保護(hù)位 在任何的對時鐘和 RAM 的寫操作之前 WP 必須為 0 當(dāng) WP 為 1 時 寫保護(hù) 位防止對任一寄存器的寫操作 2 DS1302 的控制字節(jié) DS1302 的控制字如表所示 控制字節(jié)最高有效位 位 7 必須是邏輯 1 如果它為 0 則不能把數(shù)據(jù)寫入 DS1302 中 位 6 如果 0 則表示存取日歷時鐘數(shù)據(jù) 為 1 表示存取 RAM 數(shù) 據(jù) 位 5 至位 1 指示操作單元的地址 最低有效位 位 0 如為 0 表示要進(jìn)行寫操作 為 1 表示進(jìn)行讀操作 控制字節(jié)總是從最低位開始傳輸 RAMRD 1 CK A4A3A2A1A0 WR 表 2 DS1302 控制字 3 數(shù)據(jù)輸入輸出 I O 在控制指令字輸入后的下一個 SCLK 時鐘的上升沿時 數(shù)據(jù)被寫入 DS1302 數(shù)據(jù)輸入 從低位即位 0 開始 同樣 在緊跟 8 位的控制指令字后的下一個 SCLK 脈沖的下降沿讀出 DS1302 的數(shù)據(jù) 讀出數(shù)據(jù)時從低位 0 位到高位 7 其讀寫時序如圖示 圖 5 DS1302 讀寫時序 4 DS1302 寄存器 DS1302 中與時間 日期有關(guān)的寄存器共有 12 個 其中 7 個存放數(shù)據(jù)的格式為 BCD 碼 格式 其讀寫地址如下表所示 讀寄 存器 寫寄 存器 Bit7Bit7Bit7Bit7Bit7Bit7Bit7Bit7 范圍 南華大學(xué) 81H80HCH 10 秒秒 00 59 83H82H 10 分分 00 59 12100 23 85H84H 24 0 AM PM 時時 1 12 87H86H 10 日日 1 31 89H88H 10 月月 1 12 8BH8AH00000 周 1 7 8DH8CH 10 年年 00 99 8FH8EHWP0000000 表 3 DS1302 時鐘寄存器 第一行秒寄存器 CH 為時鐘暫停標(biāo)志位 該位為 1 時時鐘停止 該位為 0 時時鐘運(yùn)行 第二行分寄存器 bit0 bit6 表示分鐘數(shù) 因采用 BCD 編碼 所以低四位最大能表示的 數(shù)字為 9 計(jì)數(shù)滿向高三位進(jìn) 1 第三行時寄存器 12 24 用來定義 DS1302 小時的運(yùn)行模式 12 小時模式下 bit5 為 1 表 示 PM 下午 bit5 為 0 表示 AM 上午 第八行控制寄存器 bit7 是寫保護(hù)位 WP 當(dāng) WP 為 1 時 寫保護(hù)位可防止對任一寄存器 的寫操作 在任何的對時鐘和 RAM 的寫操作之前 WP 位必須為 0 此外 DS1302 還有年份寄存器 控制寄存器 充電寄存器 時鐘突發(fā)寄存器及與 RAM 相關(guān)的寄存器等 時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容 DS1302 與 RAM 相關(guān)的寄存器分為兩類 一類是單個 RAM 單元 共 31 個 每個單元組態(tài)為一 個 8 位的字節(jié) 其命令控制字為 C0H FDH 其中奇數(shù)為讀操作 偶數(shù)為寫操作 另一類為突 發(fā)方式下的 RAM 寄存器 此方式下可一次性讀寫所有的 RAM 的 31 個字節(jié) 命令控制字為 FEH 寫 FFH 讀 2 2 4 時鐘集成模塊內(nèi)部原理圖以及實(shí)物圖 南華大學(xué) 圖 6 DS1302 內(nèi)部原理圖 南華大學(xué) 圖 7 DS1302 實(shí)物圖 2 3 1602 字符液晶以及顯示模塊介紹 2 3 1 1602 液晶概述 工業(yè)字符型液晶 1602 是指顯示的內(nèi)容為 16 2 即能夠同時顯示兩行 每行 16 個字符 常見的 1602 字符液晶有兩種 一種顯示的是綠色背光黑色字體 另一種顯示藍(lán)色背光白色 字體 目前市面上字符液晶絕大多數(shù)是基于 HD44780 液晶芯片的 控制原理是完全相同的 本課題所用 1602 液晶模塊 顯示屏是藍(lán)色背光白色字體 如圖 6 所示 南華大學(xué) 1 2 3 10 9 8 7 6 5 4 11 12 13 14 15 16 GND VCC VO D1 D0 E R W RS D2 D3 D4 D5 D6 D7 BLA BLK LCD1602 圖 8 1602 字符液晶 2 3 2 1602 引腳介紹 編號符號引腳說明編號符號引腳說明 1GND電源地2VCC電源正極 3VO液晶顯示對 比度調(diào)節(jié)端 4RS數(shù)據(jù) 命令選 擇端 5R W讀寫選擇6E使能信號 7D0數(shù)據(jù)口8D1數(shù)據(jù)口 9D2數(shù)據(jù)口10D3數(shù)據(jù)口 11D4數(shù)據(jù)口12D5數(shù)據(jù)口 13D6數(shù)據(jù)口14D7數(shù)據(jù)口 15BLA背光電源正16BLK背光電源負(fù) 表 4 1602 字符液晶引腳說明 各個引腳具體功能說明 第 1 腳 GND 為地電源 第 2 腳 VCC 接 5V 正電源 第 3 腳 VO 為液晶顯示器對比度調(diào)整端 接正電源時對比度最弱 接地電源時對比度最高 對比度過高時會產(chǎn)生重影 使用一個 1K 的電位器調(diào)整對比度 第 4 腳 RS 為寄存器選擇 高電平時選擇數(shù)據(jù)寄存器 低電平時選擇指令寄存器 第 5 腳 R W 為讀寫信號線 高電平時進(jìn)行讀操作 低電平時進(jìn)行寫操作 第 6 腳 E 端為使能端 當(dāng) E 端由高電平跳變成低電平時 液晶模塊執(zhí)行命令 第 7 14 腳 DB0 DB7 為 8 位雙向數(shù)據(jù)線 南華大學(xué) 第 15 16 腳 背光燈電源 2 3 3 1602 字符液晶使用方法 1 基本操作時序 操作輸入輸出 讀狀態(tài)RS L RW H E HD0 D7 狀態(tài)字 寫指令RS L RW L D0 D7 指令碼 E 高脈沖無 讀數(shù)據(jù)RS H RW H E HD0 D7 數(shù)據(jù) 寫數(shù)據(jù)RS H RW L D0 D7 數(shù)據(jù) E 高脈沖無 圖 9 1602 液晶讀時序圖 圖 10 1602 液晶寫時序圖 南華大學(xué) 2 RAM 1602 液晶控制器芯片內(nèi)部帶有 80 個 8 位的 RAM 緩沖區(qū) 其地址和屏幕的對應(yīng)關(guān)系如 圖 7 示 圖 11 3 1602 字符液晶字庫 1602 液晶模塊內(nèi)部的字符發(fā)生存儲器 CGROM 已經(jīng)存儲了 160 個不同的點(diǎn)陣字符圖 形 如下表所示 這些字符有 阿拉伯?dāng)?shù)字 英文字母的大小寫 常用的符號 和日文假名 等 每一個字符都有一個固定的代碼 比如大寫的英文字母 A 的代碼是 01000001B 41H 顯示時模塊把地址 41H 中的點(diǎn)陣字符圖形顯示出來 我們就能看到字母 A 高位 低位 000000 0 0 001001 0 0 001001 1 1 010010 0 0 010010 1 1 011011 0 0 011011 1 1 101101 0 0 101101 1 1 110110 0 0 110110 1 1 111111 0 0 111111 1 1 XXXX0000XXXX0000 0 P p P XXXX0001XXXX0001 1AQ a a q q XXXX0010XXXX0010 2BRbr XXXX0011XXXX0011 3CScs XXXX0100XXXX0100 4DTdt XXXX0101XXXX0101 5EUeu o XXXX0110XXXX0110 定義下面通過 lcden 來操作 P2 7 口 1602 液晶使能控制端 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 sbit lcdwr P2 5 定義下面通過 lcdrw 來操作 P2 5 口 1602 讀寫選擇端 sbit lcdrs P2 6 定義選數(shù)據(jù)寄存器選指令寄存器控制端 sbit sda P3 4 定義 DS1302 數(shù)據(jù)總線 sbit rst P3 5 DS1320 復(fù)位 sbit sck P3 6 定義時鐘總線 sbit s1 P1 0 定義設(shè)置按鈕 sbit s2 P1 1 定義調(diào)時按鈕 sbit s3 P1 2 定義確定按鈕 sbit s4 P1 3 sbit ACC0 ACC 0 sbit ACC7 ACC 7 sbit BELL P1 5 char fen shi miao ri yue nian zhou s1num s2num s4num flag1 flag2 lshi lfen uchar code table 2012 要寫入 1602 液晶的數(shù)據(jù) uchar code table1 字庫中的字可直接以外加 號的形式直接寫入 uchar code table2 Welcome To Lcd 歡迎界面 uchar code table3 Happy Every Day 歡迎界面 時函數(shù) z 的取值為這個函數(shù)的延時 ms 數(shù) delay 200 大約延時 200ms delay 500 大約延時 500ms void delay uint z uint x y for x z x 0 x for y 110 y 0 y 蜂鳴器函數(shù) void didi uchar i for i 0 i 60 i BELL 0 delay 1 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 BELL 1 delay 1 向 1602 液晶中寫一個指令 void write com uchar com lcdwr 0 lcdwr 為讀寫控制端 lcdwr 0 這里可不寫 lcdrs 0 液晶 rs 接口為 0 時 寫指令 rs 為 1 時寫數(shù)據(jù) P0 com 將要寫的指令賦給 P0 口 delay 5 由 1602 讀寫操作時序圖 先將指令賦給 P0 口 延時后將使能 lcden 1 端 lcden 置高 再延時一段時間 然后將 lcden 置低 這樣指令 delay 5 就寫入到 LCD 了 lcden 0 向液晶寫數(shù)據(jù) void write data uchar date 與寫指令類似 這里 lcdrs 設(shè)為 1 lcdrs 1 P0 date delay 5 lcden 1 delay 5 lcden 0 初使化 1602 液晶 void init 1602 lcdwr 0 lcden 0 write com 0 x38 設(shè)置 LCD 為 16 2 顯示 5 7 點(diǎn)陣 8 位數(shù)據(jù)接口模式 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 write com 0 x0c 開顯示 不顯示光標(biāo) write com 0 x06 寫一個字符后 地址指針加 1 write com 0 x01 顯示清 0 void gudingtime 1602 uchar num write com 0 x80 將指針指向初始位置 for num 0 num 16 num 循環(huán)函數(shù) 用于將 2012 寫入液晶 write data table num write com 0 x80 0 x40 將指針指向 1602 液晶的第二行 for num 0 num 16 num 功能與上同 用于將 寫入 write data table1 num 顯示歡迎界面函數(shù) void displaystar void uchar i write com 0 x80 for i 0 i 16 i write data table2 i write com 0 x80 0 x40 for i 0 i0 i sda ACC0 sck 1 sck 0 ACC ACC 1 讀數(shù)據(jù)字節(jié)子函數(shù) uchar Output 1byte void 讀一字節(jié)數(shù)據(jù) uchar i for i 8 i 0 i ACC ACC 1 ACC7 sda sck 1 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 sck 0 return ACC 寫 DS1302 數(shù)據(jù)函數(shù) void write 1302 uchar DS ADD uchar DS DAT 寫操作 rst 0 sck 0 rst 1 Input 1byte DS ADD Input 1byte DS DAT sck 1 rst 0 讀 DS1302 數(shù)據(jù)函數(shù) uchar read 1302 uchar DS ADD 讀操作 uchar DS INF rst 0 sck 0 rst 1 Input 1byte DS ADD DS INF Output 1byte sck 1 rst 0 return DS INF 初始化 DS1302 子函數(shù) void inital 1302 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 write 1302 0 x8e 0 x00 禁止寫保護(hù) write 1302 0 x90 0 xaa 定義充電 write 1302 0 x80 0 x53 秒 write 1302 0 x84 0 x13 時 write 1302 0 x82 0 x43 分 write 1302 0 x8c 0 x12 年 write 1302 0 x88 0 x06 月 write 1302 0 x86 0 x03 日 write 1302 0 x8a 0 x06 星期 write 1302 0 xc0 0 x08 鬧鐘小時初始化 write 1302 0 xfc 0 x00 鬧鐘分鐘初始化 write 1302 0 x8e 0 x80 開保護(hù) 掃描函數(shù) void keyscan if s1 0 if s1 0 s1num while s1 didi if s1num 1 write com 0 x80 0 x40 8 光標(biāo)移動到 位置 write com 0 x0f 顯示光標(biāo) if s1num 2 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 write 1302 0 x8e 0 x00 禁止寫保護(hù) write 1302 0 x80 miao 寫入秒信息 write 1302 0 x8e 0 x80 開寫保護(hù) write com 0 x80 0 x40 5 if s1num 3 write 1302 0 x8e 0 x00 write 1302 0 x82 fen write 1302 0 x8e 0 x80 write com 0 x80 0 x40 2 if s1num 4 write 1302 0 x8e 0 x00 write 1302 0 x88 yue write 1302 0 x8e 0 x80 write com 0 x80 13 if s1num 5 write 1302 0 x8e 0 x00 write 1302 0 x84 shi write 1302 0 x8e 0 x80 write com 0 x80 10 if s1num 6 write 1302 0 x8e 0 x00 write 1302 0 x86 ri write 1302 0 x8e 0 x80 write com 0 x80 7 if s1num 7 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 write 1302 0 x8e 0 x00 write 1302 0 x8c nian write 1302 0 x8e 0 x80 write com 0 x80 4 if s1num 8 flag1 0 s1num 0 write 1302 0 x8e 0 x00 write 1302 0 x8a zhou write 1302 0 x8e 0 x80 write com 0 x0c 不顯示光標(biāo) if s1num 0 if s2 0 while s2 didi if s1num 1 int x1 x2 x1 miao 16 x2 miao 16 x1 if x1 10 x1 0 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 x2 if x2 6 x2 0 miao x1 x2 16 write sfm 7 0 x40 miao 將修改的數(shù)送到 1602 顯示 write com 0 x80 0 x40 8 挪回光標(biāo) if s1num 2 int x3 x4 x3 fen 16 x4 fen 16 x3 if x3 10 x3 0 x4 if x4 6 x4 0 fen x3 x4 16 write sfm 4 0 x40 fen write com 0 x80 0 x40 5 if s1num 3 int x5 x6 x5 shi 16 x6 shi 16 x5 if x6 2 x6 0 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 if x5 10 x5 0 x6 shi x5 x6 16 write sfm 1 0 x40 shi write com 0 x80 0 x40 2 if s1num 4 zhou if zhou 8 zhou 1 write zhou zhou write com 0 x80 13 if s1num 5 int x5 x6 x5 ri 16 x6 ri 16 x5 if x6 3 x6 0 if x5 10 x5 0 x6 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 ri x5 x6 16 write sfm 9 ri write com 0 x80 10 if s1num 6 int x5 x6 x5 yue 16 x6 yue 16 x5 if x6 1 x6 0 if x5 10 x5 0 x6 yue x5 x6 16 write sfm 6 yue write com 0 x80 7 if s1num 7 int x5 x6 x5 nian 16 x6 nian 16 x5 if x6 2 x6 0 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 if x5 10 x5 0 x6 nian x5 x6 16 write sfm 3 nian write com 0 x80 4 if s1num 0 s4num 0 在調(diào)整模式下 if s3 0 如果確定鍵按下 delay 5 if s3 0 延時并重新檢測 S3 是否按下 用于差小誤差 if s1num 0 while s3 didi 在松手時將調(diào)整后的時間 日期及周信息寫入 DS1302 退出調(diào)整模式并隱藏光標(biāo) 按鍵次數(shù)清 0 write 1302 0 x8e 0 x00 write 1302 0 x80 miao write 1302 0 x84 shi write 1302 0 x82 fen write 1302 0 x8a zhou write 1302 0 x8c nian 年 write 1302 0 x88 yue 月 write 1302 0 x86 ri write 1302 0 x8e 0 x80 flag1 0 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 write com 0 x0c s1num 0 if s4num 0 while s3 didi 在松手時將調(diào)整后的時間 日期及周信息寫入 DS1302 退出調(diào)整模式并隱藏光標(biāo) 按鍵次數(shù)清 0 write 1302 0 x8e 0 x00 write 1302 0 xc0 lshi write 1302 0 xfc lfen write 1302 0 x8e 0 x80 flag2 0 s4num 0 write com 0 x0c if s4 0 if s4 0 flag2 1 while s4 didi if s4num 1 write com 0 x80 0 x40 14 write com 0 x0f 南華大學(xué) 專業(yè)文檔供參考 如有幫助請下載 if s4num 2 write 1302 0 x8e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人支出月度計(jì)劃表
- 大健康產(chǎn)業(yè)創(chuàng)新發(fā)展模式研究與實(shí)踐
- 鋼平臺安全施工方案
- 跨部門協(xié)作事務(wù)處理指南與文書流程
- 汽車后市場智能化服務(wù)解決方案
- 三農(nóng)村電子商務(wù)發(fā)展模式研究方案
- 初級母嬰護(hù)理師考試復(fù)習(xí)測試卷
- 婦產(chǎn)科護(hù)理練習(xí)試題及答案(一)
- 法律實(shí)務(wù)案例解析知識題
- 城市綠化與生態(tài)保護(hù)方案
- 基于單片機(jī)的電子廣告牌設(shè)計(jì)
- 應(yīng)用PDCA管理工具提高病案歸檔率
- 果蔬自發(fā)氣調(diào)包裝原理與應(yīng)用演示文稿
- DB43T 2428-2022 水利工程管理與保護(hù)范圍劃定技術(shù)規(guī)范
- SB/T 11016-2013足部保健按摩服務(wù)規(guī)范
- GB/T 4062-2013三氧化二銻
- 神經(jīng)系統(tǒng)的結(jié)構(gòu)與神經(jīng)調(diào)節(jié)的基本方式 【知識精講+高效備課】 高考生物一輪復(fù)習(xí) (新教材)
- GB/T 15328-2019普通V帶疲勞試驗(yàn)方法無扭矩法
- 馬克思主義基本原理(完整版)
- 涉密人員脫密期管理制度
- 企業(yè)風(fēng)險(xiǎn)管理-戰(zhàn)略與績效整合(中文版)
評論
0/150
提交評論