單片機(jī)定時(shí)器的設(shè)計(jì)_第1頁
單片機(jī)定時(shí)器的設(shè)計(jì)_第2頁
單片機(jī)定時(shí)器的設(shè)計(jì)_第3頁
單片機(jī)定時(shí)器的設(shè)計(jì)_第4頁
單片機(jī)定時(shí)器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

摘要摘要隨著時(shí)代的進(jìn)步,電子行業(yè)的發(fā)展,定時(shí)器的應(yīng)用也越來越廣泛,單片機(jī)以其強(qiáng)大的功能,成為許多功能電子產(chǎn)品的首選。本次電子定時(shí)器電路根據(jù)設(shè)計(jì)要求采用AT89C51單片機(jī)來實(shí)現(xiàn)最大99秒倒計(jì)時(shí),采用兩位數(shù)碼管顯示。文章的核心主要是硬件介紹及連接和軟件編程兩個(gè)大的方面。硬件電路主要包括AT89C51、晶振電路、數(shù)碼管,發(fā)光二級(jí)管,按鍵。軟件用匯編語言實(shí)現(xiàn),主要包括主程序、倒計(jì)時(shí)、重啟控制程序等軟件模塊。采用軟硬件配合基本能實(shí)現(xiàn)設(shè)定定時(shí)時(shí)間倒計(jì)時(shí)功能,達(dá)到了設(shè)計(jì)的要求和目的。并在Proteus軟件上進(jìn)行了仿真和調(diào)試。關(guān)鍵詞AT89C51單片機(jī);定時(shí)器;倒計(jì)時(shí)燕山大學(xué)本科課程設(shè)計(jì) !錄摘要 第一章緒論 定時(shí)器的發(fā)展 電子定時(shí)器的應(yīng)用 選題的目的和意義 本章小結(jié)TOC\o"1-5"\h\z\o"CurrentDocument"第二章單片機(jī)的基礎(chǔ)知識(shí) 3\o"CurrentDocument"單片機(jī)簡介 3\o"CurrentDocument"單片機(jī)的特點(diǎn) 3本章小節(jié)\o"CurrentDocument"第三章功能實(shí)現(xiàn)及硬件介紹 4設(shè)計(jì)功能實(shí)現(xiàn) 4\o"CurrentDocument"C51單片機(jī)引腳介紹 9時(shí)鐘和復(fù)位電路\o"CurrentDocument"數(shù)碼管顯示 10\o"CurrentDocument"鍵盤 12電氣原理圖 本章小結(jié)\o"CurrentDocument"第四章軟件設(shè)計(jì) 15\o"CurrentDocument"程序流程圖 15\o"CurrentDocument"定時(shí)1秒設(shè)計(jì) 16\o"CurrentDocument"重新啟動(dòng) 17\o"CurrentDocument"程序 17本章小結(jié)結(jié)論 參考文獻(xiàn) 致謝 II燕山大學(xué)本科課程設(shè)計(jì)第一章緒論定時(shí)器的發(fā)展人類最早使用的定時(shí)工具是沙漏或水漏,但在鐘表誕生發(fā)展成熟之后,人們開始嘗試使用這種全新的計(jì)時(shí)工具來改進(jìn)定時(shí)器,達(dá)到準(zhǔn)確控制時(shí)間的目的。傳統(tǒng)的定時(shí)器都是使用發(fā)條驅(qū)動(dòng)式、電機(jī)傳動(dòng)式、電鐘式等機(jī)械定時(shí)器。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é)奏也越來越快。電子定時(shí)器相對(duì)傳統(tǒng)定時(shí)器來說體積小,重量輕,造價(jià)低,精度高,壽命長,而且安全可靠適用于頻繁使用,在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。使相當(dāng)多需要人控制時(shí)間的工作變得簡單了許多。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方而發(fā)展,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在己能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。電子定時(shí)器的應(yīng)用電子定時(shí)器大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備甚至各種定時(shí)電氣的自動(dòng)啟用等。電子定時(shí)器經(jīng)常用于延時(shí)自動(dòng)關(guān)機(jī)、定時(shí)。延時(shí)自動(dòng)關(guān)機(jī)可用于電視機(jī)、催眠器、路燈及其他電器的延時(shí)斷電及延時(shí)自停電源等。定時(shí)可用于照相定時(shí)曝光,定時(shí)閃光,定時(shí)放大,水位定時(shí)報(bào)警,延時(shí)電鈴,延時(shí)電子鎖等,人們甚至將定時(shí)器用在了軍事方面,制成了定時(shí)炸彈,定時(shí)雷管。1燕山大學(xué)本科課程設(shè)計(jì)電子定時(shí)器影響著人類的生產(chǎn)和生活,隨著電子技術(shù)的發(fā)展,電子定時(shí)器也在不斷的進(jìn)步,將朝著更高精度,更多用途的方向?yàn)槲覀兎?wù)。選題的的目的和意義定時(shí)器與生活聯(lián)系密切,我們親身體會(huì)到它存在的價(jià)值,通過課程設(shè)計(jì)自己親自完成電子定時(shí)器的簡單設(shè)計(jì)不僅可以將學(xué)到的理論知識(shí)應(yīng)用于實(shí)踐,更提高了我們思考問題,解決問題的能力,同時(shí)提高我們的學(xué)習(xí)興趣。本章小結(jié)本章小結(jié):本章主要介紹了定時(shí)器的現(xiàn)狀,讓我們對(duì)電子定時(shí)器的有了初步的了解,為進(jìn)一步設(shè)計(jì)及研究奠定了基礎(chǔ)。燕山大學(xué)本科課程設(shè)計(jì)第二章單片機(jī)的相關(guān)知識(shí)單片機(jī)簡介單片機(jī)全稱為單片機(jī)微型計(jì)算機(jī)(SingleChipMicrosoftcomputer)。從應(yīng)用領(lǐng)域來看,單片機(jī)主要用來控制,所以又稱為微控制器(MicrucontrollerUnit)或嵌入式控制器。單片機(jī)是將計(jì)算機(jī)的基本部件微型化并集成在一塊芯片上的微型計(jì)算機(jī)。單片機(jī)的特點(diǎn).單片機(jī)的存儲(chǔ)器ROM和RAM是嚴(yán)格區(qū)分的。RAM稱為程序存儲(chǔ)器,只存放程序,固定常數(shù),及數(shù)據(jù)表格。RAM則為數(shù)據(jù)存儲(chǔ)器,用作工作區(qū)及存放用戶數(shù)據(jù)。.采用面向控制的指令系統(tǒng)。為滿足控制需要,單片機(jī)有更強(qiáng)的邏輯控制能力,特別是單片機(jī)具有很強(qiáng)的位處理能力。.單片機(jī)的I/O通常是多功能的。由于單片機(jī)芯片上引腳數(shù)目有限,為了解決實(shí)際引腳數(shù)和需要的信號(hào)線的矛盾,采用了引腳功能復(fù)用的方法,引腳處于何種功能,可由指令來設(shè)置或由機(jī)器狀態(tài)來區(qū)分。.3本章小結(jié)通過對(duì)單片機(jī)總體的介紹,我們對(duì)單片機(jī)有了初步的認(rèn)識(shí),針對(duì)單片機(jī)的特點(diǎn)對(duì)其應(yīng)用也有了更深的目的性。燕山大學(xué)本科課程設(shè)計(jì)第三章功能實(shí)現(xiàn)及硬件介紹設(shè)計(jì)功能介紹P1.0定時(shí)開始,P1.1時(shí)間調(diào)整,P1.2重新啟動(dòng)首先初始狀態(tài)顯示00,按下P1.1所連按鍵進(jìn)行時(shí)間加1操作,設(shè)定好后按下P1.0所連按鍵倒計(jì)時(shí)開始,當(dāng)所設(shè)定時(shí)間到達(dá)時(shí)顯示00,二極管發(fā)光。系統(tǒng)總體框圖C51單片機(jī)引腳介紹一、89C51的性能及特點(diǎn)89C51的主要性能包括:

燕山大學(xué)本科課程設(shè)計(jì)①與MCS-51微控制器產(chǎn)品系列兼容。②片內(nèi)有4KB可在線重復(fù)編程的快閃擦寫存儲(chǔ)器(FLASHMDMORY)。③存儲(chǔ)器可循環(huán)寫入/擦除1000次。④存儲(chǔ)數(shù)據(jù)保存時(shí)間為10年。 …⑤寬工作電壓范圍:VCC可為2.7?6V。⑥全靜態(tài)工作:可從0HZ到16MHZ。⑦程序存儲(chǔ)器具有3級(jí)加密保護(hù)。⑧128X8位內(nèi)部RAM。⑨32條可編程I/O線。⑩兩個(gè)16位定時(shí)器/計(jì)數(shù)器。中斷結(jié)構(gòu)具有5個(gè)中斷源和2個(gè)優(yōu)先級(jí)??删幊倘p工串行通道??臻e狀態(tài)維持低功耗和掉電狀態(tài)保存存儲(chǔ)內(nèi)容。F1J01 M2 3?3 35* 37」 八i 337 3+8 339 3210 3111 RI89C51 3012 2913 231+ 2715 H1£ 2517 21IS 2315 22如 21XfGGPlJFOBF1)-P1W"T1.1PlJFO工P03P0.+Pl.tPOJPl.7P0.fiE-EKEIP0.7P3J0FJJ.KLETWOP3JPSENP33P2.7P3.+P2.CP3JP2JP3.tP24F3.7P23P2JP2JPSJO(2)、AT89C51硬件結(jié)構(gòu)及引腳MCS-51系列單片機(jī)采用40引腳雙列直插式封裝(DIP),4個(gè)并行口共有32根引腳,可分別作為地址線、數(shù)據(jù)線和I/O線2根電源線2根時(shí)鐘震蕩電路引腳和4根控制線。.電源引腳Vcc和VssVss:接地端。Vcc:芯片+5V電源端。.時(shí)鐘信號(hào)引腳XTAL1和XTAL2XTAL1、XTAL2:當(dāng)使用單片機(jī)內(nèi)部震蕩電路時(shí),用來外接石英晶體和微調(diào)電容,XTAL1是片內(nèi)震蕩電路反相放大器的輸入端,XTAL2是片內(nèi)震蕩電燕山大學(xué)本科課程設(shè)計(jì)路反相放大器的輸出端,震蕩電路的頻率就是晶體的固有頻率。當(dāng)使用外部時(shí)鐘時(shí),XTAL1接地,XTAL2接外部時(shí)鐘信號(hào)源。.控制信號(hào)引腳RST/VPD、ALE/PROG、PSEN和EA/VPPRST/VPD:RST是復(fù)位信號(hào)輸入端。當(dāng)輸入的復(fù)位信號(hào)保持兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)以上的高電平時(shí)有效,用來完成復(fù)位操作第二功能VPD作為備用電源輸入端,當(dāng)主電源VCC發(fā)生故障,電壓降低到低電平規(guī)定值時(shí),可通過VPD為單片機(jī)內(nèi)部RAM提供電源,以保護(hù)片內(nèi)RAM中的信息不丟失,使系統(tǒng)在上電后能繼續(xù)正常運(yùn)行。ALE/RRRG:ALE為地址鎖存允許輸出信號(hào)。在訪問外部存儲(chǔ)器時(shí),ALE用來鎖存P0口擴(kuò)展低8位地址的控制信號(hào)。在不訪問外部存儲(chǔ)器時(shí),ALE也以時(shí)鐘震蕩頻率的1/6的固定頻率輸出,因而它又可用作對(duì)外輸出時(shí)鐘信號(hào)或其他需要,例如可以用示波器查看ALE是否有脈沖信號(hào)輸出來確定89C51芯片的好壞第二功能PRRG是對(duì)內(nèi)部有EPROM的單片機(jī)的EPROM編程時(shí)編程脈沖輸入端,它和31號(hào)引腳的第二功能Vpp一起使用。PSEN:外部ROM的讀選通信號(hào)輸出端。在訪問外部ROM時(shí),PREN產(chǎn)生負(fù)脈沖作為讀外部ROM的選通信號(hào)。而在訪問外部RAM或片內(nèi)ROM時(shí),不會(huì)產(chǎn)生有效PSEN信號(hào)。EA/VPP:ER是訪問外部ROM的控制信號(hào)。當(dāng)EA為低電平時(shí),CPU只執(zhí)行外部ROM中的程序。當(dāng)EA為高電平且PC值小于0FFF(4K)時(shí),CPU執(zhí)行內(nèi)部ROM的程序,但當(dāng)PC的值超出4K時(shí)將自動(dòng)轉(zhuǎn)去執(zhí)行片外ROM的程序。對(duì)于無片內(nèi)ROM的8031或不使用內(nèi)部ROM的89C51,需外擴(kuò)EPROM,此時(shí)EA必須接地第二種功能VPP是對(duì)8751的片內(nèi)EPROM的+21V編程電源輸入端。.P0~P3口結(jié)構(gòu)及功能P0口由一個(gè)輸出鎖存器、一個(gè)轉(zhuǎn)換開關(guān)MUX、兩個(gè)三態(tài)輸入緩沖器、輸出驅(qū)動(dòng)電路和一個(gè)與門及一個(gè)反相器組成,如圖2-2所示。燕山大學(xué)本科課程設(shè)計(jì)讀鎖存器內(nèi)部總線

寫地址/數(shù)據(jù)控制 Vcc讀鉞存器內(nèi)部總妹讀引腳,讀鉞存器內(nèi)部總妹讀引腳,讀引腳圖2-2P0口位結(jié)構(gòu)圖P0口具有兩種功能:第一,P0口可以用作通用I/O接口;第二,P0口可以用作地址/數(shù)據(jù)總線。(2)P1口是由一個(gè)輸出鎖存器、兩個(gè)三態(tài)輸入緩沖器和輸出驅(qū)動(dòng)電路組成,驅(qū)動(dòng)電路內(nèi)部設(shè)有上拉電阻,如圖2-3所示。Vcc上拉電阻"———Fl.xnl圖2-3P1口位結(jié)構(gòu)圖P1口是51單片機(jī)唯一的單功能口,是通用的準(zhǔn)雙向I/O口。(3)P2口由一個(gè)輸出鎖存器、一個(gè)轉(zhuǎn)換開關(guān)MUX、兩個(gè)三態(tài)輸入緩沖器、輸出驅(qū)動(dòng)電路和一個(gè)反相器組成,如圖2-4所示。燕山大學(xué)本科課程設(shè)計(jì)*齪仲川MLK譚琳?*齪仲川MLK譚琳??Vcc第二輸出功能CP9Vcc第二輸出功能CP9第二輸入功能圖2-4P2口位結(jié)構(gòu)圖P2口共有兩個(gè)功能:第一個(gè)功能與上述兩組引腳的第一功能相同,即可用作通用I/O口;它的第二功能與P0口引腳的第二功能相配合,作為地址總線用于輸出片外存儲(chǔ)器的高8位。(4)P3口由一個(gè)輸出鎖存器、三個(gè)三態(tài)輸入緩沖器、輸出驅(qū)動(dòng)電路和一個(gè)與非門組成,如圖2-5所示。讀鎖存器內(nèi)部離甥寫'讀引腳圖2-5P3口位結(jié)構(gòu)圖P3口有兩個(gè)功能:第一個(gè)功能與其余三個(gè)端口的第一功能相同;第二功能做控制用,每個(gè)引腳的功能不同:P3.0——RXD:串行口接收數(shù)據(jù)輸入端P3.1——TXD:串行口發(fā)送數(shù)據(jù)輸出端P3.2——INT0:外部中斷申請(qǐng)輸入端0P3.3——INT1:外部中斷申請(qǐng)輸入端1P3.4——T0:外部計(jì)數(shù)脈沖輸入端0

燕山大學(xué)本科課程設(shè)計(jì)P3.5——T1:外部計(jì)數(shù)脈沖輸入端1P3.6——WR:寫外設(shè)控制信號(hào)輸出端P3.7——RD:讀外設(shè)控制信號(hào)輸出端時(shí)鐘電路和復(fù)位電路單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn);復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開始運(yùn)行。時(shí)鐘電路:單片機(jī)的時(shí)鐘信號(hào)通常有兩種產(chǎn)生方式。一種是內(nèi)部時(shí)鐘方式;另一種是外部時(shí)鐘方式。如圖2-6所示。NCS-51CbJ外部時(shí)鐘方式3內(nèi)部時(shí)鐘方式圖2-6NCS-51CbJ外部時(shí)鐘方式3內(nèi)部時(shí)鐘方式圖2-6時(shí)鐘方式圖內(nèi)部時(shí)鐘方式只要在單片機(jī)的XTAL1和XTAL2引腳外接晶振就構(gòu)成了自激振蕩器,并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。外部時(shí)鐘方式是把外部已有的時(shí)鐘信號(hào)引入到單片機(jī)內(nèi),常用于多片單片機(jī)同時(shí)工作,已使各單片機(jī)同步。單片機(jī)的時(shí)序單位:晶振周期為時(shí)鐘脈沖頻率的倒數(shù),為最小的時(shí)序單位,也稱T狀態(tài);時(shí)鐘周期包含兩個(gè)晶振周期,也稱S狀態(tài);完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期,由6個(gè)時(shí)鐘周期組成,即12個(gè)晶振周期;指令的執(zhí)行時(shí)間稱為指令周期,通常含有1~4個(gè)機(jī)器周期。單片機(jī)的復(fù)位狀態(tài):當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以燕山大學(xué)本科課程設(shè)計(jì)上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位和手動(dòng)復(fù)位。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。手動(dòng)復(fù)位是當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵K后松開,也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或開關(guān)復(fù)位的操作。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC=0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機(jī)冷啟動(dòng)后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個(gè)特殊功能寄存器復(fù)位后的狀態(tài)為確定值,見下表(表中符號(hào)*為隨機(jī)狀態(tài))。表2-1特殊功能寄存器復(fù)位后的狀態(tài)表特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)A00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0?P3FFHSBUF不定IP***00000BSCON00HIE0**00000BPCON0*******B數(shù)碼管顯示LED(lightEmitingDiode)是發(fā)光管的縮寫。LED顯示器是由發(fā)光二極管構(gòu)成的,所以在顯示器前面冠以“LED”。LED顯示器在單片機(jī)中的應(yīng)用非常普遍。10燕山大學(xué)本科課程設(shè)計(jì)1)、LED顯示原理通常所說的LED顯示器由7個(gè)發(fā)光二極管組成,因此也稱之為七段LED此外,顯示器中還有一個(gè)圓點(diǎn)型發(fā)光二極管(在圖中以dp表示),用于顯示小數(shù)點(diǎn)。通過七段發(fā)光二極管亮暗的不同組合,可以顯示數(shù)字、字母以及其他符號(hào)。LED顯示器中的發(fā)光二極管共有兩種連接方法:共陽極接法把二極管的陽極連在一起構(gòu)成公共陽極。使用時(shí)公共陽極+5V。這樣陰極端輸入低電平的段發(fā)光二極管就導(dǎo)通點(diǎn)亮,而輸入高電平的則不亮。共陰極接法把發(fā)光二極管的陰極連在一起構(gòu)成公共陰極。使用時(shí)公共陰極接地,這樣陽極端輸入高電平的段發(fā)光二極管就導(dǎo)通點(diǎn)亮,而輸入低電平的則不點(diǎn)亮。使用LED顯示器時(shí)要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或符號(hào),要為LED顯示器提供代碼,因?yàn)檫@些代碼是為顯示字形的,因此稱之為字形代碼。七段發(fā)光二極管,再加上一個(gè)小數(shù)點(diǎn)位,共計(jì)八段。因此提供給LED11

燕山大學(xué)本科課程設(shè)計(jì)顯示器的字形代碼正好一個(gè)字節(jié)。各代碼的對(duì)應(yīng)關(guān)系如下:代碼位D7D6D5D4D3D2D1D0顯示段dpgfEDcba用LED顯示器顯示十六進(jìn)制數(shù)的字形代碼在下表中列出。字型共陽極代碼共陰極代碼字型共陽極代碼共陰極代碼0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H滅FFH00H880H7FH此設(shè)計(jì)使用的是共陽極接法。鍵盤鍵盤的工作方式應(yīng)該根據(jù)實(shí)際應(yīng)用系統(tǒng)中CPU的工作狀況而定,其選取的原則是既要保證CPU能及時(shí)響應(yīng)按鍵操作,又不要過多占用CPU的工作時(shí)間。通常,鍵盤的工作方式有三種,即編程掃描、定時(shí)掃描和中斷掃描。1編程掃描方式編程掃描方式是利用CPU完成其他工作的空余時(shí)間,調(diào)用鍵盤掃描子程序來檢驗(yàn)按鍵狀態(tài),響應(yīng)鍵盤輸入。執(zhí)行鍵功能程序時(shí),CPU不再享有鍵輸入要求,直到CPU重新掃描鍵盤為止。2定時(shí)掃描方式定時(shí)掃描方式就是每隔一段時(shí)間對(duì)鍵盤掃描一次,她利用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生一定時(shí)間(如20ms)的定時(shí),定時(shí)時(shí)間到產(chǎn)生定時(shí)器溢出中斷。12

燕山大學(xué)本科課程設(shè)計(jì)CPU在中斷服務(wù)程序中鍵盤進(jìn)行掃描,并在有鍵按下時(shí)識(shí)別出該鍵并保存鍵號(hào),然后在中斷服務(wù)程序或主程序中執(zhí)行該鍵的功能程序。3中斷掃描方式本設(shè)計(jì)采用上述兩種鍵盤掃描方式時(shí),無論是否有鍵按下,CPU都要定時(shí)掃描鍵盤,而單片機(jī)應(yīng)用系統(tǒng)工作時(shí),并非經(jīng)常需要鍵盤輸入。因此,CPU經(jīng)常處于空掃描狀態(tài),浪費(fèi)CPU大量時(shí)間,CPU不掃描鍵盤,而有鍵按下時(shí),通過相應(yīng)電路產(chǎn)生中斷請(qǐng)求,CPU相應(yīng)中斷,執(zhí)行鍵盤掃描子程序,并識(shí)別鍵號(hào)。本設(shè)計(jì)采用程序掃描方式。步驟如下:①首先判斷是否有鍵按下。②去除鍵抖動(dòng)。若有鍵按下,則延時(shí)5?10ms,再一次判斷有無鍵按下,如果此時(shí)仍有鍵按下,則認(rèn)為鍵盤上有一個(gè)鍵處于穩(wěn)定閉合期。③若有鍵閉合,執(zhí)行相應(yīng)的子程序。電氣原理圖13P0.0/AD013P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P30/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4T0P3.5/T1P3.6/WRP3.7/RD燕山大學(xué)本科課程設(shè)計(jì)本章小結(jié)本次課程設(shè)計(jì)采用軟硬件結(jié)合的方式,對(duì)硬件系統(tǒng)有了詳細(xì)的認(rèn)識(shí)才能更好的對(duì)其編程,是下一章的學(xué)習(xí)和研究的基礎(chǔ)。14

燕山大學(xué)本科課程設(shè)計(jì)第四章軟件設(shè)計(jì)程序流程圖開始結(jié)束初始化T0,T1,顯示00開始倒計(jì)時(shí)加開始結(jié)束初始化T0,T1,顯示00開始倒計(jì)時(shí)加1按鍵掃描pl.l,p1.2P1.1按下P1.0按下判斷是否到00燈亮顯示主程序流程圖15

燕山大學(xué)本科課程設(shè)計(jì)重啟控制流程圖定時(shí)1秒設(shè)計(jì)定時(shí)方法我們采用軟硬件結(jié)合的方法,定時(shí)器TO工作于方式1定時(shí)50毫秒,這樣每當(dāng)T0到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求進(jìn)入他的中斷服務(wù)子程序。定時(shí)器的最大定時(shí)時(shí)間為50ms,因此如果想得到1s的定時(shí),需要計(jì)20次50ms才能實(shí)現(xiàn)。設(shè)計(jì)中p3.5出現(xiàn)低電平時(shí)燈亮,所以通過p1.3引腳控制,每500ms對(duì)p1.3取反,因此計(jì)數(shù)器T1計(jì)數(shù)十次。工作方式控制寄存器(TMOD)TMOD寄存器是一個(gè)專用寄存器,用于設(shè)定兩個(gè)定時(shí)器/計(jì)數(shù)器的工作方式。但TMOD寄存器不能尋址,只能用字節(jié)傳送指令設(shè)置其內(nèi)容。其定義如下:位序B7B6B5B4B4B3B2Bl位符號(hào)GATEC/TM1M0GATEC/TMlM0定時(shí)/計(jì)數(shù)器1定時(shí)/計(jì)數(shù)器016

燕山大學(xué)本科課程設(shè)計(jì)4位一組的結(jié)構(gòu)使它不能位尋址,一定義就是4位。從寄存器的位個(gè)時(shí)鐘可以看出,它的低半字節(jié)定義定時(shí)器/計(jì)數(shù)器0,高半字節(jié)定義定時(shí)器/計(jì)數(shù)器1。根據(jù)設(shè)計(jì)的要求設(shè)置TMOD。T0工作于定時(shí)狀態(tài),定時(shí)50ms,工作方式1,T1工作于計(jì)數(shù)狀態(tài),方式二。X=216一定時(shí)時(shí)間/振蕩周期又12=216-50X103X12X106/12=65536一定時(shí)時(shí)間=65536-50000=3CB0H所以初值TH0=3CH、TL0=0B0H重新啟動(dòng)每次定時(shí)完畢以后,需要重新定時(shí)時(shí),需要將系統(tǒng)恢復(fù)初始狀態(tài),按下與P1.2相連的按鍵程序自動(dòng)返回,執(zhí)行新的定時(shí)邀請(qǐng)。程序設(shè)計(jì)org0000hIjmpmainorg000bhIjmptimeorgmain:movmovmov0100htmod,#61hth0,#3chtl0,#0b0h;設(shè)置定時(shí)器初值setbea17orgmain:movmovmov0100htmod,#61hth0,#3chtl0,#0b0h;設(shè)置定時(shí)器初值setbea17燕山大學(xué)本科課程設(shè)計(jì)setbet0movthl,#0f6hmovtl1,#0f6hmova,#00hmovb,#00hmovdptr,#tabmovr0,amovea,@a+dptrmovp0,amova,bmovea,@a+dptrmovp2,amova,r0ll:jnbpl.1,12jnbpl.0,15燕山大學(xué)本科課程設(shè)計(jì)setbet0movthl,#0f6hmovtl1,#0f6hmova,#00hmovb,#00hmovdptr,#tabmovr0,amovea,@a+dptrmovp0,amova,bmovea,@a+dptrmovp2,amova,r0ll:jnbpl.1,12jnbpl.0,1519:jbpl.1,11ineamovr0,aelresubba,#0ah;設(shè)置計(jì)數(shù)器初值;保存顯示結(jié)果只寄存器;將調(diào)整好的時(shí)間傳到寄存器;將設(shè)置好的時(shí)間低位經(jīng)P0口輸出;將高位賦給寄存器a;找到相應(yīng)的數(shù)碼管顯示段值;設(shè)置好的高位時(shí)間經(jīng)P2口輸出;寄存器a恢復(fù)低位;判斷pl.l,有按下則跳轉(zhuǎn)到12;判斷pl.0,有按下則跳轉(zhuǎn)到15;再次判斷pl.l有無按下;pl.l按下則低位加一調(diào)整時(shí)間;保存當(dāng)前設(shè)置時(shí)間低位;進(jìn)位標(biāo)志位清零;當(dāng)前值與10比較jne14 ;若無借位,說明時(shí)間已經(jīng)到10,跳轉(zhuǎn)到14若有借位,說明時(shí)間不到十,繼續(xù)mova,r0movr0,amovea,@a+dptrmovp0,amova,bmovea,@a+dptrmovp2,a;查詢要顯示的段碼值;低位經(jīng);查詢要顯示的段碼值;低位經(jīng)p0口輸出;高位經(jīng)p2口輸出燕山大學(xué)本科課程設(shè)計(jì)mova,r0;恢復(fù)時(shí)間低位l3:jnbp1.1,l3;等待P1.1按鍵彈起后再次掃描P1.1,是否繼續(xù)加一調(diào)整定時(shí)時(shí)間ljmpl1l4:mova,#00h;地位值到10,則低位清零incb;高位加一movr0,a;保存時(shí)間低位movca,@a+dptr;找到相應(yīng)的顯示段碼movp0,a;低位經(jīng)P0口輸出mova,bmovca,@a+dptrmovp2,a;高位經(jīng)p2口輸出mova,r0;恢復(fù)低位值ljmpl3;跳轉(zhuǎn)到繼續(xù)掃描按鍵l2:movr7,#40;時(shí)間延遲10msdel11:movr6,#123;10ms后跳轉(zhuǎn)到19;10ms后跳轉(zhuǎn)到19;10ms延時(shí)繼續(xù)判斷P1.0,若有按下跳轉(zhuǎn)到l6若無按下,繼續(xù)掃描按鍵倒計(jì)時(shí)開始,開定時(shí)器T0開計(jì)數(shù)器T1movr7,#40del12:movr6,#123nopdel22:djnzr6,del22djnzr7,del12jnbp1.0,l6ljmpl1setbtr0setbtr119

燕山大學(xué)本科課程設(shè)計(jì)loop2:jbctf1,loop1ajmploop2loop1:decamovr0,aclrcsubba,#0ffhjncl7mova,r0movr0,amovca,@a+dptrmovp0,amova,bmovca,@a+dptrmovp2,amova,r0jmpl6l7:mova,bjzl8decbmova,#09hmovr0,amovca,@a+dptrmovp0,amova,bmovca,@a+dptrmovp2,amova,r0;500ms時(shí)間到,跳轉(zhuǎn)到loop1;不到500ms,等待;時(shí)間低位減一;保存當(dāng)前低位值;借位標(biāo)志清零;與#ffh比較;若沒有借位,則說明已經(jīng)減到了0,減一后為ff,跳到17,若有借位,則還沒有減到0,繼續(xù)減一;輸出低位;輸出高位;恢復(fù)a低位值;跳轉(zhuǎn)到l6繼續(xù)定時(shí)減一;判斷高位是否到0,到0,跳到l8;高位沒有到0,則繼續(xù)減一;低位清零;恢復(fù)a低位值;低位輸出;高位輸出20燕山大學(xué)本科課程設(shè)計(jì)ljmp16tab:db0c0h,0f9h,0a4h,0b0hdb99h,92h,82h,0f8hdb80h,90hl8:clrp1.7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論