




已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
電子制作實(shí)驗(yàn)設(shè)計(jì)說明書設(shè) 計(jì) 者: 蔣貴春 學(xué) 號: (22) 院(系): 機(jī)械工程學(xué)院 專 業(yè): 機(jī)械電子工程 指導(dǎo)教師: 盛 衛(wèi) 鋒 2017年 12月 27 日一、 概述隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,以控制功能而著稱的單片機(jī)已越來越廣泛地應(yīng)用到各行各業(yè)的智能控制中去。單片機(jī)體積小、成本低,硬件結(jié)構(gòu)簡單,對硬件知識的要求不大,尤其適合于非電專業(yè)的工程技術(shù)人員用來設(shè)計(jì)實(shí)用的工業(yè)控制器。電子制作就是一門融硬件設(shè)計(jì)、硬件裝配、軟件設(shè)計(jì)、軟件調(diào)試為一體的課程。學(xué)生根據(jù)指導(dǎo)書提出的設(shè)計(jì)要求,設(shè)計(jì)出符合要求的電氣原理圖;并用電子CAD軟件(Altium Designer DXP)設(shè)計(jì)出原理圖及印制線路板,裝配元器件并進(jìn)行調(diào)試,使硬件系統(tǒng)正常工作;最后根據(jù)設(shè)計(jì)要求編制單片機(jī)源程序,并能調(diào)試通過,使控制器達(dá)到設(shè)計(jì)要求。由于設(shè)計(jì)時(shí)間限制,硬件原理圖及線路板已由教師設(shè)計(jì)完成,學(xué)生可按照設(shè)計(jì)要求進(jìn)行裝配及調(diào)試,然后再按照設(shè)計(jì)要求進(jìn)行軟件設(shè)計(jì)及軟件調(diào)試,從而基本上達(dá)到設(shè)計(jì)一個(gè)完整控制系統(tǒng)的要求。二、 電氣原理圖三、 控制電路介紹為滿足不同功能的設(shè)計(jì)要求,一塊電路板上設(shè)計(jì)出多個(gè)常用的功能電路,供使用者選用。印制線路板包含:(1) 44共16個(gè)鍵的矩陣鍵盤;(2) 四位LED數(shù)碼管顯示器;(3) 8位串行A/D轉(zhuǎn)換接口;(4) 8位串行D/A轉(zhuǎn)換接口;(5) 四相步進(jìn)電機(jī)驅(qū)動接口;(6) EEPROM串行存儲電路;(7) RS-232電平轉(zhuǎn)換電路;(8) DC12V穩(wěn)壓電源輸入接口;(9) USB電源轉(zhuǎn)換接口(DC5V);(10) ISP編程接口。1鍵盤鍵盤采用44矩陣鍵盤,由P2.0P2.3為行線、P1.4P1.7為列線而組成44的方陣,用軟件掃描的方法可以確定每個(gè)鍵的鍵值。在設(shè)計(jì)中,每個(gè)鍵可以用來數(shù)據(jù)及命令的輸入。2顯示器顯示器采用LED數(shù)碼管動態(tài)顯示方法,P0口輸出字符的顯示碼,位碼由P2.4P2.7來控制。動態(tài)顯示的成本極低,但占用CPU接口資源較多,本設(shè)計(jì)中共采用了12根口線。另外由于顯示器的不斷動態(tài)刷新,占用了CPU的部分工作時(shí)間,所以對一些時(shí)間要求較高的控制系統(tǒng),則應(yīng)考慮顯示器顯示占用的時(shí)間。3A/D轉(zhuǎn)換器本控制器的A/D轉(zhuǎn)換器采用了8位串行A/D轉(zhuǎn)換器,型號為TLC549,模擬信號由2腳輸入,A/D轉(zhuǎn)換后的8位二進(jìn)制數(shù)由6腳串行輸出,7腳為脈沖信號輸入端,5腳為片選端。該A/D轉(zhuǎn)換器體積小,速度高(較雙積分式)輸出接口少,性價(jià)比高,非常適合一些進(jìn)度要求不高、廉價(jià)的工業(yè)控制器。4D/A轉(zhuǎn)換器 本控制器的D/A轉(zhuǎn)換器采用了8位串行D/A轉(zhuǎn)換器,型號為TLC5620,是美國德州儀器 (TI)公司推出的帶串行控制的四路8位數(shù)/模轉(zhuǎn)換器,電壓型輸出,建立時(shí)間10us。該轉(zhuǎn)換器中的每一路均有輸入鎖存器和DAC鎖存器等兩級緩沖器 ,同時(shí)具有一個(gè)輸出量程開關(guān)、一個(gè)8位DAC電路以及一個(gè)電壓輸出電路。5步進(jìn)電機(jī)的驅(qū)動接口電路本控制器中設(shè)計(jì)了一個(gè)4相步進(jìn)電機(jī)的驅(qū)動接口電路,脈沖分配信號由P3.4P3.7輸出,經(jīng)功率放大器2003的放大,可以驅(qū)動DC12V的步進(jìn)電機(jī),環(huán)形分配可由軟件完成。6EEPROM串行存儲電路本控制器中設(shè)計(jì)了一個(gè)2K位容量的串行EEPROM,型號為24LC02。7RS-232電平轉(zhuǎn)換電路本控制器中設(shè)計(jì)了一個(gè)RS-232電平轉(zhuǎn)換電路,通過該電路單片機(jī)UART可以直接與PC機(jī)進(jìn)行通訊。8電源控制電源可以由單放機(jī)DC12V穩(wěn)壓電源提供,該電源可以用于步進(jìn)電機(jī)的驅(qū)動,同時(shí)通過線性三端穩(wěn)壓器7805為其它電路提供電源;如果不需要使用步進(jìn)電機(jī),整個(gè)控制系統(tǒng)的DC5V電源可以從普通計(jì)算機(jī)的USB接口采集,使用時(shí)只要把USB接線一頭接微機(jī)USB端口,另一頭接控制器上的2芯電源接口即可。9編程接口微處理器采用AT89S51,AT89S51具有ISP在線編程功能,P1.5P1.7為編程接口,軟件編譯和調(diào)試請見相關(guān)視頻。四、 設(shè)計(jì)題目1.實(shí)時(shí)時(shí)鐘工作原理:采用單片機(jī)內(nèi)部定時(shí)器精密定時(shí),四位數(shù)碼管顯示年、月、日、時(shí)、分、秒等,用鍵盤可以進(jìn)行時(shí)間預(yù)置、時(shí)間顯示內(nèi)容設(shè)置、時(shí)間運(yùn)行方式設(shè)置等。設(shè)計(jì)要求:1.用鍵盤切換的方式,分別顯示年月日或者時(shí)分秒;2.用鍵盤預(yù)置年、月、日、時(shí)、分、秒等;3.可以倒計(jì)時(shí),倒計(jì)時(shí)單位為分; 4.每一秒4個(gè)小數(shù)點(diǎn)閃爍一次;5.定時(shí)鬧鐘功能,蜂鳴器鳴叫提示。6.時(shí)鐘誤差每日不大于1秒。2.電子計(jì)算器工作原理:單片機(jī)具有較強(qiáng)的計(jì)算功能,利用控制器上的鍵盤顯示即可設(shè)計(jì)簡單的計(jì)算器。把16個(gè)鍵分別賦予09十個(gè)數(shù)字鍵、號鍵、號鍵、號鍵、號鍵、鍵等,如鍵不夠,也可以采用雙功能鍵方式,即按下雙功能鍵Shift,則下一次按的鍵為第二功能鍵。根據(jù)平時(shí)操作的習(xí)慣,設(shè)計(jì)出具有加減乘除運(yùn)算的電子計(jì)算器,輸入為4位,輸出為8位,分為二次輸出,利用等于鍵分別顯示高4位及低4位。設(shè)計(jì)要求:1參加運(yùn)算的數(shù)據(jù)由按鍵輸入;2要求能進(jìn)行四位十進(jìn)制數(shù)的加減乘除運(yùn)算;3要求能進(jìn)行雙字節(jié)十六進(jìn)制數(shù)的加減乘除運(yùn)算;4運(yùn)算結(jié)果大于四位時(shí),采用自動分屏顯示。實(shí)時(shí)時(shí)鐘設(shè)計(jì)摘要:本系統(tǒng)是基于AT89C52單片機(jī)的具有顯示當(dāng)前時(shí)間、調(diào)時(shí)、以及可設(shè)鬧鐘、倒計(jì)時(shí)功能的簡單數(shù)字時(shí)鐘系統(tǒng)的設(shè)計(jì)。以AT89C52為核心控制器,系統(tǒng)分為時(shí)鐘模塊、顯示模塊、按鍵模塊及鬧鐘模塊、倒計(jì)時(shí)模塊。系統(tǒng)以單片機(jī)內(nèi)部定時(shí)器作為時(shí)鐘模塊的主要控制模塊,通過頻率計(jì)數(shù)實(shí)現(xiàn)計(jì)時(shí)功能,采用了4位數(shù)碼管來顯示時(shí)間,采用獨(dú)立按鍵做為時(shí)間調(diào)時(shí)以及鬧鐘設(shè)置按鍵,采用蜂鳴器作為報(bào)時(shí)鬧鐘系統(tǒng)。通過Keil軟件C語言程序的編寫、編譯、調(diào)試以及硬件單片機(jī)的連接,實(shí)現(xiàn)了時(shí)間顯示(24小時(shí)制)、鬧鐘設(shè)置、時(shí)間調(diào)試以及倒計(jì)時(shí)報(bào)時(shí),可復(fù)位的功能,并運(yùn)行了該電路的程序,得出了符合實(shí)驗(yàn)設(shè)計(jì)要求的結(jié)果。關(guān)鍵字:數(shù)字時(shí)鐘;AT89C52;數(shù)碼管;C語言;鬧鐘;調(diào)時(shí)1 系統(tǒng)設(shè)計(jì)內(nèi)容1.1 前言隨著近年來科技的進(jìn)步,單片機(jī)在近十年也取得了飛速的發(fā)展。目前,單片機(jī)已經(jīng)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械以及各種智能機(jī)械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師?,F(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以MCS-51為核心的單片機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的WinBond系列單片機(jī)。以8031為核心的單片機(jī)占據(jù)了半壁江山,在一定的時(shí)期內(nèi),這種情形將得以延續(xù),將不存在某個(gè)單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ),相輔相成、共同發(fā)展的道路。數(shù)字電子時(shí)鐘作為單片機(jī)基礎(chǔ)學(xué)習(xí)的一個(gè)重要的典型,是很多初學(xué)的學(xué)習(xí)單片機(jī)的很好的例子,是對單片機(jī)的定時(shí)器的一個(gè)重要的應(yīng)用??梢哉f,學(xué)習(xí)單片機(jī)的兩個(gè)重點(diǎn)就是中斷和定時(shí)器,學(xué)會了數(shù)字時(shí)鐘的編程就是對單片機(jī)學(xué)習(xí)的一個(gè)很好的綜合應(yīng)用。1.2 設(shè)計(jì)要求1.用鍵盤切換的方式,分別顯示年月日或者時(shí)分秒;2.用鍵盤預(yù)置年、月、日、時(shí)、分、秒等;3.可以倒計(jì)時(shí),倒計(jì)時(shí)單位為分; 4.每一秒4個(gè)小數(shù)點(diǎn)閃爍一次;5.定時(shí)鬧鐘功能,蜂鳴器鳴叫提示。6.時(shí)鐘誤差每日不大于1秒。1.3 設(shè)計(jì)思路通過軟件程序的編程,硬件電路的調(diào)試,實(shí)現(xiàn)了簡單時(shí)鐘系統(tǒng)的設(shè)定,使得該系統(tǒng)具有正常走時(shí),能夠正確的顯示時(shí)、分、秒;能夠進(jìn)行調(diào)時(shí),修改當(dāng)前的時(shí)間,并且能夠設(shè)定鬧鐘,使鬧鐘能夠定時(shí)響及倒計(jì)時(shí)。因?yàn)橹挥兴膫€(gè)數(shù)碼管,而我們預(yù)期要顯示年(4位數(shù))、月(2位數(shù))、日(2位數(shù))、時(shí)(2)、分(2位數(shù))、秒(2位數(shù)),考慮過后,采用下面這種方法將年月日時(shí)分秒顯示出來:此處16個(gè)按鍵的標(biāo)號如下表所示:15141312111098765432101. 四位數(shù)碼管默認(rèn)顯示分和秒2. 0鍵起累加作用3. 2鍵按下進(jìn)入秒調(diào)節(jié)界面4. 3鍵按下進(jìn)入分調(diào)節(jié)界面5. 4鍵按下進(jìn)入時(shí)調(diào)節(jié)界面6. 5鍵按下進(jìn)入日調(diào)節(jié)界面7. 6鍵按下進(jìn)入月調(diào)節(jié)界面8. 7鍵按下進(jìn)入年調(diào)節(jié)界面9. 8鍵起調(diào)節(jié)時(shí)間和鬧鐘后返回到默認(rèn)界面的作用10. 9鍵按下進(jìn)入鬧鐘秒調(diào)節(jié)界面11. 10鍵按下進(jìn)入鬧鐘分調(diào)節(jié)界面12. 1鍵按下進(jìn)入倒計(jì)時(shí)調(diào)節(jié)界面13. 1鍵按下的條件下,3鍵按下進(jìn)入倒計(jì)時(shí)秒調(diào)節(jié)界面14. 1鍵按下的條件下,4鍵按下進(jìn)入倒計(jì)時(shí)分調(diào)節(jié)界面15. 1鍵按下的條件下,11鍵按下開始倒計(jì)時(shí)16. 1鍵按下的條件下,12鍵按下暫停倒計(jì)時(shí),暫停后需要按復(fù)位鍵17. 按下13鍵,顯示時(shí),松開顯示分秒18. 按下14鍵,顯示月,日,松開顯示分秒19. 按下15鍵,顯示年,松開顯示分秒20. 0鍵起累加2 系統(tǒng)方案設(shè)計(jì)2.1設(shè)計(jì)原理本系統(tǒng)數(shù)字時(shí)鐘設(shè)計(jì)原理主要利用AT89C52單片機(jī),由單片機(jī)的P0口控制數(shù)碼管的位顯示,P2口控制數(shù)碼管的段顯示,P1和P2口與按鍵相接用于時(shí)間的校正以及鬧鐘的設(shè)定。設(shè)計(jì)的主要方面有計(jì)時(shí)原理,中斷及定時(shí)器原理以及調(diào)時(shí)方式、按鍵的消抖。整個(gè)系統(tǒng)工作時(shí),秒信號產(chǎn)生器是整個(gè)系統(tǒng)的時(shí)基信號,它直接決定計(jì)時(shí)系統(tǒng)的精度,將標(biāo)準(zhǔn)秒信號送入“秒計(jì)數(shù)器”,“秒計(jì)數(shù)器”采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60秒發(fā)出一個(gè)“分脈沖”信號,該信號將作為“分計(jì)數(shù)器”的時(shí)鐘脈沖?!胺钟?jì)數(shù)器”也采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60分鐘,發(fā)出一個(gè)“時(shí)脈沖”信號,該信號將被送到“時(shí)計(jì)數(shù)器”。“時(shí)計(jì)數(shù)器”采用24進(jìn)制計(jì)時(shí)器,可實(shí)現(xiàn)對一天24小時(shí)的累計(jì)。顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出,通過四個(gè)八段數(shù)碼管顯示出來。校時(shí)電路是直接加一個(gè)脈沖信號到時(shí)計(jì)數(shù)器或者分計(jì)數(shù)器或者秒計(jì)數(shù)器來對“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對調(diào)整。在本設(shè)計(jì)中,24小時(shí)時(shí)鐘顯示、秒表的設(shè)計(jì)和顯示都是依靠單片機(jī)中的定時(shí)器完成。使用定時(shí)器T0產(chǎn)生1s的中斷,在中斷程序中完成每一秒數(shù)字的變化,并在主程序中動態(tài)顯示該字符。典型的8051單片機(jī)有5個(gè)中斷源(外部中斷0、1,內(nèi)部定時(shí)器中斷0、1,串口中斷),具有兩個(gè)中斷優(yōu)先級。與中斷系統(tǒng)有關(guān)的特殊功能寄存器有中斷允許寄存器IE、中斷優(yōu)先級控制寄存器IP、中斷控制寄存器TCON和SCON中有關(guān)位。MCS51單片機(jī)基本的中斷系統(tǒng)結(jié)構(gòu)如下圖所示。 圖2-1 MCS51的中斷系統(tǒng)MCS51的CPU對中斷源的開放或屏蔽,即每一個(gè)中斷源是否被允許中斷,是由內(nèi)部的中斷允許寄存器IE(地址A8H)控制的。IE中具體各位的意義如下所示:EA:CPU的中斷開放標(biāo)志。 EA 1,CPU開放中斷;EA 0,CPU屏蔽所有的中斷申請。EX0:外部中斷0中斷允許位。 EX0 1,允許中斷;EX0 0,禁止中斷。ET0:T0的溢出中斷允許位。ET0 1,允許T0中斷;ET0 0,禁止T0中斷。EX1:外部中斷1中斷允許位。EX1 1,允許外部中斷1中斷;EX1 0,禁止外部中斷1中斷。ET1:定時(shí)器計(jì)數(shù)器 T1的溢出中斷允許位。ET1 1,允許T1中斷;ET1 0禁止T1中斷。ES:串行口中斷允許位。ES 1,允許串行口中斷;ES 0禁止串行口中斷。 中斷優(yōu)先級管理寄存器IP(地址8BH):MCS51有兩個(gè)中斷優(yōu)先級,一個(gè)正在被執(zhí)行的低優(yōu)先級中斷服務(wù)程序能被高優(yōu)先級中斷所中斷,但不能被另一個(gè)同級的或低優(yōu)先級中斷源所中斷。CPU的查詢順序是:外部中斷0,定時(shí)器T0中斷,外部中斷1,定時(shí)器T1中斷,串行口中斷(先外部后內(nèi)部,先0后1)。中斷服務(wù)函數(shù)的格式如下所示:void 函數(shù)名(void) interrupt n using m 函數(shù)體語句 其中,interrupt和using是為編寫C51中斷服務(wù)程序而引入的關(guān)鍵字,interrupt表示該函數(shù)是一個(gè)中斷服務(wù)函數(shù),interrupt后的整數(shù)n表示該中斷服務(wù)函數(shù)是對應(yīng)哪一個(gè)中斷源。每個(gè)中斷源都有系統(tǒng)指定的中斷編號:表1 中斷編號表中斷源外部中斷0定時(shí)器中斷T0外部中斷1定時(shí)器中斷T1串行口中斷中斷編號0123451單片機(jī)有三個(gè)內(nèi)部中斷,16位定時(shí)器計(jì)數(shù)器T0、T1的溢出中斷源和串行口的發(fā)送/接收中斷。對T0和T1中斷,當(dāng)定時(shí)計(jì)數(shù)回0溢出時(shí),由硬件自動置位TCON中的TF0或TF1中斷請求標(biāo)志位。定時(shí)/計(jì)數(shù)器實(shí)際上是一個(gè)加1計(jì)數(shù)器,它可以工作于定時(shí)方式,也可以工作于計(jì)數(shù)方式。兩種工作方式實(shí)際上都是對脈沖計(jì)數(shù),只不過所計(jì)脈沖來源不同。定時(shí)器的脈沖是由51單片機(jī)的內(nèi)振蕩器經(jīng)過12分頻后產(chǎn)生的,故當(dāng)單片工作于定時(shí)狀態(tài)時(shí),計(jì)數(shù)脈沖的最高頻率為f=fosc/12。51單片機(jī)的寄存器有方式控制寄存器TMOD;加法計(jì)數(shù)寄存器TH0、TH1 (高八位),TL0、TL1 (低八位);定時(shí)/計(jì)數(shù)到標(biāo)志TF0、TF1(中斷控制寄存器TCON);定時(shí)/計(jì)數(shù)器啟??刂莆籘R0、TR1(TCON);定時(shí)/計(jì)數(shù)器中斷允許位ET0、ET1(中斷允許寄存IE);定時(shí)/計(jì)數(shù)器中斷優(yōu)先級控制位PT0、PT1(中斷優(yōu)IP)。在定時(shí)器工作前,必須將控制命令寫入定時(shí)器的控制寄存器,即進(jìn)行初始化。TMOD的低四位為T0的方式字,高四位為T1的方式字。TMOD不能位尋址,必須整體賦值。TMOD各位的含義如下:1. 工作方式選擇位M1、M0 :M1、M0的狀態(tài)決定定時(shí)器的工作方式:表2 工作方式選擇表M1M0功能說明00工作方式0(13位方式)01工作方式1(16位方式)10工作方式2(8位自動裝入計(jì)數(shù)初值方式)11工作方式3(T0為兩個(gè)8位方式)2. 定時(shí)和計(jì)數(shù)方式選擇位C/T。當(dāng)C/T=1時(shí)為計(jì)數(shù)方式;C/T=0時(shí)為定時(shí)方式。3. 門控位GATE。GATE與TR0、TR1配合決定定時(shí)/計(jì)數(shù)器的啟停。當(dāng)GATE = 0時(shí),軟啟動。定時(shí)器/計(jì)數(shù)器的啟停只受定時(shí)器運(yùn)行控制位(TR0、TR1)的控制。當(dāng)GATE = 1時(shí),軟硬啟動。定時(shí)器/計(jì)數(shù)器的啟停除受TR0、 TR1控制外,還受外部引腳(INT0、 INT1)輸入電平的控制(為高)。即TR0和INT0控制T0的運(yùn)行,TR1和INT1控制T1的運(yùn)行。MCS51的定時(shí)器有方式0、方式1、方式2和方式3這4種工作方式。以方式1為例,當(dāng)M1M0=01時(shí),定時(shí)/計(jì)數(shù)器工作在方式1。MCS-51單片機(jī)定時(shí)計(jì)數(shù)器在方式1時(shí)的工作原理如下圖所示:圖2-1 計(jì)數(shù)/定時(shí)器圖當(dāng)C/T=0時(shí),工作在定時(shí)器狀態(tài),由振蕩器經(jīng)12分頻后輸入,否則由T1端輸入。在定時(shí)時(shí),對工作頻率的12分頻進(jìn)行計(jì)數(shù),先記入TL后記入TH,直到溢出為止,根據(jù)TL、TH內(nèi)的初值不同可以定出不同的時(shí)間;在計(jì)數(shù)工作方式時(shí),對T0(T1)引腳的輸入脈沖進(jìn)行計(jì)數(shù),將計(jì)數(shù)值記入TL、TH。當(dāng)定時(shí)/計(jì)數(shù)溢出時(shí),會引起中斷。計(jì)數(shù)初值與定時(shí)時(shí)間的關(guān)系為:T = 12(T_all a)/fosc定時(shí)間隔為T,計(jì)數(shù)初值為a。所以有計(jì)數(shù)初值a =Tfosc/12,THx = a / 256,TLx = a % 256。定時(shí)器均有一個(gè)最大定時(shí)時(shí)間,對于長時(shí)間的定時(shí)需要,可以將定時(shí)間隔為固定的較小時(shí)間,通過另設(shè)一全局變量ah1用于計(jì)數(shù),累加固定的較小定時(shí)時(shí)間來進(jìn)行。使用MCS51單片機(jī)的定時(shí)/計(jì)數(shù)器的步驟是:1設(shè)定TMOD,確定:工作狀態(tài)(用作定時(shí)器/計(jì)數(shù)器);工作方式;控制方式。2設(shè)置合適的計(jì)數(shù)初值,以產(chǎn)生期望的定時(shí)間隔。由于定時(shí)/計(jì)數(shù)器在方式0、方式1和方式2時(shí)的最大計(jì)數(shù)間隔取決于使用的晶振頻率fosc,如下表所示,當(dāng)需要的定時(shí)間隔較大時(shí),要采用適當(dāng)?shù)姆椒?,即將定時(shí)間隔分段處理。 3確定定時(shí)/計(jì)數(shù)器工作于查詢方式還是中斷方式,若工作于中斷方式,則在初始化時(shí)開放定時(shí)/計(jì)數(shù)器的中斷及總中斷:ET0 = 1;EA = 1;還需要編寫中斷服務(wù)函數(shù):void T0_srv(void) interrupt 1 using 1TL0 = a % 256; TH0 = a / 256; 中斷服務(wù)程序段 4啟動定時(shí)器:TR0(TR1)= 1。時(shí)間調(diào)整有多種方式。一、可以直接進(jìn)入相關(guān)狀態(tài)進(jìn)行有關(guān)操作,二、將調(diào)整分兩步,先進(jìn)入狀態(tài),然后執(zhí)行操作,這兩步分別由兩個(gè)鍵控制。方式一,比較直接,設(shè)計(jì)思想也比較簡單,但是,這種方式存在操作時(shí)間和控制鍵數(shù)目的矛盾。如果用比較少的鍵,那么可能會在進(jìn)入狀態(tài)后處于數(shù)據(jù)調(diào)整等待狀態(tài),這樣會影響到顯示的掃描速度。當(dāng)然在這種方式下,還可以使用多個(gè)狀態(tài)鍵,每個(gè)狀態(tài)鍵,完成一個(gè)對應(yīng)數(shù)據(jù)的調(diào)整。如果采用二的方式,就不會出現(xiàn)這種情況。因?yàn)闋顟B(tài)的調(diào)整,與狀態(tài)的操作可以分別由兩個(gè)鍵控制,其狀態(tài)的調(diào)整數(shù)可以多達(dá)256個(gè)(理論上),操作的完成是這樣的,一鍵控制狀態(tài)的調(diào)整,一鍵控制數(shù)據(jù)的調(diào)整。以上兩種方式的實(shí)現(xiàn)都可以采用查詢和中斷的方式。兩種方式必須注意的問題是兩者進(jìn)行相關(guān)操作的過程不能太長否則會影響顯示的掃描?;诒鞠到y(tǒng)的設(shè)置:將時(shí)間調(diào)整分為狀態(tài)調(diào)整和數(shù)據(jù)調(diào)整兩部分,每次進(jìn)入中斷只執(zhí)行一次操作,然后返回,這樣,就不必讓中斷處于調(diào)整等待狀態(tài),可以使中斷的耗時(shí)很小。將定時(shí)器中斷的優(yōu)先級設(shè)置為最高級,那么中斷的方式和查詢的方式一樣不會影響到時(shí)鐘的記數(shù)。通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會馬上穩(wěn)定地接通,在斷開時(shí)也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。按鍵消抖的方式有硬件和軟件消抖,本系統(tǒng)采用軟件消抖。軟件消抖有定時(shí)器定時(shí),和利用延時(shí)子程序的方式。一,定時(shí)器定時(shí)消抖可以不影響顯示模塊掃描速度,其實(shí)現(xiàn)方法是:設(shè)置標(biāo)志位,在定時(shí)器中斷中將其置位,然后在程序中查詢。將其中斷優(yōu)先級設(shè)置為低于時(shí)鐘定時(shí)中斷,那么它就可以完全不影響時(shí)鐘定時(shí)。二,在采用延時(shí)子程序時(shí),如果顯示模塊的掃描速度本來就不是很快,此時(shí)可能會影響到顯示的效果,一般情況下,每秒的掃描次數(shù)不應(yīng)小于50次,否則,數(shù)碼的顯示會出現(xiàn)閃爍的情況。因此,延時(shí)子程序的延時(shí)時(shí)間應(yīng)該小于20毫秒,如果采用定時(shí)器定時(shí)的方式,延時(shí)時(shí)間不影響時(shí)鐘。如果,設(shè)計(jì)時(shí)采用的是中斷的方式來完成有關(guān)操作,同樣可以采用軟件的方式來消抖,其處理思想是:中斷不能連續(xù)執(zhí)行,兩次之間有一定的時(shí)間間隔。2.2 整體設(shè)計(jì)框圖AT89C52芯片時(shí)鐘模塊按鍵模塊顯示模塊蜂鳴器模塊調(diào)時(shí)功能時(shí)間顯示鬧鐘功能倒計(jì)時(shí)功能3 硬件設(shè)計(jì)硬件電路的設(shè)計(jì)包括核心時(shí)間控制模塊、顯示模塊、按鍵模塊,以及鬧鐘的蜂鳴器模塊。3.1 顯示模塊將AT89S52的P0.0-P0.7與數(shù)碼管相連,使得P0口控制數(shù)碼管的位顯示,將P2.4-P2.7接晶體管后接到VCC,使得P2口控制數(shù)碼管的段顯示。圖3-1 數(shù)碼管顯示原理圖3.2 按鍵模塊圖3-2 按鍵原理圖3.3 蜂鳴器模塊通過單片機(jī)的內(nèi)部設(shè)定,將P1.3口作為蜂鳴器的控制端口,通過跳帽連接VCC,使得蜂鳴器可以工作,再由軟件程序編寫,使得蜂鳴器能夠在特定的時(shí)刻響。圖3-3 蜂鳴器原理圖3.4 核心控制以及時(shí)間控制模塊圖3-4 復(fù)位電路圖圖3-5晶振連接圖圖3-6 P0口外接上拉電阻圖4 軟件及編程分析4.1 主程序流程圖如下所示經(jīng)過思路總結(jié)以及分析整個(gè)時(shí)鐘系統(tǒng)的硬件與軟件需求,可畫出程序流程圖如圖4-1所示:主程序初始化按鍵掃描鬧鐘設(shè)定正常走時(shí)時(shí)間調(diào)試有按鍵?幾號按鍵設(shè)定完畢YN圖4-1 程序設(shè)計(jì)流程圖4.2 軟件編程及分析本系統(tǒng)的編程環(huán)境為Keil uVision3,依照流程圖編寫程序并進(jìn)行程序的編譯,燒錄軟件使用progisp.exe將程序燒錄進(jìn)硬件中,軟件得編譯結(jié)果及燒錄結(jié)果分別如圖4-1,4-2所示:圖4-2 編譯結(jié)果圖圖4-3 燒錄結(jié)果圖編寫具體程序見附錄所示,以下給出部分主要程序的分析說明:(1)、按鍵消抖按鍵抖動會引起一次按鍵被誤讀多次。為確保CPU對鍵的一次閉合僅作一次處理,必須去除鍵抖動。抖動時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5ms10ms,通過delay函數(shù)的延時(shí)作用,在按鍵被按下時(shí),延時(shí)一段時(shí)間,確定按鍵是否真的被按下,如果是就執(zhí)行程序,達(dá)到了消除按鍵的抖動的目的,程序如下:if(key1=0)/按鍵被按下mDelay(10);/延時(shí)if(key1=0)/判斷按鍵是否被按下while(!key1);/進(jìn)一步確認(rèn)按鍵被按下(2)、初始化程序開中斷并選擇定時(shí)器void init0()TMOD=0x01;TH0=0x4c;TL0=0x00;EA=1;ET0=1;TR0=1; (3)、中斷程序中斷程序采用定時(shí)器0,在中斷程序中進(jìn)行顯示時(shí)間的準(zhǔn)點(diǎn)走時(shí),以及實(shí)現(xiàn)準(zhǔn)點(diǎn)報(bào)時(shí)的功能。void timer0() interrupt 1 TH0=0x4c;/0x4c TL0=0x00;/0x00 aa+; if(aa=20) aa=0; s+; if(s=60) s=0; m+; if(m=60) m=0; h+; if(h=24) h=0; day+; if(day=30) day=1;month+;if(month=12)month=1;year+;if(year=9999)year=0; 5結(jié)論在此次的課程設(shè)計(jì)中,我了解到了自己能力的不足之處,在編程和調(diào)試的過程中,我體會到了自己所學(xué)的知識是遠(yuǎn)遠(yuǎn)的不夠,需要學(xué)習(xí)的方面還有很多。通過資料的收集和文件的檢索,我找到了設(shè)計(jì)過程中出現(xiàn)的問題及問題的解決方法,從而算是較為順利的完成了此次課程設(shè)計(jì)的任務(wù)。此次的課程設(shè)計(jì)使我學(xué)到了很多新的,課堂上無法學(xué)到的知識,同時(shí)也加深了課堂上學(xué)到的知識,并且增強(qiáng)了自己理論聯(lián)系實(shí)際的操作能力。我取得了一些寶貴的經(jīng)驗(yàn),比如,理論必須和實(shí)際結(jié)合才能承購,知識必須通過應(yīng)用才能實(shí)現(xiàn)其價(jià)值。我還提高了自己的動手能力,為將來的學(xué)習(xí)和工作奠定了良好的基礎(chǔ)。參考文獻(xiàn):1余發(fā)山.王福忠.單片機(jī)原理及應(yīng)用技術(shù)M.徐州:中國礦業(yè)大學(xué)出版社.2008.10-1002鐘睿.MCS-51.單片機(jī)原理及應(yīng)用開發(fā)技術(shù)M.北京:中國鐵道出版社.2006.20-303彭偉.單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例:基于8051+Proteus仿真J.電子工業(yè)出版社4張靖武,周靈彬.單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真J.電子工業(yè)5郭天祥.新概念51單片機(jī)C語言教程入門,提高,開發(fā),拓展全攻略M.北京:電子工業(yè)出版社附錄:實(shí)驗(yàn)程序#include#includesbit P13=P13;sbit P14=P14;sbit P15=P15;sbit P16=P16;sbit P17=P17;sbit P20=P20;sbit P21=P21;sbit P22=P22;sbit P23=P23;sbit P24=P24;sbit P25=P25;sbit P26=P26;sbit P27=P27;sbit P32=P32;code unsigned char table12=0x81,0xed,0x43,0x49,0x2d,0x19,0x11,0xcd,0x01,0x09,0xfe,0xff;/table2用來每一秒4個(gè)小數(shù)點(diǎn)閃爍一次code unsigned char table22=0xfe,0xff;code unsigned char table32=0,1;unsigned char aa,bb,n,i,t1,j,s1;unsigned char cc,s1=0,m1,h1,day1,month1,year1;unsigned char dmin=30,dhour=1,ds,dmin2=0,dhour2;unsigned char sec=30,min=30,hour=12,n=0;unsigned char s=50,m=59,h=12,day=9,month=12,year;unsigned char DispBuf4=0,0,0,0;unsigned char key0=1;key1=1;key2=1;key3=1;key4=1;key5=1;key6=1;key7=1;key8=1;key9=1;key10=1;key11=1;key12=1;key13=1;key14=1;key15=1;unsigned char key;/*-*/*-*/*-*/*-*/void mDelay(unsigned int delay)unsigned char i;for(;delay0;delay-)for(i=0;i=60)min=0;key0=1; if(key9=0&key8=0)key9=1;key8=1;/設(shè)定鬧鐘時(shí)if(key10=0) mDelay(10); if(key10=0) P24=1;P25=0;P26=0;P27=0;P0=tablehour%10;mDelay(1);P24=0;P25=1;P26=0;P27=0;P0=tablehour/10;mDelay(1);P24=0;P25=0;P26=0;P27=0;P0=tables%10;mDelay(1);P24=0;P25=0;P26=0;P27=0;P0=tables%10;mDelay(1); if(key0=0) mDelay(10);if(key0=0)mDelay(100); hour=hour+1;mDelay(100);if(hour24)hour=0;key0=1; if(key10=0&key8=0)key10=1;key8=1; if(h=hour)&(m=min)&(s=sec) for(i=0;i=60)s=0;key0=1; if(key2=0&key8=0)key2=1;TR0=1;key8=1;/設(shè)定分if(key3=0) mDelay(10); if(key3=0) TR0=0;P24=0;P25=0;P26=0;P27=0;P0=tablem%10;mDelay(1);P24=0;P25=0;P26=0;P27=0;P0=tablem/10;mDelay(1);P24=0;P25=0;P26=1;P27=0;P0=tablem%10;mDelay(1);P24=0;P25=0;P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校食堂采購合同
- 手圓錐破碎機(jī)買賣合同
- 《教學(xué)評估創(chuàng)新》課件
- 可持續(xù)農(nóng)業(yè)發(fā)展
- 家居行業(yè)的前瞻策略
- 《緊急情況應(yīng)對策略》課件
- 合同范本作廢文本
- 《細(xì)胞生物學(xué)特征》課件
- 合同范本制訂優(yōu)
- 插花花藝師理論練習(xí)試卷附答案
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 生物試卷(含標(biāo)準(zhǔn)答案)
- Module 2 Unit 2 It will snow in Harbin.(說課稿)-2023-2024學(xué)年外研版(三起)英語六年級下冊
- 高考語文文化常識之天文歷法課件
- 2023年版義務(wù)教育音樂課程標(biāo)準(zhǔn)(標(biāo)準(zhǔn)版)
- 長短樁組合樁基礎(chǔ)的分析
- 北航畢業(yè)設(shè)計(jì)論文模板
- 留守兒童風(fēng)險(xiǎn)評估表
- LNG生產(chǎn)操作規(guī)程要點(diǎn)
- 教學(xué)能力大賽決賽獲獎(jiǎng)-教學(xué)實(shí)施報(bào)告-(完整圖文版)
- 完整戶口本英文翻譯模板(共4頁)
- 高二通用技術(shù)-經(jīng)典結(jié)構(gòu)的欣賞課件說課講解
評論
0/150
提交評論