AT89C51單片機課程設(shè)計說明書

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

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

10 積分

下載資源

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

資源描述:

《AT89C51單片機課程設(shè)計說明書》由會員分享,可在線閱讀,更多相關(guān)《AT89C51單片機課程設(shè)計說明書(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25、驅(qū)動 LED 數(shù)碼管顯示時間。 AT89C51 單片機主要 I/O 口的分配, P2.0-P2.2 分別接 MAX7219 的DIN,LOAD,CLK 三個功能端, P3 接查詢式按鍵, P1.0-P1.2 分別接 DS1302 的CLK, IO, RST 端。 4.2 程序流程圖 4.2.1 顯示驅(qū)動程序流程圖 圖 4. 1 MAX7219 顯示驅(qū)動程序流程圖 華東交通大學(xué)理工學(xué)院課程設(shè)計報告 第 16 頁 共 25 頁 4.2.2 時間控制流程圖 圖 4.2 DS1302 時控流程圖 華東交通大學(xué)理工學(xué)院課程設(shè)計報告 第 17 頁 共 25 頁 第五章 程序清單 #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è)計報告 第 18 頁 共 25 頁 ; uchar code tab2=0 x7e,ox30,ox6d,ox7,ox33, ox5b,ox5f,ox70,ox7f,ox7b; /max7219,09 的字庫 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 個數(shù)據(jù) uchar i; dat=1; for(i=8;i0;i-) ACC=ACC1; A7=dat; clk=1; clk=0; dd=ACC; 華東交通大學(xué)理工學(xué)院課程設(shè)計報告 第 20 頁 共 25 頁 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è)置時間, 2008 年 5 月 27 號, 23 時 58 分 00 秒 void main(void) uchar i; uint xt=0; uchar fen1,fen2,fen3,fen4; p3=oxff; Disable WP(); /非寫保護 WriteSec(ox00); /秒 WriteMin(ox58); /分 WriteH

32、r(ox23); /時 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ù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; fen3=4; xiaoshi=fen3*10+fen2; xiaoshih=xiaoshi/10; xiaoshil=xiaoshi%10; Read(ox83); /讀分數(shù)據(jù) fen1=dd; fen2=fen1&oxof; fen3=fen1&oxfo; 華東交通大學(xué)理工學(xué)院課程設(shè)計報告 第 22 頁 共

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

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

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

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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