版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)技術(shù)課程設(shè)計(jì)說明書</p><p><b> 題 目</b></p><p><b> 數(shù)字電子鐘的設(shè)計(jì)</b></p><p><b> 前 言</b></p><p> 該課程設(shè)計(jì)為數(shù)字電子鐘的設(shè)計(jì)。以AT89S52為核心,配合L
2、ED數(shù)碼管顯示器和按鍵為用戶提供長(zhǎng)期、連續(xù)、可靠、穩(wěn)定的工作環(huán)境。該數(shù)字電子鐘有時(shí)分秒顯示和學(xué)號(hào)顯示以及時(shí)間調(diào)整的功能。系統(tǒng)軟件設(shè)計(jì)包括單片機(jī)、計(jì)算機(jī)兩部分的編程。計(jì)算機(jī)軟件編程主要實(shí)現(xiàn)參數(shù)設(shè)置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲(chǔ)。單片機(jī)軟件編程主要實(shí)現(xiàn)鍵盤、LED顯示等各模塊的功能,采用匯編語(yǔ)言編程。</p><p><b> 目 錄</b></p><p
3、> 第一章 設(shè)計(jì)任務(wù)和方案1</p><p> 1.1 設(shè)計(jì)任務(wù)1</p><p> 1.2 功能要求說明1</p><p> 1.3 設(shè)計(jì)課題總體方案及工作原理說明1</p><p> 第二章 數(shù)字電子鐘的硬件系統(tǒng)的設(shè)計(jì)3</p><p> 2.1硬件系統(tǒng)各模塊功能設(shè)計(jì)3</p&
4、gt;<p> 2.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖3</p><p> 2.3元器件清單4</p><p> 第三章 數(shù)字電子鐘的軟件系統(tǒng)的設(shè)計(jì)5</p><p> 3.1 使用的單片機(jī)資源的情況5</p><p> 3.2 各模塊功能簡(jiǎn)要介紹5</p><p>
5、 3.3 程序的流程圖5</p><p> 3.4 程序清單8</p><p> 第四章 系統(tǒng)仿真與分析9</p><p> 4.1 設(shè)計(jì)結(jié)論和使用說明9</p><p> 4.2 仿真結(jié)果9</p><p> 4.3 誤差分析10</p><p> 4.4
6、設(shè)計(jì)難點(diǎn)和體會(huì)11</p><p><b> 參考文獻(xiàn)13</b></p><p> 附錄A 系統(tǒng)原理圖與PCB圖14</p><p> 附錄B 元器件清單15</p><p> 附錄C 程序清單16</p><p> 第一章 設(shè)計(jì)任務(wù)和方案</p><p
7、><b> 1.1 設(shè)計(jì)任務(wù)</b></p><p> ?。ㄒ唬┰O(shè)計(jì)題目:數(shù)字電子鐘</p><p> ?。ǘ┰O(shè)計(jì)目的與任務(wù):</p><p> 學(xué)生通過理論設(shè)計(jì)和實(shí)物制作解決相應(yīng)的實(shí)際問題,鞏固和運(yùn)用在《單片機(jī)技術(shù)》中所學(xué)的理論知識(shí)和實(shí)驗(yàn)技能,掌握單片機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,提高設(shè)計(jì)能力和實(shí)踐動(dòng)手能力,為以后從事電子電路設(shè)計(jì)、研
8、發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。</p><p> 1.2 功能要求說明</p><p> 設(shè)計(jì)一個(gè)具有特定功能的電子鐘。該電子鐘按鍵復(fù)位后能自動(dòng)顯示設(shè)計(jì)者的學(xué)號(hào);第一次按電子鐘啟動(dòng)/調(diào)整鍵,電子鐘從0時(shí)0分0秒開始運(yùn)行計(jì)時(shí),進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘啟動(dòng)/調(diào)整鍵,則電子鐘進(jìn)入時(shí)鐘調(diào)整狀態(tài),此時(shí)可利用各調(diào)整鍵調(diào)整時(shí)間,當(dāng)按下鍵2,秒鐘加一,按下鍵3分鐘加一,按下鍵四時(shí)鐘加一,調(diào)整結(jié)束后可
9、按啟動(dòng)/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。</p><p> 1.3 設(shè)計(jì)課題總體方案及工作原理說明</p><p> 設(shè)計(jì)中采用AT89S52芯片及LED顯示器,獨(dú)立式按鍵構(gòu)成一個(gè)簡(jiǎn)單的數(shù)字電子鐘。設(shè)計(jì)中是采用單片機(jī)的內(nèi)部定時(shí)器進(jìn)行定時(shí),程序框圖如圖1-1所示 </p><p> 整個(gè)電子鐘的工作原理是:在正常的供電狀態(tài)下,首先利用單片機(jī)定時(shí),到了相應(yīng)的時(shí)間由單片
10、機(jī)將所需要顯示的數(shù)據(jù)送到LED顯示器的輸入口,當(dāng)有鍵按下時(shí)則進(jìn)入相應(yīng)的按鍵顯示和調(diào)整狀態(tài),進(jìn)行按鍵調(diào)整。</p><p> 圖1-1 總的設(shè)計(jì)的框圖</p><p> 第二章 數(shù)字電子鐘的硬件系統(tǒng)的設(shè)計(jì)</p><p> 2.1硬件系統(tǒng)各模塊功能設(shè)計(jì)</p><p> 該數(shù)字電子鐘以單片機(jī)最小系統(tǒng)為核心,其他主要電路有鍵盤電路、L
11、ED數(shù)碼管顯示電路、USB接口電路模塊、蜂鳴電路。主要模塊的功能:</p><p> ?。?)單片機(jī)最小系統(tǒng)的組成以及功能介紹</p><p> 由AT89S52單片機(jī)、時(shí)鐘電路和復(fù)位電路構(gòu)成。AT89S52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8
12、位微處理器,俗稱單片機(jī)。時(shí)鐘電路由一個(gè)12MHZ的石英晶體振蕩器和兩個(gè)33pF的的電容組成振蕩電路和分頻電路,為單片機(jī)提供內(nèi)部時(shí)鐘。復(fù)位電路采用上電復(fù)位和按鍵復(fù)位結(jié)合的方式對(duì)電路進(jìn)行復(fù)位,主要是通過RST引腳送入單片機(jī)。</p><p><b> ?。?)鍵盤模塊</b></p><p> 采用獨(dú)立式鍵盤接法,共有八個(gè)按鍵來對(duì)電路進(jìn)行控制。分別接在單片機(jī)的P1.0-
13、P1.7口線上。電子鐘只使用其中的4個(gè)按鍵,一個(gè)控制啟動(dòng)與調(diào)整,其余三個(gè)分別為調(diào)時(shí)、調(diào)分、調(diào)秒。</p><p> ?。?)LED顯示電路</p><p> 采用2個(gè)八位一體的共陽(yáng)數(shù)碼管顯示器進(jìn)行顯示,由于單片機(jī)可以直接驅(qū)動(dòng)數(shù)碼管,所以不必設(shè)置數(shù)碼管的驅(qū)動(dòng)電路,16個(gè)470Ω的電阻起限流的作用。將段控口接在P0口上,位控口接在P2口上,實(shí)現(xiàn)對(duì)顯示的控制(設(shè)計(jì)為動(dòng)態(tài)顯示)。</p&g
14、t;<p> ?。?)USB接口電路</p><p> 接上一個(gè)可以連接電腦的USB電源接口,該電源電壓很穩(wěn)定,為單片機(jī)工作供電。</p><p> 2.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖</p><p> 采用Protel軟件,Protel99SE是Protel公司近10年來致力于Windows平臺(tái)開發(fā)的最新結(jié)晶,能實(shí)現(xiàn)從電學(xué)概念設(shè)
15、計(jì)到輸出物理生產(chǎn)數(shù)據(jù),能夠和形象的畫出我們所要設(shè)計(jì)的產(chǎn)品。電路原理圖和PCB圖及元器件布局見附錄A。 </p><p><b> 2.3元器件清單</b></p><p><b> 見附錄B。</b></p><p> 第三章 數(shù)字電子鐘的軟件系統(tǒng)的設(shè)計(jì)</p><p> 3.1 使用的
16、單片機(jī)資源的情況</p><p> 該數(shù)字電子鐘用到了單片機(jī)的定時(shí)器的功能,此外用到了單片機(jī)的中斷功能,在數(shù)據(jù)的顯示時(shí)所采用的是直接送段控碼和位控碼的方法,因此需要將數(shù)據(jù)存到單片機(jī)的程序存儲(chǔ)器中去。</p><p> 由于電子鐘要求可以進(jìn)行調(diào)節(jié),因此,需要在單片機(jī)的P1口上加上按鍵,本設(shè)計(jì)采用獨(dú)立式鍵盤,直接接在P1口上且按鍵的結(jié)果存貯在單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器里面。用到的LED數(shù)碼管接
17、到了單片機(jī)的P0口線上和P2口線上,以實(shí)現(xiàn)動(dòng)態(tài)顯示。 </p><p> 3.2 各模塊功能簡(jiǎn)要介紹</p><p> 該數(shù)字電子鐘所用的軟件模塊有定時(shí)器模塊、按鍵模塊、LED顯示模塊。</p><p><b> ?。?)定時(shí)器模塊</b></p><p> 選擇定時(shí)器1,設(shè)置定時(shí)方式為方式1,設(shè)置定時(shí)時(shí)間為50
18、mS。</p><p> 選擇定時(shí)器0,設(shè)置定時(shí)方式為方式1,設(shè)置定時(shí)時(shí)間為1mS。</p><p><b> (2)按鍵模塊</b></p><p> 采用獨(dú)立式鍵盤,共用四個(gè)按鍵對(duì)電路進(jìn)行控制和操作,分別為K0、K1、K2、K3來控制電子鐘的啟動(dòng)和調(diào)整。</p><p> ?。?)LED顯示模塊</p&g
19、t;<p> 該電子鐘一通電即讓它顯示 “Z0903--46”,按開啟鍵(K1)即可顯示時(shí)分秒(0-0-0-)并開始計(jì)時(shí),再按開始/暫停鍵就可以對(duì)電子鐘進(jìn)行調(diào)整:調(diào)時(shí)(K4)、調(diào)分(K3)、調(diào)秒(K2)。</p><p> 3.3 程序的流程圖</p><p> ?。?)整體設(shè)計(jì)流程圖</p><p> 圖3-1 整體功能流程圖</p&g
20、t;<p> (2) 延時(shí)1毫秒程序設(shè)計(jì)流程圖</p><p> 圖3-2 延時(shí)1毫秒程序流程</p><p> (3) 檢查按鍵程序設(shè)計(jì)流程圖</p><p> 圖3-3 調(diào)時(shí)檢查按鍵程序流程</p><p> (4) 檢查按鍵程序設(shè)計(jì)流程圖</p><p> 圖3-4 調(diào)時(shí)檢查按鍵程序流程
21、</p><p><b> 3.4 程序清單</b></p><p><b> 見附錄C。</b></p><p> 第四章 系統(tǒng)仿真與分析</p><p> 4.1 設(shè)計(jì)結(jié)論和使用說明</p><p><b> ?。?)設(shè)計(jì)結(jié)論</b>&l
22、t;/p><p> 通過對(duì)單片機(jī)進(jìn)行外接按鍵和LED數(shù)碼管的操作以及加上硬件電路和軟件的結(jié)合,實(shí)現(xiàn)了該數(shù)字電鐘顯示“Z0903--46”以及時(shí)、分、秒,同時(shí)還可實(shí)現(xiàn)對(duì)該電子鐘進(jìn)行調(diào)整的功能。通過測(cè)試、仿真以及修改,該電子鐘最終能正常的工作。</p><p><b> (2)使用說明</b></p><p> 該數(shù)字電子鐘采用兩個(gè)四位一體數(shù)碼管
23、能實(shí)現(xiàn)時(shí)分秒的顯示。當(dāng)電子鐘一上電即可顯示“Z0903—46”,設(shè)置數(shù)字鐘的初始時(shí)間為00時(shí)00分00秒,用四個(gè)按鍵實(shí)現(xiàn)電子鐘的顯示和調(diào)整的功能,分別為K0,K1,K2,K3,其中K0鍵為開啟/調(diào)整鍵,開啟之后再按K0鍵可實(shí)現(xiàn)暫進(jìn)入調(diào)整狀態(tài),進(jìn)入調(diào)整狀態(tài)后按K1、K2、K3可分別對(duì)秒、分、時(shí)的調(diào)整, 每按一下對(duì)應(yīng)的按鍵可以對(duì)當(dāng)前顯示的位進(jìn)行調(diào)整,其進(jìn)制都為60進(jìn)制,即時(shí)、分、秒的變化范圍是0—59,每按下一次,相應(yīng)的時(shí)鐘位加一,在調(diào)整到
24、需要的時(shí)刻后,再按一下開始/暫停鍵即可從該時(shí)刻起運(yùn)行電子鐘。在正常運(yùn)行時(shí),只有暫停/開始鍵起作用,其他按鍵不影響電子鐘的工作狀態(tài)。</p><p><b> 4.2 仿真結(jié)果</b></p><p> 在仿真時(shí)用到了兩個(gè)軟件,第一個(gè)是Keil,第二個(gè)是Protues,本次仿真是將兩個(gè)軟件結(jié)合起來進(jìn)行的。</p><p> Proteus
25、 軟件所提供了30多個(gè)元件庫(kù),數(shù)千種元件。元件涉及到數(shù)字和模擬、交流和直流等。在Proteus軟件包中,不存在同類儀表使用數(shù)量的問題。Proteus還提供了一個(gè)圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來,其作用與示波器相似但功能更多。</p><p> 用Protues軟件進(jìn)行仿真,其仿真的電路圖如圖4.1所示</p><p> 圖4-1 Protues仿真電路圖
26、</p><p> 當(dāng)按下開始/暫停鍵時(shí),數(shù)字電子鐘進(jìn)入工作狀態(tài),當(dāng)按下調(diào)整鍵時(shí),數(shù)字電子鐘進(jìn)入調(diào)整界面,此時(shí)LED數(shù)碼管顯示器的顯示如圖4-3所示。</p><p> 圖4-2 數(shù)字電子鐘顯示時(shí)分秒的顯示</p><p><b> 4.3 誤差分析</b></p><p> 本數(shù)字電子鐘在跟標(biāo)準(zhǔn)的電子鐘比較時(shí)
27、,時(shí)間稍微慢一點(diǎn),產(chǎn)生此種情況的原因有:其一是在執(zhí)行程序指令時(shí),由于需要耗費(fèi)一定的時(shí)間,因此會(huì)比標(biāo)準(zhǔn)的電子鐘要慢一點(diǎn)。其二是晶振不夠標(biāo)準(zhǔn),使得定時(shí)器定時(shí)時(shí)不夠精準(zhǔn)。</p><p> 4.4 設(shè)計(jì)難點(diǎn)和體會(huì)</p><p><b> (1) 設(shè)計(jì)難點(diǎn)</b></p><p> 從選題到硬件電路的設(shè)計(jì),再到軟件電路的設(shè)計(jì),整個(gè)過程當(dāng)中我學(xué)
28、到了很多的東西,在老師的細(xì)心指導(dǎo),耐心分析下,我把整個(gè)思路理清,并開始了設(shè)計(jì)的規(guī)劃,在原理圖的繪制時(shí)我查找了相關(guān)軟件的使用方法,并悉心向老師和同學(xué)請(qǐng)教,學(xué)會(huì)對(duì)PROTEL和PROTEUS的使用。在軟件系統(tǒng)的設(shè)計(jì)當(dāng)中,我遇到了很多的問題,不能把一些小模塊系統(tǒng)的聯(lián)系起來,但通過不斷的學(xué)習(xí),最終花了四天的時(shí)間把整個(gè)程序完整的編出來了,并能進(jìn)行仿真使用。到最后做板子的時(shí)候,因?yàn)槭堑谝淮巫霭遄樱芏嗉?xì)節(jié)的地方都沒注意,比如封裝元器件時(shí),要看清楚所
29、買元器件的引腳、尺寸和功能以及質(zhì)量,我做的第一塊板子不怎么的好,結(jié)果在用熨斗熨的時(shí)候出現(xiàn)暴起的現(xiàn)象,只能再重新做一塊,而且買的數(shù)碼管跟實(shí)際所畫的PCB板尺寸大小不一樣,而且引腳搞錯(cuò)了,只能另想辦法,很影響實(shí)驗(yàn)進(jìn)度,所以在封裝元器件時(shí)一定要做好充分的準(zhǔn)備。在做板子的時(shí)候因?yàn)殪俚臅r(shí)候沒把握好,結(jié)果出現(xiàn)了很多的斷點(diǎn),只能一個(gè)一個(gè)查,一個(gè)一個(gè)補(bǔ),麻煩很大,工作量也很大,而且很容易疏忽,所以將圖紙熨到板子上時(shí)一定要熨的均勻,把握好時(shí)間和力度。打孔
30、時(shí)一定要對(duì)準(zhǔn),不要太急,慢慢來。插元器件的時(shí)候一定要把每個(gè)元</p><p><b> ?。?) 設(shè)計(jì)體會(huì)</b></p><p> 吳老師的教學(xué)方式我挺贊同,你能夠讓我們把實(shí)際和理論結(jié)合起來,我覺得這很好,而且對(duì)現(xiàn)在的我們來說很重要,大學(xué)三年來,學(xué)的東西可以說很多,但是我們一直都不知道,手中的這些知識(shí)到底有什么作用,而且很多的老師都只顧著講自己的課程,就像是完成一
31、項(xiàng)別人交給他的任務(wù)一樣,從不關(guān)心學(xué)生學(xué)的到底是怎么樣,所以我覺得適當(dāng)?shù)慕o學(xué)生一些將理論聯(lián)系實(shí)際的作業(yè)和任務(wù),能夠讓我們更明白和理解自己學(xué)的東西,也讓我們學(xué)的不再那么迷茫和渺茫了。</p><p> 其次老師和同學(xué)的關(guān)系我覺得對(duì)同學(xué)能否學(xué)習(xí)好這門課程很重要,課堂上老師應(yīng)該要嚴(yán)肅認(rèn)真,下課后老師可以多和同學(xué)們接觸和聊天,培養(yǎng)和同學(xué)們的關(guān)系,和同學(xué)們做朋友,對(duì)同學(xué)們提出的問題要認(rèn)真對(duì)待。</p><
32、;p> 還有就是,老師的責(zé)任不僅僅是傳授知識(shí),更重要的是給我們傳授學(xué)習(xí)經(jīng)驗(yàn)和方法,培養(yǎng)學(xué)生的發(fā)散思考方式,以及多傳授點(diǎn)社會(huì)經(jīng)驗(yàn)和教訓(xùn),教我們不要走不必要的彎路以及在社會(huì)上你所必備的生存工具。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李朝青. 單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1998.</p>
33、;<p> [2] 王幸之等.單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M].北京:北京航空航天大學(xué)出版社, 1999. </p><p> [3] 何為民.低功耗單片微機(jī)系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1994.</p><p> [4] 李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京:北京航空航天大學(xué)出版社, 1996.<
34、;/p><p> [5] 何立民.單片機(jī)高級(jí)教程[M].北京:北京航空航天大學(xué)出版社,2000.</p><p> [6] 馬忠梅.單片機(jī)應(yīng)用程序設(shè)計(jì)(第四版)[M].北京:北京航空航天大學(xué)出版社,2006.</p><p> 附錄A 系統(tǒng)原理圖與PCB圖</p><p><b> (原理圖)</b></p&g
35、t;<p><b> (PCB圖)</b></p><p><b> 附錄B 元器件清單</b></p><p><b> 附錄C 程序清單</b></p><p><b> ORG 0000H</b></p><p> MOV
36、70H,#0C0H ;70H到7AH存放的是0到9、一的段控碼</p><p> MOV R2,#70H ;R2和R3控制秒鐘的段控碼</p><p> MOV R3,#70H</p><p> MOV R4,#70H ;R4和R5控制分鐘的段控碼</p><p> MOV R5,#70H</p><p&
37、gt; MOV R6,#70H ;R6和R7控制時(shí)鐘的段控碼</p><p> MOV R7,#70H</p><p> MOV 71H,#0F9H</p><p> MOV 72H,#0A4H</p><p> MOV 73H,#0B0H</p><p> MOV 74H,#99H
38、</p><p> MOV 75H,#92H</p><p> MOV 76H,#82H</p><p> MOV 77H,#0F8H</p><p> MOV 78H,#80H</p><p> MOV 79H,#90H</p><p> MOV 7AH,#0BFH</p&g
39、t;<p> MOV 6FH,#00H;6FH存放1秒鐘由50ms循環(huán)20次的次數(shù)</p><p> MOV 6EH,#00H;6EH存放控制定時(shí)器循環(huán)的次數(shù)</p><p> MOV SP,#30H</p><p> ;以上程序?yàn)椋?、將段控碼存放到70H到7AH中。2、開辟堆棧</p><p> ;以下程序
40、為顯示顯示和判斷開始計(jì)時(shí)鍵是否按下JC0:LCALL XSXH;調(diào)兩次用顯示學(xué)號(hào)的子程序 </p><p> LCALL XSXH</p><p> LCALL JCAJ;檢查開啟案件有沒有按下,如果按下,則在A中的相應(yīng)為會(huì)置一 </p><p> JB ACC.0,JC0;對(duì)A中的ACC.0進(jìn)行判斷,如果為為高電平,則沒有按下<
41、/p><p> LCALL XSXH</p><p> LCALL XSXH</p><p> ZL1:LCALL JCAJ ;判斷按鍵是否松開</p><p> JB ACC.0,JSKS ;如果松開則跳轉(zhuǎn)到JSKS的程序中,</p><p> LCALL XSXH ;如果沒有松開則2次顯
42、示學(xué)號(hào)(同時(shí)也起延時(shí)6秒的作用)</p><p> LCALL XSXH </p><p> SJMP ZL1 JSKS:MOV IE,#00H ;時(shí)鐘開始運(yùn)行,讓定時(shí)計(jì)數(shù)器1,以工作方式1工作,并置初值 </p><p> MOV TMOD,#11H;定時(shí)計(jì)數(shù)
43、器1以工作方式1計(jì)時(shí)50ms,循環(huán)20次MOV TH1,#3CH;定時(shí)時(shí)間是50MS</p><p> MOV TL1,#0B0H</p><p><b> SETB TR1</b></p><p> ;以查詢方式判斷計(jì)時(shí)是否已到,如果沒有到則進(jìn)行跳轉(zhuǎn)到LOOP5 </p><p> KS:JBC
44、TF1,LOOPS </p><p> SJMP LOOP5;如果到達(dá)則進(jìn)行電子時(shí)鐘的進(jìn)位操作</p><p> ;此段程序?yàn)殡娮訒r(shí)鐘的各個(gè)數(shù)碼管的段控碼的進(jìn)位判斷 LOOPS:MOV TH1,#3CH </p><p> MOV TL1,#0B0H</p><p> MOV R0,#6FH;
45、6F控制循環(huán)20次,當(dāng)達(dá)到一秒鐘,控制各個(gè)數(shù)碼管的段控碼的改變</p><p><b> INC @R0</b></p><p> CJNE @R0,#14H,LOOP5 ;達(dá)到一秒鐘則執(zhí)行下面的程序</p><p> MOV @R0,#00H</p><p><b> INC R2<
46、;/b></p><p> CJNE R2,#7AH,LOOP</p><p> MOV R2,#70H</p><p><b> INC R3</b></p><p> LOOP:CJNE R3,#76H,LOOP1</p><p> MOV R3,#70H</p>
47、<p><b> INC R4</b></p><p> LOOP1:CJNE R4,#7AH,LOOP2</p><p> MOV R4,#70H</p><p><b> INC R5</b></p><p> LOOP2:CJNE R5,#76H,LOOP3</p&
48、gt;<p> MOV R5,#70H</p><p><b> INC R6</b></p><p> LOOP3:CJNE R6,#7AH,LOOP4</p><p> MOV R6,#70H</p><p><b> INC R7</b></p><
49、p> LOOP4:CJNE R7,#72H,LOOP5</p><p> CJNE R6,#74H,LOOP5</p><p> MOV R6,#70H</p><p> MOV R7,#70H</p><p> ;此段程序?yàn)轱@示數(shù)碼管的值,并判斷調(diào)整開關(guān)是否按下 </p><p> LOO
50、P5: LCALL XSSMG</p><p> LCALL XSSMG</p><p> LCALL JCAJ ;檢查開啟按鍵有沒有按下 </p><p> JB ACC.0,KS;沒有按下就繼續(xù)計(jì)時(shí),按下就跳轉(zhuǎn)到調(diào)時(shí)狀態(tài)</p><p> LCALL XSSMG;次語(yǔ)句既可以顯示數(shù)碼管,又可以達(dá)到延時(shí)的效果
51、</p><p> LCALL XSSMG</p><p> ZCJC:LCALL JCAJ;檢查開關(guān)有沒有松開,如果松開就跳轉(zhuǎn)到調(diào)時(shí)程序</p><p> JB ACC.0,TIAOSHI</p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p
52、> SJMPZCJC;如果沒有松開就繼續(xù),就繼續(xù)顯示數(shù)碼管并檢查 </p><p> ;此段程序是將調(diào)整按鍵的變化的值放到數(shù)碼管顯示,并判斷調(diào)時(shí)結(jié)束按鍵是否按下</p><p> TIAOSHI:LCALL XSSMG </p><p> LCALL TSJCAJ
53、;判斷調(diào)時(shí)的哪個(gè)鍵按下,并就其控制的值加一</p><p> LCALL XSSMG </p><p> LCALL JCAJ;檢查結(jié)束調(diào)整按鍵有沒有按下</p><p> JB ACC.0,TIAOSHI;沒有按下就繼續(xù)調(diào)時(shí),</p><p> LCALL XSSMG</p>&l
54、t;p> LCALL XSSMG</p><p> JXJC2:LCALL JCAJ</p><p> JB ACC.0,KS;判斷調(diào)時(shí)鍵是否松開松開,則跳轉(zhuǎn)到計(jì)時(shí)狀態(tài) </p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p> LJMP JXJC2&l
55、t;/p><p> ;此段程序?yàn)槎〞r(shí)器0,工作方式1,定時(shí)1msDELAY1MS:MOV TH0,#0FCH ;延時(shí)1MS的程序</p><p> MOV TL0,#18H</p><p><b> SETB TR0</b></p><p> LOOOP:JBC TF0,TCDS1MS&l
56、t;/p><p> SJMP LOOOP</p><p> TCDS1MS:RET </p><p> ;此段程序?yàn)榕袛嘤袥]有按鍵按下,按下就置一,并將其值放在A中</p><p> JCAJ:MOV A,P1;檢查開啟案件有沒有按下</p><p> JB ACC.0,JCAJJS;ACC.
57、0=1,沒有鍵按下</p><p> LCALL XSSMG</p><p> MOV A,P1;如果有鍵按下,則ACC.0為0 JCAJJS:RET</p><p> ;此段程序是判斷調(diào)時(shí)按鍵是否按下,按下就使相應(yīng)的段控碼加一 </p><p> TSJCAJ:MOV A,P1;調(diào)時(shí)
58、檢查按鍵(首寫字母:TSXSAJ)</p><p> JB ACC.1,JC2 ;ACC.1控制秒鐘的調(diào)時(shí),ACC.1為低電平表示按下</p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p> TSJC1: MOV A,P1</p><p> JB A
59、CC.1,ZX1 ;ACC.1的鍵是否松開</p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p> SJMP TSJC1</p><p> ZX1:INC R2 ;松開則加一</p><p> CJNE R2,#7AH,JC2 ;判斷有沒有進(jìn)位&
60、lt;/p><p> MOV R2,#70H</p><p><b> INC R3</b></p><p> CJNE R3,#76H,JC2</p><p> MOV R3,#70H</p><p><b> LJMP JC2</b></p><
61、p> JC2:MOV A,P1;判斷分鐘的調(diào)整按鍵有沒有按下</p><p> JB ACC.2,JC3 ;ACC.2控制分鐘的調(diào)時(shí),ACC.2為低電平表示按下</p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p> TSJC2:MOV A,P1 ;判斷分
62、鐘調(diào)整鍵有沒有松開</p><p> JB ACC.2,ZX2</p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p> SJMP TSJC2</p><p> ZX2:INC R4;松開則加一</p><p> CJNE R4,#
63、7AH,JC3 ;判斷有沒有進(jìn)位</p><p> MOV R4,#70H</p><p><b> INC R5</b></p><p> CJNE R5,#76H,JC3</p><p> MOV R5,#70H</p><p><b> LJMP JC3</b&
64、gt;</p><p> JC3:MOV A,P1 ;判斷時(shí)鐘的調(diào)整按鍵有沒有按下</p><p> JB ACC.3,JSTS ;ACC.3控制分鐘的調(diào)時(shí),ACC.3為低電平表示按下</p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p>
65、 TSJC3:MOV A,P1 ;判斷時(shí)鐘的調(diào)整按鍵有沒有松開</p><p> JB ACC.3,ZX3</p><p> LCALL XSSMG</p><p> LCALL XSSMG</p><p> SJMP TSJC3</p><p> ZX3:INC R6;松開則加一
66、</p><p> CJNE R7,#72H,JXZX;判斷有沒有進(jìn)位</p><p> CJNE R6,#74H,JXZX</p><p> MOV R6,#70H</p><p> MOV R7,#70H</p><p><b> SJMP JSTS</b></p>
67、<p> JXZX:CJNE R6,#7AH,JSTS</p><p> MOV R6,#70H</p><p> INC R7 </p><p><b> JSTS:RET</b></p><p> ;顯示各個(gè)數(shù)碼管中的值,每顯示一個(gè)延時(shí)1秒</p>&l
68、t;p> XSSMG:MOV A,#0FEH;顯示數(shù)碼管各個(gè)的值,每顯示顯示一個(gè)數(shù)碼管延時(shí)1秒,然后控制為左移 </p><p> MOV 7DH,R2;7DH是為將R2的地址放到R0中</p><p> MOV R0,7DH</p><p> MOV P0,@R0;將R2的段控碼送到P0口</p><
69、;p><b> MOV P2,A</b></p><p> LCALL DELAY1MS</p><p> MOV 7DH,R3 ;</p><p> MOV R0,7DH</p><p><b> RL A</b></p><p> MOV P0,@R
70、0</p><p><b> MOV P2,A</b></p><p> LCALL DELAY1MS </p><p><b> RL A</b></p><p> MOV P0,#0BFH ;0BFH為一的共陽(yáng)段控碼</p><p><b>
71、MOV P2,A</b></p><p> LCALL DELAY1MS </p><p><b> RL A</b></p><p> MOV 7DH,R4</p><p> MOV R0,7DH</p><p> MOV P0,@R0</p><p&g
72、t;<b> MOV P2,A</b></p><p> LCALL DELAY1MS</p><p><b> RL A</b></p><p> MOV 7DH,R5</p><p> MOV R0,7DH</p><p> MOV P0,@R0</p&
73、gt;<p><b> MOV P2,A</b></p><p> LCALL DELAY1MS</p><p><b> RL A</b></p><p> MOV P0,#0BFH ;0BFH為一的共陽(yáng)段控碼</p><p><b> MOV P2,A&
74、lt;/b></p><p> LCALL DELAY1MS</p><p><b> RL A</b></p><p> MOV 7DH,R6</p><p> MOV R0,7DH</p><p> MOV P0,@R0</p><p><b>
75、; MOV P2,A</b></p><p> LCALL DELAY1MS</p><p><b> RL A</b></p><p> MOV 7DH,R7</p><p> MOV R0,7DH</p><p> MOV P0,@R0</p><p
76、><b> MOV P2,A</b></p><p> LCALL DELAY1MS</p><p><b> RET</b></p><p> ;以上這段程序是將R2到R7中控制的段控碼分別送到秒、分、時(shí)的數(shù)碼管中顯示并延時(shí)每個(gè)數(shù)碼管顯示后延時(shí)1秒</p><p> XSXH:MO
77、V A,#0FEH ;顯示學(xué)號(hào)(首寫字母)的的子程序</p><p><b> MOV P2,A</b></p><p> MOV P0,#82H</p><p> LCALL DELAY1MS ;顯示6并延時(shí)1ms</p><p><b> RL A</b></p&g
78、t;<p><b> MOV P2,A</b></p><p> MOV P0,#99H</p><p> LCALL DELAY1MS ;顯示4并延時(shí)1ms</p><p><b> RL A</b></p><p><b> MOV P2,A</b&
79、gt;</p><p> MOV P0,#0BFH</p><p> LCALL DELAY1MS ;顯示一并延時(shí)1ms</p><p><b> RL A</b></p><p><b> MOV P2,A</b></p><p> MOV P0,#0B0
80、H</p><p> LCALL DELAY1MS ;顯示3并延時(shí)1ms</p><p><b> RL A</b></p><p><b> MOV P2,A</b></p><p> MOV P0,#0C0H</p><p> LCALL DELAY1M
81、S ;顯示0并延時(shí)1ms</p><p><b> RL A</b></p><p><b> MOV P2,A</b></p><p> MOV P0,#90H</p><p> LCALL DELAY1MS ;顯示9并延時(shí)1ms</p><p&g
82、t;<b> RL A</b></p><p><b> MOV P2,A</b></p><p> MOV P0,#0C0H</p><p> LCALL DELAY1MS ;顯示0并延時(shí)1ms</p><p><b> RL A</b></p&g
83、t;<p><b> MOV P2,A</b></p><p> MOV P0,#0A4H</p><p> LCALL DELAY1MS ;顯示Z并延時(shí)1ms</p><p><b> RET</b></p><p><b> END</b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電子鐘的設(shè)計(jì)
- 單片機(jī)電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字電子鐘
- 課程設(shè)計(jì)----基于單片機(jī)的數(shù)字電子鐘設(shè)計(jì)
- 電子鐘課程設(shè)計(jì)--基于單片機(jī)的電子鐘設(shè)計(jì)
- 電子鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
- 單片機(jī)課程設(shè)計(jì)--多功能數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)— 多功能數(shù)字電子鐘
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)--單片機(jī)多功能電子鐘設(shè)計(jì)
- 電子時(shí)鐘數(shù)字電子鐘單片機(jī)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論