0-99秒倒計(jì)時(shí)器_第1頁
0-99秒倒計(jì)時(shí)器_第2頁
0-99秒倒計(jì)時(shí)器_第3頁
0-99秒倒計(jì)時(shí)器_第4頁
0-99秒倒計(jì)時(shí)器_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘 要近年來隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測日新月益更新。在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。At89s52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,

2、使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。模擬多通道壓力系統(tǒng)是利用壓力傳感器采集當(dāng)前壓力并放映在顯示器上,它可以分析壓力過量程,并發(fā)出報(bào)警。并采用電子秤原理可根據(jù)輸入單價(jià)準(zhǔn)確的計(jì)算出物體的金額。本篇論文討論了簡單的倒計(jì)時(shí)器的設(shè)計(jì)與制作,對(duì)于倒計(jì)時(shí)器中的LED數(shù)碼顯示器來說,我為了簡化線路、降低成本,采用以軟件為主的接口方法,即不使用專門的硬件譯碼器,而采用軟件程序進(jìn)行譯碼。關(guān)鍵詞:AT89C51 LED數(shù)碼管顯示器 晶體振蕩器 目 錄摘 要I第一章 概述11.1 課程設(shè)計(jì)目的11.2 總體設(shè)計(jì)1第二章 硬件電路22.1各個(gè)元件介紹22.1.1 AT89C51的芯

3、片概述22.1.2 LED數(shù)碼管顯示器概述32.2 其他元器件介紹及參數(shù)選擇62.2.1 單片機(jī)的最小系統(tǒng)與復(fù)位電路62.2.2顯示電路的設(shè)計(jì)7第三章 軟件部分93.1 相關(guān)軟件介紹93.1.1 Keil C軟件93.1.2 Proteus軟件93.2 軟件設(shè)計(jì)103.2.1 程序框圖如圖103.2 .2 軟件程序11第四章 軟件調(diào)試144.1 系統(tǒng)調(diào)試工具keil c51144.2 PROTEUS仿真14第五章 電路焊接與調(diào)試175.1 電路板的焊接17總結(jié)19參考文獻(xiàn)20致謝21第一章 概述1.1 課程設(shè)計(jì)目的課程設(shè)計(jì)是單片機(jī)課程教學(xué)的最后一個(gè)環(huán)節(jié),是對(duì)學(xué)生進(jìn)行全面的系統(tǒng)的訓(xùn)練。進(jìn)行課程設(shè)

4、計(jì)可以讓學(xué)生把學(xué)過的比較零碎的知識(shí)系統(tǒng)化,真正的能夠把學(xué)過的知識(shí)落到實(shí)處,能夠開發(fā)簡單的系統(tǒng),也進(jìn)一步激發(fā)了學(xué)生再深一步學(xué)習(xí)的熱情,因此課程設(shè)計(jì)是必不可少的,是非常必要的。課程設(shè)計(jì)是提高學(xué)生單片機(jī)技術(shù)應(yīng)用能力以及文字總結(jié)能力的綜合訓(xùn)練環(huán)節(jié),是配合單片機(jī)課程內(nèi)容掌握、應(yīng)用得的專門性實(shí)踐類課程。通過典型實(shí)際問題的實(shí)際,訓(xùn)練學(xué)生的軟硬件的綜合設(shè)計(jì)、調(diào)試能力以及文字組織能力,建立系統(tǒng)設(shè)計(jì)概念,加強(qiáng)工程應(yīng)用思維方式的訓(xùn)練,同時(shí)對(duì)教學(xué)內(nèi)容做一定的擴(kuò)充。通過課程設(shè)計(jì),使自己深刻理解并掌握基本概念,掌握單片機(jī)的基本應(yīng)用程序設(shè)計(jì)及綜合應(yīng)用程序設(shè)計(jì)的方法。通過做一個(gè)綜合性訓(xùn)練題目,達(dá)到對(duì)內(nèi)容的消化、理解并提高解決

5、問題的能力的目的。要求:單片機(jī)控制的99s倒計(jì)時(shí)器(1)用單片機(jī)AT89C51的定時(shí)器實(shí)現(xiàn)1-99s倒計(jì)時(shí)器。(2)用PROTEUS設(shè)計(jì),仿真基于AT89c51單片機(jī)的1-99s倒計(jì)時(shí)器實(shí)驗(yàn)的硬件電路。1.2 總體設(shè)計(jì)設(shè)計(jì)的大體分析:硬件電路都主要由AT89C51芯片、LED數(shù)碼管顯示器、晶振產(chǎn)生電路、復(fù)位電路組成。其中電子時(shí)鐘的課程設(shè)計(jì)外加了8155芯片的擴(kuò)展電路。還有AT89C51芯片主要由軟件完成驅(qū)動(dòng)。最終通過Keil與Proteus軟件聯(lián)調(diào)完成模擬仿真功能??傮w分析草圖如下圖:AT89C5124PI1208復(fù)位電路時(shí)鐘電路顯示電路電源圖1-1 總體設(shè)計(jì)圖第二章 硬件電路2.1各個(gè)元件介

6、紹2.1.1 AT89C51的芯片概述 AT89C51是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89C51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。 其工作電壓在4.55V,一般我們選用5V電壓。外形及引腳

7、排列如圖2所示 :圖2-1 89C51的核心電路框圖一、主要特性與MCS-51 兼容 4K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0Hz-24MHz三級(jí)程序存儲(chǔ)器鎖定1288位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路 二、管腳說明 (1)電源及時(shí)鐘引腳(4個(gè)) Vcc: 電源接入引腳 Vss:接地引腳 XTAL1:晶振震蕩器接入的一個(gè)引腳(采用外部振蕩器時(shí),此引腳接地); XTAL2:晶體振蕩器的另一個(gè)引腳(采用外部振蕩器時(shí),此引腳作為外部振 蕩器信號(hào)的輸入端)。 (2)控制線

8、引腳(4個(gè)) RST/Vpd:復(fù)位信號(hào)輸入引腳/備用電源輸入引腳; ALE:地址鎖存允許信號(hào)輸出引腳/編程脈沖輸入引腳: EA:內(nèi)外存儲(chǔ)器選擇引腳/片外EPROM編程電壓輸入引腳; PSEN:外部程序存儲(chǔ)器選通信號(hào)輸出引腳。 (3)并行I/O引腳 P0.0-P0.7:一般I/O口引腳或數(shù)據(jù)/低位地址總線復(fù)用引腳; P1.0-P1.7:一般I/O口引腳; P2.0-P2.7:一般I/O口引腳或高位地址總線引腳; P3.0-P3.7:一般I/O口引腳或第二功能引腳三、振蕩器特性XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外

9、部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 2.1.2 LED數(shù)碼管顯示器概述本設(shè)計(jì)中采用的是7SEGMPS2-CC型號(hào)雙數(shù)碼管,它是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。實(shí)物如圖3所示:圖2-2 7SEGMPS2-CC型號(hào)雙數(shù)碼管一、數(shù)碼管的分類數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有

10、發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。LED數(shù)碼管有兩種連接方法如下: 共陽極接法。把發(fā)光二極管的陽極連在一起構(gòu)成公共陽極,使用時(shí)公共陽極接+5V,每個(gè)發(fā)光二極管的陰極通過電阻與輸入端相連。 共陰極接法。把發(fā)光二

11、極管的陰極連在一起構(gòu)成公共陰極,使用時(shí)公共陰極接地。每個(gè)發(fā)光二極管的陽極通過電阻與輸入端相連。圖2-3 LED數(shù)碼管的連接LED數(shù)碼顯示器的顯示段碼。 為了顯示字符,要為LED顯示器段碼(或稱字形代碼),組成一個(gè)8字形字符的7段,再加上1個(gè)小數(shù)點(diǎn)位,共計(jì)8段,因此提供給LED顯示器的顯示段碼為1個(gè)字節(jié)。二、數(shù)碼管的驅(qū)動(dòng)方式數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(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)制

12、譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5840根I/O端口來驅(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ì)顯示出字形,取決于單片

13、機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。三、數(shù)碼管參數(shù) 8字高度:8字上沿與下沿的距離。比外型高度小。通常用英寸來表示。范圍一般為0.25-20英寸。長*寬*高:

14、長數(shù)碼管正放時(shí),水平方向的長度;寬數(shù)碼管正放時(shí),垂直方向上的長度;高數(shù)碼管的厚度。時(shí)鐘點(diǎn):四位數(shù)碼管中,第二位8與第三位8字中間的二個(gè)點(diǎn)。一般用于顯示時(shí)鐘中的秒。四、數(shù)碼管應(yīng)用數(shù)碼管是一類顯示屏 通過對(duì)其不同的管腳輸入相對(duì)的電流 會(huì)使其發(fā)亮 從而顯示出 數(shù)字 能夠顯示 時(shí)間 日期 溫度 等所有可用數(shù)字表示的參數(shù) 由于它的價(jià)格便宜 使用簡單 在電器 特別是家電領(lǐng)域應(yīng)用極為廣泛 空調(diào) 熱水器 冰箱 等等 絕大多數(shù) 熱水器用的都是數(shù)碼管 其他家電 也用液晶屏與 熒光屏。五、數(shù)碼管使用的電流與電壓電流:靜態(tài)時(shí),推薦使用10-15mA;動(dòng)態(tài)時(shí),16/1動(dòng)態(tài)掃描時(shí),平均電流為4-5mA,峰值電流50-60

15、mA。電壓:查引腳排布圖,看一下每段的芯片數(shù)量是多少?當(dāng)紅色時(shí),使用1.9V乘以每段的芯片串聯(lián)的個(gè)數(shù);當(dāng)綠色時(shí),使用2.1V乘以每段的芯片串聯(lián)的個(gè)數(shù)。六、數(shù)碼管共陰和共陽引腳測量找公共共陰和公共共陽:首先,我們找個(gè)電源(3到5伏)和1個(gè)1K(幾百歐的也行)的電阻,VCC串接個(gè)電阻后和GND接在任意2個(gè)腳上,組合有很多,但總有一個(gè)LED會(huì)發(fā)光的,找到一個(gè)就夠了,然后GND不動(dòng),VCC(串電阻)逐個(gè)碰剩下的腳,如果有多個(gè)LED(一般是8個(gè)),那它就是共陰的了。相反用VCC不動(dòng),GND逐個(gè)碰剩下的腳,如果有多個(gè)LED(一般是8個(gè)),那它就是共陽的。也可以直接用數(shù)字萬用表,紅表筆是電源的正極,黑表筆是

16、電源的負(fù)極。2.2 其他元器件介紹及參數(shù)選擇本設(shè)計(jì)中還用到其他一些元器件,例如:晶振,電容,電阻,電解電容,開關(guān)等等。晶振采用頻率為12MHZ,連接的兩個(gè)電容為30pF;電解電容為10u;開關(guān)功能是在仿真過程中,按下開關(guān)便能實(shí)現(xiàn)99秒復(fù)位。2.2.1 單片機(jī)的最小系統(tǒng)與復(fù)位電路 一、最小系統(tǒng) 最小系統(tǒng)就是單片機(jī)在發(fā)揮具體測控功能時(shí)所必須的組成部分。 1、時(shí)鐘頻率電路的設(shè)計(jì)單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只要外界一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。時(shí)鐘電路如下圖:圖2-4 外部震蕩源電路一般選用石英晶體振蕩器。此電路在

17、加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容C1、C2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。C1、C2的典型值為30pf。單片機(jī)在工作時(shí),有內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù),f表示。圖中的時(shí)鐘頻率為12MHz,即f=12MHz,則時(shí)鐘周期為1/12us。2、復(fù)位電路的設(shè)計(jì)單片機(jī)的第九腳RES為硬件復(fù)位端,只要將該端持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如下圖:

18、圖2-5 復(fù)位電路圖中由按鍵K1以及電解電容C3構(gòu)成了復(fù)位電路。由于單片機(jī)是高電平復(fù)位,所以當(dāng)按下K1時(shí),單片機(jī)的9腳RESET管腳處于高電平,此時(shí)單片機(jī)處于復(fù)位狀態(tài)。當(dāng)上電后,由于電容緩慢充電,單片機(jī)的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時(shí)間后,單片機(jī)的9腳處于穩(wěn)定的低電平狀態(tài),此時(shí)單片機(jī)上復(fù)位完畢,系統(tǒng)程序從0000H開始執(zhí)行。值得注意的是,在設(shè)計(jì)當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲(chǔ)器的值都恢復(fù)到了初始值,而前面的功能介紹中提到的倒計(jì)時(shí)時(shí)間的記憶功能。2.2.2顯示電路的設(shè)計(jì)顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供

19、盡可能豐富的信息,全靠軟件來解決。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,另一種是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對(duì)靜態(tài)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法。七段數(shù)碼管顯示電路如下圖:圖2-6 共陽極數(shù)碼管圖中數(shù)碼管采用的是一位七段共陽數(shù)碼管,其中99秒倒計(jì)時(shí)的十位接P0口,個(gè)位接P2口??傮w硬件電路設(shè)計(jì)圖:圖2-7 總體電路圖 第三章 軟件部分3.1 相關(guān)軟件介紹3.1.1 Keil C軟件用到了Keil C軟件

20、,集成調(diào)試環(huán)境,集成了編輯器、譯碼器、調(diào)試器,支持軟件模擬,支持項(xiàng)目管理功能強(qiáng)大的觀察窗口,支持所有的數(shù)據(jù)類型。樹狀結(jié)構(gòu)顯示,一目了然,支持ASM(匯編)、C語言多模塊源程序混合調(diào)試,在直接修改、編譯、調(diào)試源程序,錯(cuò)誤指令定位。功能很強(qiáng)大,用于對(duì)程序的調(diào)試和編輯。其界面如下:圖3-1 Keil C界面3.1.2 Proteus軟件系統(tǒng)仿真還用到了Proteus軟件,可通過仿真顯示出所設(shè)計(jì)系統(tǒng)的功能,對(duì)于程序的調(diào)試等有很大的幫助。系統(tǒng)仿真時(shí)首先在使用Keil C 譯碼器,把所寫的程序進(jìn)行編譯,同時(shí)在仿真器里設(shè)置生成HEX文件,編譯無錯(cuò)誤進(jìn)行Proteus仿真。等所有的原件都連接完成后可以把Kei

21、l C編譯生成的無錯(cuò)誤文件加載到AT89C51中,方法是,右鍵點(diǎn)中器件然后再用左鍵點(diǎn)擊,出來一個(gè)對(duì)話框在program file后選擇要添加的文件,文件要求必須是HEX文件。然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象,看與自己設(shè)置的是否符合,如果不相符再查找錯(cuò)誤進(jìn)行修改,一般的錯(cuò)誤都是程序中的,所以要認(rèn)真的讀取程序的每一個(gè)部分。系統(tǒng)的仿真圖如下圖:圖3-2 系統(tǒng)的仿真圖3.2 軟件設(shè)計(jì)3.2.1 程序框圖如圖設(shè)定子程序流程圖(按鍵處理)進(jìn)入時(shí)間調(diào)整按K2循環(huán)執(zhí)行S1按K3循環(huán)執(zhí)行S2返回按K1 圖3-3 子程序流程圖開始程序初始化是否產(chǎn)生外部中斷是否進(jìn)入工作狀態(tài)進(jìn)入設(shè)定狀態(tài) 判斷是否足夠1秒 倒計(jì)時(shí)時(shí)間減1是否

22、到0返回是是否否是否是否圖3-4 程序流程圖3.2 .2 軟件程序 ORG 00H AJMP MAIN ORG 03H AJMP NT0 ORG 30HMAIN: MOV P1,#00H SETB P3.5 CLR P3.6 CLR P3.0 CLR P3.1 CLR 00H CLR 01H MOV 34H,#09H MOV 35H,#09H MOV R1,#04H MOV R2,#05H MOV R3,#0F8H MOV DPTR,#TABLE MOV TMOD,#01H MOV IE,#81HLOOP: JNB 01H,LOOP MOV A,R4 MOV B,#10 DIV AB MOV

23、R0,A MOV R1,B ACALL DISP DJNZ R3,LOOP MOV R3,#0F8H DEC R4 CJNE R4,#00,LOOP SETB P3.6 ACALL DELAY1S CLR P3.6 MOV R4,24H AJMP LOOPDISP: MOV A,R1 MOVC A,A+DPTR MOV P1,A SETB P3.0 ACALL DELAY CLR P3.0 MOV A,R0 MOVC A,A+DPTR MOV P1,A SETB P3.1 ACALL DELAY CLR P3.1 RETNT0: CLR EX0 CLR ET0 CLR 01H PUSH ACC

24、 PUSH PSW ACALL DIS1 KEY: JB P3.2,RETURNKEY0: ACALL DIS1 JNB P3.2,KEY0 KEY2: JB P3.3,KEY3 ACALL DIS1 INC 34H MOV A,34H CJNE A,#0AH,KEY22 MOV 34H,#00HKEY22: ACALL DIS1 JNB P3.3,KEY22 AJMP KEY2KEY3: ACALL DIS1 JB P3.4,KEY1 INC 35H MOV A,35H CJNE A,#0AH,KEY33 MOV 35H,#00HKEY33: ACALL DIS1 JNB P3.4,KEY3

25、3 AJMP KEY3KEY1: ACALL DIS1 JB P3.2,KEY2 KEY10: ACALL DIS1 JNB P3.2,KEY10 ACALL BCDBIN SETB 01H RETURN: SETB EX0 SETB ET0 MOV R3,#0F8H POP PSW POP ACC RETIBCDBIN: MOV B,#10 MOV A,34H MUL AB ADD A,35H MOV 24H,A MOV R4,24H RETDIS1: MOV R0,#34H MOV DPTR,#TABLE MOV A,R0 MOVC A,A+DPTR MOV P1,A SETB P3.1

26、CLR P3.0 ACALL DELAY CLR P3.1 INC R0 MOV A,R0 MOVC A,A+DPTR MOV P1,A SETB P3.0 ACALL DELAY CLR P3.0 RETDELAY: MOVR7,#19 D1:MOVR6,#25 D2:DJNZR6,D2 DJNZR7,D1 RETDELAY1S:MOV R7,#20DEL1: MOV R6,#100DEL2: MOV R5,#248 DJNZ R5,$ DJNZ R6,DEL2 DJNZ R7,DEL1 RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H, 82H ,0F8H,

27、80H,90H END第四章 軟件調(diào)試4.1 系統(tǒng)調(diào)試工具keil c51Keil C51 仿真器是一款利用KEIL C51 的IDE 集成開發(fā)環(huán)境作為仿真環(huán)境的廉價(jià)仿真器,是利用SST公司具有IAP功能的單片機(jī)SST89C58制作而成,主要是利用了SST89C58的IAP功能,所謂IAP功能是In application program 的英文縮寫,是在應(yīng)用編程的意思,通俗一點(diǎn)講就是:它可以通過串口將用戶的程序下載到單片機(jī)中,可以通過串口對(duì)單片機(jī)進(jìn)行編程。它之所以具有這種功能,實(shí)際上它有兩塊程序flash區(qū),其中一塊flash中運(yùn)行的程序可以更改另外的一塊程序flash區(qū)中的程序,正是利用這

28、一特性才用它作成了仿真器,我們把仿真器的監(jiān)控程序事先燒入SST89C58,監(jiān)控程序通過SST89C58的串口和PC通訊,當(dāng)使用KEIL C51的IDE環(huán)境仿真時(shí),用戶的程序通過串口被監(jiān)控程序?qū)懭雈lash程序區(qū)中,當(dāng)用戶設(shè)置斷點(diǎn)等操作仿真程序時(shí),flash程序中的用戶程序也在相應(yīng)的更改,從而實(shí)現(xiàn)了仿真功能 。調(diào)試的主要方法 :1. 啟動(dòng)Keil c51 2. 新建一個(gè)工程。Project菜單New project ,選擇好我們要保存的文件夾后,鍵入Frist 保存。接著彈出CPU類型選擇框,我們選擇最常用的AT89C51,按確定。3. 在工程中加入文件。新建一個(gè)文件,文件菜單FileNew,我

29、們再選擇:文件菜單FileSave As? (另存為)彈出 對(duì)話框后,我們文件名框中鍵入First.c(注意文件后綴名是 .c)保存。C文件建好啦。現(xiàn)在我們把文件加入到工程中去。 點(diǎn)擊Target 1前面的+號(hào),右鍵單擊Source Group 1選擇Add Files to Group ,Source Group 1,選擇添加 Add。編譯運(yùn)行,檢查程序是否有錯(cuò)誤。4.2 PROTEUS仿真 Proteus是一款EDA軟件,該軟件具有模擬電路仿真,數(shù)字電路仿真,單片機(jī)以及外圍電路組成的系統(tǒng)的仿真,RS-232動(dòng)態(tài)仿真,I2C調(diào)試器,SPI調(diào)試器,鍵盤和LCD系統(tǒng)的仿真,以及各種虛擬儀器,如示

30、波器,邏輯分析儀,信號(hào)發(fā)生器等。該軟件目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、ARM以及各種外圍芯片。該軟件還支持大量的存儲(chǔ)器和外圍芯片,所以,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件。調(diào)試方法:首先用Keil軟件將C編譯成HEX文件,打開Keil軟件,新建一個(gè)文檔,輸入C程序,保存成C格式文件,然后新建工程,連接單片機(jī)為AT89C51,選擇Options for target,選擇OUTPUT子菜單,在Create HEX Fi前打鉤,DeBug子菜單中,Settings選擇Pro

31、teusVSM Simulator,USE前打鉤,再次運(yùn)行文件,成功后在目錄下會(huì)生成HEX文件,打開Proteus軟件,或直接點(diǎn)擊DSN文件,雙擊單片機(jī)模板,點(diǎn)擊文件夾式樣的圖標(biāo)選擇對(duì)應(yīng)的HEX驅(qū)動(dòng)文件,然后點(diǎn)擊開始,進(jìn)行調(diào)試1、按下按鍵1電路開始工作,顯示99。如下圖所示:2、再次按按鍵1,電路開始倒計(jì)時(shí)。如圖所示:3、按按鍵2修改起始時(shí)間的十位數(shù),按按鍵3修改起始時(shí)間的個(gè)位數(shù) 然后按按鍵1開始倒計(jì)時(shí)。第五章 電路焊接與調(diào)試5.1 電路板的焊接一、布線 根據(jù)仿真電路圖,將元器件插在單面電路板上,并畫出最簡潔適合的元器件連接線。二、正確使用電烙鐵1、電烙鐵使用前要上錫。2、注意焊接手法。3、在

32、萬能板上焊接直插元件時(shí),要將引腳盡量插到底。4、焊接時(shí)間不宜過長,否則容易燙壞元件。5、焊接完成后,檢查電路的屬性。三、注意元件焊接順序。先難后易,先低后高,先貼片后插裝。四、電路調(diào)試將焊接完成的實(shí)際電路接通電源,并進(jìn)行調(diào)試,電路無反應(yīng)。經(jīng)過用萬用表測試,看各個(gè)連線有無斷路或短路,并將存在問題的線路糾正。再次連接電源進(jìn)行調(diào)試,發(fā)現(xiàn)數(shù)碼管的引腳連接錯(cuò)誤,及時(shí)進(jìn)行更正。電路仍舊無任何反反應(yīng)。下面分析一下電路可能存在的問題:1、單片機(jī)復(fù)位電路是易受噪聲干擾的敏感部位,當(dāng)復(fù)位端串入干擾時(shí),大多數(shù)情況下不會(huì)造成單片機(jī)的錯(cuò)誤復(fù)位,但會(huì)引起CPU內(nèi)部的某些寄存器和接口電路的錯(cuò)誤復(fù)位,因此在該電路可能是復(fù)位電

33、路抗干擾能力低,引起電路故障。2、用萬用表測量單片機(jī)連接晶振的兩個(gè)引腳,電壓約為供電電壓的1/2偏小一些,晶振正常起振。3、單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開始執(zhí)行。所以復(fù)位電路至關(guān)重要,可能是復(fù)位電路的原價(jià)發(fā)生故障導(dǎo)致電路不能正常工作。4、用萬用表測數(shù)碼管的各引腳,發(fā)現(xiàn)數(shù)碼管的小燈均不亮,證明數(shù)碼管在焊接中燒壞,不能再正常工作。總結(jié)本課程設(shè)計(jì)充分利用單片機(jī)內(nèi)部硬件資源和軟件功能,將可以大大減少硬件電路的復(fù)雜性,使電路結(jié)構(gòu)更加簡潔,有利于

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論