AT89C51單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)

上傳人:good****022 文檔編號(hào):116617708 上傳時(shí)間:2022-07-06 格式:DOC 頁(yè)數(shù):25 大小:425.31KB
收藏 版權(quán)申訴 舉報(bào) 下載
AT89C51單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
第1頁(yè) / 共25頁(yè)
AT89C51單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
第2頁(yè) / 共25頁(yè)
AT89C51單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
第3頁(yè) / 共25頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《AT89C51單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)》由會(huì)員分享,可在線閱讀,更多相關(guān)《AT89C51單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)(25頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 存檔資料 成績(jī): 華東交通大學(xué)理工學(xué)院 課 程 設(shè) 計(jì) 報(bào) 告 書(shū) 所屬課程名稱 單片機(jī)原理與應(yīng)用 題 目 萬(wàn)年 電子歷 分 院 電 信分院 專業(yè)班級(jí) 2007 級(jí)計(jì)算機(jī)科學(xué)與技術(shù)( 2)班 學(xué) 號(hào) 學(xué)生姓名 指導(dǎo)教師 2010 年 7 月 16 日 第 2 頁(yè) 共 25 頁(yè) 華東交通大學(xué)理工學(xué)院 課 程 設(shè) 計(jì)( 論 文 )任 務(wù) 書(shū) 專 業(yè) 07 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) ( 2)班 姓名 一、 課程設(shè)計(jì)(論文)題目 二、 課程設(shè)計(jì)(論文)工作:自 2010 年 7 月 5 日起至 2010 年 7 月 16 日止。 三、 課程設(shè)計(jì)(論文)的目的要求和任務(wù)內(nèi)容: 一 .實(shí)驗(yàn)?zāi)康?通過(guò)本次

2、課 程設(shè)計(jì)達(dá)到如下目的: 1、熟悉 AT89C51 單片機(jī)與時(shí)鐘芯片 DS1302 的應(yīng)用。 2、熟悉時(shí)鐘時(shí)、分、秒計(jì)時(shí)方法,掌握編程技巧。 3、掌握鍵盤的基本工作原理,鍵的識(shí)別,鍵抖動(dòng)和重鍵問(wèn)題的解決,鍵盤工作方式和鍵盤程序的編程。 4、掌握七段碼 LED 顯示器的結(jié)構(gòu),七段碼 LED 顯示器的工作方式和顯示程序的編程。 5、掌握串行通信程序的編寫。 二 .設(shè)計(jì)要求 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 3 頁(yè) 共 25 頁(yè) 利用 AT89C51 單片機(jī) , 時(shí)鐘芯片 DS1302、七段碼 LED 顯示器、按鍵、MAX7219 及常用外圍器件,設(shè)計(jì)一個(gè)具有動(dòng)態(tài) 顯示 功能的電子萬(wàn)年歷,具體要

3、求 如下: 1、設(shè)計(jì)實(shí)現(xiàn)電子萬(wàn)年歷的 電路系統(tǒng)構(gòu)成框圖 。 2、 能 動(dòng)態(tài) 顯示年、月、 日、星期、小時(shí)、分鐘、秒 。 3、可用鍵盤進(jìn)行校對(duì)時(shí)間,以及日期時(shí)間的修改。 學(xué)生簽名: _ 2010 年 7 月 16 日 課程設(shè)計(jì)(論文)評(píng)閱意見(jiàn) 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 4 頁(yè) 共 25 頁(yè) 評(píng)閱人 職稱 2010 年 7 月 16 日 序號(hào) 項(xiàng) 目 等 級(jí) 優(yōu)秀 良好 中等 及格 不及格 1 課程設(shè)計(jì)態(tài)度評(píng)價(jià) 2 出勤情況評(píng)價(jià) 3 任務(wù)難度評(píng)價(jià) 4 工作量飽滿評(píng)價(jià) 5 任務(wù)難度評(píng)價(jià) 6 設(shè)計(jì)中創(chuàng)新性評(píng) 價(jià) 7 論文書(shū)寫規(guī)范化評(píng)價(jià) 8 綜合應(yīng)用能力評(píng)價(jià) 綜合評(píng)定等級(jí) 華東交通大學(xué)理工學(xué)

4、院課程設(shè)計(jì)報(bào)告 第 5 頁(yè) 共 25 頁(yè) 目 錄 第一章 課程設(shè)計(jì)任務(wù)書(shū) .2 第二章 設(shè)計(jì)方案 . .6 第三章 硬件設(shè)計(jì) .7 第四章 軟件設(shè)計(jì) .15 第五章 程序清單 .17 第六章 課程設(shè)計(jì)心得 .24 第七章 參考文獻(xiàn) .25 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 6 頁(yè) 共 25 頁(yè) 第二章 設(shè)計(jì)方案 按照系統(tǒng)設(shè)計(jì)功能的要求,初步確定系統(tǒng)由主控模塊、時(shí)控模塊、顯示驅(qū)動(dòng)及顯示 模塊和鍵盤接口模塊共 4 個(gè)模塊組成,電路系統(tǒng)構(gòu)成框圖如圖所示。 圖 2.1 電子萬(wàn)年歷電路系統(tǒng)構(gòu)成框圖 主控芯片使用 51 系列 AT89C51 單片機(jī), 時(shí)鐘芯片使用美國(guó) DALLAS公司推出的一種高性能

5、、低功耗、帶 RAM的實(shí)時(shí)時(shí)鐘 DS1302。采用 DS1302作為計(jì)時(shí)芯片,可以做到計(jì)時(shí)準(zhǔn)確。更重要的是, DS1302 可以在很小電流的后備電源( 2.5 5.5V 電源,再 2.5V 時(shí)耗電小于 300nA),而且 DS1302 可以編程選擇多種充電電流來(lái)隊(duì)后備電源進(jìn)行慢速充電,可以保證后備電源基本不耗電。 顯示驅(qū)動(dòng)采用 MAX7219, MAX7219 是微處理器和共陰極八段八位 LED 數(shù)碼管顯示、圖條 /柱圖顯示或 64 點(diǎn)陣顯示接口的小型串行輸入 /輸出芯片。片內(nèi)包括 BCD 譯碼器 、多路掃描控制器、字和位驅(qū)動(dòng)器和 8 8 靜態(tài) RAM。外部只需要一個(gè)電阻設(shè)置所有 LED 顯示

6、器字段電流。 MAX7219 和微處理器只需三根導(dǎo)線連接,每位顯示數(shù)字有一個(gè)地址由微處理器寫入。允許使用者選擇每位是 BCD 譯碼或不譯碼。使用者還可選擇停機(jī)模式、數(shù)字亮度控制、從 1 8 選擇掃描位數(shù)和對(duì)所有 LED 顯示器的測(cè)試模式。 顯示模塊采用普通的 共陰極四位一體八段 LED 數(shù)碼管 。 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 7 頁(yè) 共 25 頁(yè) 第三章 硬件設(shè)計(jì) 3.1 系統(tǒng)硬件概述 3.1.1 主控制器 AT89C51 ATMEL 公司生產(chǎn)的 AT89C51 單片機(jī)采用高性能的 靜態(tài) 80C51 設(shè)計(jì),并 采用先進(jìn)工藝制造,還帶有非易失性 Flash 程序存儲(chǔ)器。它是一種高性能、

7、低功耗的 8 位 CMOS 微處理芯片,市場(chǎng)應(yīng)用最多。其主要特點(diǎn)如下: 8KB Flash ROM,可以擦除 1000 次以上,數(shù)據(jù)保存 10 年。 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 8 頁(yè) 共 25 頁(yè) 256 字節(jié)內(nèi)部 RAM; 電源控制模式 ; 時(shí)鐘可停止和恢復(fù); 空閑模式 ; 掉電模式 ; 6 個(gè)中斷源 ; 4 個(gè)中斷優(yōu)先級(jí) ; 4 個(gè) 8 位 I/O 口 ; 全雙工增強(qiáng)型 TUAR; 3 個(gè) 16 位定時(shí) /計(jì)數(shù)器: T0、 T1(標(biāo)準(zhǔn) 80C51)和增加的 T2(捕獲和比較) 全靜態(tài)工作方式: 0 24MHZ 3.1.2 時(shí)鐘電路 DS1302 DS1302 的性能特性 : 實(shí)

8、時(shí)時(shí)鐘,可對(duì)秒、分、時(shí)、日、周、月以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行比較; 用于高速數(shù)據(jù)暫存的 31*8 位 RAM; 最少引腳的串行 I/O; 2.5 5.5V 電壓工作范圍; 2.5V 時(shí)耗小于 300nA; 用于時(shí)鐘或 RAM 數(shù)據(jù)讀 /寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式; 簡(jiǎn)單的三線接口; 可選的慢速充電(至 Vcc1)的能力。 DS1302 在任何數(shù)據(jù)傳送時(shí)必須先初始化,把 RST 腳置為高電平,然后把 8 位地址和命令字裝入移位寄存器,數(shù)據(jù)在 SCLK 的上升沿被訪問(wèn)到。在開(kāi)始 8 個(gè)時(shí)鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時(shí)鐘周期在讀操作時(shí)輸出數(shù)據(jù),在寫操作時(shí)寫入數(shù)據(jù)。時(shí)鐘脈沖的

9、個(gè)數(shù)在單字節(jié)方式下為 8+8,在多字節(jié)方式下為 8+字節(jié)數(shù),最大可達(dá) 248 字節(jié)數(shù)。如果在傳送過(guò)程中置 RST 腳為低電平,則會(huì)終止本次數(shù)據(jù)傳送,并且 I/O 引腳變?yōu)槿A東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 9 頁(yè) 共 25 頁(yè) 高阻態(tài)。上電運(yùn)行時(shí),在 Vcc2.5V 之前, RST 腳必須保持低電平。只有在SCLK 為低電平時(shí),才能將 RST 置為高電平。 DS1302 的控制字如 表 所示??刂谱止?jié)的最高有效位(位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù)寫入到 DS1302 中。位 6 如果為 0, 則表示存取日歷時(shí)鐘數(shù)據(jù);為 1 則表示存取 RAM 數(shù)據(jù)。位 5 1( A4 A0

10、)指示操作單元的地址。最低有效位(位 0)如果為 0,則表示藥進(jìn)行寫操作;為 1 表示進(jìn)行讀操作??刂谱止?jié)總是從最低位開(kāi)始輸入 /輸出 。 為了提高對(duì) 32 個(gè)地址尋址能力(地址 /命令位 1 5=邏輯 1) ,可以把時(shí)鐘 /日歷或 RAM 寄存器規(guī)定為多字節(jié)( burst)方式。位 6 規(guī)定時(shí)鐘或 RAM,而位 0 規(guī)定讀或?qū)?。在時(shí)鐘 /日歷寄存器中的地址 9 31 或 RAM 寄存器中的地址 31 不能存儲(chǔ)數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?0 的位 0 開(kāi)始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?8 個(gè)寄存 器。但是,當(dāng)以多字節(jié)方式寫 RAM時(shí),為了傳送數(shù)據(jù)不必寫所有的 31 字節(jié),不管是否謝了

11、全部 31 字節(jié),所寫的每一字節(jié)都將傳送至 RAM。 表 3.1 DS1302 控制字 DS1302 共有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式。其日歷、時(shí)間寄存器及其控制字如 上 表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。 時(shí)鐘暫停:秒寄存器的位 7 定義位時(shí)鐘暫停位。當(dāng)它為 1 時(shí), DS1302停止振蕩,進(jìn)入低功耗的備份方式,通常在對(duì) DS1302 進(jìn)行寫操作時(shí)(如進(jìn)入時(shí)鐘調(diào)整程序) ,停止振蕩。當(dāng)它為 0 時(shí), 時(shí)鐘將開(kāi)始啟動(dòng)。 AM-PM/12-24 小時(shí)方式:小時(shí)寄存器的位 7 定義為 12 或 24 小時(shí)方式選擇位。它為高電平時(shí),選擇

12、 12 小時(shí)方式。在此方式下,位 5 為第二個(gè) 10小時(shí)位( 20 23h)。 DS1302 的晶振選用 32768Hz,電容推薦值為 6pF。因?yàn)檎袷庮l率較低,華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 10 頁(yè) 共 25 頁(yè) 也可以不接電容,對(duì)計(jì)時(shí)精度影響不大。 3.1.3 顯示驅(qū)動(dòng) MAX7219 MAX7219 和單片計(jì)算機(jī)連接有三條引線( DIN、 CLK、 LOAD),采用 16 位數(shù)據(jù)串行移位接收方式 八位 LED 顯示、圖條 /柱圖顯示或 64 點(diǎn)陣顯示 包括 BCD 譯碼器、多路掃描控制器、字和位驅(qū)動(dòng)器和 8 8 靜態(tài)RAM 可選擇停機(jī)模式、數(shù)字亮度控制、從 1 8 選擇掃描位數(shù)和

13、對(duì)所有LED 顯示器的測(cè)試模式 最多能驅(qū)動(dòng) 8 位 LED 顯示器 內(nèi)部 RAM 地址 01 08H 分別對(duì)應(yīng)于 DIG0 DIG7。 掃描界限寄存器(地址 0BH):該寄存器中 D0 D3 位數(shù)據(jù)設(shè)定值為 0 7H,設(shè)定值表示顯示器動(dòng)態(tài)掃描個(gè)數(shù)位 1 8。 停機(jī)寄存器(地址 0CH):當(dāng) D0=0 時(shí), MAX721 處于停機(jī)狀態(tài);當(dāng) D0=1 時(shí),處于正常工作狀態(tài)。 顯示測(cè)試寄存 器(地址 0FH):當(dāng) D0=0 時(shí), MAX7219 按設(shè)定模式正常工作;當(dāng) D0=1 時(shí),處于測(cè)試狀態(tài)。在該狀態(tài)下,不管MAX7219 處于什么模式,全部 LED 將按最大亮度顯示。 亮度寄存器(地址 0AH

14、):亮度可以用硬件和軟件兩種方法調(diào)節(jié)亮度寄存器中的 D0 D3 位可以控制 LED 顯示器的亮度。 MAX7219 通過(guò) D11 D84 位地址位譯碼 ,可尋址 14 個(gè)內(nèi)部寄存器 ,分別是 8 個(gè) LED 顯示位寄存器 ,5 個(gè)控制寄存器和 1 個(gè)空操作寄存器。 LED 顯示寄存器由內(nèi)部 8 8 靜態(tài) RAM 構(gòu)成 ,操作者可直接 對(duì)位寄存器 進(jìn)行個(gè)別尋址 , 以刷新和保持?jǐn)?shù)據(jù) , 只要 V 超過(guò) 2 V(一般為 5V)。 控制寄存器包括 : 譯碼模式 , 顯示亮度調(diào)節(jié) , 掃描限制 (選擇掃描位數(shù) ),關(guān)斷和顯示測(cè)試寄存器。 MAX7219 的驅(qū)動(dòng)程序首先必須對(duì) 5 個(gè)控制寄存器初始設(shè)置即

15、初始化 , 各控制寄存器設(shè)置含義如下 :譯碼模式選擇寄存器 (地址 F9H);MAX7219 有兩種譯碼方式 :B 譯碼方式和不譯碼方式。當(dāng)選擇不譯碼時(shí) , 8 個(gè)數(shù)據(jù)為分別一一對(duì)應(yīng) 7 個(gè)段和小數(shù)點(diǎn)位 ;B 譯碼方式是 BCD 譯碼 ,直接送數(shù)據(jù)就華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 11 頁(yè) 共 25 頁(yè) 可以顯示。實(shí)際應(yīng)用中可以按位設(shè) 置選擇 B 譯碼或是不譯碼方式。 掃描限制寄存器 : 地址 FBH;用于設(shè)置顯示的 LED 個(gè)數(shù) ( 1 8 ) , 比如當(dāng)設(shè)置為 0 xX4 時(shí) ,LED 05 顯示。 亮度調(diào)節(jié)寄存器 : 地址 FAH;共有 16 級(jí)選擇 ,用于 LED 顯示亮度的強(qiáng)弱

16、設(shè)置。 關(guān)斷模式寄存器 :地址 FCH;有兩種模式選擇 :一種是關(guān)斷狀態(tài)模式(D0 0);一種是正常操作狀態(tài) (D0 1),通常選擇正常操作狀態(tài)。 顯示測(cè)試寄存器 :地址 FFH;有兩種選擇用于設(shè)置 LED 是測(cè)試狀態(tài)還是正常操作狀態(tài) :當(dāng)在測(cè)試狀態(tài)時(shí) (D0 1)各 位全應(yīng)亮 ,一般選擇正常操作狀態(tài)( D0 0)。 3.2 主要單元電路的設(shè)計(jì) 3.2.1 顯示電路 顯示部分采用普通的共 陰 數(shù)碼管顯示,采用動(dòng)態(tài)掃描,以減少硬件電 表 3.2 MAX7219 引腳功能 路。 年月日時(shí)分秒星期共需要 17 位數(shù)碼顯示, 考慮到一次掃描 17 位數(shù)碼 管顯示時(shí)會(huì)出現(xiàn)閃爍情況, 故采用動(dòng)態(tài)掃描,可將

17、數(shù)碼管數(shù)量減少至 9 位, 也就是兩個(gè)四位一體八段 LED 顯示數(shù)碼管和一個(gè)一位 LED 數(shù)碼管 設(shè)計(jì)時(shí)數(shù)碼管同時(shí)掃描,顯示時(shí)采用串行口輸出段碼,用 MAX7219 驅(qū)動(dòng)數(shù)碼管 。 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 12 頁(yè) 共 25 頁(yè) 圖 3.2 MAX7219 主要引腳 3.2.2 鍵盤接口 鍵盤在單片機(jī)系統(tǒng)中是一個(gè)很重要的部件。為了輸入數(shù)據(jù)、查詢和控制系統(tǒng)的工作狀態(tài),都要用到鍵盤,鍵盤是人工干預(yù)計(jì)算機(jī)的主要手段。 鍵盤可分為編碼和非編碼鍵盤兩種。編碼鍵盤采用硬件線線路來(lái)實(shí)現(xiàn)鍵盤編碼,每按下一個(gè)鍵,鍵盤能自動(dòng)生成按鍵代碼,鍵數(shù)較多,而且還具有去抖動(dòng)功能。這種鍵盤使用方便,但硬件較復(fù)雜

18、, PC 機(jī)所用的鍵盤就屬于這種。非編碼鍵盤僅提供按鍵開(kāi)關(guān)工作狀態(tài),其他工作由軟件完成,這種鍵盤鍵數(shù)較少,硬件簡(jiǎn)單,一般在單片機(jī)應(yīng)用系統(tǒng)中廣泛使用。此處主要介紹該類非編碼鍵盤及其與 MCS 51 型單片機(jī)的接口。 3.2.3 時(shí)鐘電路 3.2.3.1 DS1302 工作方式簡(jiǎn)介及 數(shù)據(jù)操作原理 DS1302可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí) , 且具有閏年補(bǔ)償功能 , 工作電壓寬達(dá) 2.55.5V。采用三線接口與 CPU進(jìn)行同步通信 , 并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或 RAM數(shù)據(jù)。 DS1302內(nèi)部有一個(gè) 33x8的用于臨時(shí)性存放數(shù)據(jù)的 RAM寄存器。 DS1302是的

19、DS1202升級(jí)產(chǎn)品 , 與 DS1202兼容 , 但增加了主電源 /后背電源雙電源引腳 , 同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。 DS1302 時(shí)鐘芯片包括實(shí)時(shí)時(shí)鐘 /日歷和 31 字節(jié)的靜態(tài) RAM。它經(jīng)過(guò)一個(gè)簡(jiǎn)單的串行接口與微處理器通信。實(shí)時(shí)時(shí)鐘 /日歷提供秒、分、時(shí)、日、周、月和年等信息。對(duì)于小于 31 天的月和月末的日期自動(dòng)進(jìn)行調(diào)整,還包括閏年校正的功能。時(shí)鐘的運(yùn)行可以采用 24時(shí)或帶 AM/PM 的 12 小時(shí)華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 13 頁(yè) 共 25 頁(yè) 格式。采用三線接口與 CPU 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多字節(jié)的時(shí)鐘信號(hào)或 RAM 數(shù)據(jù)。

20、DS1302 有主電源 /后備電源雙電源引腳: Vcc1 在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電磁備份; Vcc1 在雙電池系統(tǒng)中提供主電源。在這種運(yùn)行方式中, Vcc1 里連接到后備電源,以便在沒(méi)有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。 DS1302 由 Vcc1 或 Vcc2 中較打大者供電。當(dāng) Vcc2( Vcc1+0.2V) 時(shí), Vcc2 給 DS1302 供電;當(dāng) Vcc2 Vcc1時(shí), DS1302 由 Vcc1 供電。 圖 3.5 DS1302 DS1302 在任何數(shù)據(jù)傳送時(shí)必須先初始化,把 RST 腳置為高電平,然后把 8 位地址和命令字裝入移位寄存器,數(shù)據(jù)在

21、 SCLK 的上升沿被訪問(wèn)到。在開(kāi)始 8 個(gè)時(shí)鐘周期,把命令字 節(jié)裝入移位寄存器后,另外的時(shí)鐘周期在讀操作時(shí)輸出數(shù)據(jù),在寫操作時(shí)寫入數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為 8+8,在多字節(jié)方式下為 8+字節(jié)數(shù),最大可達(dá) 248 字節(jié)數(shù)。如果在傳送過(guò)程中置 RST 腳為低電平,則會(huì)終止本次數(shù)據(jù)傳送,并且 I/O 引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在 Vcc2.5V 之前, RST 腳必須保持低電平。只有在SCLK 為低電平時(shí),才能將 RST 置為高電平。 DS1302 的控制字如圖所示??刂谱止?jié)的最高有效位(位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù)寫入到 DS1302 中。位 6 如果為 0,

22、則表示存取日歷時(shí)鐘數(shù)據(jù) ;為 1 則表示存取 RAM 數(shù)據(jù)。位 5 1( A4 A0)指示操作單元的地址。最低有效位(位 0)如果為 0,則表示藥進(jìn)行寫操作;為 1 表示進(jìn)行讀操作??刂谱止?jié)總是從最低位開(kāi)始輸入 /輸出 。 為了提高對(duì) 32 個(gè)地址尋址能力(地址 /命令位 1 5=邏輯 1) ,可以把時(shí)鐘 /日歷或 RAM 寄存器規(guī)定為多字節(jié)( burst)方式。位 6 規(guī)定時(shí)鐘或 RAM,而位 0 規(guī)定讀或?qū)?。在時(shí)鐘 /日歷寄存器中的地址 9 31 或 RAM 寄存器中華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 14 頁(yè) 共 25 頁(yè) 的地址 31 不能存儲(chǔ)數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?0

23、的位 0 開(kāi)始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?8 個(gè)寄存器。但是,當(dāng)以多字節(jié)方 式寫 RAM時(shí),為了傳送數(shù)據(jù)不必寫所有的 31 字節(jié),不管是否謝了全部 31 字節(jié),所寫的每一字節(jié)都將傳送至 RAM。 DS1302 共有 12 個(gè)寄存器,其中有 7 個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式。其日歷、時(shí)間寄存器及其控制字如下表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。 表 3.3 DS1302 控制字 時(shí)鐘暫停:秒寄存器的位 7 定義位時(shí)鐘暫停位。當(dāng)它為 1 時(shí), DS1302停止振蕩,進(jìn)入低功耗的備份方式,通常在對(duì) DS1302 進(jìn)行寫操作時(shí)(如進(jìn)入時(shí)鐘調(diào)整程序) ,停 止振蕩。當(dāng)它

24、為 0 時(shí),時(shí)鐘將開(kāi)始啟動(dòng)。 AM-PM/12-24 小時(shí)方式:小時(shí)寄存器的位 7 定義為 12 或 24 小時(shí)方式選擇位。它為高電平時(shí),選擇 12 小時(shí)方式。在此方式下,位 5 為第二個(gè) 10小時(shí)位( 20 23h)。 DS1302 的晶振選用 32768Hz,電容推薦值為 6pF。因?yàn)檎袷庮l率較低,也可以不接電容,對(duì)計(jì)時(shí)精度影響不大。 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 15 頁(yè) 共 25 頁(yè) 第四章 軟件設(shè)計(jì) 4.1 程序設(shè)計(jì) 電子萬(wàn)年歷的程序主要包括 3 個(gè)方面的內(nèi)容:一是 DS1302 從單片機(jī)中讀取數(shù)據(jù)進(jìn)行計(jì)數(shù),二是利用按鍵進(jìn)行時(shí)間的調(diào)整,三是 MAX7219 從單片機(jī)中讀取數(shù)據(jù)

25、驅(qū)動(dòng) LED 數(shù)碼管顯示時(shí)間。 AT89C51 單片機(jī)主要 I/O 口的分配, P2.0-P2.2 分別接 MAX7219 的DIN,LOAD,CLK 三個(gè)功能端, P3 接查詢式按鍵, P1.0-P1.2 分別接 DS1302 的CLK, IO, RST 端。 4.2 程序流程圖 4.2.1 顯示驅(qū)動(dòng)程序流程圖 圖 4. 1 MAX7219 顯示驅(qū)動(dòng)程序流程圖 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 16 頁(yè) 共 25 頁(yè) 4.2.2 時(shí)間控制流程圖 圖 4.2 DS1302 時(shí)控流程圖 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 17 頁(yè) 共 25 頁(yè) 第五章 程序清單 #include #inc

26、lude intrins.h #define uint unsigned char #define uint unsigned int uchar xingqi,nian,yue,ri,xiaoshi,fen,miao; uchar nianh,nianl,yueh,yuel,rih,ril,xiaoshih,xiaoshil,fenh,fenl,miaoh,miaol; uchar dd=2;sbit clk=p10; sbit dat=p11;sbit rst=p12; sbitA0=ACC0;sbitA1=ACC1; sbitA2=ACC2;sbitA3=ACC3; sbitA4=ACC

27、4;sbitA5=ACC5; sbitA6=ACC6;sbitA7=ACC7; sbit p30=p30; sbit p31=p31; sbit p32=p32; sbit p33=p33; sbit p34=p34; sbit p35=p35; sbit p36=p36; sbit p37=p37; sbit date=p20; sbit load=p21;sbit clkk=p22; uchar bdata bitmsb; sbit m7=bitmsb7; uchar x,y,c; bit flag=0; bit flagh=1; uchar code tab=0 xff, /任意數(shù) 0

28、x06,/*1*/ /共陰數(shù)碼管 0 x5B,/*2*/ 0 x4F,/*3*/ 0 x66,/*4*/ 0 x6D,/*5*/ 0 x7D,/*6*/ 0 x07,/*7*/ 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 18 頁(yè) 共 25 頁(yè) ; uchar code tab2=0 x7e,ox30,ox6d,ox7,ox33, ox5b,ox5f,ox70,ox7f,ox7b; /max7219,09 的字庫(kù) uchar code tab1=ox00,ox01,ox02,ox03,ox04,ox05,ox06,ox07, ox08,ox09,ox010,ox11,ox12,ox13,ox14,o

29、x15,ox16,ox17,ox18,ox19,ox20,ox21,ox22,ox23,ox24,ox25,ox26,ox27,ox28,ox29,ox30,ox31,ox32,ox33,ox34,ox35,ox36,ox37,ox38,ox39,ox40,ox41,ox42,ox43,ox44,ox45,ox46,ox47,ox48,ox49,ox50,ox51,ox52,ox53,ox54,ox55,ox56,ox57,ox58,ox59,ox60; void send(void) uchar count; bitmsb=x; for(count=0;count8;count+) if(m

30、7) clkk=0; date=1; -nop-(); clkk=1; else clkk=0; date=0; nop-(); clkk=1; bitmsb0; i-) dat=A0; clk=1; clk=0; ACC=ACC=1; void OutputByte(void) /從 DS1302 中讀出 i 個(gè)數(shù)據(jù) uchar i; dat=1; for(i=8;i0;i-) ACC=ACC1; A7=dat; clk=1; clk=0; dd=ACC; 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 20 頁(yè) 共 25 頁(yè) void Write(uchar addr,uchar num) rst=

31、0; clk=0; rst=1; InputByte(addr); /寫地址 InputByte(num); /寫數(shù)據(jù) clk=1; rst=0; rst=0; clk=0; rst=1; InputByte(); clk=1; rst=0; /初始化設(shè)置時(shí)間, 2008 年 5 月 27 號(hào), 23 時(shí) 58 分 00 秒 void main(void) uchar i; uint xt=0; uchar fen1,fen2,fen3,fen4; p3=oxff; Disable WP(); /非寫保護(hù) WriteSec(ox00); /秒 WriteMin(ox58); /分 WriteH

32、r(ox23); /時(shí) WriteDay(ox27); /日 WriteMn(ox05); /月 WriteYs(ox08); /年 WriteWe(ox02); /星期 /7219 設(shè)置 ready(); for(i=0;i222;i+); for(i=0;i=4; nian=fen3*10+fen2; nianh=nian/10; nianl=nian%10; Read(ox89); /讀月數(shù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; fen34; yue=fen3*10+fen2; yueh=yue/10; yuel=yue%10; Read(o

33、x87); /讀日數(shù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=4; ri=fen3*10+fen2; rih=ri/10; ril=ri%10; Read(ox85); /讀小時(shí)數(shù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; fen3=4; xiaoshi=fen3*10+fen2; xiaoshih=xiaoshi/10; xiaoshil=xiaoshi%10; Read(ox83); /讀分?jǐn)?shù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 22 頁(yè) 共

34、 25 頁(yè) fen34; fen=fen3*10+fen2; fenh=fen/10; fenl=fen%10; Read(ox81); /讀秒數(shù)據(jù) fen1=dd; miaoh=miao/10; miaol=miao%10; xingqi+; if(flag) Read(ox89); /讀月數(shù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=fen1&oxf0; fen34; yue=fen3*10+fen2; yue+; if(yue=13) yue=1; WriteMn( tab1yue); while(p32=0); if(p33=0) /日 if(flag) Read(

35、ox87); /讀日數(shù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=fen1&oxf0; fen3=4; ri=fen3*10+fen2; ri+; if(ri=32) ri=1; WriteDay(tab1ri);/ri while(p33=0) ; 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 23 頁(yè) 共 25 頁(yè) if(p34=0) /小時(shí) if(flag) Read(ox85); /讀小時(shí)數(shù)據(jù) fen1=dd; fen2=fen1&oxf0; fen3=fen1&oxf0; fen3=4; WriteHr(tab1xiaoshi); while(p34=0); if(p35

36、=0) /分 if(flag) Read(ox83); /讀分?jǐn)?shù)據(jù) fen1=dd; if(p37=0) /調(diào)整標(biāo)志 flag=flag; if(flag) WriteSec(ox80); else WriteSec(ox800); while(p37=0); if(p36=0) /調(diào)整標(biāo)志 flagh=flagh; while(p36=0); 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 24 頁(yè) 共 25 頁(yè) 第六章 程序設(shè)計(jì)心得 本次實(shí)驗(yàn)主要涉及了單片機(jī) I/O 的使用、七段碼 LED 顯示、按鍵識(shí)別以及雙機(jī)串行通信方面的知識(shí)。 首先設(shè)計(jì)實(shí)現(xiàn)電子萬(wàn)年歷并不困難,之前有過(guò)類似的實(shí)驗(yàn)。實(shí)現(xiàn)串行通信是

37、這次的難點(diǎn),我們?cè)趯?shí)驗(yàn)中首先實(shí)驗(yàn)了單工通信,解決了這方面的困難后在進(jìn)一步進(jìn)行雙工的實(shí)現(xiàn),最終完成了實(shí)驗(yàn)。 21 世紀(jì)是計(jì)算機(jī)全面應(yīng)用的時(shí)代,很多 人不是在制造計(jì)算機(jī)而是在使用計(jì)算機(jī)。在使用計(jì)算機(jī)的人群中只有從事嵌入式系統(tǒng)應(yīng)用的人才真正地進(jìn)入到計(jì)算機(jī)系統(tǒng)內(nèi)部軟硬件體系中,才能真正領(lǐng)會(huì)計(jì)算機(jī)的智能化本質(zhì)并掌握智能化設(shè)計(jì)的知識(shí)。通過(guò)這次難得的實(shí)踐機(jī)會(huì)給了我很大收獲,不僅鞏固了原有的知識(shí),并增強(qiáng)了動(dòng)手能力,培養(yǎng)了面對(duì)問(wèn)題的分析能力以及遇到困難如何應(yīng)對(duì)。 短暫的課程設(shè)計(jì)很快就要過(guò)去了,在本次單片機(jī)課程設(shè)計(jì)過(guò)程中我有了新的成長(zhǎng)和收獲,通過(guò)單片機(jī)課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)

38、際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷 地戰(zhàn)勝自己,超越自己。 華東交通大學(xué)理工學(xué)院課程設(shè)計(jì)報(bào)告 第 25 頁(yè) 共 25 頁(yè) 第七章 參考文獻(xiàn) 1 王新穎 單片機(jī)原理及應(yīng)用 .北京大學(xué)出版社 2008 2 陳忠平 單片機(jī)基礎(chǔ)與最小系統(tǒng)實(shí)踐 .北京航空航天大學(xué)出版社 3 竇振中 單片機(jī)外圍器件實(shí)用手冊(cè)存儲(chǔ)器分冊(cè) .北京航空航天大學(xué)出版 4 沈慶陽(yáng),郭庭吉 8051 單片機(jī)實(shí)踐與應(yīng)用 .清華大學(xué)出版社 5 侯玉寶,李成群 基于 Proteus 的 51 系列單片機(jī)設(shè)計(jì)與仿真 電子工業(yè)出版社 6 陳明熒 8051 單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教程 M北京:清華大學(xué)出版 7 郁慧娣微機(jī)系統(tǒng)及其接口技術(shù) M 南京 :東南大學(xué)出版社, 1999 年 8 何立民單片機(jī)高級(jí)教程 M北京 :北京航空航天大學(xué)出版社, 2003年 9 王毓銀數(shù)字電路邏輯設(shè)計(jì) M北京:高等教育出版社 10 李廣弟 . 單片機(jī)原理及應(yīng)用 M 北京航空航天大學(xué)出版社 ,2004 年 . 11 謝嘉奎電子線路 M.高等教育出版社 ,1999 年 .

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!