單片機(jī)課程設(shè)計(jì)--智能電子鐘(LCD顯示)_第1頁(yè)
單片機(jī)課程設(shè)計(jì)--智能電子鐘(LCD顯示)_第2頁(yè)
單片機(jī)課程設(shè)計(jì)--智能電子鐘(LCD顯示)_第3頁(yè)
單片機(jī)課程設(shè)計(jì)--智能電子鐘(LCD顯示)_第4頁(yè)
單片機(jī)課程設(shè)計(jì)--智能電子鐘(LCD顯示)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課課 程程 設(shè)設(shè) 計(jì)計(jì) 課程名稱_ 單片機(jī)原理與接口技術(shù) 題目名稱 多功能數(shù)字時(shí)鐘 學(xué)生學(xué)院_ 材料與能源學(xué)院 專業(yè)班級(jí)_ 電子材料及元器件方向 學(xué) 號(hào)_ _ 學(xué)生姓名_ _ 指導(dǎo)教師_ 2013 年 1 月 16 日 廣東工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書廣東工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書 題目名稱多功能數(shù)字時(shí)鐘多功能數(shù)字時(shí)鐘 學(xué)生學(xué)院材料與能源學(xué)院材料與能源學(xué)院 專業(yè)班級(jí) 姓 名 學(xué) 號(hào) 一、課程設(shè)計(jì)的內(nèi)容 用 AT89C52 單片機(jī)制作一個(gè)時(shí)鐘: 1.設(shè)計(jì)并繪制硬件電路圖; 2.布置元件并焊接好元器件; 3.編寫程序并將調(diào)試好的程序固化到單片機(jī)中。 4.增加溫度測(cè)試功能。 二、課程設(shè)計(jì)的要求與數(shù)據(jù) 單片機(jī)采

2、用 STC89C52 芯片,時(shí)鐘芯片采用 DALLAS 公司的 DS1302,即涓流充電時(shí) 鐘芯片,它內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和 31 字節(jié)靜態(tài) RAM,通過(guò)簡(jiǎn)單的串行接口與單片 機(jī)進(jìn)行通信實(shí)時(shí)時(shí)鐘/日歷電路提供秒分時(shí)日日期月年的信息,每月的天數(shù)和閏年的天 數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò) AM/PM 指示決定采用 24 或 12 小時(shí)格式,DS1302 與單 片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信。同時(shí)用選 DS18B20 傳感器將采集的室 內(nèi)溫度顯示于 LCD 上。按此要求設(shè)計(jì)硬件和軟件以實(shí)現(xiàn)這些功能。 三、課程設(shè)計(jì)應(yīng)完成的工作 1. 完成下載線的制作,為程序下載到單片機(jī)芯片中做好準(zhǔn)備;

3、2. 完成軟件、硬件的設(shè)計(jì),并進(jìn)行硬件的焊接制作,并將調(diào)試成功的程序固化到單片 機(jī)中,最后進(jìn)行硬件與軟件的調(diào)試; 3.撰寫設(shè)計(jì)說(shuō)明書。 四、課程設(shè)計(jì)進(jìn)程安排 序號(hào)設(shè)計(jì)各階段內(nèi)容地點(diǎn)起止日期 1 硬件、軟件設(shè)計(jì)宿舍1 月 813 日 2 焊接電路板宿舍1 月 1415 日 3 軟件、硬件調(diào)試宿舍1 月 1516 日 4 撰寫說(shuō)明書宿舍1 月 17 日 5 答辯 大學(xué)城工學(xué)三號(hào)館 105 1 月 1821 日 摘要摘要 隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研, 各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機(jī)控制的液 晶顯示溫度和時(shí)鐘設(shè)計(jì),時(shí)間可由鍵盤調(diào)整。主

4、要用到的芯片有單片機(jī) STC89C52.液晶1602LCM模塊.時(shí)鐘芯片DS1302.溫度傳感器DS18B20等。 關(guān)鍵詞關(guān)鍵詞:?jiǎn)纹瑱C(jī)STC89C52,1602LCM模塊,DS1302.,DS18B20 目錄目錄 1 系統(tǒng)需求分析.1 1.1 電子時(shí)鐘研究的背景和意義.1 1.2 系統(tǒng)實(shí)用功能分析.1 2 設(shè)計(jì)要求與方案.2 2.1 設(shè)計(jì)要求.2 2.1.1 基本要求.2 2.1.2 發(fā)揮部分.2 2.2 系統(tǒng)基本方案選擇.2 2.2.1 芯片的選擇.2 2.2.2 顯示模塊選擇方案.2 2.2.3 時(shí)鐘信號(hào)的選擇方案.3 2.3 電路設(shè)計(jì)最終方案決定.3 3 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn).3 3.

5、1 數(shù)字鐘電路設(shè)計(jì)框圖.3 3.2 系統(tǒng)硬件概述.4 3.3 硬件電路結(jié)構(gòu)的設(shè)計(jì).4 3.3.1 單片機(jī)主控制模塊的設(shè)計(jì).4 3.3.2 顯示模塊的設(shè)計(jì).4 3.3.3 LCD 原理說(shuō)明.5 3.3.4 開(kāi)關(guān)模塊說(shuō)明.6 4 系統(tǒng)的軟件設(shè)計(jì).7 4.1 程序流程框圖.7 4.2 LCD 的初始化與及顯示程序.7 5 系統(tǒng)調(diào)試.9 5.1 軟件調(diào)試.9 5.2 硬件調(diào)試.9 參考文獻(xiàn).10 附錄.11 1 系統(tǒng)需求分析 1.1 電子時(shí)鐘研究的背景和意義 20 實(shí)際末,電子技術(shù)獲得了飛速的發(fā)展。再起推動(dòng)下現(xiàn)代電子產(chǎn)品幾乎滲透到了社會(huì)的 哥哥領(lǐng)域,有力的推動(dòng)和提高的社會(huì)生產(chǎn)力的發(fā)展與信息化程度,同時(shí)

6、也是現(xiàn)代電子產(chǎn)品性 能進(jìn)一步提升,產(chǎn)品的更新?lián)Q代節(jié)奏譜也越來(lái)越快。時(shí)間對(duì)人們來(lái)說(shuō)是那么的寶貴,工作的 忙碌性和繁雜容易使人們忘記當(dāng)前的時(shí)間。然而遇到重大事情的時(shí)候,一旦忘記時(shí)間,就會(huì) 給自己或者是他人造成很大的麻煩。平時(shí)我們要求上班準(zhǔn)時(shí),約會(huì)或者召開(kāi)會(huì)議必然要提及 時(shí)間、火車要準(zhǔn)點(diǎn)到達(dá),航班要準(zhǔn)時(shí)起飛,工業(yè)生產(chǎn)中,很多環(huán)節(jié)都需要時(shí)間來(lái)確定工序替 換時(shí)刻。所以說(shuō)能隨時(shí)準(zhǔn)確的指導(dǎo)時(shí)間并利用時(shí)間,是我們生活中必不可少的。 想知道時(shí)間,手表當(dāng)然是很好的選擇,但是在忙碌當(dāng)中,我們還需要一個(gè)“助理”時(shí)不 時(shí)的給我們體形式將,所以,計(jì)時(shí)器最好能夠用有一個(gè)定時(shí)系統(tǒng),隨時(shí)提醒容易忘記時(shí)間的 人。最早能夠定時(shí)、寶

7、石的時(shí)鐘屬于機(jī)械式鐘表,但這種時(shí)鐘受到機(jī)械結(jié)構(gòu)、動(dòng)力合體技的 限制,在功能性能以及在造價(jià)上都沒(méi)有辦法與電子時(shí)鐘相比。 電子時(shí)鐘是采用電子電路實(shí)現(xiàn)對(duì)時(shí)、分、秒進(jìn)行數(shù)字顯示的即使裝置,廣泛應(yīng)用月個(gè)人 家庭、車站、碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I罨顒?dòng)中不可少的必須品。由于數(shù)字 集成電路的發(fā)展和石英晶體振蕩器的廣泛使用,是的數(shù)字時(shí)鐘的精度遠(yuǎn)遠(yuǎn)查過(guò)老師鐘表,鐘 表的數(shù)字化跟人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大的擴(kuò)展了鐘表原先的時(shí)鐘功能。諸 如整點(diǎn)提示、定時(shí)報(bào)警、定時(shí)廣播、自動(dòng)啟閉路燈,定時(shí)開(kāi)關(guān)烘箱、同多動(dòng)力設(shè)備、甚至各 種定時(shí)電氣的自動(dòng)啟動(dòng)等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此研究數(shù)字鐘及

8、擴(kuò)大 其應(yīng)用,有著非常現(xiàn)實(shí)的意義。 1.2 系統(tǒng)實(shí)用功能分析 單片機(jī)模塊中最常見(jiàn)的是數(shù)字時(shí)鐘,數(shù)字時(shí)鐘是一種用單片機(jī)原理實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的 裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命, 因此得到了廣泛的使用。 數(shù)字時(shí)鐘是采用單片機(jī)原理實(shí)現(xiàn)對(duì).年、月、日、周、時(shí)、分、秒,數(shù)字顯示及到時(shí)提醒的計(jì) 時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋?需品,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò) 老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的 報(bào)時(shí)功能。

9、諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、 定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字 化為基礎(chǔ)的。因此,研究數(shù)字時(shí)鐘及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。 2 設(shè)計(jì)要求與方案 2.1 設(shè)計(jì)要求 2.1.1 基本要求 1 設(shè)計(jì)能支持年月日星期時(shí)分秒的時(shí)鐘,時(shí)鐘要具有時(shí)間調(diào)整功能。 2.1.2 發(fā)揮部分 1 鬧鐘時(shí)間精度。 2 時(shí)鐘功耗小于 0.5MA/5V。 2.2 系統(tǒng)基本方案選擇 本時(shí)鐘的設(shè)計(jì)具體有兩種方法。一是通過(guò)單純的數(shù)字電路來(lái)實(shí)現(xiàn);二是使用單片機(jī) 來(lái)控制實(shí)現(xiàn)。本次設(shè)計(jì)選取了較為簡(jiǎn)單的單片機(jī)控制;而選擇這一方法后還要進(jìn)

10、行各個(gè)芯片 的選擇。以下是我在這次設(shè)計(jì)中所用的方案。 2.2.1 芯片的選擇 采用 AT89C52 芯片,其為高性能 CMOS 8 位單片機(jī),該芯片內(nèi)含有 4k bytes 的可反復(fù)擦 寫的只讀程序存儲(chǔ)器(PEROM)、128 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)、 32 位可編程 I/O 口 線、2 個(gè) 16 位定時(shí)/計(jì)數(shù)器、6 個(gè)中斷源、可編程串行 UART 通道及低功耗空閑和掉電模式,其 最大的優(yōu)勢(shì)就是 AT89C52 提供了 8K 字節(jié)可擦寫 Flash 閃速存儲(chǔ)器空間、8 個(gè)中斷源、及 256*8 字節(jié)內(nèi)部存儲(chǔ)器(RAM),解決了我們對(duì)可反復(fù)擦寫的 Flash 閃速存儲(chǔ)器空間大

11、小與中斷 源的不夠問(wèn)題的擔(dān)心。 2.2.2 顯示模塊選擇方案 方案一:采用 LED 數(shù)碼管顯示,顯示較為清楚,但是由于設(shè)計(jì)要求時(shí)鐘功能比較重要,因 此用如用 LED 進(jìn)行顯示會(huì)使得硬件電路較為復(fù)雜,且在軟件實(shí)現(xiàn)上也較難,為實(shí)現(xiàn)功能帶來(lái) 了一定的困難。 方案二:采用 LCD,電路比較簡(jiǎn)單,且在軟件設(shè)計(jì)上也相對(duì)簡(jiǎn)單,具有低功耗功能,能夠滿 足設(shè)計(jì)最優(yōu)的要求。因此,在設(shè)計(jì)中我采用的顯示模塊是 LCD 顯示。 2.2.3 時(shí)鐘信號(hào)的選擇方案 方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供的秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、周、時(shí)、分、 秒計(jì)數(shù)。采用此種方案可減少芯片的使用,節(jié)約成本,實(shí)現(xiàn)的時(shí)間誤差較小,但程序設(shè)計(jì)

12、較為 復(fù)雜。 方案二:采用 DS1302 時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘, DS1302 芯片是一種高性能的時(shí)鐘芯片,可自動(dòng) 對(duì)秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,256 位的 RAM 作為數(shù)據(jù) 暫存區(qū),工作電壓 2.5V5.5V 范圍內(nèi),2.5V 時(shí)耗電小于 300nA。且硬件電路連接較為簡(jiǎn)單,程 序設(shè)計(jì)容易實(shí)現(xiàn)。 2.3 電路設(shè)計(jì)最終方案決定 綜上各方案所述,對(duì)此次數(shù)字時(shí)鐘的方案選定為: 采用 AT89C52 作為主控制系統(tǒng); 并由 其定時(shí)計(jì)數(shù)器提供時(shí)鐘; LCD 作為顯示電路,來(lái)實(shí)現(xiàn)功能。 3 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn) 3.1 數(shù)字鐘電路設(shè)計(jì)框圖 LCD 動(dòng)態(tài)掃描 顯示模塊 A

13、T89C52 主控制器 開(kāi)關(guān)調(diào)節(jié)模塊 晶振電路 模塊 復(fù)位電路 圖 3-1 電路設(shè)計(jì)框圖 3.2 系統(tǒng)硬件概述 該電路是由 AT89C52 單片機(jī)為控制核心,具有在線編程功能,低功耗,能在 3V 超低壓工 作;時(shí)鐘電路也由 AT89C52 單片機(jī)提供,減少芯片的使用,節(jié)約成本,它可以對(duì)年、月、日、周、 日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能。時(shí)間顯示部份采用液晶 LM016L(LCD)。 3.3 硬件電路結(jié)構(gòu)的設(shè)計(jì) 3.3.1 單片機(jī)主控制模塊的設(shè)計(jì) 此次單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)采用 AT89C52 為主控制芯片,并由其定時(shí)器提供時(shí)鐘,利用 LCD 進(jìn)行時(shí)間按顯示。下圖為用 Proteus 軟件

14、畫的原理圖: 圖 3-2 仿真電路圖 3.3.2 顯示模塊的設(shè)計(jì) 如圖(3-4)所示,該設(shè)計(jì)采用液晶顯示裝置即把時(shí)鐘信號(hào)以及溫度信號(hào)同時(shí)顯示在液晶 顯示器上,不僅結(jié)構(gòu)簡(jiǎn)單清新可見(jiàn),而且省電也容易控制。數(shù)據(jù)的傳輸采用 P0 口進(jìn)行控制, 其引腳 VSS 接地,VEE 接 VCC,RS 和 RW、E 是顯示器的控制端分別由單片機(jī)的引腳 P1.0、P1.1、P1.3 進(jìn)行控制。而 VDD 是作為液晶顯示器的灰度調(diào)節(jié)引腳,接一變阻器來(lái)改變其 顯示的清晰度。 圖 3-3 LM016L 液晶顯示器 3.3.3 LCD 原理說(shuō)明 在實(shí)際應(yīng)用中,用戶很少直接設(shè)計(jì) LCD 顯示器驅(qū)動(dòng)接口,一般是直接使用專用的

15、LCD 顯 示驅(qū)動(dòng)器和 LCD 顯示模塊。其中,LCD 顯示模塊 LCM(Liquid Crystal Display Module)是 把 LCD 顯示器、背景光源、線路板和驅(qū)動(dòng)集成電路等部件構(gòu)成一個(gè)整體,作為一個(gè)獨(dú)立的部 件使用,具有功能較強(qiáng)、易于控制、接口簡(jiǎn)單等優(yōu)點(diǎn),在單片機(jī)系統(tǒng)中應(yīng)用較多。其內(nèi)部結(jié) 構(gòu)如圖 2-8 所示。LCD 顯示模塊只留一個(gè)接口與外部通信。顯示模塊通過(guò)這個(gè)接口接收顯示 命令和數(shù)據(jù),并按指令和數(shù)據(jù)的要求進(jìn)行顯示。外部電路通過(guò)這個(gè)接口讀出顯示模塊的工作 狀態(tài)和顯示數(shù)據(jù)。LCD 顯示模塊一般帶有內(nèi)部顯示 RAM 和字符發(fā)生器,只要輸入 ASCII 碼就 可以進(jìn)行顯示。LC

16、D 顯示模塊按功能顯示可分為:LCD 段式顯示模塊、LCD 字符型顯示模塊 、LCD 圖形顯示塊三類。液晶顯示器因其功耗低、重量輕而成為便攜式應(yīng)用中的主流顯示技 術(shù)。這里所用的字符型液晶模塊是一種用 5x7 點(diǎn)陣圖形來(lái)顯示字符的液晶顯示器,根據(jù)顯示 的容量可以分為 1 行 16 個(gè)字、2 行 16 個(gè)字、2 行 20 個(gè)字等等。液晶顯示有點(diǎn)振式和字符式 兩種,在這里采用字符式液晶顯示器 1602 來(lái)實(shí)現(xiàn)顯示電路的功能。 LCD 驅(qū)動(dòng)器 LCD 顯示器 LCD 控制器 VSS VDD VL RS R/W E D0-D7 圖 3-4 LCD 顯示電路 由于 1602 液晶顯示器是本身帶有驅(qū)動(dòng)模塊的

17、液晶屏,它只有并口線和一些控制線,與 單片機(jī)的連接有兩種不同的方法,直接訪問(wèn)方式和間接訪問(wèn)方式。直接訪問(wèn)方式就是微處理 器把液晶顯示模塊當(dāng)作存儲(chǔ)器或 I/O 設(shè)備直接掛在總線上,模塊 8 位數(shù)據(jù)總線與微處理器的 數(shù)據(jù)總線相連,用讀操作 或?qū)懖僮?信號(hào)與地址信號(hào)共同產(chǎn)生控制信號(hào)。 3.3.4 開(kāi)關(guān)模塊說(shuō)明 校時(shí)電路主要靠鍵盤來(lái)控制。鍵盤是一組按鍵的集合。共有四個(gè)按鍵,分別是:改變時(shí) 間、增加、減少、清零。它是嵌入式計(jì)算機(jī)系統(tǒng)中不可缺少的外圍電路。是實(shí)現(xiàn)人機(jī)對(duì)話的 紐帶,借助鍵盤可以向計(jì)算機(jī)輸入程序、置數(shù)、邏輯操作以及寫入程序和程序檢測(cè)等。 4 系統(tǒng)的軟件設(shè)計(jì) 4.1 程序流程框圖 開(kāi)始 初始化程

18、序 主鍵值檢測(cè) 根據(jù)主鍵進(jìn)行散轉(zhuǎn) 有則主鍵值加一 時(shí) 間 秒 鐘 調(diào) 整 時(shí) 間 分 鐘 調(diào) 整 時(shí) 間 小 時(shí) 調(diào) 整 時(shí) 間 周 調(diào) 整 時(shí) 間 日 調(diào) 整 時(shí) 間 月 調(diào) 整 時(shí) 間 年 調(diào) 整 顯 示 周 顯 示 日 顯 示 月 顯 示 年 時(shí) 間 顯 示 時(shí) 間 顯 示 主 界 面 圖 4-1 主程序流程 4.2 LCD 的初始化與及顯示程序 1 LCD 的初始化 void ini()/*LCD 的初始化函數(shù) rw=0; en=0; P1=0 xff; writeCG(); write_order(0 x38);/*端口寫入 write_order(0 x0c); /*端口寫入 wr

19、ite_order(0 x06); /*端口寫入 write_order(0 x01); /*端口寫入 2 LCD 的顯示程序 void open()/*定義一個(gè) LCD 顯示函數(shù) uchar num; /*定義一個(gè)無(wú)符號(hào)的字符變量 num write_order(0 x80+0 x10); /*調(diào)用 write_order 函數(shù) for(num=0;opensnum!=0;num+)/*循環(huán)打開(kāi) write_date(opensnum); delay(20); for(num=0;num16;num+)/*對(duì)端口 0 x1c 寫入 write_order(0 x1c); delay(200)

20、; for(num=0;num5;num+)/*對(duì)端口 0 x18 寫入 write_order(0 x18); delay(200); for(num=0;num4;num+)/*對(duì)端口 0 x18 寫入 write_order(0 x1c); delay(200); for(num=0;num3;num+)/*對(duì)端口 0 x18 寫入 write_order(0 x18); delay(200); for(num=0;num2;num+)/*對(duì)端口 0 x1c 寫入 write_order(0 x1c); delay(200); for(num=0;num0;x-) for(y=110;y

21、0;y-); /寫入指令子函數(shù) void write_order(uchar order) lcdrs=0; P0=order; delay(2); lcden=1; delay(2); lcden=0; /寫入數(shù)據(jù)子函數(shù) void write_data(uchar data1) lcdrs=1; P0=data1; delay(2); lcden=1; delay(2); lcden=0; /初始化子函數(shù) void init() sec=0; minute=0; hour=0; week=0; day=1; month=1; year=2008; TMOD=0 x01; TH0=(65536

22、-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; wela=0; dula=0; lcden=0; write_order(0 x38); /設(shè)置顯示模式 write_order(0 x0c); /開(kāi)顯示開(kāi)光標(biāo),光標(biāo)閃爍 write_order(0 x01); /顯示清屏 write_order(0 x06); /光標(biāo)顯示效果 write_order(0 x80); /定義第一行寫入數(shù)據(jù)的地址 for(num=0;num14;num+) write_data(table1num); delay(2); write_order(0 x

23、80+0 x43); /定義第一行寫入數(shù)據(jù)的地址 for(num=0;num8;num+) write_data(table2num); delay(2); void change(uchar addr,uchar data1) /改變 時(shí) 分 秒 天 月 的子函數(shù) uchar x,y; x=data1/10; y=data1%10; write_order(0 x80+addr); delay(1); write_data(0 x30+x); delay(1); write_data(0 x30+y); delay(1); void yearchange(uchar addr,uint ye

24、ar) /改變年的子函數(shù) uchar x,y,z,w; x=year/1000; y=year%1000/100; z=year%100/10; w=year%10; write_order(0 x80+addr); delay(1); write_data(0 x30+x); delay(1); write_data(0 x30+y); delay(1); write_data(0 x30+z); delay(1); write_data(0 x30+w); delay(1); void weekchange(uchar z) /改變周數(shù)的子函數(shù) switch(z) case 0: writ

25、e_order(0 x80+0 x0b); delay(1); write_data(M); delay(1); write_data(o); delay(1); write_data(n); delay(1); break; case 1: write_order(0 x80+0 x0b); delay(1); write_data(T); delay(1); write_data(u); delay(1); write_data(e); delay(1); break; case 2: write_order(0 x80+0 x0b); delay(1); write_data(W); d

26、elay(1); write_data(e); delay(1); write_data(n); delay(1); break; case 3: write_order(0 x80+0 x0b); delay(1); write_data(T); delay(1); write_data(h); delay(1); write_data(u); delay(1); break; case 4: write_order(0 x80+0 x0b); delay(1); write_data(F); delay(1); write_data(r); delay(1); write_data(i);

27、 delay(1); break; case 5: write_order(0 x80+0 x0b); delay(1); write_data(S); delay(1); write_data(a); delay(1); write_data(t); delay(1); break; case 6: write_order(0 x80+0 x0b); delay(1); write_data(S); delay(1); write_data(u); delay(1); write_data(n); delay(1); break; default:break; void display()

28、if(t0=20) t0=0; sec+; if(sec=60) sec=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; day+; week+; if(week=7) week=0; if(day=31) day=1; month+; if(month=13) month=1; year+; yearchange(0,year); change(0 x05,month); change(0 x08,day); weekchange(week); change(0 x43,hour); change(0 x46,mi

29、nute); change(0 x49,sec); /鍵盤掃描的子函數(shù),修改時(shí)間 void keyscan() uchar snum; if(s0=0) delay(5); if(s0=0) while(!s0);/松手檢測(cè) snum+; if(snum=1) /選定 秒 TR0=0; write_order(0 x80+0 x40+9); write_order(0 x0f); if(snum=2) /選定 分 write_order(0 x80+0 x40+6); write_order(0 x0f); if(snum=3) /選定 時(shí) write_order(0 x80+0 x40+3)

30、; write_order(0 x0f); if(snum=4) /選定 星期 write_order(0 x80+0 x0b); write_order(0 x0f); if(snum=5) /選定 天 write_order(0 x80+0 x08); write_order(0 x0f); if(snum=6) /選定 月 write_order(0 x80+0 x05); write_order(0 x0f); if(snum=7) /選定 年 write_order(0 x80); write_order(0 x0f); if(snum=8) /恢復(fù) 計(jì)時(shí) TR0=1; write_

31、order(0 x0c); snum=0; if(snum!=0) /增加 時(shí) 分 秒 天 月 年 if(s1=0) delay(5); if(s1=0) while(!s1); if(snum=1) sec+; if(sec=60) sec=0; change(0 x49,sec); write_order(0 x80+0 x40+9); if(snum=2) minute+; if(minute=60) minute=0; change(0 x46,minute); write_order(0 x80+0 x40+6); if(snum=3) hour+; if(hour=24) hour

32、=0; change(0 x43,hour); write_order(0 x80+0 x40+3); if(snum=4) week+; if(week=7) week=0; weekchange(week); write_order(0 x80+0 x0b); if(snum=5) day+; if(day=31) day=1; change(0 x08,day); write_order(0 x80+0 x08); if(snum=6) month+; if(month=13) month=1; change(0 x05,month); write_order(0 x80+0 x05);

33、 if(snum=7) year+; yearchange(0,year); write_order(0 x80); if(snum!=0) /減少 時(shí) 分 秒 天 月 年 if(s2=0) delay(5); if(s2=0) while(!s2); if(snum=1) sec-; if(sec=-1) sec=59; change(0 x49,sec); write_order(0 x80+0 x40+9); if(snum=2) minute-; if(minute=-1) minute=59; change(0 x46,minute); write_order(0 x80+0 x40+6); if(snum=3) hour-; if(hour=-1) hour=23; change(0 x43,hour); write_order(0 x80+0 x40+

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論