51電子時鐘畢業(yè)設計說明書
《51電子時鐘畢業(yè)設計說明書》由會員分享,可在線閱讀,更多相關《51電子時鐘畢業(yè)設計說明書(31頁珍藏版)》請在裝配圖網上搜索。
1、 I 摘 要 現(xiàn)代生活的人們越來越重視起了時間觀念,可以說是時間和金錢劃上了等號。對于 那些對時間把握非常嚴格和準確的人或事來說,時間的不準確會帶來非常大的麻煩,所 以以數(shù)碼管為顯示器的時鐘比指針式的時鐘表現(xiàn)出了很大的優(yōu)勢。本次設計主要對電子 時鐘進行設計,采用 AT89C51 單片機來保證電子時鐘的工作,并用 LED 數(shù)碼管時、分、 秒,以 24 小時計時方式,根據數(shù)碼管動態(tài)顯示原理來進行顯示,用 12MHz 的晶振產生振 蕩脈沖,定時器計數(shù)。在此次設計中,電路具有顯示時間的其本功能,還可以實現(xiàn)對時 間的調整。 Abstract Modern life of people more and
2、more attention to the concept of time, can be said to be the time and money is a sign. For those who hold the person or thing is very strict in time and accurately, the time of inaccurate will bring great trouble, so as to control the display of digital clock than the clock pointer showed a big adva
3、ntage. The design of the main design of the electronic clock, use AT89C51 microcontroller to ensure the electronic clock, and the LED digital tube, FENs and MIAOs, 24 SHIs timer mode, according to digital control theory to dynamic display to display, use the 12MHz crystal oscillation pulse, the time
4、r count. In this design, the circuit has its time the function, but also can achieve the adjustment of time. II 目錄 第一章 緒論 .1 1.1 設計背景 .1 1.2 單片機的發(fā)展 .1 第二章 設計方案 .4 2.1 任務要求 .4 2.2 設計原理 .4 2.3 設計方案的確定 .4 第三章 硬件設計 .5 3.1 單片機的選型 .5 3.2 時鐘電路 .7 3.3 復位電路 .7 3.4 顯示電路 .7 3.5 按鍵電路 .9 3.6 74LS245 驅動器 .10 3.7
5、系統(tǒng)原理圖 .11 第四章 軟件設計 .13 4.1 主程序 .13 4.2 調時子程序 .14 4.3 定時中斷子程序 .15 4.4 軟件消抖 .17 第五章 調試與運行 .19 5.1 PROTEUS ISIS 的介紹 .19 5.2 仿真結果 .19 第六章 總結 .21 參考文獻 .22 致謝 .23 無錫職業(yè)技術學院畢業(yè)設計說明書 I 附錄 .24 無錫職業(yè)技術學院畢業(yè)設計說明書 1 第一章 緒論 1.1 設計背景 數(shù)字鐘是一種用數(shù)字電路技術實現(xiàn)時、分、秒計時的鐘表。與機械鐘相比具有更高的準 確性和直觀性,具有更長的使用壽命,已得到廣泛的使用。數(shù)字鐘的設計方法有許多種,例 如可用中
6、小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需 要的外圍電路組成電子鐘,還可以利用單片機來實現(xiàn)電子鐘等等。這些方法都各有其特點, 其中利用單片機實現(xiàn)的電子鐘具有編程靈活,以便于功能的擴展。 近年來隨著計算機在社會領域的滲透和大規(guī)模集成電路的發(fā)展,單片機的應用越來越普 及了,并且由于它具有功能強,體積小,功耗低,價格便宜,工作可靠,使用方便等特點, 使單片機在電子和一些自動化行業(yè)中應用也越來越廣泛了。數(shù)字鐘的組成模塊主要由一個 AT89C51 單片機模塊、用于放大信號來驅動數(shù)碼管顯示的 74LS245、用于顯示時間的數(shù)碼管 顯示模塊、還有用于復位的按鍵部分,還有電源等部
7、分組成。 數(shù)字鐘已成為人們日常生活中:必不可少的必需品,廣泛用于個人家庭以及車站、碼頭、 劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數(shù)字集 成電路技術的發(fā)展和采用了先進的石英技術,使數(shù)字鐘具有走時準確、性能穩(wěn)定、攜帶方便 等優(yōu)點,它還用于計時、自動報時及自動控制等各個領域。 1.2 單片機的發(fā)展 單片機經過 1、2、3、3 代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價格、 大存儲容量、強 I/O 功能及較好的結構兼容性方向發(fā)展。其發(fā)展趨勢不外乎以下幾個方面: 1、多功能 單片機中盡可能地把所需要的存儲器和 I/O 口都集成在一塊芯片上,使得單片機可以實
8、現(xiàn)更多的功能。比如 A/D、PWM、PCA(可編程計數(shù)器陣列) 、WDT(監(jiān)視定時器-看家狗) 、 高速 I/O 口及計數(shù)器的捕獲/比較邏輯等。 有的單片機針對某一個應用領域,集成了相關的控制設備,以減少應用系統(tǒng)的芯片數(shù)量。 例如,有的芯片以 51 內核為核心,集成了 USB 控制器、SMART CARD 接口、MP2 解碼器、CAN 或者 I*I*C 總線控制器等,LED、LCD 或 VFD 顯示驅動器也開始集成在 8 位單片機中。 2、高效率和高性能 為了提高執(zhí)行速度和執(zhí)行效率,單片機開始使用 RISC、流水線和 DSP 的設計技術,使 單片機的性能有了明顯的提高,表現(xiàn)為:單片機的時鐘頻率
9、得到提高;同樣頻率的單片機運 行效率也有了很大的提升;由于集成度的提高,單片機的尋址能力、片內 ROM(FLASH)和 RAM 的容量都突破了以往的數(shù)量和限制。 由于系統(tǒng)資源和系統(tǒng)復雜程度的增加,開始使用高級語言(如 C 語言)來開發(fā)單片機的 無錫職業(yè)技術學院畢業(yè)設計說明書 2 程序。使用高級語言可以降低開發(fā) 難度,縮短開發(fā)周期,增強軟件的可讀性和可移植性, 便于改進和擴充功能。 3、低電壓和低功耗 單片機的嵌入式應用決定了低電壓和低功耗的特性十分重要。由于 CMOS 等工藝的大量 采用,很多單片機可以在更低的電壓下工作(1.2V 或 0.9V) ,功耗已經降低到 uA 級。這些 特性使得單片
10、機系統(tǒng)可以在更小電源的支持下工作更長的時間。 4、低價格 單片機應用面廣,使用數(shù)量大,帶來的直接好處就是成本的降低。目前世界各大公司為 了提高競爭力,在提高單片機性能的同時,十分注意降低其產品的價格。 下面大致介紹一下單片機的主要應用領域和特點。 (1)家用電器領域 用單片機控制系統(tǒng)取代傳統(tǒng)的模擬和數(shù)字控制電路,使家用電器(如洗衣機、空調、冰 箱、微波爐、和電視機等)功能更完善,更加智能化和易于使用。 (2)辦公自動化領域 單片機作為嵌入式系統(tǒng)廣泛應用于現(xiàn)代辦公設備,如計算機的鍵盤、磁盤驅動、打印機、 復印機、電話機和傳真機等。 (3)商業(yè)應用領域 商業(yè)應用系統(tǒng)部分與家用和辦公應用系統(tǒng)相似,但
11、更加注重設備的穩(wěn)定性、可靠性和安 全性。與通用計算機相比,這些系統(tǒng)由于比較封閉,可以更有效地防止病毒和電磁干擾等, 可靠性更高。 (4)工業(yè)自動化 在工業(yè)控制和機電一體化控制系統(tǒng)中,除了采用工控計算機外,很多都是以單片機為核 心的單片機和多機系統(tǒng)。 (5)智能儀表與集成智能傳感器 目前在各種電氣測量儀表中普遍采用了單片機應用系統(tǒng)來代替?zhèn)鹘y(tǒng)的測量系統(tǒng),使得測 量系統(tǒng)具有存儲、數(shù)據處理、查詢及聯(lián)網等智能功能。將單片機和傳感器相結合,可以構成 新一代的智能傳感器。 (6)現(xiàn)代交通與航空航天領域 通常應用于電子綜合顯示系統(tǒng)、動力監(jiān)控系統(tǒng)、自動駕駛系統(tǒng)、通信系統(tǒng)以及運行監(jiān)視 系統(tǒng)等。這些領域對體積、功耗
12、、穩(wěn)定性和實時性的要求往往比商用系統(tǒng)還要高。 無錫職業(yè)技術學院畢業(yè)設計說明書 3 第二章 設計方案 2.1 任務要求 1.通過單片機內定時器控制走時,準確持續(xù)走時,調時不影響走時。 2.在 LED 數(shù)碼管上顯示時、分、秒。 3.能對時間進行校準。 2.2 設計原理 采用 AT89C51 芯片作為硬件核心,其內部采用 Flash ROM,具有 4KB ROM 存儲空間,能 于 3V 的超低壓工作,本系統(tǒng)的計時方案是利用單片機內部的定時/計數(shù)器進行中斷定時, 配合軟件延時實現(xiàn)對時、分、秒的計時。 圖 1.1 2.3 設計方案的確定 電子鐘的電路圖主要由單片機(AT89C51) 、按鍵電路、驅動顯示
13、電路和 LED 顯示器四部 分組成,它主要實現(xiàn)時鐘的顯示,以及對時、分、秒進行調整,即實現(xiàn)調時的功能。 (1)顯示方案 數(shù)碼管顯示方法可分為靜態(tài)顯示和動態(tài)顯示兩種。 方案一:動態(tài)驅動是將所有數(shù)碼管的 8 個顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一 起,另外為每個數(shù)碼管的公共極 COM 增加位選通控制電路,位選通由各自獨立的 I/O 線控制, 當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個數(shù)碼管會顯示出 字形,取決于單片機對位選通 COM 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通 控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各
14、個數(shù)碼管 的的 COM 端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數(shù) 碼管的點亮時間為 12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上 各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據, 時鐘電路 復位電路 按鍵 AT89C51 LED 數(shù)碼管 74LS24 5 位選 段選時鐘電路 復位電路 按鍵 無錫職業(yè)技術學院畢業(yè)設計說明書 4 不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的 I/O 端口,而且功耗 更低。 方案二: 靜態(tài)驅動也稱直流驅動。靜態(tài)驅動是指每個數(shù)碼管的每一個段碼都由一個單 片機的 I/
15、O 端口進行驅動,或者使用如 BCD 碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的 優(yōu)點是編程簡單,顯示亮度高,缺點是占用 I/O 端口多,如驅動 5 個數(shù)碼管靜態(tài)顯示則需要 58=40 根 I/O 端口來驅動,要知道一個 89S51 單片機可用的 I/O 端口才 32 個呢:) ,實際 應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。 由于本次設計是對時間進行顯示,如采用靜態(tài)顯示,則所占用的 I/O 口較多,電路較復 雜,所以在此選擇的是方案二,采用動態(tài)顯示。 (2)按鍵方案 方案一:獨立式按鍵。按鍵的各個按鍵相互獨立,每個按鍵獨立地與一根數(shù)據輸入線 (單片機并行接口或其他芯片的并行
16、接口)連接。獨立式鍵盤配置靈活,軟件結構簡單,但 每個按鍵必須占用一根接口線,在按鍵數(shù)量不多時,接口線占用多。 方案二:單個按鍵。只有一個按鍵實現(xiàn)所有控制功能。 本次設計選擇方案一使用三個按鍵。 (3)計時方案 采用軟件控制: 利用單片機內部的定時/計數(shù)器進行定時,配合軟件定時實現(xiàn)時、分、秒的計時。該方 案能夠使設計者,在設計的過程中容易實現(xiàn),且節(jié)省硬件成本,因此本系統(tǒng)將采用軟件方法 實現(xiàn)計時。 無錫職業(yè)技術學院畢業(yè)設計說明書 5 第三章 硬件設計 3.1 單片機的選型 由于 AT89C51 芯片的普及性和便捷性,所以選擇它作為 AT89C51 提供以下標準功能: 4k 字節(jié) Flash 閃速
17、存儲器,128 字節(jié)內部 RAM,32 個 I/O 口線,兩個 16 位定時/計數(shù)器, 一個 5 向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時, AT89C51 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止 CPU 的工作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。 圖 3-1 AT89C51 管腳說明: VCC:供電電壓。 GND:接地。 (1) P0 端口: P0 是一個 8 位漏極開路型雙向 I/O 端口,端口置 1(對端口寫
18、 1)時作高 阻抗輸入端。作為輸出口時能驅動 8 個 TTL。 在訪問外部程序和外部數(shù)據存儲器時,P0 口是分時轉換的地址(低 8 位)/數(shù)據總線,訪 無錫職業(yè)技術學院畢業(yè)設計說明書 6 問期間內部的上拉電阻起作用。 對內部 Flash 程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接 上拉電阻。 (2) P1 端口: P1 是一個帶有內部上拉電阻的 8 位雙向 I/0 端口。輸出時可驅動 4 個 TTL。端口置 1 時,內部上拉電阻將端口拉到高電平,作輸入用。 對內部 Flash 程序存儲器編程時,接收低 8 位地址信息。 (3) P2 端口: P2 是一個帶有內部上拉電阻的
19、 8 位雙向 I/0 端口。輸出時可驅動 4 個 TTL。端口置 1 時,內部上拉電阻將端口拉到高電平,作輸入用。對內部 Flash 程序存儲器 編程時,接收高 8 位地址和控制信息。 在訪問外部程序和 16 位外部數(shù)據存儲器時,P2 口送出高 8 位地址。而在訪問 8 位地址 的外部數(shù)據存儲器時其引腳上的內容在此期間不會改變。 (4) P3 口:P3 口管腳是 8 個帶內部上拉電阻的雙向 I/O 口,可接收輸出 4 個 TTL 門電 流。當 P3 口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下 拉為低電平,P3 口將輸出電流這是由于上拉的緣故。 P3 口也可作為 A
20、T89C51 的一些特殊功能口,如下表所示: 口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷 0) P3.3 /INT1(外部中斷 1) P3.4 T0(計時器 0 外部輸入) P3.5 T1(計時器 1 外部輸入) P3.6 /WR(外部數(shù)據存儲器寫選通) P3.7 /RD(外部數(shù)據存儲器讀選通) P3 口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持 RST 腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。 在 FLA
21、SH 編程期間,此引腳用于輸入編程脈沖。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩 次/PSEN 有效。但在訪問外部數(shù)據存儲器時,這兩次有效的/PSEN 信號將不出現(xiàn)。 /EA/VPP:當/EA 保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH) ,不管是 否有內部程序存儲器。注意加密方式 1 時,/EA 將內部鎖定為 RESET;當/EA 端保持高電平 無錫職業(yè)技術學院畢業(yè)設計說明書 7 時,此間內部程序存儲器。在 FLASH 編程期間,此引腳也用于施加 12V 編程電源(VPP) 。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的
22、輸入。 XTAL2:來自反向振蕩器的輸出。 3.2 時鐘電路 晶體振蕩器電路給數(shù)字鐘提供一個頻率穩(wěn)定準確的方波信號,可保證數(shù)字鐘的走時準確 及穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路。如圖 2-1 所示。 圖 3-2 單片機時鐘電路圖 3.3 復位電路 當上電時,電源對電容充電,對單片機復位,使單片機從 00H 開始執(zhí)行程序。 如下圖 2-3 所示: 圖 3-3 上電復位電路 上電復位要求接通電源后,單片機自動實現(xiàn)復位操作。常用的上電復位如上圖所示。上 電瞬間 RST 引腳獲得高電平,隨著電容 C1 的充電,RST 引腳的高電平將逐漸下降。 3.4 顯示電路 七段
23、LED 顯示器的原理 由于系統(tǒng)要顯示的內容較簡單,顯示量不多,所以選用數(shù)碼管既方便又經濟。LED 有共 無錫職業(yè)技術學院畢業(yè)設計說明書 8 陰極和共陽極兩種。如圖 2-4 所示。 二極管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接 在一起,接入+5V 的電壓。一位顯示器由 8 個發(fā)光二極管組成,其中 7 個發(fā)光二極管構成字 型“8”的各個筆劃(段)ag,另一個小數(shù)點為 dp 發(fā)光二極管。當在某段發(fā)光二極管施加 一定的正向電壓時,該段筆劃即亮;不加電壓則暗。 圖 3-4 LED 數(shù)碼管結構原理圖及實物圖 LED 顯示數(shù)碼管通常由硬件 7 段譯碼集成電路,完成從數(shù)字到顯示
24、碼的譯碼驅動。本系 統(tǒng)采用軟件譯碼,以減小體積,降低成本和功耗,軟件譯碼的另一優(yōu)勢還在于比硬件譯碼有 更大的靈活性。所謂軟件譯碼,即由單片機軟件完成從數(shù)字到顯示碼的轉換。從 LED 數(shù)碼管 結構原理可知,為了顯示字符,要為 LED 顯示數(shù)碼管提供顯示段碼,組成一個“8”字形字 符的 7 段,再加上 1 個小數(shù)點位,共計 8 段,因此提供給 LED 數(shù)碼管的顯示段碼為 1 個字節(jié)。 各段碼位與顯示段的對應關系如表 2-2。 表 2-2 各段碼位的對應關系 無錫職業(yè)技術學院畢業(yè)設計說明書 9 段碼位 D0 D1 D2 D3 D4 D5 D6 D7 顯示段 A B C D E F G DP 將 AT
25、89C2051 的 P2.0P2.7 分別與共陰數(shù)碼管的 ag 及 dp 相連,高電平的位對應的 LED 數(shù)碼管的段暗,低電平的位對應的 LED 數(shù)碼管的段亮,這樣,當 P0 口輸出不同的段碼, 就可以控制數(shù)碼管顯示不同的字符。 表 2-3 LED 顯示段碼 字型 共陽極段碼 共陰極段碼 0 C0H 3FH 1 F9H 06H 2 A4H 5BH 3 BOH 4FH 4 99H 66H 5 92H 6DH 6 82H 7DH 7 F8H 07H 8 80H 7FH 9 90H 6FH 數(shù)碼管顯示器有二種工作方式,即靜態(tài)顯示方式和動態(tài)掃描顯示方式。 動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量
26、的 I/O 端口,而且功耗更低,所以 本次設計使用動態(tài)顯示。 3.5 按鍵電路 按鍵的開關狀態(tài)通過一定的電路轉換為高、低電平狀態(tài)。按鍵閉合過程在相應的 I/O 端 口形成一個負脈沖。閉合和釋放過程都要經過一定的過程才能達到穩(wěn)定,這一過程是處于高、 無錫職業(yè)技術學院畢業(yè)設計說明書 10 低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的常長短與開關的機械特性有關, 一般在 5-10ms 之間。為了避免 CPU 多次處理按鍵的一次閉合,應采用措施消除抖動。本文 采用的是獨立式按鍵,直接用 I/O 口線構成單個按鍵電路,按鍵占用一條 I/O 口線。如圖 2-5 所示。 圖 3-5 按鍵電路 圖 3
27、-6 按鍵實物圖 為了充分利用單片機 I/O 口本設計采用動態(tài)顯示,單片機 P1 口接段碼,P2 口接位選, 然而 P1 不能直接驅動數(shù)碼管,所以應使用驅動。 3.6 74LS245 介紹 74LS245 是常用的芯片,用來驅動 led 或者其他的設備,它是 8 路同相三態(tài)雙向總線收 發(fā)器,可雙向傳輸數(shù)據。 74LS245 還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據。 當 80C51 單片機的 P1 口總線負載達到或超過 P1 最大負載能力時,必須接入 74LS245 等 總線驅動器。 當片選端/CE 低電平有效時,DIR=“0” ,信號由 B 向 A 傳輸;(接收) DIR=“1”,信號
28、由 A 向 B 傳輸;(發(fā)送)當 CE 為高電平時,A、B 均為高阻態(tài)。 無錫職業(yè)技術學院畢業(yè)設計說明書 11 E 是 H 時,A,B 為高阻 E 為 L,DIR 為 L 時,BA E 為 L,DIR 為 H 時,AB 圖 3-7 74LS245 引腳圖及實物圖 3.7 系統(tǒng)原理圖 AT89C51 的 P3 口接入三個按鍵,對時、分、秒進行調整。P1 口輸出字段碼,控制要顯 示的字符,外接 74LS245 芯片,驅動 LED 顯示。P2 口輸出字位碼,去控制要顯示的位,其 原理圖如圖 2-7 所示。 無錫職業(yè)技術學院畢業(yè)設計說明書 12 P1.01 P1.12 P1.23 P1.34 P1.4
29、5 P1.56 P1.67 P1.78 RST9 P3.0/RXD10 P3.1/TXD11 P3.2/INT012 P3.3/INT113 P3.4/T014 P3.5/T115 P3.6/WR16 P3.7/RD17 XTAL218 XTAL119 GND20 A8/P2.0 21A9/P2.1 22A10/P2.2 23A11/P2.3 24 A12/P2.4 25A13/P2.5 26A14/P2.6 27 A15/P2.7 28PSEN 29ALE/PROG 30 EA 31AD7/P0.7 32AD6/P0.6 33 AD5/P0.5 34AD4/P0.4 35AD3/P0.3 3
30、6 AD2/P0.2 37AD1/P0.1 38AD0/P0.0 39 Vcc 40 U1 AT89C51C1 22PF C222PF X1 12MHZ S1 SW-PB S2 SW-PB S3 SW-PB RST C310ufVCC VCC VCC G19 DIR1 A12 B1 18A23 B2 17 A34 B3 16A45 B4 15 A56 B5 14A67 B6 13 A78 B7 12A89 B8 11 U2 74LS245 R110k RST S0S1 S2S3 S4S5 S6S7 VCC b0b1 b2b3 b4b5 12 34 56 7 a b c d e f g8 dp
31、9 GND a bf c g de dp a b c d e f g dp 9 GND a bf c g de dp a b c d e f g dp 9 GND a bf c g de dp a b c d e f g dp 9 GND a bf c g de dp a b c d e f g dp 9 GND a bf c g de dp a b c d e f g dp 9 GND a bf c g de dp b0 b1 b2 b3 b4 b5 S0S1 S2S3 S4S5 S6S7 A0A1 A2A3 A4A5 A6A7 A0A1 A2A3 A4A5 A6A7 圖 3-8 電子鐘原理
32、圖 當接入電源時,數(shù)字電子鐘以秒為單位開始計時。運行狀態(tài)下,按下控制按鍵 S1,對 小時進行調整;按下 S2 調整分鐘;按下 S3 對秒清零。這樣通過三個按鍵,分別對時、分、 秒進行調整,從而實現(xiàn)調時。 無錫職業(yè)技術學院畢業(yè)設計說明書 13 第四章 軟件設計 4.1 主程序 初始化將時、分、秒各單元的內容清空,置 T0 為計數(shù)器方式 1,分別給計數(shù)器的高 8 位和低 8 位賦計數(shù)初值,啟動 T0 工作。鍵入一個按鍵,如執(zhí)行此動作,秒值加 1,否則重 新鍵如按鍵。 主程序模塊:主程序流程圖,如圖 3-1 所示 圖 4-1 主程序流程圖 N 內存單元清零 調時子程序 顯示程序 T0 為 16 位計
33、數(shù)器 允許 T0 中斷 開始 按鍵控制子 程序 Y 中斷返回 無錫職業(yè)技術學院畢業(yè)設計說明書 14 4.2 調時子程序 調時子程序用于調整時間。以秒為例,按下按鍵 S2,判斷 S2 是否真的被按下,若沒有 鍵按下,轉到 MIN_SET 程序段,再次鍵入按鍵,重新判斷。若按鍵按下了,則調用延 時程序,消除抖動現(xiàn)象分值加 1,當分值大于 60 時,分清零,進行下一次計時,同時 分加一,并轉到 DISP 顯示。此過程循環(huán)執(zhí)行,其程序流程圖如圖 4-2 所示: 圖 4-2 鍵輸入程序流程圖 MIN_SET: CALL DISP ;調用顯示程序 JNB P3.2,MIN_SET ;P3.2 按下跳到調分
34、程序 INC 76H ;分的個位加 1 MOV R5,76H CJNE R5,#10,MIS1 ;個位不為 10 跳到 MIS1 MOV 76H,#0 ;個位清零 INC 77H ;十位加 1 MOV R5,77H CJNE R5,#6,MIS1 ;十位不為 6 跳到 MIS1 MOV 77H,#0 ;分清零 MOV 76H,#0 RET MIS1: RET ;調分返回 顯示 S2 是否按下 否按下 分值加 1 分是否大 于 60 清零 N 調用延時 Y Y N 無錫職業(yè)技術學院畢業(yè)設計說明書 15 4.3 定時器中斷子程序 圖 4-3 定時器中斷流程圖 N 24 小時是否到 分單元清零,時單
35、元加 1 N N N Y Y 時單元清零 時間顯示 中斷返回 開始 是否運行 60 秒時間是否到 60 分鐘是否到 秒單元加 1 秒單元清零,分單元加 1 Y Y 無錫職業(yè)技術學院畢業(yè)設計說明書 16 INTT0: PUSH ACC ;入棧,保護現(xiàn)場 PUSH PSW CLR ET0 ;關閉中觀允許 CLR TR0 ;關閉中斷 MOV A,#0B7H ;中斷響應時間同步修正 ADD A,TL0 ;低 8 位初值修正 MOV TL0,A MOV A,#3CH ;高 8 位初值修正 ADDC A,TH0 MOV TH0,A SETB TR0 ;開啟定時器 T0 DJNZ R4,OUT ;20 次中
36、斷未到中斷退出 ADDS: MOV R4,#14H ;20 次中斷到重賦初值 MOV R0,#71H ;指向秒計時單元 ACALL ADD1 ;調用 ADD1 MOV A,R3 ;秒數(shù)據放入 A CLR C ;清零進位標志 CJNE A,#60H,ADDMM ;秒是否到了 60,是則跳轉 ADDMM: JC OUT ;小雨 60 秒中斷退出 ACALL CLR0 ;等于 60 秒調用 CLR0 清零秒 MOV R0,#77H ;指向分計時單元 ACALL ADD1 ;調用 ADD1 MOV A,R3 ;分數(shù)據放入 A CLR C ;清零進位標志 CJNE A,#60H,ADDH ;分是否到了
37、60,是則跳轉 ADDH: JC OUT ;小于 60 分時中斷退出 ACALL CLR0 ;等于 60 分調用 CLR0 清零秒 MOV R0,#79H ;指向時計時單元 無錫職業(yè)技術學院畢業(yè)設計說明書 17 ACALL ADD1 ;調用 ADD1 MOV A,R3 ;時數(shù)據放入 A CLR C ;清零進位標志 CJNE A,#24H,HOUR ;時是否到了 24,是則跳轉 4.4 軟件消抖 按鍵抖動時間一般為 5ms10ms,因此去抖動 10MS,軟件消抖有定時器定時,和利用延 時子程序兩種方式。 DL1MS: MOV R6,#10 DL1: MOV R7,#249 DL2: NOP NO
38、P DJNZ R7,DL2 DJNZ R6,DL1 RET END 無錫職業(yè)技術學院畢業(yè)設計說明書 18 第五章 調試與運行 5.1 Proteus ISIS 的介紹 Proteus ISIS 是英國 Labcenter 公司開發(fā)的電路分析與實物仿真軟件。它運行于 Windows 操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是: 實現(xiàn)了單片機仿真和 SPICE 電路仿真相結合。具有模擬電路仿真、數(shù)字電路仿真、單片機 及其外圍電路組成的系統(tǒng)的仿真、RS232 動態(tài)仿真、I2C 調試器、SPI 調試器、鍵盤和 LCD 系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分
39、析儀、信號發(fā)生器等。支持主流單 片機系統(tǒng)的仿真。目前支持的單片機類型有:68000 系列、8051 系列、AVR 系列、PIC12 系 列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各種外圍芯片。提供軟件調試功 能。在硬件仿真系統(tǒng)中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄 存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟 件編譯和調試環(huán)境,如 Keil C51 uVision2 等軟件。 具有強大的原理圖繪制功能。總之, 該軟件是一款集單片機和 SPICE 分析于一身的仿真軟件,功能極其強大。 5.2 調試和運行 在
40、 KEIL (單片機匯編) C51 軟件中編寫好的程序,將程序放入單片機仿真軟件中,結 合硬件電路進行調試與運行。 1.程序通電開始狀態(tài) XTAL218XTAL119 ALE30E31PSN29 RST9 P0./AD0390.1/ 138P0.2/AD2370.3/ 336P0.4/AD435 0.5/ 534P0.6/AD630.7/ 732 P1.0/T21 1./2EX2P1.23 1.34P1.45 1.56P1.67 1.78 P3.0/RXD103.1/T 1P3.2/IN0123./IT113P3.4/014 P3.7/RD173.6/W163.5/T115 P2.7/A152
41、8 P2.0/A8212.1/92P2./A10232.3/1 24P2.4/A1225 2.5/13262.6/1427 U1 AT89C52 C12pFC2 2pFC3 10uF X112mhzR1 10k A02B018 13117 A24B216 35315 A46B414 57513 A68B612 7971 CE19 AB/A1 U2 74LS245 無錫職業(yè)技術學院畢業(yè)設計說明書 19 2.按動 S1 鍵,對時調時 XTAL218XTAL119 ALE30E1PSN29 RST9 P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435 .5/54P0.6/
42、AD63.7/72 P1.0/T21 ./EX2P1.23 .34P1.45 .56P1.67 .78 P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014 P3.7/RD17.6/W6.5/T15 P2.7/A1528 P2.0/A821.1/9P2./A023.3/1 4P2.4/A225 .5/136.6/47 U1 AT89C52 C12pFC2 2pFC3 10uF X112mhzR1 10k A02B018 1317 A24B216 3535 A46B414 5753 A68B612 797 CE19 AB/A U2 74LS245 3.按動 S2 鍵,對分
43、調時 XTAL218XTAL119 ALE30EA31PSEN29 RST9 P0./AD039P0.1/A138P0.2/AD237P0.3/A336 P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732 P1.0/T21P1./T2EX2P1.23P1.34 P1.45P1.56P1.67P1.78 P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113 P3.4/T014P3.7/RD17P3.6/W16P3.5/T115 P2.7/A1528 P2.0/A821P2.1/A92P2./A1023P2.3/A124 P2.4/A1225P2.5
44、/A1326P2.6/A1427 U1 AT89C52 C12pF C22pF C310uF X112mhz R110k A02B018 A13B117 A24B216 A35B315 A46B414 A57B513 A68B612 A79B71 CE19AB/A1 U2 74LS245 無錫職業(yè)技術學院畢業(yè)設計說明書 20 3.按動 S3 鍵,對秒清零 XTAL218XTAL119 ALE30EA31PSEN29 RST9 P0./AD039P0.1/A138P0.2/AD237P0.3/A336 P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732 P1.0/T21P
45、1./T2EX2P1.23P1.34 P1.45P1.56P1.67P1.78 P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113 P3.4/T014P3.7/RD17P3.6/W16P3.5/T115 P2.7/A1528 P2.0/A821P2.1/A92P2./A1023P2.3/A124 P2.4/A1225P2.5/A1326P2.6/A1427 U1 AT89C52 C12pF C22pF C310uF X112mhz R110k A02B018 A13B117 A24B216 A35B315 A46B414 A57B513 A68B612 A79B71
46、CE19AB/A1 U2 74LS245 無錫職業(yè)技術學院畢業(yè)設計說明書 21 第六章 總結 在數(shù)字電子鐘的設計過程中,出現(xiàn)了很多的問題。在調試運行過程中,我的對程序和圖 進行了很多次的修改最終終于定下最為合適的結果。數(shù)字電子鐘在運行時會產生一定延時誤 差,產生誤差的主要原因是我們用軟件計時,計1秒是采用定時器的中斷服務程序。當數(shù)字 鐘運行1秒,執(zhí)行中斷程序需要一定時間,這個時間就是所產生的誤差,這個誤差是不可避 免的。同時,單片機工作也會受到環(huán)境的影響,比如溫度、濕度,以及其它電子設備的干擾。 因此,應該讓數(shù)字鐘工作在適度溫度、干燥和電子干擾較少的環(huán)境下,還有一種方法就是采 用實時時鐘芯片,
47、這樣可以使誤差降低到最少。此次設計的數(shù)字電子鐘過于簡單化,現(xiàn)在的 很多種數(shù)字電子鐘已經擁有很多功能,比如說加實時時鐘芯片,加溫度控制,加鬧鐘等功能 來完善這個電子鐘。 隨著時間的推移,計算機革命的完成,信息高速公路的飛速發(fā)展,我們的工業(yè)已經和自動 化控制密不可分了.單片機應用在我國才剛剛起步,有著廣闊的前景。培養(yǎng)單片機應用人才, 特別是在工程技術人員中普及單片機知識有著重要的現(xiàn)實意義。而數(shù)字鐘具備單片機最小系 統(tǒng)的基本組成,對于我們了解單片機有很大的幫助。 無錫職業(yè)技術學院畢業(yè)設計說明書 22 參考文獻 1.李全利主編,單片機原理及應用技術,高等教育出版社,2010 2.李東生.張勇,許四毛.
48、 Protell99SE 電路設計技術入門與應用M.北京:電子工業(yè) 出版社,2002; 3.揚剛主.電子系統(tǒng)設計與實踐.電子工業(yè)出版社M 2004 4.盧結成. 電子電路實驗及應用課題設計M.中國科學技術大學出版社,2002 年 5.李廣弟,朱月秀,王秀山.單片機基礎M.北京航空航天出版社,2001.7 6.謝維成,楊加國.單片機原理與應用及 C51 程序設計M.清華大學出版社,2007.2 7. 關宗安,仲叢久.基于單片機實現(xiàn)的多路定時控制器的設計.沈陽航空工業(yè)學院學報. 2004 年 6 月 8.何希慶,高偉.MCS-51 單片機原理、實驗、實例M.山東:山東大學出版社.1989 9.劉飛
49、等,兩種數(shù)字鐘電路設計比較J 湖北師范學院學報 .2003,2(23):40-43 10.胥筱門,單片機系統(tǒng)的試驗及應用J 電子制作.1999,(6):20-30 11.房小翠,王金鳳.單片微型計算機與機電接口技術M.北京國防工業(yè)出版社.2002 12.姜治臻.單片機技術及應用.高等教育出版社.2009 年 4 月 13.周潤景,張麗娜基于 PROTEUS 的電路及單片機系統(tǒng)設計與仿真M北京:航空航 天 大學出版社 ,2006.P321P326 14.李廣弟等 單片機基礎 北京航空航天出版社, 2001.7 15.何立民主編, 單片機應用技術選編 北京航空航天大學出版社 2004.3 無錫職業(yè)
50、技術學院畢業(yè)設計說明書 23 致謝 首先衷心地感謝我的畢業(yè)設計指導老師曾老師。本設計從選題到完成,從理論上的探討 到實際問題的解決,無處不飽含著曾老師的心血。曾老師的悉心指導和建議給了我極大的幫 助和支持,使我受益匪淺,在此論文完成之際,謹向曾老師致以深深的謝意和崇高的敬意。 同時感謝的還有我的家人,是他們讓我能上大學;在大學里,先要學會學習才能學的更 好,是老師教了我怎樣學習,到現(xiàn)在能完成畢業(yè)設計,都少不了老師的功勞;在整個設計過 程中,從硬件電路圖到軟件編程,應用了相當多的知識,包含了大學三年所學的知識,在此 向各位任課老師表示感謝。 無錫職業(yè)技術學院畢業(yè)設計說明書 24 附錄 程序清單
51、ORG 0000H ;程序開始地址 LJMP MAIN ;跳到 MAIN ORG 000BH ;T0 中斷程序入口 LJMP INTT0 ;跳到 T0 開始執(zhí)行程序 ORG 0100H MAIN: MOV R0,#70H ;準備 70H-79H 10 個字節(jié)空間 MOV R7,#09H CLRDISP: MOV R0,#00H ;將 70H-79H 初始化為 00H INC R0 DJNZ R7,CLRDISP MOV TMOD,#01H ;設 T0 為 16 位定時器 MOV TL0,#0B0H ;賦初始值 MOV TH0,#3CH SETB EA ;CPU 開中斷 SETB ET0 ;允許
52、 T0 中斷 SETB TR0 ;啟動 T0 MOV R4,#14H ;1S 設定初始值 LOOP: LCALL DISP ;調用顯示程序 JB P3.0,LOOP1 ;判斷 P3.0 有無按下 LCALL HOUR_SET ;調用小時設定程序 AJMP LOOP LOOP1: JB P3.2,LOOP2 ;判斷 P3.2 有無按下 LCALL MIN_SET ;調用分設定程序 AJMP LOOP LOOP2: JB P3.4,LOOP3 ;判斷 P3.4 有無按下 LCALL CLR0 ;調用清零程序,這里只清零秒 AJMP LOOP LOOP3: AJMP LOOP HOUR_SET: C
53、ALL DISP ;調用顯示程序 JNB P3.0,HOUR_SET;P3.0 按下跳到調小時程序 INC 78H ;小時的個位加 1 無錫職業(yè)技術學院畢業(yè)設計說明書 25 MOV R6,78H CJNE R6,#10,HOUR1;個位不為 10 跳到 HOUR1 MOV 78H,#0 ;個位清零 INC 79H ;十位加 1 JMP HOUR2 ;跳到 HOUR2 HOUR1: MOV R6,78H CJNE R6,#4,HOUR2 ;個位不為 4 跳到 HOUR2 MOV R6,79H CJNE R6,#2,HOUR2 ;十位不為 2 跳到 HOUR2 MOV 78H,#0 ;小時清零 M
54、OV 79H,#0 HOUR2: RET ;調時返回 MIN_SET: CALL DISP ;調用顯示程序 JNB P3.2,MIN_SET ;P3.2 按下跳到調分程序 INC 76H ;分的個位加 1 MOV R5,76H CJNE R5,#10,MIS1 ;個位不為 10 跳到 MIS1 MOV 76H,#0 ;個位清零 INC 77H ;十位加 1 MOV R5,77H CJNE R5,#6,MIS1 ;十位不為 6 跳到 MIS1 MOV 77H,#0 ;分清零 MOV 76H,#0 RET MIS1: RET ;調分返回 INTT0: PUSH ACC ;入棧,保護現(xiàn)場 PUSH
55、PSW CLR ET0 ;關閉中觀允許 CLR TR0 ;關閉中斷 MOV A,#0B7H ;中斷響應時間同步修正 ADD A,TL0 ;低 8 位初值修正 MOV TL0,A 無錫職業(yè)技術學院畢業(yè)設計說明書 26 MOV A,#3CH ;高 8 位初值修正 ADDC A,TH0 MOV TH0,A SETB TR0 ;開啟定時器 T0 DJNZ R4,OUT ;20 次中斷未到中斷退出 ADDS: MOV R4,#14H ;20 次中斷到重賦初值 MOV R0,#71H ;指向秒計時單元 ACALL ADD1 ;調用 ADD1 MOV A,R3 ;秒數(shù)據放入 A CLR C ;清零進位標志
56、CJNE A,#60H,ADDMM;秒是否到了 60,是則跳轉 ADDMM: JC OUT ;小雨 60 秒中斷退出 ACALL CLR0 ;等于 60 秒調用 CLR0 清零秒 MOV R0,#77H ;指向分計時單元 ACALL ADD1 ;調用 ADD1 MOV A,R3 ;分數(shù)據放入 A CLR C ;清零進位標志 CJNE A,#60H,ADDH ;分是否到了 60,是則跳轉 ADDH: JC OUT ;小于 60 分時中斷退出 ACALL CLR0 ;等于 60 分調用 CLR0 清零秒 MOV R0,#79H ;指向時計時單元 ACALL ADD1 ;調用 ADD1 MOV A,
57、R3 ;時數(shù)據放入 A CLR C ;清零進位標志 CJNE A,#24H,HOUR ;時是否到了 24,是則跳轉 HOUR: JC OUT ;小于 24 時時中斷退出 ACALL CLR0 ;調用 CLR0 OUT: MOV 72H,76H ;將分的存儲地址轉移 MOV 73H,77H MOV 74H,78H ;將時的存儲地址轉移 MOV 75H,79H 無錫職業(yè)技術學院畢業(yè)設計說明書 27 POP PSW ;恢復現(xiàn)場 POP ACC SETB ET0 RETI CLR0: CLR A ;清零 A MOV R0,A ;清零 R0 存放地址中的數(shù)據 DEC R0 ;R0 地址減 1 MOV R
58、0,A RET ADD1: MOV A,R0 ;取當前計時單元數(shù)據到 A DEC R0 ;指向前一地址 SWAP A ;A 中數(shù)據高四位與低四位交換 ORL A,R0 ;前一地址中數(shù)據放入 A 中低四位 ADD A,#01H ;A 加 1 操作 DA A ;十進制調整 MOV R3,A ;移入 R3 寄存器 ANL A,#0FH ;高四位變 0 MOV R0,A ;放回前一地址單元 MOV A,R3 ;取回 R3 中暫存數(shù)據 INC R0 ;指向當前地址單元 SWAP A ;A 中數(shù)據高四位與低四位交換 ANL A,#0FH ;高四位變 0 MOV R0,A ;數(shù)據放入當削地址單元中 RET
59、;子程序返回 DISP: MOV R1,#70H ;指向顯示數(shù)據首址 MOV R5,#01H ;掃描控制字初值 PLAY: MOV A,R5 ;掃描字放入 A MOV P2,A ;從 P2 口輸出 MOV A,R1 ;取顯示數(shù)據到 A MOV DPTR,#TABLE ;取段碼表地址 MOVC A,A+DPTR ;查顯示數(shù)據對應段碼 MOV P1,A ;段碼放入 P1 口 無錫職業(yè)技術學院畢業(yè)設計說明書 28 LCALL DL1MS ;顯示 1MS INC R1 ;指向下一地址 MOV A,R5 ;掃描控制字放入 A JB ACC.5,ENDOUT ;ACC.5=0 時一次顯示結束 RL A ;A 中數(shù)據循環(huán)左移 MOV R5,A ;放回 R5 內 AJMP PLAY ;跳回 PLAY 循環(huán) ENDOUT: CLR P2.5 ;一次顯示結束,P2 口復位 RET ;子程序返回 TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DL1MS: MOV R6,#10 DL1: MOV R7,#249 DL2: NOP NOP DJNZ R7,DL2 DJNZ R6,DL1 RET END
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。