單片機(jī)課程作息時(shí)間控制設(shè)計(jì)報(bào)告_第1頁(yè)
單片機(jī)課程作息時(shí)間控制設(shè)計(jì)報(bào)告_第2頁(yè)
單片機(jī)課程作息時(shí)間控制設(shè)計(jì)報(bào)告_第3頁(yè)
單片機(jī)課程作息時(shí)間控制設(shè)計(jì)報(bào)告_第4頁(yè)
單片機(jī)課程作息時(shí)間控制設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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、單片機(jī)課程作息時(shí)間控制設(shè)計(jì)報(bào)告課程設(shè)計(jì)目的 1設(shè)計(jì)要求 22.1總體要求 22.2具體要求 2設(shè)計(jì)內(nèi)容及方法 33.1設(shè)計(jì)預(yù)備 33.2功能設(shè)計(jì)及系統(tǒng)總體設(shè)計(jì) 3硬件電路總體設(shè)計(jì) 34.1硬件總框圖 34.1.1 主控電路 44.1.2 按鍵操縱掃描模塊 54.1.3 DS1302實(shí)時(shí)時(shí)鐘模塊 64.1.4數(shù)碼管顯示模塊 84.1.5LED顯示模塊 94.1.6揚(yáng)聲器模塊 104.2硬件原理圖 12軟件流程框圖及源程序 125.1流程框圖 125.1.1主程序流程圖 125.1.2蜂鳴器流程圖 145.1.3 流水燈程序流程圖 155.1.4 時(shí)鐘顯示流程圖 165.1.5 作息時(shí)刻操縱流程圖

2、 175.2源程序代碼及注釋 18調(diào)試情形及小結(jié) 33課程設(shè)計(jì)體會(huì) 34參考文獻(xiàn) 35一、課程設(shè)計(jì)目的單片機(jī)原理及應(yīng)用課程設(shè)計(jì)是一項(xiàng)重要的實(shí)踐性教育環(huán)節(jié),是學(xué)生在校期間必須同意的一項(xiàng)工程訓(xùn)練。在課程設(shè)計(jì)過(guò)程中,在教師指 導(dǎo)下,運(yùn)用工程的方法,通過(guò)一個(gè)簡(jiǎn)單課題的設(shè)計(jì)練習(xí),可使學(xué)生初步體 驗(yàn)單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程、設(shè)計(jì)要求、完成工作內(nèi)容和具體的設(shè)計(jì)方 法,了解必須提交的各項(xiàng)工程文件,也達(dá)到鞏固、充實(shí)和綜合運(yùn)用所學(xué)知 識(shí)解決實(shí)際咨詢題的目的。通過(guò)課程設(shè)計(jì),應(yīng)能加大學(xué)生如下能力的培訓(xùn): 獨(dú)立工作能力和制造力; 查閱圖書資料,產(chǎn)品手冊(cè)和各種工具書的能力; 工程繪圖的能力;編寫技術(shù)報(bào)告和編制技術(shù)資料的能

3、力綜合運(yùn)用專業(yè)及基礎(chǔ)知識(shí),解決實(shí)際工程技術(shù)咨詢題的能力;二、設(shè)計(jì)要求2.1 總體要求(1) 獨(dú)立完成設(shè)計(jì)任務(wù)(2) 繪制系統(tǒng)硬件總框圖(3) 繪制系統(tǒng)原理電路圖(4) 制定編寫設(shè)計(jì)方案,編制軟件框圖,完成詳細(xì)完整的程序清單和 注釋;(5) 制定編寫調(diào)試方案,編寫用戶操作使用講明書(6) 寫出設(shè)計(jì)工作小結(jié)。 對(duì)在完成以上文件過(guò)程所進(jìn)行的有關(guān)步驟如設(shè) 計(jì)思想、指標(biāo)論證、方案確定、參數(shù)運(yùn)算、元器件選擇、原理分析等作出 講明,并對(duì)所完成的設(shè)計(jì)作出評(píng)判,對(duì)自己整個(gè)設(shè)計(jì)工作中體會(huì)教訓(xùn),總 結(jié)收成和今后研修方向。2.2 具體要求此次工程實(shí)踐的校內(nèi)部分要緊以單片機(jī)為基礎(chǔ),進(jìn)行單片機(jī)軟件編程, 目的是為了提升學(xué)

4、生的軟件編程和系統(tǒng)設(shè)計(jì)能力,整個(gè)設(shè)計(jì)系統(tǒng)包括兩個(gè) 部分,硬件及軟件部分,硬件部分差不多制作成功,學(xué)生只需要把握其原 理和焊接相應(yīng)的元器件,把握元器件的辨別和元器件的作用以及應(yīng)用場(chǎng)所 即可,另外對(duì)所焊接的電路還需要進(jìn)行認(rèn)確實(shí)檢查,判定是否有焊接錯(cuò)誤 的地點(diǎn)或者短路的地點(diǎn),對(duì)顯現(xiàn)的專門情形要能夠按照現(xiàn)象判別緣故,并 具備解決咨詢題的能力,從而切實(shí)提升學(xué)生的硬件電子電路的分析、判定 能力。軟件編程是此次工程實(shí)踐的重要環(huán)節(jié)。在為期兩周的工程實(shí)踐中, 將占據(jù)要緊時(shí)刻,學(xué)生要完成的軟件編程任務(wù)要緊包括以下幾點(diǎn):1)、熟悉 Keil C51 編程平臺(tái)及有關(guān)編程軟件2)、編寫、調(diào)試蜂鳴器、繼電器動(dòng)作、方波程序

5、并進(jìn)行軟硬件聯(lián) 調(diào)3)、編寫、調(diào)試 LED 流水燈(循環(huán)顯示)程序并進(jìn)行軟硬件聯(lián)調(diào)4)、編寫、調(diào)試鍵盤掃描子程序并進(jìn)行軟硬件聯(lián)調(diào)5)、編寫、調(diào)試數(shù)碼管動(dòng)態(tài)掃描程序并進(jìn)行軟硬件聯(lián)調(diào)6)、電子鐘設(shè)計(jì)(包括鍵盤、時(shí)鐘、顯示等)7)、溫度測(cè)量操縱系統(tǒng)設(shè)計(jì)(包括鍵盤、顯示、時(shí)鐘、報(bào)警等)8)、作息時(shí)刻操縱設(shè)計(jì)9)、交通燈操縱設(shè)計(jì)10)、漢字輸入設(shè)計(jì)三、設(shè)計(jì)內(nèi)容及方法 單片機(jī)原理及其應(yīng)用課程設(shè)計(jì)通常選擇一樣常見(jiàn)、常用的簡(jiǎn)單應(yīng) 用裝置或?qū)ο筮M(jìn)行微機(jī)操縱。所涉及的系統(tǒng)能夠?qū)嶋H制作,也能夠?qū)嶒?yàn)室 模擬,具體步驟和內(nèi)容如下:3.1 設(shè)計(jì)預(yù)備認(rèn)真研究設(shè)計(jì)任務(wù)書,明確設(shè)計(jì)要求、條件、內(nèi)容、和步驟;通過(guò)閱 讀有關(guān)資料,

6、了解設(shè)計(jì)對(duì)象;復(fù)習(xí)課程有關(guān)內(nèi)容,熟悉有關(guān)單元電路的設(shè) 計(jì)方法和設(shè)計(jì)步驟;搜集、分析、消化有關(guān)資料、軟件等,把握微型運(yùn)算 機(jī)應(yīng)用系統(tǒng)軟件的設(shè)計(jì)方法;預(yù)備好設(shè)計(jì)需要的圖書、資料和工具;擬定 設(shè)計(jì)打算等。3.2 功能設(shè)計(jì)及系統(tǒng)總體設(shè)計(jì)要求學(xué)生有創(chuàng)新精神和創(chuàng)新意識(shí),分析所把握的資料,了解設(shè)計(jì)對(duì)象 的功能。在充分考慮功能設(shè)計(jì)后,進(jìn)行總體設(shè)計(jì),以功能、結(jié)構(gòu)為標(biāo),制定總體方案,規(guī)劃硬、軟件功能分配等;初步確定關(guān)鍵元器件地選擇。此次設(shè)計(jì)任務(wù)本人所作工作是協(xié)助組長(zhǎng)和組員查閱資料文獻(xiàn),在代碼編寫?完成鍵操主負(fù)責(zé)調(diào)試程序 一樣)四、硬件電路總體設(shè)計(jì)4 Ds硬件丿總柜汽時(shí)時(shí)鐘模塊 %完成產(chǎn)品后編輯報(bào)。數(shù)碼管個(gè)示模塊己

7、編 不要寫模塊主控電路LED顯示模塊揚(yáng)聲器模塊原理講明:本電路以單片機(jī)AT89C52為主控電路,分別連接按鍵操縱掃描模 塊、時(shí)鐘模塊、數(shù)碼顯示模塊、LED顯示模塊、揚(yáng)聲器模塊。第一,按鍵 掃描模塊的四個(gè)按鍵分別用來(lái)操縱數(shù)碼顯示、LED顯示和揚(yáng)聲器工作,P1口作為輸出口,用來(lái)操縱LED的亮滅,要使其亮只需要讓P1.0-P1.7口保持低電平就能夠使8個(gè)燈亮起來(lái)。同時(shí)通過(guò)P2.3端操縱蜂鳴器發(fā)生,當(dāng) P2.3 輸出VCC曰,按VCC來(lái)操縱數(shù)碼管段選和位選,I以顯示相應(yīng)012型的三極管,數(shù)碼管DBT10了(選的息時(shí)刻操縱的功能Pl 2PC 1要求當(dāng)對(duì)應(yīng)端口輸出低電平常,亮譲碼管顯示時(shí)分通過(guò)按鍵1時(shí)使蜂

8、鳴器發(fā)聲 玉位選操縱部分,采納位選。P0 口用P3 04.1.1主控電路11CSDA 12此次課稈設(shè)計(jì)中CSDA 12PlP0.5P17P0.6RTSP0P5 C RXD P3 l/TXD ALE是設(shè)計(jì)一個(gè)使得該位建/3操縱。最后通過(guò)按按鍵4實(shí)現(xiàn)作.要緊系統(tǒng)。該設(shè)計(jì)中我們主控電路部分采納,AT89C52 是一個(gè) 反復(fù)擦寫的 FiaSh 其引腳如下圖所示:控電路D5丸 ALE29成功,功能的可VCC :供電電壓。喝電壓,高性XTAL P只讀程序儲(chǔ)備GNDP2.0乂作息時(shí)刻操縱為主的多功能操縱片來(lái)實(shí)現(xiàn)這些片內(nèi)含8KBZ7 DULA了單片機(jī);AT89C52總gcMOS的8位單片機(jī),B器和 256B的

9、隨機(jī)存取數(shù)據(jù)儲(chǔ)備器(RA圖1.AT89C52引腳圖GND :接地。P0 口( P0.0-P0.7 : P0 口來(lái)輸出數(shù)碼管位選及段選數(shù)據(jù),以操縱相應(yīng)數(shù) 碼管顯示相應(yīng)數(shù)值。P1 口 (P1.0-P1.7): P1 口來(lái)操縱 LED 的亮滅。P2 口(P2.0-P2.7):使能相應(yīng)的模塊功能;wela( P2.7):操縱數(shù)碼管位 選;dula( P2.6):操縱數(shù)碼管段選。P3 口(P3.0-P3.7): P3.0 為 RXD (串行輸入口),P3.1 為 TXD (串行 輸出口),P3.2為/INTO (外部中斷0),P3.3為/INT1 (外部中斷1),P3.4 為T0 (記時(shí)器0外部輸入),

10、P3.5為T1 (記時(shí)器1外部輸入),P3.6為/WR(外部數(shù)據(jù)儲(chǔ)備器寫選通),P3.7為/RD (外部數(shù)據(jù)儲(chǔ)備器讀選通)。用I/O腳,其功能用途由軟件定義。OOSiXTAL1 (19腳)和XTAL2 (18腳)為振蕩器輸入輸出端口,外接 12MHz晶振。RST/Vpd (9腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù) 位電路。VCC (40腳)禾尸SS(20腳尸為供電端口,分別接+5V電源正 負(fù)端。P0P3為可編程通,4.1.2按鍵操縱掃描模塊,屬于較為簡(jiǎn)單VCCUS圖2.按鍵輸入電路分別與單片機(jī)的P3.器發(fā)聲、按鍵2操縱LED流水5 D1按鍵用于操縱數(shù)/師示、IED顯示、揚(yáng)聲器等模塊的工作。通

11、過(guò) 掃描按鍵是否按下,來(lái)設(shè)定各模塊的工作情形,使各模塊能夠在按鍵的操 縱下,有序地進(jìn)行工作。設(shè)計(jì)中使用單個(gè)按鍵實(shí)現(xiàn)單個(gè)功能 的操縱方式.弓汕占魁舟1g4、P3.5 P36 P3.7燈、按鍵3操縱數(shù)碼管顯 來(lái)處理相應(yīng)的程序。在多功能系統(tǒng)設(shè)計(jì)的實(shí)驗(yàn)中中我們使用四個(gè)按鍵連仝鍵=1操縱蜂鳴,按弩4操縱作息時(shí)刻。通過(guò)按下相應(yīng)的按鍵4.1.3 DS1302實(shí)時(shí)時(shí)鐘模塊:圖3.DS1302模塊電路圖DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶 RA M的實(shí)時(shí)時(shí)鐘電路,它能夠?qū)δ?、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí), 具有閏年補(bǔ)償功能,工作電壓為 2.5V5.5V。采納三線接口與CPU進(jìn)行同

12、步通信,并可采納突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31X 8的用于臨時(shí)性存放數(shù)據(jù)的 RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源 引腳,同時(shí)提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。、,在調(diào)試程序時(shí)能夠不加電容器,只2 I/O2 CEDS1302與CPU的連接/實(shí)際上,在調(diào)試程序時(shí)能夠不加電容器,只 加一個(gè)32.768kHzX的晶振即可。只是選擇晶振時(shí),不同的晶振,誤差也較 大。X2CGND匸圖4. DS1302引腳圖其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情形下,也 能保持時(shí)鐘的連續(xù)運(yùn)

13、行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng) Vcc2 大于 Vcc1 + 0.2V 時(shí),Vcc2 給 DS1302供電。當(dāng) Vcc2 小于 Vcc1 時(shí), DS1302由Vcc1供電。X1和X2是振蕩源,外接 32.768kHz晶振。RST是 復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:第一,RST接通操縱邏輯,承諾地址/命令序列送入移位 寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平常,所有的數(shù)據(jù)傳送被初始化,承諾對(duì)DS1302進(jìn)行操作。如果在傳 送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變

14、為高阻態(tài)。 上電運(yùn)行時(shí),在Vcc 2.5V之前,RST必須保持低電平。只有在 SCLK為 低電平常,才能將RST置為高電平。I/O 為串行數(shù)據(jù)輸入輸出端(雙向),S始終是輸I入端。A4A3A2A1RD如圖2所示DS1302 操縱字節(jié)的最高有效位(位7)必須是邏輯1,如 果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低 有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,操縱字節(jié)總 是從最低位開(kāi)始輸出。在操縱字指令輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開(kāi)

15、始。同樣,在緊跟 8位的操縱字指令后的下一個(gè) SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù), 利用單片機(jī)的外部中斷來(lái)處理中斷系統(tǒng)通過(guò)數(shù)碼管顯示出時(shí)刻。圖5數(shù)碼管顯示電路硬件電路中,數(shù)碼管顯示的小時(shí)、分、秒,通過(guò)鍵1選擇,鍵2、鍵3調(diào)整。數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而 顯示出我們要的數(shù)字,因此按照數(shù)碼管的驅(qū)動(dòng)方式的不同,能夠分為靜態(tài) 式和動(dòng)態(tài)式兩類。靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù) 碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如 BCD 碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度 高,缺點(diǎn)是占用I/O端口

16、多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5X 8 = 40 根I/O端口來(lái)驅(qū)動(dòng),要明白一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:), 實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。 動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一 種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通操縱電路,位選通由各自獨(dú)立的I/O線操縱,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但怎么講是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單 片機(jī)對(duì)位選通COM端電路的操縱,因此我們只要將需要顯示的數(shù)碼

17、管的選 通操縱打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就可不能亮。通過(guò)分時(shí)輪番操縱各個(gè)數(shù)碼管的的 COM端,就使各個(gè)數(shù)碼管輪番受控顯示,這確 實(shí)是動(dòng)態(tài)驅(qū)動(dòng)。在輪番顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r刻為12ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡 非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快, 示數(shù)據(jù),可不能有閃耀感,動(dòng)態(tài)顯示的成 約大量的I/O端口,4.1.5 LED顯示模塊流水燈LED模塊給人的印象確際上各位搭碼管并 實(shí)是一穩(wěn)固的顯Qf D: -F器 是一樣的能夠節(jié)而一QjD5Q6D6Q7DCQSD74HCi7 DB6T1DB7圖6. LED顯示電路此次設(shè)計(jì)中通過(guò)按鍵2來(lái)操縱其流水顯示,打開(kāi)電

18、源后按下按鍵2流水 燈模塊有效。由于電路中LED為共陽(yáng)極,故操縱流水燈顯示的 P1 口應(yīng)為 低電平常才有效。從原理圖中能夠看出,如果要讓接在 P1.0 口的LED1亮起來(lái),那么只 要把P1.0 口的電平變?yōu)榈碗娖骄湍軌蛄?;相反,如果要接?P1.0 口的LE D1熄滅,就要把P1.0 口的電平變?yōu)楦唠娖?;同理,接在P1.1P1.7 口的其 他7個(gè)LED的點(diǎn)亮和熄滅的方法同LED1。因此,要實(shí)現(xiàn)流水燈功能,我 們只要將發(fā)光二極管LED1LED8依次點(diǎn)亮、熄滅,8只LED燈便會(huì)一亮 一暗的做流水燈了。我們第一把要顯示流水花樣的數(shù)據(jù)建在一個(gè)以 TAB為標(biāo)號(hào)的數(shù)據(jù)表 中,然后通過(guò)查表指令“MOVC A

19、, A+DPTR”把數(shù)據(jù)取到累加器A 中, 然后再送到P1 口進(jìn)行顯示。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺(jué)暫留 效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)刻專門短,我們?cè)诓倏v二極管亮滅的時(shí) 候應(yīng)該延時(shí)一段時(shí)刻,否則我們就看不到“流水”成效了。4.1.6揚(yáng)聲器模塊o3C動(dòng)O三極管截沒(méi)聲-ft作就0.2s設(shè)OY軟件流Y一起能夠I1 ti.咼電平常 流流過(guò)線摩鳴器來(lái)實(shí)現(xiàn)這些功能。三2N .N芝 Y音頻信號(hào)和磁鐵的,蜂鳴器器不發(fā)聲;當(dāng)丄用復(fù)塊EFM樂(lè)揚(yáng)聲器模塊通過(guò)按鍵1來(lái)實(shí)現(xiàn)。要求揚(yáng)聲器能夠發(fā)出連續(xù),斷續(xù)的聲圖7.揚(yáng)聲器電路蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,米納直流電壓供電,廣泛應(yīng)用于運(yùn)算機(jī)、打印機(jī)、復(fù)印機(jī)、

20、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器要緊分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。下面我們以電磁式蜂鳴器為例來(lái)講明它的工作5.1、流程框圖5.1.2蜂鳴器流程圖回主程序音及音樂(lè),我們能夠選擇調(diào)用作息時(shí)刻操縱程序調(diào)用數(shù)碼管顯示程序原理 接通I 磁場(chǎng) 輸出 有電 器的 發(fā)出 否發(fā)萄因此,我們能夠通過(guò)程序操縱 iO|口輸出勺電平來(lái)操縱蜂鳴器是 謀,實(shí)現(xiàn)各種可能音響的產(chǎn)生列萼彗圈,i使電磁線圈產(chǎn)生 期性地振動(dòng)發(fā)聲,當(dāng)P2.3端口輸出設(shè)置P2.3 端揚(yáng)聲器發(fā)音原理圖按下?4.2I腳間的直流電壓接近號(hào)芯0V 輸出低電平常,三極管導(dǎo)通,使蜂鳴 ZFHaiPS2舞盤 tS

21、P bSt-二 歯#的電流形成回路兒機(jī)區(qū)3命.,富4:* +:電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成 電源后,兩個(gè)引腳間獲得將接近0H V的直流電壓,如此蜂鳴設(shè)計(jì)中是通下? P2.3口操縱其發(fā)聲!用蜂鳴器發(fā)聲程序2.3與0S1302是連在發(fā)些響5:、門鏟代寵一需故只要rj.eri. 1調(diào)用LED顯示子程序5.1.4時(shí)刻顯示流程圖5.1.5作息時(shí)刻操縱流程圖作息時(shí)刻操縱的設(shè)計(jì)是比較簡(jiǎn)單的,其差不多思路是我們?cè)O(shè)置揚(yáng)聲器 的預(yù)響時(shí)刻,然后通過(guò)DS1302實(shí)時(shí)時(shí)刻的讀取與預(yù)響時(shí)刻做比較, 如果兩 者相同那么揚(yáng)聲器發(fā)聲,如果兩者不相同那么返回 DS1302實(shí)時(shí)時(shí)刻連續(xù)讀 取,直到與揚(yáng)

22、聲器預(yù)響時(shí)刻相同揚(yáng)聲器發(fā)聲,然后通過(guò)延時(shí)關(guān)閉揚(yáng)聲器。5.2源程序代碼及注釋 主程序清單:#include各寄存器等#include #define uint unsigned int#define uchar unsigned char/52 單片機(jī)頭文件,聲明/宏定義符號(hào),類似于替換sbit key1=P3八4; sbit key2=P3A5; sbit key3=P3A6; sbit key4=P3A7; sbit fm=P2A3;sbit dula=P2A6;sbit wela=P2A7;sbit bear=P2A3;/宏定義位 ,也即 IO 口定義uint i;/定義各符號(hào)uchar

23、aa,bb,numdu,numwe;uchar sec1,min1,hour1,year1,mon1,day1,temp1,temp2,sec2,min2,hour2; /主功能符號(hào)定義uchar code tablew=0x71,0x6d,0x5b,0x3f,0x6d,0x5b,0x06, ;uchar code tablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;uchar code table=0x3f,0x06,0x5b,0x4f,/主功能數(shù)組定義0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7

24、1;void w1();/ 子函數(shù)聲明void w2();void w3();void w4();void delayms(uint xms);void timer0();void delay(uint z);/ 主功能子函數(shù)聲明void init();void display(uchar hour,uchar min,uchar sec);void keyscan();void alarm();void time1();/*主函數(shù)*/void main()key1=1;key2=1;key3=1;key4=1;while(1)while(!key1)w1();while(!key2)w2()

25、;while(!key3)w3();while(!key4)w4();/*按鍵操縱蜂鳴器過(guò)程*/void w1()if(!key1)delayms(300);/延時(shí)防抖,松手檢測(cè)if(key1)fm=!fm;/*按鍵操縱流水燈過(guò)程*/void w2()loop 1:P1=0xff;if(!key2)delayms(300);if(key2)aa=0xfe;while(1)P1=aa;delayms(100); aa=_crol_(aa,1);/ 相應(yīng)的 cror 是循環(huán)右移一位 if(!key2) delayms(300); if(key2) goto loop1;/賦初值 11111110/

26、大循環(huán)/延時(shí) 500 毫秒將aa循環(huán)左移1位后再賦給aa/*按鍵操縱數(shù)碼管過(guò)程*/void w3()loop 2:wela=1;P0=0xff;if(!key3)delayms(300);if(key3)numdu=0;numwe=0;while(1)numdu+;if(numdu=7)numdu=1;dula=1;/開(kāi)段鎖存器P0=tablewnumdu;/ 送段碼dula=0;/ 鎖存段碼wela=1;/開(kāi)位鎖存器P0=tablewenumwe;/送位碼wela=0;/鎖存位碼numwe+;if(numwe=6) numwe=0;delayms(5);if(!key3) delayms(3

27、00); if(key3) goto loop2;/*按鍵操縱作息時(shí)刻過(guò)程*/ void w4()if(!key4)delayms(300);if(key4)init();/主功能主程序while(1)keyscan(); alarm();/*延時(shí)函數(shù)(用于按鍵,蜂鳴器,流水燈等的延時(shí)) */ void delayms(uint xms)uint i,j;for(i=xms;i0;i-)/i=xms 即延時(shí)約 xms 毫秒for(j=110;j0;j-);/*主功能有關(guān)所有子程序*/延時(shí)void delay(uint z) 程序/uint x,y;for(x=0;xz;x+) for(y=0;

28、y=sec2&sec1sec2+30)| (min1=0&sec120) /鬧鐘響 30 秒,正點(diǎn)報(bào)時(shí) 20 秒功能 for(i=0;i20;i+) bear=bear;P1=P1; switch(temp2)case 0:display(hour1,min1,sec1);break;case 1:display(year1,mon1,day1);break;case 2:display(hour2,min2,sec2);break;delay(30);bear=1;P1=0xff;/*void mainw()/ 主功能主程序 /init();while(1)keyscan();alarm()

29、;*/void time1()interrupt 1/ 定時(shí)器程序/uint m;m+;if(m=3686) /250與后面的3886相乘約為100000us=1s操縱1秒程序m=0;sec1+;if(sec1=60)sec1=0;min1+; if(min1=60)min1=0; hour1+;if(hour1=24)hour1=0;day1+;if(day1=31)day1=1;mon1+;if(mon1=13)mon1=1;year1+;if(year1=100)year1=0;六、調(diào)試情形及小結(jié)6.1 硬件調(diào)試硬件調(diào)試分為靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試,關(guān)于硬件調(diào)試而言,只要認(rèn)真焊 接,硬件一樣可不能顯現(xiàn)什么咨詢題的。沒(méi)有顯現(xiàn)什么咨詢題。用所給的 調(diào)試程序,調(diào)試結(jié)果專門好,各模塊都能正常工作。靜態(tài)調(diào)試一樣采納的工具是萬(wàn)用表,其是在用戶系統(tǒng)未工作時(shí)的一種 硬件檢測(cè)。動(dòng)態(tài)調(diào)試是在用戶系統(tǒng)工作的情形下發(fā)覺(jué)和排查錯(cuò)誤的一種硬件 檢測(cè)。調(diào)試步驟是:第一把電路分成若干模塊,調(diào)式過(guò)程中與該模塊無(wú)關(guān)的元件能夠不加考慮,如此可把故障限定在一定的范疇內(nèi);故障清除后, 把各個(gè)模塊合在一起進(jìn)行聯(lián)調(diào),即可完成整個(gè)硬件調(diào)試工作。6.2 軟件調(diào)試 軟件調(diào)試是通過(guò)對(duì)程序

溫馨提示

  • 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ù)網(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)論