AT89C51電子時(shí)鐘課程設(shè)計(jì)(8位) C編_第1頁(yè)
AT89C51電子時(shí)鐘課程設(shè)計(jì)(8位) C編_第2頁(yè)
AT89C51電子時(shí)鐘課程設(shè)計(jì)(8位) C編_第3頁(yè)
AT89C51電子時(shí)鐘課程設(shè)計(jì)(8位) C編_第4頁(yè)
AT89C51電子時(shí)鐘課程設(shè)計(jì)(8位) C編_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

第一章 序論設(shè)計(jì)目的:1、增進(jìn)對(duì)MCS51單片機(jī)電路的感性認(rèn)識(shí),加深對(duì)理論方面的理解;掌握Protel99SE,Proteus,,Keil軟件的有關(guān)知識(shí);了解和掌握軟硬件設(shè)計(jì)過(guò)程、方法及實(shí)現(xiàn);2、通過(guò)基于單片機(jī)的數(shù)字電子鐘的設(shè)計(jì)的設(shè)計(jì)練習(xí),了解必須提交的各項(xiàng)工程文件,也達(dá)到鞏固、充實(shí)和綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的目的。實(shí)驗(yàn)環(huán)境:1、增進(jìn)對(duì)MCS51單片機(jī)電路的感性認(rèn)識(shí),加深對(duì)理論方面的理解;掌握Protel99SE,Proteus,,Keil軟件的有關(guān)知識(shí);了解和掌握軟硬件設(shè)計(jì)過(guò)程、方法及實(shí)現(xiàn);2、通過(guò)基于單片機(jī)的數(shù)字電子鐘的設(shè)計(jì)的設(shè)計(jì)練習(xí),了解必須提交的各項(xiàng)工程文件,也達(dá)到鞏固、充實(shí)和綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的目的。任務(wù)要求:1、查閱課題相關(guān)資料,深入理解課題含義及設(shè)計(jì)要求,注意材料收集與整理;2、設(shè)計(jì)一個(gè)時(shí)鐘系統(tǒng),實(shí)現(xiàn)以24小時(shí)為一個(gè)周期,同時(shí)8位7段LED數(shù)碼管顯示小時(shí)、分鐘和秒的要求;3、該時(shí)鐘在計(jì)時(shí)過(guò)程中具有定時(shí)功能,當(dāng)時(shí)間到達(dá)提前定好的時(shí)間進(jìn)行蜂鳴報(bào)時(shí);4、設(shè)計(jì)四個(gè)按鍵S1、S2、S3和S4鍵,進(jìn)行相應(yīng)的操作就可實(shí)現(xiàn)校時(shí)、定時(shí)、復(fù)位功能。5、設(shè)計(jì)系統(tǒng)原理圖,利用Protel99SE繪制原理圖,設(shè)計(jì)程序,利用Proteus 仿真軟件進(jìn)行系統(tǒng)調(diào)試;6、結(jié)束后,及時(shí)提交設(shè)計(jì)報(bào)告(含紙質(zhì)稿、電子稿),要求格式規(guī)范、內(nèi)容完整、結(jié)論正確,正文字?jǐn)?shù)不少于3000字。第二章 硬件設(shè)計(jì)1、電路原理圖單片機(jī)采用AT89C51型時(shí)間顯示電路:采用一個(gè)8位共陰極數(shù)碼管,P1口驅(qū)動(dòng)顯示數(shù)字,P2口作為掃描信號(hào)時(shí)間設(shè)置電路:P3.0、P3.1、P3.2分別連接了3個(gè)按鍵,實(shí)現(xiàn)調(diào)試模式、時(shí)間加和時(shí)間減鬧鐘:P3.3口接揚(yáng)聲器2、單片機(jī)最小系統(tǒng)為什么稱之為單片機(jī)最小系統(tǒng)呢?單片機(jī)最小系統(tǒng),也叫做單片機(jī)最小應(yīng)用系統(tǒng),是指用最少的原件組成單片機(jī)可以工作的系統(tǒng)。單片機(jī)最小系統(tǒng)的三要素就是電源、晶振、復(fù)位電路復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合電容電壓不能突變的性質(zhì)可以知道,當(dāng)系統(tǒng)一上電,RST腳將會(huì)出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的RC值來(lái)決定。典型的51單片機(jī)當(dāng)RST腳的高電平持續(xù)兩個(gè)機(jī)器周。晶振電路: 晶振,又叫晶體振蕩器,從這個(gè)名字我們就可以看出來(lái),它注定一生都要不停振蕩的。他起到的作用是為單片機(jī)系統(tǒng)提供基準(zhǔn)時(shí)鐘信號(hào),類似于我們部隊(duì)訓(xùn)練時(shí)喊口令的人,單片機(jī)內(nèi)部所有的工作都是以這個(gè)時(shí)鐘信號(hào)為步調(diào)基準(zhǔn)來(lái)進(jìn)行工作的。 STC89C52 單片機(jī)的 18 腳和 19 腳是晶振引腳,我們接了一個(gè) 12MHz(產(chǎn)生精確的uS級(jí)時(shí)歇,方便定時(shí)操作),外加兩個(gè) 30pF 的電容,電容的作用是幫助晶振起振,并維持振蕩信號(hào)的穩(wěn)定。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位。一般推薦C 取0.1u,R取4.7K。當(dāng)然也有其他取法的,原則就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個(gè)機(jī)周期的高電平。至于如何具體定量計(jì)算,可以參考電路分析相關(guān)書籍。這里我們使用上電復(fù)位和按鍵復(fù)位兩種方式3、元件清單 電子鐘元器件清單元件名稱規(guī)格型號(hào)數(shù)量(個(gè))單片機(jī)AT89c511晶振12MHz1電容30uF2電容0.1F1按鍵BUTTON4液晶顯示7SEG-MPX8-CC-bule14、顯示工作原理:系統(tǒng)采用動(dòng)態(tài)顯示方式,用P0口來(lái)控制LED數(shù)碼管的段控線,而用P2口來(lái)控制其位控線。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺。5、設(shè)計(jì)方案與實(shí)現(xiàn)本課題采用軟件程序設(shè)計(jì)的方案,利用MCS51內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),LED數(shù)碼顯示器和按鍵,配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。運(yùn)用串行通信方式且計(jì)時(shí)不占用CPU時(shí)間,能夠充分利用好CPU。第三章 軟件設(shè)計(jì)流程及描述1、軟件介紹Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過(guò)一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語(yǔ)言編程,那么Keil幾乎就是你的不二之選,即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。優(yōu)點(diǎn):Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開發(fā),體會(huì)更加深刻。2、MCS-51 單片機(jī)的定時(shí)器/計(jì)數(shù)器MCS-51單片機(jī)共有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器,分別稱定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1。它們都是十六位加法計(jì)數(shù)結(jié)構(gòu),分別由TH0(地址8CH)和TL0(地址8AH)及TH1(地址8DH)和TL1(地址8BH)兩個(gè)8位計(jì)數(shù)器組成。這四個(gè)計(jì)數(shù)器均屬專用寄存器之列。MCS-51的每個(gè)定時(shí)器/計(jì)數(shù)器都具有定時(shí)和計(jì)數(shù)兩種功能。1. 計(jì)數(shù)功能所謂計(jì)數(shù)是指對(duì)外部事件進(jìn)行計(jì)數(shù)。外部事件的發(fā)生以輸入脈沖表示,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外來(lái)脈沖進(jìn)行計(jì)數(shù)。2. 定時(shí)功能定時(shí)功能也是通過(guò)計(jì)數(shù)器的計(jì)數(shù)來(lái)實(shí)現(xiàn)的。不過(guò)此時(shí)的計(jì)數(shù)脈沖來(lái)自單片機(jī)的內(nèi)部,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖。也就是每個(gè)機(jī)器周期計(jì)數(shù)器加1。由于一個(gè)機(jī)器周期等于12個(gè)振蕩脈沖周期,因此計(jì)數(shù)頻率為振蕩頻率的1/12。定時(shí)器/計(jì)數(shù)器提供給用戶使用的有:八位計(jì)數(shù)器TH和TL,以及有關(guān)的控制位。這些內(nèi)容只能以軟件方法使用。3、MCS-51定時(shí)器/計(jì)數(shù)器的四種工作方式1. 定時(shí)工作方式0方式0是13位計(jì)數(shù)結(jié)構(gòu)的工作方式,其計(jì)數(shù)器由TH0全部8位和TL0的低5位構(gòu)成。當(dāng)TL0的低5位計(jì)數(shù)溢出時(shí),向TH0進(jìn)位,而全部13位計(jì)數(shù)溢出時(shí),則向計(jì)數(shù)溢出標(biāo)志位TF0進(jìn)位。在方式0下,當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 18192(213)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (213計(jì)數(shù)初值)晶振周期12 或 (213計(jì)數(shù)初值)機(jī)器周期其時(shí)間單位與晶振周期或機(jī)器周期相同(ms)。2. 定時(shí)工作方式1方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式,計(jì)數(shù)器由TH0全部8位和TL0全部8位構(gòu)成。當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 165536(216)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間計(jì)算公式為: (216計(jì)數(shù)初值)晶振周期12 或 (216計(jì)數(shù)初值)機(jī)器周期3. 定時(shí)工作方式工作方式2是自動(dòng)重新加載工作方式。在這種工作方式下,把16位計(jì)數(shù)器分為兩部分,即以TL作計(jì)數(shù)器,以TH作預(yù)置寄存器,初始化時(shí)把計(jì)數(shù)初值分別裝入TL和TH中。當(dāng)計(jì)數(shù)溢出后,不是像前兩種工作方式那樣通過(guò)軟件方法,而是由預(yù)置寄存器TH以硬件方法自動(dòng)給計(jì)數(shù)器TL重新加載。變軟件加載為硬件加載。初始化時(shí),8位計(jì)數(shù)初值同時(shí)裝入TL0和TH0中。當(dāng)TL0計(jì)數(shù)溢出時(shí),置位TF0,同時(shí)把保存在預(yù)置寄存器TH0中的計(jì)數(shù)初值自動(dòng)加載TL0,然后TL0重新計(jì)數(shù)。如此重復(fù)不止。這不但省去了用戶程序中的重裝指令,而且也有利于提高定時(shí)精度。但這種工作方式下是8位計(jì)數(shù)結(jié)構(gòu),計(jì)數(shù)值有限,最大只能到255。這種自動(dòng)重新加載工作方式非常適用于循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用,例如用于產(chǎn)生固定脈寬的脈沖,此外還可以作串行數(shù)據(jù)通信的波特率發(fā)送器使用。4、程序模塊此部分主要介紹定時(shí)模塊,和顯示模塊。定時(shí)部分采用經(jīng)典的定時(shí)器定時(shí)。它實(shí)現(xiàn)了數(shù)字鐘的主要部分,和秒表的主要部分,以及產(chǎn)生報(bào)時(shí)信號(hào),定時(shí)設(shè)置。顯示模塊是實(shí)現(xiàn)數(shù)字鐘的又一重要部分,其模塊的的獨(dú)立程度直接影響到數(shù)字鐘的可視化程度。在此部分的設(shè)計(jì)中,設(shè)置專用顯示數(shù)據(jù)緩沖,與分,時(shí)及其他數(shù)據(jù)緩沖區(qū)數(shù)據(jù)區(qū)別,在其中存放的是顯示段碼,而其他緩沖區(qū)存放的是時(shí)間數(shù)據(jù)。在顯示時(shí),首先將時(shí)間十進(jìn)制數(shù)據(jù)轉(zhuǎn)化為顯示段碼,然后送往數(shù)碼管顯示。顯示段碼采用動(dòng)態(tài)掃描的方式。在要求改變顯示數(shù)據(jù)的類別時(shí),只需將指向數(shù)據(jù)緩沖區(qū)的指針指向的十進(jìn)制數(shù)據(jù)緩沖區(qū)即可。數(shù)據(jù)調(diào)整:數(shù)據(jù)調(diào)整有多種方式。一,可以直接進(jìn)入相關(guān)狀態(tài)進(jìn)行有關(guān)操作,二,將調(diào)整分兩步,先進(jìn)入狀態(tài),然后執(zhí)行操作,這兩步分別由兩個(gè)鍵控制。方式一,比較直接,設(shè)計(jì)思想也比較簡(jiǎn)單,但是,這種方式存在操作時(shí)間和控制鍵數(shù)目的矛盾。如果用比較少的鍵,那么可能會(huì)在進(jìn)入狀態(tài)后處于數(shù)據(jù)調(diào)整等待狀態(tài),這樣會(huì)影響到顯示的掃描速度(顯示部分可以采用8279芯片來(lái)控制,可以解決此問題)。 當(dāng)然在這種方式下,還可以使用多個(gè)狀態(tài)鍵,每個(gè)狀態(tài)鍵,完成一個(gè)對(duì)應(yīng)數(shù)據(jù)的調(diào)整。如果采用二的方式,就不會(huì)出現(xiàn)這種情況。定時(shí)準(zhǔn)確性的討論:程序中定時(shí)器,一直處于運(yùn)行狀態(tài),也就是說(shuō)定時(shí)器是理想運(yùn)作的,其中斷程序每隔0.1秒執(zhí)行一次,在理想狀態(tài)下,定時(shí)器定時(shí)是沒有系統(tǒng)誤差的,但由于定時(shí)器中斷溢出后,定時(shí)器從0開始計(jì)數(shù),直到被重新置數(shù),才開始正確定時(shí),這樣中斷溢出到中斷響應(yīng)到定時(shí)器被重新置數(shù),其間消耗的時(shí)間就造成了定時(shí)器定時(shí)的誤差。如果在前述定時(shí)器不關(guān)的情況下,在中斷程序的一開始就給定時(shí)器置數(shù),此時(shí)誤差最小,誤差大約為:每0.1秒,誤差712個(gè)機(jī)器周期。當(dāng)然這是在定時(shí)器定時(shí)剛好為0.1秒時(shí)的情況,由以上分析,如果數(shù)字鐘設(shè)計(jì)為查詢的方式或是在中斷的方式下將定時(shí)器中斷設(shè)置為最高級(jí),我們?cè)诙〞r(shí)值設(shè)置時(shí),可以適當(dāng)?shù)目鄢?個(gè)機(jī)器周期的時(shí)間值。但如果在中斷的情況下,沒有將定時(shí)器中斷設(shè)置為最高級(jí),那就要視中斷程序的大小,在定時(shí)值設(shè)置時(shí),扣除相應(yīng)的時(shí)間值。軟件消抖:消抖可以采用硬件(施密特觸發(fā)器)的方式,也可以采用軟件的方式。在此只討論軟件方式。軟件消抖有定時(shí)器定時(shí),和利用延時(shí)子程序兩種方式。一,定時(shí)器定時(shí)消抖可以不影響顯示模塊掃描速度,其實(shí)現(xiàn)方法是:設(shè)置標(biāo)志位,在定時(shí)器中斷中將其置位,然后在程序中查詢。將其中斷優(yōu)先級(jí)設(shè)置為低于時(shí)鐘定時(shí)中斷,那么它就可以完全不影響時(shí)鐘定時(shí)。二,在采用延時(shí)子程序時(shí),如果顯示模塊的掃描速度本來(lái)就不是很快,此時(shí)可能會(huì)影響到顯示的效果,一般情況下,每秒的掃描次數(shù)不應(yīng)小于50次,否則,數(shù)碼的顯示會(huì)出現(xiàn)閃爍的情況。因此,延時(shí)子程序的延時(shí)時(shí)間應(yīng)該小于20毫秒,如果采用定時(shí)器定時(shí)的方式,延時(shí)時(shí)間不影響時(shí)鐘。5、Keil C51軟件-新建工程對(duì)于單片機(jī)程序來(lái)說(shuō),每個(gè)功能程序,都必須要有一個(gè)配套的工程(Project),即使是簡(jiǎn)單的功能程序也不例外,因此我們首先要新建一個(gè)工程,打開我們的 Keil 軟件后,點(diǎn)擊: Project-New uVision Project.然后會(huì)出現(xiàn)一個(gè)新建工程的界面在任意文件夾中保存“shuzizhong”文件,軟件會(huì)自動(dòng)添加擴(kuò)展名.uv2保存之后會(huì)彈出一個(gè)對(duì)話框,這個(gè)對(duì)話框讓我們選擇單片機(jī)型號(hào),我們選擇AT89C51工程有了之后,我們要建立編寫代碼的文件,點(diǎn)擊 File-New,新建一個(gè)文件,也就是我們編寫程序的平臺(tái)。然后點(diǎn) File-Save 或者直接點(diǎn)擊那個(gè) Save 的快捷鍵,可以保存文件,保存時(shí)我們把它命名為 shuzishizhong.c,這個(gè)地方必須加上.c,因?yàn)槿绻麑憛R編語(yǔ)言,這個(gè)地方的擴(kuò)展名是.asm現(xiàn)在我們就可以在我們建立好的文件中輸入我們的程序代碼了,在編寫之前還有個(gè)工作要做。我們每做一個(gè)功能程序,必須要新建一個(gè)工程,一個(gè)工程代表了單片機(jī)要實(shí)現(xiàn)的一個(gè)功能。但是一個(gè)工程,有時(shí)候我們可以把我們的程序分多個(gè)文件寫,所以每寫一個(gè)文件,我們都要添加到我們所建立的工程中去,鼠標(biāo)右鍵點(diǎn) Source Group 1,點(diǎn) Add Files to Group Source Group 1.在彈出的對(duì)話框中,單擊 shuzishizhong.c 選中它,然后點(diǎn) Add,或者直接雙擊 shuzishizhong.c 都可以將文件加入到這個(gè)工程下,然后單擊 Close,關(guān)閉添加。這個(gè)時(shí)候大家會(huì)看到在 Source Group 1下邊又多了一個(gè) shuzishizhong.c 文件。然后就可以編寫程序了,下面是編寫界面的介紹:6、程序流程圖開始聲明變量初始化設(shè)置中斷循環(huán)停滯等待按鍵按下顯示時(shí)間time1重設(shè)定時(shí)量1000次second加一大于59minute加一大于59hour加一hou=hour%247、程序編譯并生成HEX文件如上圖所示為編譯成功的提示,若有錯(cuò)誤提示,雙擊錯(cuò)誤提示則會(huì)自動(dòng)跳轉(zhuǎn)到錯(cuò)誤代碼行,方便進(jìn)行修改。第四章 調(diào)試仿真1、軟件介紹Proteus軟件是來(lái)自英國(guó)Labcenter electronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動(dòng)的,針對(duì)微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級(jí)的實(shí)時(shí)調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等2、加載程序點(diǎn)擊要加載的HEX文件3、仿真運(yùn)行點(diǎn)擊左下角 按鈕,仿真運(yùn)行開始。并能直接觀察整個(gè)電路的運(yùn)行輸出結(jié)果。第五章 總結(jié)通過(guò)這次的設(shè)計(jì)使我認(rèn)識(shí)到我對(duì)單片機(jī)編程方面的知識(shí)知道的太少了,對(duì)于書本上的很多知識(shí)還不能靈活運(yùn)用,有很多我們需要掌握的知識(shí)在等著我去學(xué)習(xí),我會(huì)在以后的學(xué)習(xí)生活中彌補(bǔ)我所缺少的知識(shí)。本次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化。同時(shí)在大學(xué)的課堂上學(xué)習(xí)的只是在給我們灌輸專業(yè)知識(shí),而我們應(yīng)該把所學(xué)的用到我們現(xiàn)實(shí)生活中去,此次的電子時(shí)鐘設(shè)計(jì)給我奠定了一個(gè)實(shí)踐的基礎(chǔ),我會(huì)在以后的工作生活中不斷的磨練自己,讓自己更好的立足于社會(huì)。附件:程序代碼#include unsigned char led12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0punsigned char b8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/掃描unsigned char k=0;unsigned int temp; / 記錄毫秒為秒的變量unsigned char M,S_flag;/M是模式,更新時(shí)間的種模式加上正常模式S_flag閃爍標(biāo)志sbit K1=P30;sbit K2=P31;sbit K3=P32;sbit BEEP=P33;void delay(unsigned n) /0.2毫秒p int x,y; for(x=0;xn;x+) for(y=0;y24;y+);void init() M=0; S_flag=0; /閃爍標(biāo)志位 TMOD=0x10; /定時(shí)器以方式定時(shí) TH1=0xfc; TL1=0x18; EA=1; /打開總中斷 ET1=1; /允許定時(shí)器中斷 TR1=1; /開啟定時(shí)器(開始定時(shí)計(jì)數(shù)) void display_led() P1=led11;void time1() interrupt 3 /定時(shí)器中斷函數(shù) TH1=0xfc; /定時(shí)ms TL1=0x18; temp+; if(temp=1000) /配合定時(shí)器定時(shí)s temp=0; second+; if(second=59) second=0; if(minute59) minute+; else minute=0; hour+; hour%=24; if(hour1=hour&minute1=minute&second10) /鬧鐘時(shí)間到 BEEP=!BEEP; if(temp%250=0) /每ms S_flag=!S_flag; /閃爍標(biāo)志位取反 if(k=8) k=0; P1=ak; P2=bk+; delay(1); P2=0xff; void display()switch(M)case 0:a0=ledhour/10;a1=ledhour%10;a2=led10;a3=ledminute/10;a4=ledminute%10;a5=led10;a6=ledsecond/10;a7=ledsecond%10;break;case 1:if(S_flag=1)a0=ledhour/10;a1=ledhour%10;elsea0=led11;a1=led11;a2=led10;a3=ledminute/10;a4=ledminute%10;a5=led10;a6=ledsecond/10;a7=ledsecond%10;break;case 2:a0=ledhour/10;a1=ledhour%10;a2=led10;if(S_flag=1)a3=ledminute/10;a4=ledminute%10;elsea3=led11;a4=led11;a5=led10;a6=ledsecond/10;a7=ledsecond%10;break;case 3:if(S_flag=1)a0=ledhour1/10;a1=ledhour1%10;elsea0=led11;a1=led11;a2=led10;a3=ledminute1/10;a4=ledminute1%10;a5=led10;a6=

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論