電子時(shí)鐘單片機(jī)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩24頁(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、<p><b>  摘 要</b></p><p>  近年來(lái)隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),功耗低,體積小,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來(lái)越廣泛應(yīng)用于各個(gè)領(lǐng)域,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。<

2、/p><p>  數(shù)字時(shí)鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路。它的計(jì)時(shí)周期是24小時(shí)。采用LED數(shù)碼顯示管顯示時(shí)、分、秒,以24小時(shí)計(jì)時(shí)方式,根據(jù)數(shù)碼管動(dòng)態(tài)顯示原理進(jìn)行顯示?;?1單片的電子時(shí)鐘,外圍電路簡(jiǎn)單易于實(shí)現(xiàn),性價(jià)比高,是實(shí)現(xiàn)電子時(shí)鐘的不錯(cuò)選擇。</p><p>  關(guān)鍵詞: 單片機(jī), 傳感器, 數(shù)碼管,中斷</p><p><b>  Abs

3、tract</b></p><p>  In recent years along with computer penetration in the social sphere and the large scale integrated circuit development, SCM applications are constantly deepening, because it has str

4、ong function, low power consumption, small size, cheap, reliable, use convenient wait for a characteristic, thus it is especially suitable for and control of relevant system, more and more widely used in various field, S

5、CM is often used as a core component, in according to the specific hardware structure, as well as </p><p>  Digital clock is actually a pair of standard frequency count of the counting circuit. Its time peri

6、od is 24 hours。Using the LED digital tube display hours,minutes and seconds,in 24 hours time,according to the principle of dynamic display of digital tube display. Based on 51single-chip electronic clock, the peripheral

7、circuit is simple, cost-effective, is a good choice to realize the electronic clock.</p><p>  Keywords:Single chip microcomputer, Sensor, Digital tube ,Interrupt</p><p><b>  l</b><

8、;/p><p><b>  第1章 緒論</b></p><p>  1.1課題研究的背景 </p><p>  20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化成程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶

9、貴,工作的忙碌性和繁雜性容易使人們忘記當(dāng)前時(shí)間。</p><p>  單片機(jī)模塊中最常見(jiàn)的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更長(zhǎng)的使用壽命,因此得到了廣泛的使用。</p><p>  數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站,碼頭,辦公室等公共場(chǎng)所,成為人們?nèi)粘I?/p>

10、中不可少的必需品。 </p><p>  基于51單片的電子時(shí)鐘,外圍電路簡(jiǎn)單易于實(shí)現(xiàn),性價(jià)比高,是實(shí)現(xiàn)電子時(shí)鐘的不錯(cuò)選擇。研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 </p><p>  1.2 課題的主要內(nèi)容課題的主要內(nèi)容課題的主要內(nèi)容 本次課程設(shè)計(jì)基于單片機(jī)內(nèi)部資源設(shè)計(jì)出的一款性價(jià)比高的電子時(shí)鐘系統(tǒng),主要涉及到以下幾個(gè)研究方向: (1) 熟悉MCS-51單片機(jī)內(nèi)部定

11、時(shí)器的工作方式; (2) 掌握單片機(jī)內(nèi)部中斷系統(tǒng)的工作模式; (3) 了解MCS-51單片機(jī)外部電路的一般設(shè)計(jì)方法; (4) 熟悉匯編語(yǔ)言的編寫(xiě)規(guī)則; 河南機(jī)電高等專科學(xué)校畢業(yè)論文 (5) 掌握單片機(jī)內(nèi)部ram地址分配方法; (6) 掌握特殊功能寄存器的用法; (7) 熟悉Proteus ISIS軟件的使用; (8) 掌握匯編語(yǔ)言的編譯方法。 </p><p>  第2章電子時(shí)鐘實(shí)現(xiàn)原理</p

12、><p>  2.1設(shè)計(jì)方案:

13、 </p><p>  1、通過(guò)單片機(jī)內(nèi)部的計(jì)數(shù)/定時(shí)器,采用軟件編程來(lái)實(shí)現(xiàn)時(shí)鐘計(jì)數(shù),一般稱為軟時(shí)鐘,這種方法的硬件線路簡(jiǎn)單,系統(tǒng)的功能一般與軟件設(shè)計(jì)相關(guān),通常用在對(duì)時(shí)間精度要求不高的場(chǎng)合。</p><p>  2、采用時(shí)鐘芯片,它的功能強(qiáng)大,功

14、能部件集成在芯片內(nèi)部,具有自動(dòng)產(chǎn)生時(shí)鐘等相關(guān)功能,硬件成本相對(duì)較高;軟件編程簡(jiǎn)單,通常用在對(duì)時(shí)鐘精度要求較高的場(chǎng)合。</p><p><b>  2.2設(shè)計(jì)內(nèi)容:</b></p><p>  這里采用應(yīng)用廣泛的AT89C51作為時(shí)鐘控制芯片,利用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器T0 實(shí)現(xiàn)軟時(shí)鐘的目的。首先將T0設(shè)定工作于定時(shí)方式,對(duì)機(jī)器周期計(jì)數(shù)形成基準(zhǔn)時(shí)間(50ms),然后用

15、另一個(gè)定時(shí)/計(jì)數(shù)器T1對(duì)基準(zhǔn)時(shí)間計(jì)數(shù)形成秒,秒計(jì)60次形成分,分計(jì)60形成小時(shí),小時(shí)計(jì)到12。最后通過(guò)數(shù)碼管把它們的內(nèi)容在相應(yīng)的位置顯示出來(lái),達(dá)到時(shí)、分、秒計(jì)時(shí)的功能。</p><p>  此外還要實(shí)現(xiàn)對(duì)時(shí)間的調(diào)整功能,89C51的P1.0、P1.1、P1.2外接三個(gè)獨(dú)立按鍵,當(dāng)按下P1.0按鍵時(shí),系統(tǒng)進(jìn)入調(diào)時(shí)間的狀態(tài)或啟動(dòng)時(shí)間顯示的功能;當(dāng)按下P1.1按鍵時(shí),對(duì)顯示的數(shù)碼管進(jìn)行加一的功能;當(dāng)按下P1.2按鍵時(shí),

16、對(duì)顯示的數(shù)碼管進(jìn)行減一的功能,達(dá)到調(diào)整時(shí)間的目的。</p><p>  2.3 系統(tǒng)框圖設(shè)計(jì) 根據(jù)電子時(shí)鐘能夠?qū)崿F(xiàn)的功能,采用單片機(jī)內(nèi)部資源,設(shè)計(jì)出了系統(tǒng)原理框圖,如圖2-1所示。</p><p><b>  圖2-1</b></p><p>  在單片機(jī)內(nèi)部構(gòu)建三個(gè)模塊:控制模塊、譯碼模塊、定時(shí)模塊,用以實(shí)現(xiàn)自動(dòng)計(jì)數(shù)、譯碼顯示功能。單片機(jī)

17、外部構(gòu)建四個(gè)電路:時(shí)鐘電路、復(fù)位電路、外部按鈕電路、顯示電路,用以實(shí)現(xiàn)對(duì)單片機(jī)內(nèi)部計(jì)數(shù)控制以及譯碼輸出的正確顯示。該電子時(shí)鐘是將秒、分、時(shí)顯示在人的視覺(jué)器官面前的一種計(jì)時(shí)裝置。故將計(jì)時(shí)周期設(shè)置為24小時(shí),當(dāng)顯示滿刻度是23時(shí)59分59秒時(shí),數(shù)碼管顯示為0。為了確保時(shí)間正常校對(duì),在系統(tǒng)中設(shè)有校對(duì)按鈕,用以實(shí)現(xiàn)對(duì)數(shù)碼管顯示的正確調(diào)整。 </p><p>  2.4 系統(tǒng)電路原理設(shè)計(jì) 在本次的設(shè)計(jì)中對(duì)12MHZ的系

18、統(tǒng)時(shí)鐘進(jìn)行定時(shí)計(jì)數(shù),初值設(shè)為B03CH。形成定時(shí)時(shí)間為50ms。用片內(nèi)RAM的7BH單元對(duì)50ms計(jì)數(shù),計(jì)20次1秒鐘到,然后對(duì)秒計(jì)數(shù)器78H單元加1,秒計(jì)數(shù)器加到60后就向分進(jìn)位,則分計(jì)數(shù)器79H單元加1而秒計(jì)數(shù)器78H單元清零;分計(jì)數(shù)器加到60后又向時(shí)進(jìn)位,則時(shí)計(jì)數(shù)器7AH單元加1而分計(jì)數(shù)器79H單元清零;時(shí)計(jì)數(shù)器加到24則時(shí)計(jì)數(shù)器清零。然后把秒、分、時(shí)計(jì)數(shù)器分成十位和個(gè)位放到8個(gè)數(shù)碼管的顯示緩沖區(qū),通過(guò)數(shù)碼管顯示出來(lái)。顯示格式為小

19、時(shí)十位、小時(shí)個(gè)位---分十位、分個(gè)位---秒十位、秒個(gè)位。</p><p>  圖2-2 根據(jù)電路原理框圖設(shè)計(jì)出電路原理圖如圖2-2所示,由12MHz的晶振給單片機(jī)提供固定的時(shí)鐘頻率,通過(guò)k1、k2、k0可以對(duì)顯示電路時(shí)間進(jìn)行位設(shè)定。 在圖2-2中,復(fù)位電路、時(shí)鐘電路、控制電路加上單片機(jī)組成單片機(jī)最小應(yīng)用系統(tǒng),能夠?qū)崿F(xiàn)很多復(fù)雜的功能。系統(tǒng)由AT89C51、LED 數(shù)碼管、按鍵、電容、電阻等部分構(gòu)

20、成,能實(shí)現(xiàn)時(shí)間的調(diào)整、輸出、調(diào)時(shí)間等功能。系統(tǒng)中按鈕k能對(duì)時(shí)間進(jìn)行調(diào)整功能的按鈕,采用單鍵控制調(diào)時(shí)功能,運(yùn)用軟件去判斷按鍵的時(shí)間從而選擇完成相對(duì)應(yīng)的功能。當(dāng)按下k0第一次時(shí),對(duì)hour來(lái)調(diào)節(jié)小時(shí)的時(shí)間;當(dāng)?shù)诙伟聪耴0時(shí),對(duì)minute來(lái)調(diào)節(jié)分的時(shí)間;第三次按下是對(duì)scoend來(lái)調(diào)節(jié)秒時(shí)間。在設(shè)置秒位時(shí)間時(shí),k1按下,秒就加1;如果k2按下,秒就減1。時(shí)、分調(diào)節(jié)與秒設(shè)定相同。 系統(tǒng)中的按鍵采用中斷技術(shù)來(lái)檢測(cè),它在單片系統(tǒng)中

21、有著十分重要的作用,它不僅可以提高單片機(jī)CPU的效率,也可以對(duì)突發(fā)事件處理。所謂中斷就是當(dāng)CPU正在執(zhí)行程序A時(shí),發(fā)生了另一個(gè)急需處理的事件B,這是CPU暫停當(dāng)前執(zhí)行的程序A,立即轉(zhuǎn)去執(zhí)行處理事件B的程序,處理完事件B后,再返</p><p>  第3章 系統(tǒng)各單元電路分析3.1 AT89C51 AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS的8位微處理器,俗稱單片機(jī)。AT89

22、C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的 </p><p><b>  圖

23、3-1</b></p><p>  由于電路原理中只用到單片機(jī)的p0、p1、p2口,所示下面對(duì)這三個(gè)端口進(jìn)行詳細(xì)介紹。 1)、P0口:P00~P07統(tǒng)稱為P0口,在不接片外存儲(chǔ)器與不擴(kuò)展I/O接口時(shí),作為準(zhǔn)雙向輸入/輸出接口。在接有片外存儲(chǔ)器或擴(kuò)展I/O接口時(shí),P0口分時(shí)復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。P0口是一個(gè)三態(tài)雙向口,由一個(gè)輸出鎖存器、兩個(gè)三態(tài)緩沖器、輸出驅(qū)動(dòng)電路和輸出控制電路組成。在輸

24、入數(shù)據(jù)時(shí),應(yīng)人為地先向P0口寫(xiě)“1”,定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 2)、P1口:P10~P17統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4LSTTL門(mén)電流。P1口管腳寫(xiě)入“1”后,被內(nèi)部上拉為高,可用作輸

25、入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。 3)、P2口:P20 ~P27口統(tǒng)稱為P2口,一般可以作為準(zhǔn)雙向I/O接口使用,在接有片外存儲(chǔ)器或擴(kuò)展I/O接口且尋址范</p><p>  3.2 復(fù)位電路 計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,復(fù)位時(shí)使中央處理器CPU和內(nèi)部其他部件處于一個(gè)確定的初始狀態(tài),從這個(gè)狀態(tài)開(kāi)始工作。 AT89C51單片機(jī)有一個(gè)復(fù)位引腳RST,高電平有效。在時(shí)鐘電

26、路工作以后,當(dāng)外部電路使得RST端出現(xiàn)兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)以上的高電平,系統(tǒng)內(nèi)部復(fù)位。復(fù)位有兩種方式:上電復(fù)位和按鈕復(fù)位。在此次的設(shè)計(jì)中,我采用按鍵復(fù)位,</p><p><b>  圖3-2</b></p><p>  只要RST保持高電平,AT89C51單片機(jī)將循環(huán)復(fù)位。復(fù)位期間,ALE、PSEN輸出高電平。RST從高電平變?yōu)榈碗娖胶?,PC指針變?yōu)?0

27、00H,使單片機(jī)從程序存儲(chǔ)器地址為0000H的單元開(kāi)始執(zhí)行程序。復(fù)位后,內(nèi)容各寄存器的初始內(nèi)容如表4-1所示,當(dāng)單片機(jī)執(zhí)行程序出錯(cuò)或進(jìn)入死循環(huán)時(shí),可按復(fù)位按鈕重新啟動(dòng)。 </p><p>  3.3 時(shí)鐘電路 在本次設(shè)計(jì)中,時(shí)鐘電路設(shè)計(jì)就是采用內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89C51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2是高增益反相放大器的輸入端和輸出端。

28、這個(gè)高增益反相放大器將與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器。外接晶體振蕩器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中,對(duì)外接電容的值雖然沒(méi)有嚴(yán)格的要求,但是電容的大小會(huì)影響起振的快速和溫度的穩(wěn)定性、振蕩器的穩(wěn)定性、振蕩器頻率的高低。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22uF。在焊接刷電路板時(shí),我們應(yīng)注意晶體振蕩器和電容盡可能安裝的與單片機(jī)芯片靠近些,用以減

29、少寄生電容,為了更好地保證振蕩器可靠地工作和穩(wěn)定行,其電路圖如圖3-3所示。</p><p><b>  圖3-3</b></p><p>  3.4 按鍵電路 獨(dú)立式鍵盤(pán)是各按鍵相互獨(dú)立,每個(gè)按鍵各接一根I/O接口線,每根I/O接口線的按鍵是不會(huì)影響其他的I/O接口線。在本次設(shè)計(jì)中,按鍵為K0、K1、K2,他們分別與單片機(jī)P10、P11、P12接口線相接。通

30、過(guò)按鍵控制顯示器的顯示。其電路圖</p><p><b>  圖3-4</b></p><p>  3.5 LED顯示電路 在本次的設(shè)計(jì)中,采用的8位的數(shù)碼管顯示器。數(shù)碼管如果按照段數(shù)分可為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元,也就是多了一個(gè)小數(shù)點(diǎn)的顯示;如果按能夠顯示多少個(gè)“8”分類的話,也可以可分為1位、2位、4位等數(shù)碼管。

31、如果按照發(fā)光二極管單元的連接方式又可以分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)極的數(shù)碼管是將所有發(fā)光二極管的陽(yáng)極接到一起后就形成公共陽(yáng)極(COM)的數(shù)碼管,共陽(yáng)極數(shù)碼管在應(yīng)用時(shí)要將公共極(COM)接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰極數(shù)碼管是將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰極數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極(COM)接到地線GND上,當(dāng)某

32、一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。 </p><p><b>  圖3-5</b></p><p>  第四章 系統(tǒng)軟件程序設(shè)計(jì)</p><p><b>  4.1主程序</b></p><p>  先對(duì)顯示單元和定時(shí)器/計(jì)數(shù)器

33、初始化,然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當(dāng)有按鍵按下時(shí),則轉(zhuǎn)入相應(yīng)的功能程序。</p><p>  4.2數(shù)碼管顯示模塊</p><p>  本設(shè)計(jì)有8個(gè)數(shù)碼管,從右到左為妙、橫線、分、橫線、時(shí)。在本系統(tǒng)中數(shù)碼管顯示采用軟件譯碼動(dòng)態(tài)顯示。在存儲(chǔ)器中首先建立一張顯示信息的字段碼表,顯示時(shí),先從顯示緩沖區(qū)中取出顯示的信息,然后通過(guò)查表程序在字段表中查出所顯示的信息的斷碼,從P0端口輸

34、出,同時(shí)在P2端口進(jìn)行數(shù)碼管顯示。</p><p>  4.3定時(shí)器/計(jì)數(shù)器T0中斷服務(wù)程序</p><p>  T0用于計(jì)時(shí),選中方式一,重復(fù)定時(shí),定時(shí)時(shí)間設(shè)為50ms,定時(shí)時(shí)間到則中斷,在中斷服務(wù)程序中用一個(gè)計(jì)數(shù)器對(duì)50ms計(jì)數(shù),計(jì)20次則對(duì)秒單元加一。秒單元加到60則對(duì)分單元加一,同時(shí)秒單元清0;分單元加到60則對(duì)時(shí)單元加一,同時(shí)分單元清0;時(shí)單元加到24則對(duì)時(shí)單元清0,標(biāo)志一天時(shí)間

35、計(jì)滿。在對(duì)各單元計(jì)數(shù)的同時(shí),把他們的值放到存儲(chǔ)器單元的指定位置。流程圖如下:</p><p><b>  4.4按鍵處理模塊</b></p><p>  按鍵設(shè)置為:如果沒(méi)有按鍵,則時(shí)鐘正常走時(shí)。當(dāng)按下K0鍵時(shí),進(jìn)入調(diào)分狀態(tài),時(shí)鐘停止走動(dòng);按K1和K2按鍵可以進(jìn)行加一和減一操作;繼續(xù)按K0鍵可以分別進(jìn)行分和小時(shí)的調(diào)整;最后按K0鍵啟動(dòng)計(jì)時(shí)。</p>&l

36、t;p>  第5章 仿真實(shí)現(xiàn)</p><p>  仿真實(shí)現(xiàn) 在本課題中,采用AT89C51單片機(jī)作為主控制器,12MHZ晶振作為振蕩源,P0口作為輸出字段碼,P2口作為輸出位選碼,采用共陽(yáng)的LED數(shù)碼管,P1.0為調(diào)時(shí)位選擇按鍵,P1.1為加1鍵,P1.2為減1鍵。片內(nèi)RAM的70H到77H單元為L(zhǎng)ED數(shù)碼管的顯示緩沖區(qū)78H,79H,7AH分別為秒、分、小時(shí)計(jì)數(shù)單元。7BH為50ms計(jì)數(shù)器,7CH為

37、調(diào)時(shí)按鍵計(jì)數(shù)器。具體的程序見(jiàn)附錄。</p><p>  第6章 課程設(shè)計(jì)總結(jié)</p><p>  做了一周的數(shù)字鐘課程設(shè)計(jì),讓我感受頗深,在本次電子技術(shù)課程設(shè)計(jì)過(guò)程中,得到了老師和同學(xué)的幫助,讓我學(xué)到了很多東西。</p><p>  通過(guò)這次課程設(shè)計(jì),在很高的程度上彌補(bǔ)了我們的理論的不足,通過(guò)設(shè)計(jì)進(jìn)一步鞏固了我們的理論知識(shí),讓我們學(xué)的更扎實(shí)??傊?,這次課程設(shè)計(jì)帶給我

38、很大的收獲,再一次感謝學(xué)校給了我們一個(gè)展現(xiàn)自己才能的機(jī)會(huì),這對(duì)我們以后的工作和學(xué)習(xí)都有很好的作用。</p><p><b>  參考文獻(xiàn):</b></p><p>  [1] 林立.單片機(jī)原理與應(yīng)用[M].北京:電子工業(yè)出版社,2009 [2] 李守中.51單片機(jī)開(kāi)發(fā)入門(mén)與經(jīng)典實(shí)例[M].北京:人民郵電出版社,2007</p><p>  [

39、3]丁元杰主編.單片微型計(jì)算機(jī).北京:機(jī)械工業(yè)出版社.2003[4] 胡漢才.單片機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,1996 </p><p>  [5]李廣第主編.單片機(jī)基礎(chǔ).北京:北京航天工業(yè)出版社.2002[6] 楊加國(guó).單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)(第二版)[M].北京:清華大學(xué)出版社,2009 </p><p>  附錄: 匯編語(yǔ)言程序</p>

40、<p>  ORG 0000H</p><p>  LJMP START</p><p>  ORG 000BH</p><p>  LJMP INIT0</p><p>  START:MOV R0,#70H;主程序開(kāi)始</p><p>  MOV R7,#0CH</p>

41、<p>  INIT: MOV @R0,#00H</p><p><b>  INC R0</b></p><p>  DJN Z R7,INIT</p><p>  MOV 72H,#10;對(duì)連字符進(jìn)行裝值</p><p>  MOV 75H,#10</p><p>

42、;  MOV TMOD,#01H;選擇定時(shí)器/計(jì)數(shù)器T0的方式1</p><p>  MOV TL0,#0B0H;對(duì)低位賦初值</p><p>  MOV TH0,#03CH;高位賦初值</p><p><b>  SETB EA</b></p><p><b>  SETB ET0<

43、/b></p><p><b>  SETB TR0</b></p><p>  START1:LCALL SCAN</p><p>  LCALL KEYSCAN</p><p>  SJMP START1</p><p>  DL1MS:MOV R6,#14H;延時(shí)1子

44、程序</p><p>  DL1:MOV R7,#19H</p><p>  DL2:DJNZ R7,DL2</p><p>  DJNZ R6,DL1</p><p><b>  RET</b></p><p>  DL20MS:ACALL SCAN;延時(shí)20ms子程

45、序</p><p>  ACALL SCAN</p><p>  ACALL SCAN</p><p>  RET ;數(shù)碼管顯示程序開(kāi)始</p><p>  SCAN:MOV A,78H</p><p>  MOV B,#0AH</p><p>  DIV AB

46、 ;時(shí)間秒的十位送給A,時(shí)間秒的個(gè)位送B</p><p>  MOV 71H,A;時(shí)間秒要顯示的十位</p><p>  MOV 70H,B;時(shí)間秒要顯示的個(gè)位</p><p>  MOV A,79H</p><p>  MOV B,#0AH</p><p>  DIV AB;時(shí)間分的十位送給A

47、,時(shí)間分的個(gè)位送B</p><p>  MOV 74H,A;時(shí)間分要顯示的十位送地址</p><p>  MOV 73H,B;時(shí)間分要顯示的個(gè)位送地址</p><p>  MOV A,7AH</p><p>  MOV B,#0AH</p><p>  DIV AB;時(shí)間時(shí)的十位送給A,時(shí)間時(shí)的

48、個(gè)位送B</p><p>  MOV 77H,A;時(shí)間時(shí)顯示的十位送地址</p><p>  MOV 76H,B;時(shí)間時(shí)要顯示的個(gè)位送地址</p><p>  MOV R1,#70H</p><p>  MOV R5,#0FEH</p><p>  MOV R3,#08H</p><

49、;p>  SCAN1:MOV A,R5;數(shù)碼管的顯示程序</p><p><b>  MOV P2,A</b></p><p>  MOV A,@R1</p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR;對(duì)字段表取值顯示</p><

50、;p><b>  MOV P0,A</b></p><p><b>  MOV A,R5</b></p><p>  LCALL DL1MS</p><p><b>  INC R1</b></p><p><b>  MOV A,R5</b>

51、;</p><p><b>  RL A</b></p><p><b>  MOV R5,A</b></p><p>  DJNZ R3,SCAN1</p><p>  MOV P2,#0FFH</p><p>  MOV P0,#0FFH</p>

52、<p>  RET ;"0~9"和"-"的字段表</p><p>  TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH</p><p>  ;定時(shí)/計(jì)數(shù)器T0中斷程序</p><p>  INIT0:PUSH ACC</p>

53、;<p><b>  PUSH PSW</b></p><p><b>  CLR ET0</b></p><p><b>  CLR TR0</b></p><p>  MOV TL0,#0B0H</p><p>  MOV TH0,#03CH<

54、/p><p><b>  SETB TR0</b></p><p><b>  INC 7BH</b></p><p>  MOV A,7BH</p><p>  CJNE A,#14H,OUTT0</p><p>  ;50ms是否到20次,沒(méi)有到就繼續(xù)執(zhí)行50ms的

55、延時(shí)</p><p>  MOV 7BH,#00</p><p><b>  INC 78H</b></p><p>  MOV A,78H</p><p>  CJNE A,#3CH,OUTT0</p><p>  ;一秒的延時(shí)是否計(jì)到60次,沒(méi)有就繼續(xù)執(zhí)行 </p>&l

56、t;p>  MOV 78H,#00</p><p><b>  INC 79H</b></p><p><b>  MOV A,79H</b></p><p>  CJNE A,#3CH,OUTT0</p><p>  MOV 79H,#00</p><p>&

57、lt;b>  INC 7AH</b></p><p>  MOV A,7AH</p><p>  CJNE A,#18H,OUTT0;60分鐘的延時(shí)是否計(jì)到24次,沒(méi)有就 </p><p><b>  繼續(xù)執(zhí)行程序</b></p><p>  MOV 7AH,#00</p><

58、;p>  OUTT0:SETB ET0;啟動(dòng)定時(shí)器T0</p><p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p><b>  ;按鍵處理

59、程序</b></p><p>  KEYSCAN:CLR EA</p><p>  JNB P1.0,KEYSCAN0;P1.0有按鍵按下則跳轉(zhuǎn)到子程序</p><p>  JNB P1.1,KEYSCAN1;P1.1有按鍵按下則跳轉(zhuǎn)到子程序</p><p>  JNB P1.2,KEYSCAN2;P1.2有按鍵按下

60、則跳轉(zhuǎn)到子程序</p><p>  KEYOUT:SETB EA</p><p><b>  RET</b></p><p>  KEYSCAN0:LCALL DL20MS;20ms的延時(shí)消抖</p><p>  JB P1.0,KEYOUT</p><p>  WAIT0:JNB

61、 P1.0,WAIT0;判斷按鍵是否松手, 松手就往下執(zhí)行程序</p><p><b>  INC 7CH</b></p><p>  MOV A,7CH</p><p><b>  CLR ET0</b></p><p><b>  CLR TR0</b></

62、p><p>  CJNE A,#03H,KEYOUT;按下第一次和第二次對(duì)時(shí)、分選定</p><p>  MOV 7CH,#00;按下第三次時(shí)就啟動(dòng)計(jì)時(shí)</p><p><b>  SETB ET0</b></p><p><b>  SETB TR0</b></p><

63、;p>  SJMP KEYOUT</p><p>  KEYSCAN1:LCALL DL20MS;按鍵加一的程序</p><p>  JB P1.1,KEYOUT</p><p>  WAIT1:JNB P1.1,WAIT1</p><p>  MOV A,7CH</p><p>  CJNE

64、A,#02H,KSCAN11;如果功能鍵按下則對(duì)時(shí)加一調(diào)整</p><p><b>  INC 79H</b></p><p>  CJNE A,#3CH,KEYOUT;如果加到60則清零</p><p>  MOV 79H,#00</p><p>  SJMP KEYOUT</p><

65、p>  KSCAN11:INC 7AH;如果功能鍵是按下第二次則對(duì)分進(jìn)行加一調(diào)整</p><p>  MOV A,7AH</p><p>  CJNE A,#18H,KEYOUT</p><p>  MOV 7AH,#00</p><p>  SJMP KEYOUT</p><p>  KEYSCAN

66、2:LCALL DL20MS;延時(shí)消抖程序</p><p>  JB P1.2,KEYOUT</p><p>  WAIT2:JNB P1.2,WAIT2;判斷是否放開(kāi)按鍵</p><p>  MOV A,7CH</p><p>  CJNE A,#02H,KSCAN21;如果功能鍵是按下第一次對(duì)時(shí)進(jìn)行減一</p&g

67、t;<p><b>  DEC 79H</b></p><p>  MOV A,79H</p><p>  CJNE A,#0FFH,KEYOUT</p><p>  MOV 79H,#3BH</p><p>  SJMP KEYOUT</p><p>  KSCAN21:

68、DEC 7AH;如果功能鍵是按下第二次則對(duì)分進(jìn)行減一</p><p>  CJNE A,#0FFH,KEYOUT</p><p>  MOV 7AH,#17H</p><p>  SJMP KEYOUT</p><p><b>  END</b></p><p>  ORG 0000

69、H</p><p>  LJMP START</p><p>  ORG 000BH</p><p>  LJMP INIT0</p><p>  START:MOV R0,#70H;主程序開(kāi)始</p><p>  MOV R7,#0CH</p><p>  INIT: M

70、OV @R0,#00H</p><p><b>  INC R0</b></p><p>  DJN Z R7,INIT</p><p>  MOV 72H,#10;對(duì)連字符進(jìn)行裝值</p><p>  MOV 75H,#10</p><p>  MOV TMOD,#01H;選擇

71、定時(shí)器/計(jì)數(shù)器T0的方式1</p><p>  MOV TL0,#0B0H;對(duì)低位賦初值</p><p>  MOV TH0,#03CH;高位賦初值</p><p><b>  SETB EA</b></p><p><b>  SETB ET0</b></p><

72、;p><b>  SETB TR0</b></p><p>  START1:LCALL SCAN</p><p>  LCALL KEYSCAN</p><p>  SJMP START1</p><p>  DL1MS:MOV R6,#14H;延時(shí)1子程序</p><p&g

73、t;  DL1:MOV R7,#19H</p><p>  DL2:DJNZ R7,DL2</p><p>  DJNZ R6,DL1</p><p><b>  RET</b></p><p>  DL20MS:ACALL SCAN;延時(shí)20ms子程序</p><p>

74、;  ACALL SCAN</p><p>  ACALL SCAN</p><p>  RET ;數(shù)碼管顯示程序開(kāi)始</p><p>  SCAN:MOV A,78H</p><p>  MOV B,#0AH</p><p>  DIV AB ;時(shí)間秒的十位送給A,時(shí)間秒的個(gè)位送B&

75、lt;/p><p>  MOV 71H,A;時(shí)間秒要顯示的十位</p><p>  MOV 70H,B;時(shí)間秒要顯示的個(gè)位</p><p>  MOV A,79H</p><p>  MOV B,#0AH</p><p>  DIV AB;時(shí)間分的十位送給A,時(shí)間分的個(gè)位送B</p>

76、<p>  MOV 74H,A;時(shí)間分要顯示的十位送地址</p><p>  MOV 73H,B;時(shí)間分要顯示的個(gè)位送地址</p><p>  MOV A,7AH</p><p>  MOV B,#0AH</p><p>  DIV AB;時(shí)間時(shí)的十位送給A,時(shí)間時(shí)的個(gè)位送B</p><p

77、>  MOV 77H,A;時(shí)間時(shí)顯示的十位送地址</p><p>  MOV 76H,B;時(shí)間時(shí)要顯示的個(gè)位送地址</p><p>  MOV R1,#70H</p><p>  MOV R5,#0FEH</p><p>  MOV R3,#08H</p><p>  SCAN1:MOV A

78、,R5;數(shù)碼管的顯示程序</p><p><b>  MOV P2,A</b></p><p>  MOV A,@R1</p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR;對(duì)字段表取值顯示</p><p><b>  MOV

79、 P0,A</b></p><p><b>  MOV A,R5</b></p><p>  LCALL DL1MS</p><p><b>  INC R1</b></p><p><b>  MOV A,R5</b></p><p>

80、;<b>  RL A</b></p><p><b>  MOV R5,A</b></p><p>  DJNZ R3,SCAN1</p><p>  MOV P2,#0FFH</p><p>  MOV P0,#0FFH</p><p>  RET ;

81、"0~9"和"-"的字段表</p><p>  TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH</p><p>  ;定時(shí)/計(jì)數(shù)器T0中斷程序</p><p>  INIT0:PUSH ACC</p><p><b>

82、  PUSH PSW</b></p><p><b>  CLR ET0</b></p><p><b>  CLR TR0</b></p><p>  MOV TL0,#0B0H</p><p>  MOV TH0,#03CH</p><p><

83、b>  SETB TR0</b></p><p><b>  INC 7BH</b></p><p>  MOV A,7BH</p><p>  CJNE A,#14H,OUTT0;50ms是否到20次,沒(méi)有到就繼續(xù)執(zhí)行50ms的延時(shí)</p><p>  MOV 7BH,#00</p&g

84、t;<p><b>  INC 78H</b></p><p>  MOV A,78H</p><p>  CJNE A,#3CH,OUTT0;一秒的延時(shí)是否計(jì)到60次,沒(méi)有就繼續(xù)執(zhí)行 </p><p>  MOV 78H,#00</p><p><b>  INC 79H</b

85、></p><p><b>  MOV A,79H</b></p><p>  CJNE A,#3CH,OUTT0</p><p>  MOV 79H,#00</p><p><b>  INC 7AH</b></p><p>  MOV A,7AH</p

86、><p>  CJNE A,#18H,OUTT0;60分鐘的延時(shí)是否計(jì)到24次,沒(méi)有就 </p><p><b>  繼續(xù)執(zhí)行程序</b></p><p>  MOV 7AH,#00</p><p>  OUTT0:SETB ET0;啟動(dòng)定時(shí)器T0</p><p><b>  PO

87、P PSW</b></p><p><b>  POP ACC</b></p><p>  RETI;按鍵處理程序</p><p>  KEYSCAN:CLR EA</p><p>  JNB P1.0,KEYSCAN0;P1.0有按鍵按下則跳轉(zhuǎn)到子程序</p><p>

88、;  JNB P1.1,KEYSCAN1;P1.1有按鍵按下則跳轉(zhuǎn)到子程序</p><p>  JNB P1.2,KEYSCAN2;P1.2有按鍵按下則跳轉(zhuǎn)到子程序</p><p>  KEYOUT:SETB EA</p><p><b>  RET</b></p><p>  KEYSCAN0:LCALL

89、 DL20MS;20ms的延時(shí)消抖</p><p>  JB P1.0,KEYOUT</p><p>  WAIT0:JNB P1.0,WAIT0;判斷按鍵是否松手, 松手就往下執(zhí)行程序</p><p><b>  INC 7CH</b></p><p>  MOV A,7CH</p>&l

90、t;p><b>  CLR ET0</b></p><p><b>  CLR TR0</b></p><p>  CJNE A,#03H,KEYOUT;按下第一次和第二次對(duì)時(shí)、分選定</p><p>  MOV 7CH,#00;按下第三次時(shí)就啟動(dòng)計(jì)時(shí)</p><p><b

91、>  SETB ET0</b></p><p><b>  SETB TR0</b></p><p>  SJMP KEYOUT</p><p>  KEYSCAN1:LCALL DL20MS;按鍵加一的程序</p><p>  JB P1.1,KEYOUT</p><

92、p>  WAIT1:JNB P1.1,WAIT1</p><p>  MOV A,7CH</p><p>  CJNE A,#02H,KSCAN11;如果功能鍵按下則對(duì)時(shí)加一調(diào)整</p><p><b>  INC 79H</b></p><p>  CJNE A,#3CH,KEYOUT;如果加到

93、60則清零</p><p>  MOV 79H,#00</p><p>  SJMP KEYOUT</p><p>  KSCAN11:INC 7AH;如果功能鍵是按下第二次則對(duì)分進(jìn)行加一調(diào)整</p><p>  MOV A,7AH</p><p>  CJNE A,#18H,KEYOUT</p>

94、;<p>  MOV 7AH,#00</p><p>  SJMP KEYOUT</p><p>  KEYSCAN2:LCALL DL20MS;延時(shí)消抖程序</p><p>  JB P1.2,KEYOUT</p><p>  WAIT2:JNB P1.2,WAIT2;判斷是否放開(kāi)按鍵</p>

95、<p>  MOV A,7CH</p><p>  CJNE A,#02H,KSCAN21;如果功能鍵是按下第一次對(duì)時(shí)進(jìn)行減一</p><p><b>  DEC 79H</b></p><p>  MOV A,79H</p><p>  CJNE A,#0FFH,KEYOUT</p>

96、<p>  MOV 79H,#3BH</p><p>  SJMP KEYOUT</p><p>  KSCAN21:DEC 7AH;如果功能鍵是按下第二次則對(duì)分進(jìn)行減一</p><p>  CJNE A,#0FFH,KEYOUT</p><p>  MOV 7AH,#17H</p><p> 

溫馨提示

  • 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ù)僅提供信息存儲(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)論