版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、物理機電學院課程設(shè)計報告課程名稱:電子系統(tǒng)課程設(shè)計 專業(yè)班級: 電子信息工程2班 學生姓名: 學 號: 指導教師: 王清輝、何文豐 完成時間: 2013年6月25日 報告成績: 評閱意見: 評閱教師 日期 電子系統(tǒng)設(shè)計第1章 設(shè)計任務(wù)與要求11.1軟件任務(wù)11.2硬件任務(wù)1第2章 方案的設(shè)計與論證22.1 單片機型號的選擇22.2 按鍵的選擇22.3 顯示器的選擇22.4 計時部分的選擇32.5 發(fā)音部分的設(shè)計32.6 顯示器驅(qū)動電路32.7 電源的選擇32.8 函數(shù)信號發(fā)生器3第3章 硬件電路設(shè)計53.1 設(shè)計原理53.2 AT89C51單片機簡介63.3 鍵盤電路的設(shè)計73.4 段碼驅(qū)動電
2、路73.5 蜂鳴器驅(qū)動電路73.6函數(shù)信號發(fā)生器數(shù)模轉(zhuǎn)換器83.7函數(shù)信號發(fā)生器鍵盤接口電路83.8 電子系統(tǒng)電路總原理圖93.9 電子系統(tǒng)PCB圖10第4章 軟件設(shè)計114.1 主程序部分的設(shè)計114.2 系統(tǒng)初始化顯示功能124.3 密碼顯示界面與密碼輸入124.4 功能選擇界面124.5 鍵盤掃描函數(shù)124.6 時間和鬧鐘的設(shè)置124.7 秒表設(shè)置134.8 函數(shù)信號發(fā)生器流程圖15第5章 仿真過程與仿真結(jié)果16第6章 安裝與調(diào)試20結(jié)論與心得22參考文獻23附 錄24一、 設(shè)計任務(wù)與要求1.1軟件任務(wù)設(shè)計任務(wù)1:增加系統(tǒng)初始化顯示功能LED顯示部分每1秒鐘點亮1段LED,依次8秒后全亮
3、LCD顯示部分控制10秒倒計時設(shè)計任務(wù)2:增加密碼功能,要求正確輸入密碼才能進入系統(tǒng)設(shè)計任務(wù)3:進入系統(tǒng)后有相應(yīng)的功能模塊選擇:F1,F2,F2等進入設(shè)計任務(wù)4:具有串行通訊功能,能夠通過串口與PC機通訊,每1秒鐘可以將本選定功能相關(guān)的數(shù)據(jù)上傳。1.2 硬件任務(wù)函數(shù)信號發(fā)生器目標:掌握如何設(shè)計函數(shù)信號發(fā)生器要求:設(shè)計的函數(shù)信號發(fā)生器最起碼能夠產(chǎn)生三角波和正弦波且頻率可調(diào),幅值小于5V。通過按鍵可以選擇產(chǎn)生三角波還是正弦波。二、 方案設(shè)計與論證本設(shè)計應(yīng)解決的主要問題有兩大方面,即硬件電路設(shè)計和軟件設(shè)計兩大方面。其中硬件電路部分又可分為四個模塊:鍵盤模塊、顯示模塊、計時模塊和發(fā)聲模塊。硬件電路部分
4、致力于低成本、低功耗和易實現(xiàn)性。軟件部分則應(yīng)做到代碼的精簡、準確、易讀懂。2.1單片機型號的選擇通過對多種單片機性能的分析,最終認為AT89C51是最理想的電子時鐘開發(fā)芯片。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程序存儲器和1000次擦寫循環(huán),數(shù)據(jù)保留時間為10年,是最好的選擇。2.2 按鍵的選擇方案一
5、:44矩陣式鍵盤。如果選擇此方案,那么在修改時鐘或設(shè)置鬧鈴時間時就可以直接從鍵盤輸入,方便、快捷,但程序較為復雜。 方案二:獨立式按鍵。如果設(shè)置過多按鍵,將會占用較多I/O口,而且會給布線帶來不便,因此,此方案適用于按鍵較少的情況。如果選擇此方案,由于按鍵較少,在修改時間或設(shè)置鬧鈴時間時就不能直接輸入,只能通過加或減完成,稍為麻煩一些,但其程序簡單。 由于并不需要經(jīng)常修改時間和設(shè)置鬧鈴時間,而且方案二的程序簡單,按鍵少、成本低,因此,選擇方案二。2.3 顯示器的選擇方案一:液晶顯示器。如果選擇此方案,將會降低系統(tǒng)的功耗,這樣就可以用電池供電,便于攜帶。但液晶顯示器的驅(qū)動電路復雜,使用起來有一定
6、的難度。 方案二:用數(shù)碼管作為顯示器。數(shù)碼管的驅(qū)動電路簡單,使用方便,如果選擇了此方案,那么在夜間看時間的時候就不需要有光源,非常方便。其缺點是功耗較大。由于數(shù)碼管使用起來較為方便,在夜間看時間也很方便,因此我選擇了方案二。2.4 計時部分的選擇如果使用時鐘芯片,系統(tǒng)就不怕掉電且時間精確。但這種芯片比較貴,況且,設(shè)計本系統(tǒng)主要是為了學習單片機程序的編寫和調(diào)試以及設(shè)計硬件電路的一些方法,因此采用軟件的方法來計時而沒有采用價格較高的時鐘芯片。2.5 發(fā)音部分的設(shè)計通過三極管放大后驅(qū)動蜂鳴器工作,再通過軟件這時產(chǎn)生等時時間方波驅(qū)動蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。2.6顯示器
7、驅(qū)動電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74HC573來驅(qū)動段碼,用P3口作位碼驅(qū)動。2.7電源的選擇如果是用電池供電,就比較方便攜帶,但是本系統(tǒng),采用了數(shù)碼管作為顯示器,功耗較大,需要經(jīng)常更換電池。況且,本系統(tǒng)的體積較大,即使使用電池供電也不能隨身攜帶,因此,用電池供電不大合適,所以用5V外部穩(wěn)壓電源來供電。2.8函數(shù)信號發(fā)生器方案一:采用模擬分立元件或單片函數(shù)發(fā)生器就可以產(chǎn)生正弦波、方波、三角波,方法簡單。通過調(diào)整外部元件也可以實現(xiàn)輸出頻率的改變,但采用模擬元器件造成元件分散性太大,從而產(chǎn)生的頻率穩(wěn)定性較差、抗干擾能力低、靈活性較差、而且精度低,不能實現(xiàn)任
8、意波形轉(zhuǎn)換和波形運算輸出等方面自主控制功能。方案二:采用專業(yè)的鎖相式頻率合成方案,這種鎖相式頻率合成是一種高穩(wěn)定度和高精確度的大量離散技術(shù),他能夠準確的產(chǎn)生波形,可以很好的解決頻率穩(wěn)定精確的情況下又要求頻率在較大的范圍內(nèi)可調(diào)的問題。但是頻率受VCO可變頻率范圍上的影響,高低頻率比無法做到很高,還有其只能產(chǎn)生正弦波或方波,不能滿足產(chǎn)生三角波的要求。方案三:采用AT89C51單片機和數(shù)模轉(zhuǎn)換器DAC0832實現(xiàn)波形的產(chǎn)生。波形的產(chǎn)生方法是用AT89C51單片機執(zhí)行波形程序,向DAC0832轉(zhuǎn)換器的輸入端輸入相應(yīng)的數(shù)據(jù),從而在DA轉(zhuǎn)換電路輸出端再通過運放電路轉(zhuǎn)換得到相應(yīng)的電壓波形。在AT89C51的
9、P1口接按鍵控制波形的種類和波形的頻率,每種波形對應(yīng)一種按鍵方式。此方案原理簡單,同時適合操作,實現(xiàn)起來也相對較容易。經(jīng)比較,方案三的設(shè)計能夠更好的實現(xiàn)和完成題目的要求,產(chǎn)生的三種波形和頻率可由按鍵控制,并通過按鍵改變來轉(zhuǎn)換不同的波形,也能夠在示波器上顯示出所要求的波形。波形的頻率步進也可以實現(xiàn)調(diào)節(jié),具有線路簡單、可行性高、符合設(shè)計要求等優(yōu)點。在本設(shè)計的基礎(chǔ)上,加上LCD顯示,從而能夠在LCD上顯示出頻率值、幅度值信息。輸出的波形也較穩(wěn)定,精度較高,通過濾波電路使得系統(tǒng)的抗干擾性增強,電路簡單,性價比高。綜上所述,我們選擇了第三種三、 硬件電路設(shè)計 3.1設(shè)計原理系統(tǒng)原理圖:函數(shù)信號發(fā)生器:單
10、片機89C51鍵盤輸入LCD顯示波形顯示放大電路DA轉(zhuǎn)換時鐘復位圖3-1 系統(tǒng)原理圖3.2AT89C51單片機簡介AT89C51是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場合??梢詽M足多方面的性能要求。AT89C51采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時間只需2到4個時鐘周期。6倍于標準51單片機器件。AT89C51集成了許多系統(tǒng)級的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。AT89C51單片機內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲器、并行I/O接口、定時器和串行I/O接口。圖3-2 AT89C51單片機3.
11、3鍵盤電路的設(shè)計鍵盤采用4個獨立按鍵配以4個上拉電阻實現(xiàn)對時鐘和鬧鐘的設(shè)定及修改。圖3-3 鍵盤輸入電路3.4段碼驅(qū)動電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74HC573來驅(qū)動段碼,用P0口作位碼驅(qū)動。圖3-4 段碼驅(qū)動器74HC5733.5蜂鳴器驅(qū)動電路發(fā)音部分是通過三極管放大驅(qū)動蜂鳴器工作,再通過軟件這時產(chǎn)生等時時間方波驅(qū)動蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。圖3-5 蜂鳴器驅(qū)動電路3.6函數(shù)信號發(fā)生器數(shù)模轉(zhuǎn)換器由于單片機輸出的是數(shù)字信號,因為要得到模擬信號的波形就必須對其進行數(shù)模換。我們采用了DAC0832 數(shù)模轉(zhuǎn)換器,該芯片由8 位
12、輸入鎖存器、8 位DAC 寄存器、8 位D/A 轉(zhuǎn)換器及轉(zhuǎn)換控制電路四部分構(gòu)成。由于其輸出為電流輸出,因為外加運算放大器OP07 使之裝換為電壓輸出。最后通過示波器顯示輸出的波形。圖3-6 D/A轉(zhuǎn)換電路3.7 函數(shù)信號發(fā)生器鍵盤接口電路常用的鍵盤電路一般為矩陣式,但是對于此設(shè)計,為了方便程序的簡單化,我們采用了一般的鍵盤接口輸出信號。具體實現(xiàn)方法:P2.1用來作為波形選擇,其輸出正弦波、三角波、方波。P2.3、P2.4用來作為頻率調(diào)節(jié); 圖3-7鍵盤接口電路3.8 電子系統(tǒng)電路總原理圖圖3-8 電路總原理圖3.9 電子系統(tǒng)PCB圖圖3-7 PCB圖四、 軟件設(shè)計4.1主程序部分的設(shè)計開始始數(shù)
13、碼管段碼檢測密碼輸入界面密碼判斷正確錯誤功能選擇界面按鍵選擇時鐘功能待定秒表功能F2F3F1按鍵掃描是否返回功能選擇界面否是程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計,避免了一些函數(shù)的不必要的重復書寫,使程序變得單間易懂。程序在執(zhí)行時,主程序要須通過調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下圖4-1。圖4-1 主程序流程圖4.2 系統(tǒng)初始化顯示功能LED顯示部分每1秒鐘點亮1段LED,依次8秒后全亮使用定時器延時,8個數(shù)碼管同時點亮,定時器每延時一秒點亮一段LED,依次8秒后全亮。4.3 密碼顯示界面與密碼輸入系統(tǒng)初始化顯示之后就進入密碼顯示界面,界面顯示為P - - - -。通過按鍵S1選
14、擇當前要輸入的密碼,通過按鍵S2、S3進行對值的加減,通過S4進行確認操作。密碼輸入完成之后會顯示F,覆蓋之前輸入的數(shù)值,對密碼進行保護。密碼輸入正確顯示- - -ON- - -,然后進入功能選擇界面密碼輸入錯誤顯示- - - - - - - -,回到密碼輸入界面,繼續(xù)輸入密碼。4.4 功能選擇界面功能界面顯示為F1-F2-F3,可以設(shè)置三個功能,目前只設(shè)置了F1、F2兩個功能,F(xiàn)3為待定功能。在功能界面仍然是S1進行選擇,S4進行確認操作。4.5鍵盤掃描函數(shù)這些函數(shù)主要是判斷是否有按鍵按下,并根據(jù)相應(yīng)按鍵按下的情況調(diào)用相關(guān)函數(shù)執(zhí)行。4.6時間和鬧鐘的設(shè)置此部分主要是通過判斷cnt在不同值時通
15、過調(diào)用加1、減1子函數(shù)對時間和鬧鐘的時、分、秒進行設(shè)置。在鬧鐘設(shè)置時,判斷按鍵S4按下情況我,進行鬧鐘的開啟與關(guān)閉,相關(guān)流程圖如下圖4-7。圖4-2 時間/鬧鐘設(shè)置流程圖4.7 秒表的設(shè)置本實驗利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,通過采用proteus仿真軟件來模擬實現(xiàn)。模擬利用AT89C51單片機、LED數(shù)碼管以及控件來控制秒表的計數(shù)以及計數(shù)的開啟/暫停/繼續(xù)與復位!是否是否定時器溢出中斷對定時器重新賦值進行加一操作后重新計算時間往P0口和P2口送顯示時間數(shù)碼管顯示中斷返回主函數(shù)對定時器/計數(shù)器初始化始化程序開始判斷P04口是否有低電平信號開中斷并啟動定時器開始、暫停或者繼續(xù)計數(shù)置零
16、判斷P10口是否有低電平信號圖4-3 秒表設(shè)置流程圖4.8 函數(shù)信號發(fā)生器開始顯示初始化系統(tǒng)按鍵是否按下計算相關(guān)函數(shù)送端口顯示定時中斷查詢選擇波型LCD顯示波形輸出圖4-4 函數(shù)信號發(fā)生器流程圖五、 仿真過程與仿真結(jié)果此電子系統(tǒng)設(shè)計是利用Proteus仿真軟件進行仿真,基本上實現(xiàn)了課程設(shè)計要求實現(xiàn)的功能。硬件部分設(shè)置了的三個按鍵S1、S2、S3、S4。圖5-1 系統(tǒng)初始化顯示8段全亮圖5-2 密碼輸入界面 輸入密碼時顯示P- - - -,輸入完成之后顯示P F F F。圖5-3 功能選擇界面圖5-4 電子時鐘界面當按鍵S1第一次按下時,停止計時進入鬧鐘1的秒設(shè)置,當按鍵S1第二、第三次按下時,
17、分別進入鬧鐘1的分設(shè)置和時設(shè)置,當按S1第四 、第五、第六次按下時分別進入鬧鐘2的秒、分、時設(shè)置,當按S1第七 、第八、第九次按下時分別進入鬧鐘3的秒、分、時設(shè)置,當按S1第十 、第二一、第十二次按下時分別進入時間的秒、分、時設(shè)置,在S1按下的各階段,可用按鍵S2、S3進行時間和鬧鈴時間的時、分、秒進行加減設(shè)置;當按鍵S1第十三次按下時恢復到時間顯示功能。當顯示的時間和定時設(shè)置的時間一致時,蜂鳴器發(fā)出等時間斷蜂鳴聲,鬧鈴時間設(shè)置為60秒。在各個鬧鐘設(shè)置階段,如果有S4按下,則相應(yīng)鬧鐘功能關(guān)閉或開啟;如在鬧鈴時有S4按下則提前停止鬧鈴。圖5-5 秒表界面 S1按清零,S2開始和暫停,可以長達9分
18、鐘的計時。圖5-6 函數(shù)信號發(fā)生器仿真圖正弦波三角波產(chǎn)生三角波的原理:三角波產(chǎn)生是通過P0口將00H送入寄存器A中,DAC0832輸出A中的內(nèi)容,通過A中數(shù)值的加1遞升,同時延時,當A中的內(nèi)容為0FF時,A中的內(nèi)容減1遞減,從而循環(huán)產(chǎn)生三角波。方波產(chǎn)生方波的原理:方波產(chǎn)生是通過P0口將00H輸出給DAC0808,輸出對應(yīng)模擬量,然后讀取P2口的狀態(tài),取反后作為延時常量,延時時間到,將FFH輸出時,同樣輸出對應(yīng)模擬量,再延時,從而得到方波。六、 安裝與調(diào)試首先制作電路板:在PROTEL DXP軟件上畫出實訓原理圖,接著導入制作PCB電路板,最后經(jīng)打印、熱轉(zhuǎn)印、腐蝕、打孔,最后做出電路板。 1、步
19、驟如下: 第一步:利用一個能生成圖像的軟件生成一些圖像文件,這里使用版本為Altium2004組織SCH文件,再利用網(wǎng)絡(luò)表生成相應(yīng)PCB圖(可自動布線,也可手工布線),接著畫PCB圖,以備打??; 第二步:將PCB圖打印到熱轉(zhuǎn)印紙上; 第三步:將打印好PCB的轉(zhuǎn)印紙平鋪在覆銅板上,準備轉(zhuǎn)??; 第四步:用熱應(yīng)機加溫將轉(zhuǎn)印紙上黑色油墨粉壓在覆銅板上形成高精度的抗腐; 第五步:熱應(yīng)機加溫加壓成功轉(zhuǎn)印后的效果; 第六步:準備好三氯化鐵溶液進行腐蝕; 第七步:腐蝕結(jié)束,清洗干凈,晾干之后進行打孔。 第八步:將焊盤銑刀裝到臺鉆上,清理出焊盤部分,剩下的部分用于阻焊; 第九步:安裝所需預定原件并焊接好。 2、
20、硬件調(diào)試 拿到電路板后,首先要檢查加工質(zhì)量,在確保沒任何質(zhì)量問題時再安裝元器件。元器件在安裝前要足逐一檢查,用萬用表測其數(shù)值,看是否與所需相同,完成焊接后應(yīng)先空載上電(芯片座不插芯片),并檢查各引腳的電位是否正確。若一切正常,方可在斷電的情況下將芯片插入,再次檢查各引腳的電位及其邏輯關(guān)系。將萬用表的探針放到單片機接電源的引腳上檢測一下,看是否符合要求。 在調(diào)試時我遇到了一個問題:用STC下載器無法將程序下載到單片機中,經(jīng)檢查,是COM端口和波特率選的不正確,應(yīng)更改STC下載器的COM端口使之與電腦的COM端口相對應(yīng),波特率改為9600115200即可下載成功。時間顯示界面圖6-1 時鐘運行圖鬧
21、鐘設(shè)置界面圖6-2 鬧鐘設(shè)置圖七、 結(jié)論與心得做了一周的課程設(shè)計,有很多的心得體會,有關(guān)于單片機的,也有關(guān)于模電數(shù)電等基礎(chǔ)科目的。因為單片機已經(jīng)很久沒復習,剛拿到題目,不知道從哪入手,后來通過對書本的回顧,加深了對單片機的記憶。有些知識會遷移和聯(lián)系模電數(shù)電。課堂教學考慮到大多數(shù)同學的需求,主要強調(diào)“基本”基本知識、基本理論、基本方法、基本技能。而這次設(shè)計正是為我們提供了一個深入學習、探索的機會,成為課堂教學的有益補充。我們正面臨就業(yè)問題,這次課設(shè)給了我們一個機會去試驗。單片機理論的學習是為課程的設(shè)計作準備的,但有時學習的理論也解決不了實踐中的問題。實踐中獲得的知識能讓我對單片機的知識有更好的認
22、識和理解。雖然這次的課程設(shè)計我參考了一些文獻資料,沒有做到創(chuàng)新,但在對程序的讀寫過程中我明白了許多。這次課程設(shè)計的最大收獲是只有把理論用到實踐中我們才能真正掌握好所學知識。八、 參考文獻 1李全利、 遲榮強,單片機原理及接口技術(shù)M,北京:高等教育出版社,20042凌玉華,單片機原理及應(yīng)用系統(tǒng)設(shè)計M,長沙:中南大學出版社,20063張道德,單片機接口技術(shù)(C51版)M,北京:中國水利水電出版社,20074 王幸之、鐘愛琴、王雷、王閃,AT89系列單片機原理與接口技術(shù)M,北京:北京航空航天大學出版社,20045何立明,單片機應(yīng)用系統(tǒng)設(shè)計M,北京:北京航空航天大學出版社,1990 6陳光東,單片機微
23、型計算機原理與接口技術(shù)M,武漢:華中理工大學出版社,1998附 錄1/*頭文件*#include #include/*宏定義*#define uchar unsigned char #define uint unsigned int/*位聲明*sbit key1=P10; sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit fmq=P21;/*數(shù)碼管顯示的數(shù)值*uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,/ 0 1 2 3 4 5 0x82,0xf8,0x80,0x90,0xbf,0x0ff,0x73,
24、0x71,0x80; / 6 7 8 9 - 滅 pf .table68=0x06,0x71,0x40,0x5b,0x71,0x40, 0x4f,0x71;/1 F - 2 F - 3 F uchar table75=0x40,0x40,0x40,0x40,0x73;/ - - - Puchar table88=0x40,0x40,0x40,0x37,0x3f,0x40,0x40,0x40;uchar code table10=0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f; /*函數(shù)聲明*void jia(); void jian(); void jia1(); voi
25、d jian1();void shijian1();void display5();void displayxz();void display6();void key_scan1();void shijian();void display7(uchar,uchar,uchar); void keyscan4(); void miaobiao(); /*數(shù)組定義,數(shù)組內(nèi)含有8個數(shù)值*uchar table18,table28,table38,table48;uchar password=1,2,1,2;uchar save8;uchar table58;/*時間顯示初始值*uchar shi=1
26、2,fen=0,miao=0; /*定義全局變量*uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;uchar shi4,fen4,miao4;uchar flag, flag1, wss, cnt, cnt1, alm1, alm2, alm3;/ 1秒 等時 位閃 次數(shù) 校時 鬧1 鬧2 鬧3uint flag2;/ 蜂鳴 uchar conflag;uchar cnt2,s1,s2,s3,s4,cnt3;uchar n;uchar minute,second,second0_1,num2;uchar t=0;uchar num=0
27、;/*延時函數(shù),用于動態(tài)掃描數(shù)碼管*void delay(uchar i) uchar x,y; for(x=i;x0;x-) for(y=120;y0;y-); /*初始化函數(shù)*void init() TMOD|=0x01; /工作方式1 TH0=0x3c; /定時時間為:50ms(65536-50000)/256 TL0=0x0b0; /(65536-50000)%256 ET0=1; /打開定時器 EA=1; /開總中斷 TR0=1; /啟動定時器 void UART_init(void)SCON = 0x50;TMOD|= 0x20;TH1 = 0xF3;TL1 = 0xF3;TR1
28、= 1;ES = 1;EA = 1; /*顯示子函數(shù),用于顯示時間數(shù)值*void display() uchar i,j; if(cnt!=10|wss=0) table10=miao%10; /分離秒的個位與十位 table11=miao/10; else table10=table11=11;if(cnt!=11|wss=0) table13=fen%10; /分離分的個位與十位 table14=fen/10; else table13=table14=11;if(cnt!=12|wss=0) table16=shi%10; /分離時的個位與十位 table17=shi/10; else
29、table16=table17=11; table12=table15=10; j=0x7f; for(i=0;i=7;i+) /從秒到時的掃描 P2=j; P0=tabletable1i; /顯示數(shù)值 delay(10); j=_cror_(j,1); /循環(huán)右移 /*顯示子函數(shù),用于顯示定時1時間*void display1() uchar i,j; if(alm1=0) if(cnt!=1|wss=0) table20=miao1%10; /以下含義同上 table21=miao1/10; else table20=table21=11; if(cnt!=2|wss=0) table23
30、=fen1%10; table24=fen1/10; else table23=table24=11; if(cnt!=3|wss=0) table26=shi1%10; table27=shi1/10; else table26=table27=11; else table20=table21=table23=table24=table26=table27=10; table22= table25=10; j=0x7f; for(i=0;i=7;i+) P2=j; P0=tabletable2i;delay(10); j=_cror_(j,1); /*顯示子函數(shù),用于顯示定時2時間*void
31、 display2() uchar i,j; if(alm2=0) if(cnt!=4|wss=0) table30=miao2%10; /以下含義同上 table31=miao2/10; else table30=table31=11; if(cnt!=5|wss=0) table33=fen2%10; table34=fen2/10; else table33=table34=11;if(cnt!=6|wss=0) table36=shi2%10; table37=shi2/10; else table36=table37=11; else table30=table31=table33=
32、table34=table36=table37=10; table32= table35=10; j=0x7f; for(i=0;i=7;i+) P2=j; P0=tabletable3i;delay(10); j=_cror_(j,1); /*顯示子函數(shù),用于顯示定時3時間數(shù)值*/void display3() uchar i,j; if(alm3=0) if(cnt!=7|wss=0) table40=miao3%10; /分離秒的個位與十位 table41=miao3/10; else table40=table41=11;if(cnt!=8|wss=0) table43=fen3%10
33、; /分離分的個位與十位 table44=fen3/10;else table43=table44=11;if(cnt!=9|wss=0) table46=shi3%10; /分離時的個位與十位 table47=shi3/10;else table46=table47=11; else table40=table41=table43=table44=table46=table47=10; table42= table45=10; j=0x7f; /從秒到時的掃描 for(i=0;i=20) /判斷是否到一秒 wss=wss; flag=0; /到了,則標志位清零 if(cnt1!=0) mia
34、o4+; /秒加1 if( miao459) /判斷秒是否到60s miao4=0; /到了,則清零 fen4+; /分加1 if(fen459) /以下含義同上 fen4=0; shi4+; if(shi423) shi4=0; else miao+; /秒加1 if( miao59) /判斷秒是否到60s miao=0; /到了,則清零 fen+; /分加1 if(fen59) /以下含義同上 fen=0; shi+; if(shi23) shi=0; /*鍵盤掃描子函數(shù)*/void key_scan() if(key1=0) while(!key1) /防止掉顯 if(cnt=1|cnt
35、=2|cnt=3) display1(); if(cnt=4|cnt=5|cnt=6) display2(); if(cnt=7|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13) display(); cnt+; /記下按鍵key1按下的次數(shù) if(cnt=10&cnt1=0) miao4=miao; fen4=fen;shi4=shi;cnt1+;if(cnt=13) cnt=0; if(cnt1=1) miao=miao4; fen=fen4; shi=shi4; cnt1=0; if(key2=0) /判斷key
36、2是否按下 while(!key2) /防止掉顯 if(cnt=1|cnt=2|cnt=3) display1(); if(cnt=4|cnt=5|cnt=6) display2(); if(cnt=7|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13) display(); jia(); if(key3=0) /判斷key3是否按下 while(!key3) /防止掉顯 if(cnt=1|cnt=2|cnt=3) display1(); if(cnt=4|cnt=5|cnt=6) display2(); if(cnt=
37、7|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13) display(); jian(); /調(diào)用減1子函數(shù) if(key4=0) /判斷key4是否按下 while(!key4) /防止掉 if(cnt=1|cnt=2|cnt=3) alm1=alm1; display1(); if(cnt=4|cnt=5|cnt=6) alm2=alm2; display2(); if(cnt=7|cnt=8|cnt=9) alm3=alm3; display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|c
38、nt=13) display(); while(key4) /跳回選擇菜單 if(cnt3=1|cnt3=2|cnt3=3) display6(); if(cnt3=0) displayxz(); shijian1();key_scan1(); /*加1子函數(shù)*void jia() if(cnt=1) /判斷key1按下的次數(shù)是否為1 miao1+; /是,則秒加1 if(miao159) /判斷秒是否大于60,是,則秒清零 miao1=0; if(cnt=2) /以下含意同上 fen1+; if(fen159) fen1=0; if(cnt=3) shi1+; if(shi123) shi1=0; if(cnt=4) miao2+; if(miao259) miao2=0; if(cnt=5) fen2+; if(fen259) fen2=0; if(cnt=6) shi2+; if(shi223) shi2=0; if(cnt=7) miao3+; if(miao359)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年年化妝品原料項目規(guī)劃申請報告
- 承包果樹合同范本
- 2024至2030年滾筒清潔保護劑項目投資價值分析報告
- 2024至2030年變頻調(diào)速定量給料秤項目投資價值分析報告
- 2024年菲林噴砂體育獎杯項目可行性研究報告
- 2024至2030年中國花色雪糕生產(chǎn)線數(shù)據(jù)監(jiān)測研究報告
- 離婚協(xié)議書修改申請書
- 離婚協(xié)議書的有效期限
- 養(yǎng)老院員工考核與合同管理制度
- 2015年新三板發(fā)展與投資研究報告(2015年3月)
- 輻射安全責任書
- 第五章水輪機特性曲線
- 職業(yè)病防治(課堂PPT)
- 建設(shè)工程項目施工安全評價書(共10頁)
- 四宮格-兒童數(shù)獨-練習60題 可打印
- 生產(chǎn)現(xiàn)場設(shè)備設(shè)施顏色標識及技術(shù)規(guī)范
- 工時轉(zhuǎn)嫁工時單-品管QAF-129
- 機場助航燈光設(shè)計講解
- fairytale傳奇英文版歌詞
- 消毒記錄臺賬
- 應(yīng)急救援物資管理臺賬【精選文檔】
評論
0/150
提交評論