版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 近年來隨著計算機(jī)在社會領(lǐng)域的滲透,單片機(jī)的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。在實時監(jiān)測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點(diǎn)的軟件結(jié)合,以作完善。</p><p> 單片機(jī)最小系
2、統(tǒng)是在以51單片機(jī)為基礎(chǔ)上拓展,使其能更方便地運(yùn)用于測試系統(tǒng)中。本設(shè)計主要在51單片機(jī)上擴(kuò)展I/O口,實現(xiàn)液晶顯示,定時等功能,并寫好一定的底層程序。</p><p> 關(guān)鍵詞:最小系統(tǒng);擴(kuò)展;AT89S51;I/O接口;液晶顯示</p><p><b> Abstract</b></p><p> With the infiltrati
3、on in the social field of the computer in recent years,the application of the one-chip computer is moving towards deepening constantly,drive tradition is it measuring in real time and automatically control at the same ti
4、me.In measuring in real time and automatically controlled one-chip computer application system,the one-chip computer often uses an a key part,onliy one-chip computer respect knowledge is not enough,should also follow the
5、 structure of the concrete hardware,and d</p><p> The smallest system one-chip computer is in expands at the base of MCS-51 one-chip computer.Make it used more convient in the test system.this design mainly
6、 expands I/O in take 51 on chip computer,expands the timer fixed time scope,expands the 1602 to demonstrate the connection and write the first floor procedure.</p><p> Kyesord:Minimum system,Expand,AT89S51,
7、I/O,1602</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 第1章 緒論1</b></p><p> 1.1 單片機(jī)基礎(chǔ)知識1
8、</p><p> 1.2 單片機(jī)的應(yīng)用領(lǐng)域1</p><p> 1.3 單片機(jī)的發(fā)展趨勢2</p><p> 第2章 硬件結(jié)構(gòu)剖析4</p><p> 2.1 80C51單片機(jī)的內(nèi)部結(jié)構(gòu)4</p><p> 2.2 80C51單片機(jī)的引腳功能5</p><p> 第3章
9、單片機(jī)的硬件設(shè)計10</p><p> 3.1 最小系統(tǒng)設(shè)計10</p><p> 3.2 LED顯示電路13</p><p> 3.3 鍵盤控制電路14</p><p> 3.4 LCD1602簡介16</p><p> 3.4.1 LCD1602 引腳功能16</p><p
10、> 3.4.2 LCD1602顯示模塊指令集17</p><p> 3.5單片機(jī)電路設(shè)計完整架構(gòu)20</p><p> 第4章 單片機(jī)的軟件設(shè)計23</p><p> 4.1 LCD1602時鐘軟件設(shè)計23</p><p> 4.1.1 DS1302介紹23</p><p> 4.1.2 時
11、鐘DS1302硬件連接25</p><p> 4.2 LCD1602時鐘軟件程序(部分)25</p><p> 第5章 調(diào)試與功能說明28</p><p> 5.1 硬件調(diào)試28</p><p> 5.2 系統(tǒng)性能測試與功能說明28</p><p> 5.3 系統(tǒng)時鐘誤差分析28</p>
12、;<p> 5.4 軟件調(diào)試問題及解決28</p><p><b> 結(jié)束語30</b></p><p> 參考文獻(xiàn)、資料索引31</p><p><b> 致謝32</b></p><p><b> 附錄33</b></p>&
13、lt;p> 最小系統(tǒng)電路PCB圖33</p><p> 232串口電路PCB圖34</p><p> LED共陽數(shù)碼管電路PCB圖35</p><p><b> 第1章 緒論</b></p><p> 1.1 單片機(jī)基礎(chǔ)知識</p><p> 單片機(jī)又稱單片微控制器,它不是
14、完成某一個邏輯功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯片上。概括的講,一塊芯片就成了一臺計算機(jī)。</p><p> MCS-51單片機(jī)是美國INTEL公司于1980年推出的產(chǎn)品,與MCS- 48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,各高校及專業(yè)
15、學(xué)校的培訓(xùn)教材仍與MSC-51單片機(jī)作為代表進(jìn)行理論基礎(chǔ)學(xué)習(xí)。</p><p> MCS-51系列單片機(jī)主要包括8031、8051和8751等通用產(chǎn)品。</p><p> DP-51S單片機(jī)仿真實驗儀是由廣州致遠(yuǎn)電子有限公司設(shè)計的DP系列單片機(jī)仿真實驗儀之一,是一種功能強(qiáng)大的單片機(jī)應(yīng)用技術(shù)學(xué)習(xí)、調(diào)試。</p><p> 1.2 單片機(jī)的應(yīng)用領(lǐng)域</p&g
16、t;<p> 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分為如下幾個范疇:</p><p> 一、在智能儀器儀表的應(yīng)用</p><p> 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角
17、度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。</p><p> 二、在家用電器中的應(yīng)用</p><p> 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在
18、。</p><p> 三、在工業(yè)控制中的應(yīng)用</p><p> 用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。</p><p> 四、在計算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用</p><p> 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計算機(jī)進(jìn)行數(shù)據(jù)
19、通信,為在計算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機(jī)智能控制,從手機(jī)、電話機(jī)、小型程控交換機(jī)、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機(jī)等。</p><p> 五、單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用</p><p> 單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷
20、設(shè)備及病床呼叫系統(tǒng)等等。 </p><p> 此外,單片機(jī)在工商、金融、科研、教育、國防航空等領(lǐng)域都有著十分廣泛的用途。</p><p> 1.3 單片機(jī)的發(fā)展趨勢</p><p> 單片機(jī)現(xiàn)在可以說是百花齊放,百家爭鳴的時期,世界上各大芯片制造公司都推出了自己的單片機(jī),從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們
21、各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供了廣闊的天地。</p><p> 縱觀單片機(jī)的發(fā)展過程,可以預(yù)示單片機(jī)的發(fā)展趨勢,大致有:</p><p><b> 一、微型單片化</b></p><p> 現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、
22、時鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機(jī)將LCD(液晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。</p><p> 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小。現(xiàn)在的許多單
23、片機(jī)都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。</p><p> 二、低功耗CMOS化</p><p> MCS-51系列的8031推出時的功耗達(dá)630mW,而現(xiàn)在的單片機(jī)普遍都在100mW左右,隨著對單片機(jī)功耗要求越來越低,現(xiàn)在的各個單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。像80C51就采用了HMOS(即高
24、密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點(diǎn),這些特征,更適合于要求低功耗像電池供電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機(jī)發(fā)展的主要途徑。</p><p> 三、主流與多品種共存</p><p> 現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以80C51為核
25、心的單片機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的Winbond系列單片機(jī)。所以80C51占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集合(RISC)也有著強(qiáng)勁的發(fā)展勢頭,中國臺灣的HOLTEX公司近年的單片機(jī)產(chǎn)量與日俱增,與其底價質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場份額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機(jī)。在一定的時期內(nèi),這種情形將得以延續(xù),將不存在某個單片
26、機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ)、相輔相成、共同發(fā)展的道路。</p><p> 九十年代以后,單片機(jī)在結(jié)構(gòu)上采用雙CPU或內(nèi)部流水線,CPU位數(shù)有8位、16位、32位,時鐘頻率高達(dá)20MHZ,片內(nèi)帶有PWM輸出、監(jiān)視定時器WDT、可編程計數(shù)器陣列PCA、DMA傳輸、調(diào)制解調(diào)器等。芯片向高度集成化、低功耗方向的發(fā)展,使得單片機(jī)在大量數(shù)據(jù)的實時處理、高級通信系統(tǒng)、數(shù)字信號處理、復(fù)雜工業(yè)過程控制、高級機(jī)器人以及局
27、域網(wǎng)等方面得到大量應(yīng)用。這類單片機(jī)有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6500。</p><p> 第2章 硬件結(jié)構(gòu)剖析</p><p> 2.1 80C51單片機(jī)的內(nèi)部結(jié)構(gòu)</p><p> 圖2-1為80C51單片機(jī)功能結(jié)構(gòu)框圖</p><p> 80C51 芯片內(nèi)部集成
28、了 CPU、RAM、ROM、定時/計數(shù)器和I/O口等各功能部件,并由內(nèi)部總線把這些不見連接在一起。</p><p> 80C51單片機(jī)內(nèi)部包含以下一些功能部件:</p><p> (1)一個8位CPU;</p><p> (2)一個片內(nèi)振蕩器和時鐘電路;</p><p> (3)4KB ROM(80C51有4KB掩膜ROM,87C51
29、有4KB EPROM,80C31片內(nèi)有無ROM);</p><p> (4)128B內(nèi)RAM;</p><p> (5)可尋址64KB的外ROM和外RAM控制電路;</p><p> (6)兩個16位定時/計數(shù)器;</p><p> (7)21個特許功能寄存器;</p><p> (8)4個8位并行I/O口,
30、共32條可編程I/O端線;</p><p> (9)一個可編程全雙工串行口;</p><p> (10)5個中斷源,可設(shè)置成2個優(yōu)先級。</p><p> 外時鐘源 外部事件計數(shù)</p><p> 中斷 控制
31、 并 行 口 串行通信</p><p> 圖2-1 80C51單片機(jī)功能結(jié)構(gòu)框圖</p><p> 2.2 80C51單片機(jī)的引腳功能</p><p> 80C51單片機(jī)一般采用雙列直插DIP封裝,共40個引腳,圖2-2為引腳排列圖。圖2-2b為邏輯符號圖。40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。&l
32、t;/p><p> 圖2-2 80C51引腳圖</p><p><b> 1.電源</b></p><p> (1)Vcc——芯片電源,接5V;</p><p> (2)GND——接地端。</p><p><b> 2.時鐘</b></p><p&g
33、t; XTAL1、XTAL2——晶體振蕩電路反相輸入端和輸出端。使用內(nèi)部振蕩電路時外接石英晶體。</p><p><b> 3.控制線</b></p><p> 控制線共有4根,其中3根是復(fù)用線。所謂復(fù)用線是指具有兩種功能,正常使用時是一種功能,在某種條件下是另一種功能。</p><p> (1)ALE/PROG——地址鎖存允許/片內(nèi)E
34、PROM編程脈沖。</p><p> ALE功能:用來鎖存P0口送出的低8位地址。</p><p> 80C51在并行擴(kuò)展外存儲器(包括并行擴(kuò)展I/O口)時,P0口用于分時傳送低8位地址和數(shù)據(jù)信號,且均為二進(jìn)制數(shù)。那么如何區(qū)分是低8位地址還是8位數(shù)據(jù)信號呢?當(dāng)ALE信號有效時,P0口傳送的是低8位地址信號;ALE信號無效時,P0口傳送的是8位數(shù)據(jù)信號。在ALE信號的下降沿,鎖定P0口傳
35、送的內(nèi)容,即低8位地址信號。</p><p> 需要指出的是,當(dāng)CPU不執(zhí)行訪問外RAM指令(MOVX)時,ALE以時鐘振蕩頻率1 / 6的固定頻率輸出,因此ALE信號也可作為外部芯片CLK時鐘或其他需要。但是,當(dāng)CPU執(zhí)行MOVX指令時,ALE將跳過一個ALE脈沖。</p><p> ALE端可驅(qū)動8個LSTTL門電路。</p><p> PROG功能:片內(nèi)
36、有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。</p><p> (2)PSEN——外ROM讀選通信號。</p><p> 80C51讀外ROM時,沒個機(jī)器周期內(nèi)PSEN兩次有效輸出。PSEN可作為外ROM芯片輸出允許OE的選通信號。在讀內(nèi)ROM或讀外RAM時,PSEN無效。</p><p> PSEN可驅(qū)動8個LSTTL門電路。 </p
37、><p> (3)RST/Vpd——復(fù)位/備用電源。</p><p> 正常工作時,RST(Reset)端為復(fù)位信號輸入端,只要在該引腳上連續(xù)保持兩個機(jī)器周期以上高電平,80C51芯片即實現(xiàn)復(fù)位操作,復(fù)位后一切從頭開始,CPU從0000H開始執(zhí)行指令。</p><p> Vpd功能:在Vcc掉電情況下,該引腳可接上備用電源,由Vpd向片內(nèi)供電,以保持片內(nèi)RAM中的
38、數(shù)據(jù)不丟失。</p><p> (4)EA/Vpp ——內(nèi)外ROM選擇/片內(nèi)EPROM編程電源。</p><p> EA功能:正常工作時,EA為內(nèi)外ROM選擇端。80C51單片機(jī)ROM尋址范圍為64KB,其中4KB在片內(nèi),60KB在片外(80C31芯片無內(nèi)ROM,全部在片外)。當(dāng)EA保持高電平時,先訪問內(nèi)ROM,但當(dāng)PC(程序計數(shù)器)值超過4KB(0FFFH)時,將自動轉(zhuǎn)向執(zhí)行外ROM
39、中的程序。當(dāng)EA保持低電平時,則只訪問外ROM,不管芯片內(nèi)有否內(nèi)ROM。對80C31芯片,片內(nèi)無ROM,因此EA必須接地。</p><p> Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳用于施加編程電源Vpp。</p><p> 對4個控制引腳,應(yīng)熟記起第一功能,了解其第二功能。</p><p> 嚴(yán)格來講,80C51的控制線還應(yīng)該包括P3
40、口的第二功能。</p><p><b> (5)I/O引腳</b></p><p> 80C51共有4個8位并行I/O端口,共32個引腳</p><p> P0口——8位雙向I/O口。在不并行擴(kuò)展外存儲器(包括并行擴(kuò)展I/O口)時, P0口可用作雙向I/O口。</p><p> 在并行擴(kuò)展外存儲器(包括并行擴(kuò)展I
41、/O口)時, P0口可用于分時傳送低8位地址(地址總線)和8位數(shù)據(jù)信號(數(shù)據(jù)總線)。位結(jié)構(gòu)如圖2-3所示。P0口能驅(qū)動8個LSTTL門。</p><p> 圖2-3 P0口位結(jié)構(gòu)</p><p> P1口——8位準(zhǔn)雙向I/O口(“準(zhǔn)雙向”是指該口內(nèi)部有固定的上拉電阻)。位結(jié)構(gòu)如圖2-4所示。P1口能驅(qū)動為4個LSTTL門。</p><p> 圖 2-4 P
42、1口位結(jié)構(gòu)</p><p> P2口——8位準(zhǔn)雙向I/O口。在不并行擴(kuò)展外存儲器(包括并行擴(kuò)展I/O口)時, P2口可用作雙向I/O口。在并行擴(kuò)展外存儲器(包括并行擴(kuò)展I/O口)時, P2口可用于傳送高8位地址(屬地址總線) 。P2口能驅(qū)動4個LSTTL門。P2口的位結(jié)構(gòu)如圖2-5所示,引腳上拉電阻同P1口。在結(jié)構(gòu)上,P2口比P1口多一個輸出控制部分。</p><p> 圖 2-5
43、P2口位結(jié)構(gòu)</p><p> P3口——8位準(zhǔn)雙向I/O口??勺饕话鉏/O口用,同時P3口每一引腳還具有第二功能,用于特殊信號輸入輸出和控制信號(屬控制總線)。P3口驅(qū)動能力為4個LSTTL門。</p><p> 圖 2-6 P3口位結(jié)構(gòu)</p><p> P3口第二功能如下:</p><p> P3.0——RXD:串行口輸入端;
44、</p><p> P3.1——TXD:串行口輸出端;</p><p> P3.2——INT0:外部中斷0請求輸入端;</p><p> P3.3——INT1:外部中斷1請求輸入端</p><p> P3.4——T0:定時/計數(shù)器0外部信號輸入端;</p><p> P3.5——T1:定時/計數(shù)器1外部信號輸
45、入端;</p><p> P3.6——WR:外RAM寫選通信號輸出端;</p><p> P3.7——RD:外RAM讀選通信號輸出端。</p><p> 上述4個I/O口,各有各的用途。 在不并行擴(kuò)展外存儲器(包括并行擴(kuò)展I/O口)時, 4個I/O口都可作為雙向I/O口用。在并行擴(kuò)展外存儲器(包括并行擴(kuò)展I/O口)時, P0口專用于分時傳送低8位地址信號和8位
46、數(shù)據(jù)信號,P2口專用于傳送高8位地址信號。P3口根據(jù)需要常用于第二功能,真正可提供給用戶使用的I/O口是P1口和一部分未用作第二功能的P3口端線。</p><p> 第3章 單片機(jī)的硬件設(shè)計</p><p> 3.1 最小系統(tǒng)設(shè)計</p><p> 圖3-1 單片機(jī)最小系統(tǒng)的結(jié)構(gòu)圖</p><p> 單片機(jī)的最小系統(tǒng)是由電源、復(fù)位、晶
47、振、/EA=1組成,下面介紹一下每一個組成部分。</p><p><b> 1.電源引腳</b></p><p> Vcc 40 電源端</p><p> GND 20 接地端</p><p> 工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V, 引腳功能一樣。 </p><p&g
48、t;<b> 2.外接晶體引腳</b></p><p> 圖3-2 晶振連接的內(nèi)部、外部方式圖</p><p><b> XTAL119</b></p><p><b> XTAL218</b></p><p> XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則
49、是輸出端,使用外部振蕩器時,外部振蕩信號應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。系統(tǒng)的時鐘電路設(shè)計是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧
50、振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22μF。在焊接刷電路板時,晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。</p&
51、gt;<p> 3.復(fù)位 RST 9</p><p> 在振蕩器運(yùn)行時,有兩個機(jī)器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腿時,將使單片機(jī)復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0-P3口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的00H處開始運(yùn)行程序。復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RS
52、T通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。當(dāng)時鐘頻率選用6MHz時,C取22μF,Rs約為200Ω,Rk約為1K。復(fù)位操作不會對內(nèi)部RAM有所影響。</p><p> 常用的復(fù)位電路如下圖所示:</p><p> 圖3-3 常
53、用復(fù)位電路圖</p><p><b> 4.輸入輸出引腳</b></p><p> (1) P0端口[P0.0-P0.7] P0是一個8位漏極開路型雙向I/O端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅(qū)動8個TTL。</p><p> 對內(nèi)部Flash程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接上拉電
54、阻。</p><p> 在訪問外部程序和外部數(shù)據(jù)存儲器時,P0口是分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。</p><p> (2) P1端口[P1.0-P1.7] P1是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。</p><p> 對內(nèi)部Flash程序存儲器
55、編程時,接收低8位地址信息。</p><p> (3) P2端口[P2.0-P2.7] P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收高8位地址和控制信息。</p><p> 在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時
56、其引腳上的內(nèi)容在此期間不會改變。</p><p> (4) P3端口[P3.0-P3.7] P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。</p><p> 對內(nèi)部Flash程序存儲器編程時,接控制信息。除此之外P3端口還用于一些專門功能,具體請看下表。</p><p> 表3-1
57、P3端口引腳兼用功能表</p><p> 3.2 LED顯示電路</p><p> 顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運(yùn)行狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有: 發(fā)光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。LED顯示器是現(xiàn)在最常用的顯示器之一,如下圖所示。</p><p> 圖3-4 LED顯示器的符號圖</
58、p><p> 發(fā)光二極管(LED)由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可以組裝成分段式或點(diǎn)陣式LED顯示器件(半導(dǎo)體顯示器)。分段式顯示器(LED數(shù)碼管)由7條線段圍成8字型,每一段包含一個發(fā)光二極管。外加正向電壓時二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號。LED數(shù)碼管有共陽、共陰之分。</p><p> 顯示電路顯示模塊需要實
59、時顯示當(dāng)前的時間,即時、分、秒,因此需要6個數(shù)碼管,另需兩個數(shù)碼管來顯示橫。采用動態(tài)顯示方式顯示時間,硬件連接如下圖所示,時的十位和個位分別顯示在第一個和第二個數(shù)碼管,分的十位和個位分別顯示在第四個和第五個數(shù)碼管,秒的十位和個位分別顯示在第七個和第八個數(shù)碼管,其余數(shù)碼管顯示橫線。LED顯示器的顯示控制方式按驅(qū)動方式可分成靜態(tài)顯示方式和動態(tài)顯示方式兩種。對于多位LED顯示器,通常都是采用動態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式如下圖所示。&
60、lt;/p><p> 圖3-5 數(shù)碼管的硬件連接示意圖</p><p><b> 數(shù)碼管使用條件:</b></p><p> a、段及小數(shù)點(diǎn)上加限流電阻</p><p> b、使用電壓:段:根據(jù)發(fā)光顏色決定;小數(shù)點(diǎn):根據(jù)發(fā)光顏色決定</p><p> c、使用電流:靜態(tài):總電流 80mA(每
61、段 10mA);動態(tài):平均電流 4-5mA峰值電流 100mA</p><p> 數(shù)碼管使用注意事項說明:</p><p> ?。ǎ保?shù)碼管表面不要用手觸摸,不要用手去弄引角;</p><p> (2)焊接溫度:260度;焊接時間:5S</p><p> ?。ǎ常┍砻嬗斜Wo(hù)膜的產(chǎn)品,可以在使用前撕下來。</p><p&
62、gt; 3.3 鍵盤控制電路</p><p> 行列式鍵盤的接法比獨(dú)立式鍵盤的接法復(fù)雜,編程實現(xiàn)上也會比較復(fù)雜。但是,在占用相同的I/O端口的情況下,行列式鍵盤的接法會比獨(dú)立式接法允許的按鍵數(shù)量多。</p><p> 行列式鍵盤的工作方式是先用列線發(fā)送掃描字,然后讀取行線的狀態(tài),查看是否有按鍵按下。鍵盤部分提供一種掃描的工作方式,可以和具有64個按鍵的矩陣鍵盤相連接,能對鍵盤不斷掃描
63、、自動消抖、自動識別按下的鍵,并給出編碼,能對雙鍵或n個鍵同時按下的情況實行保護(hù)。</p><p> 在顯示部分,它可以為發(fā)光二極管、熒光管及其他顯示器提供按掃描方式工作的顯示接口,而且為顯示器提供多路復(fù)用信號,可以顯示多達(dá)16位的字符或數(shù)字。</p><p> 鍵盤中有無按鍵按下是由列線送入全掃描字、行線讀入行線狀態(tài)來判斷的,其方法是將列線的所有I/O線均置成低電平,然后將行線電平狀
64、態(tài)讀入累加器A中,如果有鍵按下,總會有一根行線被拉至低電平,從而使行輸入不全為1。</p><p> 鍵盤中哪一個鍵按下可由列線逐列置低電平后,檢查行輸入狀態(tài)來判斷,其方法是依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列,如果不全為1,則所按下的鍵必在此列,而且是在與0電平線相交的交點(diǎn)上的那個鍵。</p><p><b> 單片機(jī)鍵盤掃描法<
65、/b></p><p> 掃描法是在判定有鍵按下后逐列果行(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),如果(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),這時0狀態(tài)的行、列交點(diǎn)的鍵就是所按下的鍵。</p><p> 掃描法的特點(diǎn)是逐行(或逐列)掃描查詢,這時相應(yīng)行(或列)應(yīng)有上拉電阻接高電平。行列式鍵盤掃描程序就是采用掃描法來確定哪個鍵按下的,圖1中行線上拉電阻接+5V,列線逐列掃描。</p>&
66、lt;p> ?、僦鹦校ɑ蛄校呙璨樵兎?。</p><p> 確定矩陣式鍵盤上哪個鍵被按下時運(yùn)用掃描法,又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,過程如下。</p><p> 判斷鍵盤中有無鍵按下,將全部行線Y0~Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電
67、平,則鍵盤中無鍵按下。</p><p> 判斷閉合鍵所在的位置,在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其他線為高電平,在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài),若某列為低,則該列線與置為低電平的行線交叉處的按鈕就是閉合的按鍵。</p><p><b> ?、诜崔D(zhuǎn)法。</b></
68、p><p> 掃描法要逐列(行)掃描查詢,當(dāng)按下的鍵在最后行(列),要經(jīng)過多次掃描才能獲得鍵值/鍵號。而反轉(zhuǎn)法只要經(jīng)過兩個步驟就可獲得鍵值。</p><p><b> 線反轉(zhuǎn)法原理 </b></p><p> 硬件采用中斷方式工作,用一個8位I/O口構(gòu)成4×4鍵盤。</p><p> 將D3~D0設(shè)為列輸入
69、線,D7~D4設(shè)為行輸出線,并使I/O輸出信號D7~D4為0000。若有鍵按下,與門的輸出端變?yōu)榈碗娖?,向CPU申請中斷,表示鍵盤中有鍵按下。與此同時,D3~D0的數(shù)據(jù)輸入到內(nèi)存中的某一單元中,其中0位對應(yīng)的是被按下鍵的列位置。</p><p> 將第一步中的傳送方向反轉(zhuǎn)過來,即將D7~D4設(shè)為輸入線,D3~D0設(shè)為輸出線。使I/O口輸出數(shù)據(jù)為N單元中的數(shù)(即D3~D0為按下鍵的列位置),然后讀入I/O口數(shù)據(jù),
70、并送入內(nèi)存N+1單元中存放,該數(shù)據(jù)的D7~D4位中0電平對應(yīng)的位是按下鍵的行位置。最后,將N單元中的D3~D0與N+1單元中的D7~D4拼接起來就是按下鍵的鍵值。</p><p> 單片機(jī)應(yīng)用系統(tǒng)中,任何I/O口或擴(kuò)展I/O口均可構(gòu)成行列式鍵盤。典型的鍵盤接口有通用I/O擴(kuò)展口、串行LO擴(kuò)展口和專用鍵盤芯片構(gòu)成的行列式鍵盤。由于帶有行列式鍵盤的應(yīng)用系統(tǒng)中通常都有顯示器,為節(jié)省I/O口線,往往把顯示器電路與行列式
71、鍵盤做在一個接口電路中。</p><p> 圖3-6 按鍵抖動信號波形</p><p> 3.4 LCD1602簡介</p><p> 3.4.1 LCD1602 引腳功能</p><p> LCD1602引腳如圖3-7所示:</p><p> 圖3-7 LCD1602管腳功能圖</p><
72、;p> 引腳的功能如表3-2所示:</p><p> 表3-2 LCD1602管腳功能表</p><p> 3.4.2 LCD1602顯示模塊指令集</p><p><b> ?。?)清屏</b></p><p> 功能:清DDROM值和 AC值。</p><p><b>
73、 (2)歸位</b></p><p> 功能:光標(biāo)復(fù)位,光標(biāo)返回到地址 00H。</p><p><b> ?。?)輸入方式設(shè)置</b></p><p> 功能:設(shè)置光標(biāo)、畫面移動方式。 </p><p> 其中:I/D=1:數(shù)據(jù)讀寫操作后,AC自加一; </p><p>
74、I/D=0:數(shù)據(jù)讀寫操作后,AC自減一; </p><p> S=1:數(shù)據(jù)讀寫操作,畫面平移; </p><p> S=0:數(shù)據(jù)讀寫操作,畫面不動。 </p><p><b> ?。?)顯示開關(guān)控制</b></p><p> 功能:設(shè)置顯示、光標(biāo)和閃爍開關(guān)。 </p><p> 其中:D表
75、示顯示開關(guān),D=1 為開,D=0 為關(guān); </p><p> C表示光標(biāo)開關(guān),C=1為開,C=0為關(guān); </p><p> B表示閃爍開關(guān),B=1為開,B=0為關(guān)。 </p><p> (5)光標(biāo)、畫面位移</p><p> 功能:光標(biāo)、畫面移動。 </p><p> 其中:S/C=1畫面移動一個字符位; &
76、lt;/p><p> S/C=0光標(biāo)移動一個字符位; </p><p> R/L=1:右移;R/L=0 左移。 </p><p><b> (6)功能設(shè)置</b></p><p> 功能:工作方式設(shè)置(初始化指令)。 </p><p> 其中:DL=1,8位數(shù)據(jù)接口;DL=0,4 位數(shù)據(jù)接口
77、; </p><p> N=1,兩行顯示;N=0,一行顯示;</p><p> F=1,5*10點(diǎn)陣顯示;F=0,5*7 點(diǎn)陣顯示。</p><p> ?。?)CGRAM地址設(shè)置</p><p> 功能:設(shè)置CGRAM地址,A5~A0=0~3FH。</p><p> ?。?)DDRAM地址設(shè)置</p>
78、<p> 功能:設(shè)置DDRAM地址。 </p><p> 其中: N=0,一行顯示A6~A0=0~4FH; N=1兩行顯示,首行A6~A0=0~2FH,</p><p> 次行 A6~A0=40~67H。 </p><p> ?。?)讀 BF及 AC值</p><p> 功能:讀忙 BF和地址計數(shù)器 AC的值。 <
79、/p><p> 其中:BF=1:忙,BF=0:準(zhǔn)備好。此時 AC 值意義為最近一次地址設(shè)置</p><p> ?。–GRAM或 DDRAM)定義。</p><p><b> ?。?0)寫數(shù)據(jù)</b></p><p> 功能:根據(jù)最近設(shè)置的地址性質(zhì),數(shù)據(jù)寫入CGRAM或 DDRAM中。</p><p&g
80、t;<b> ?。?1)讀數(shù)據(jù)</b></p><p> 功能:根據(jù)最近設(shè)置的地址性質(zhì),從 CGRAM或DDRAM數(shù)據(jù)讀出。</p><p><b> 系統(tǒng)電路圖 </b></p><p> 圖3-8 單片機(jī)系統(tǒng)連接液晶電路原理圖</p><p> 3.5單片機(jī)電路設(shè)計完整架構(gòu)</p&
81、gt;<p> 圖3-9 單片機(jī)最小型總原理圖</p><p> 圖3-10 單片機(jī)232串口下載電路原理圖</p><p> 圖3-11 8位共陽數(shù)碼管電路連接圖</p><p> 第4章 單片機(jī)的軟件設(shè)計</p><p> 4.1 LCD1602時鐘軟件設(shè)計</p><p> 4.1.1
82、DS1302介紹</p><p> DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小于31天時可以自動調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式
83、,提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。DS1302的外部引腳分配如圖4-1所示及內(nèi)部結(jié)構(gòu)如圖4-2所示。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄,因此廣泛應(yīng)用于測量系統(tǒng)中。</p><p> 時鐘芯片DS1302引腳排列,如圖所示。</p><p> 圖4-1 DS1302管腳示例</p><p&g
84、t; 圖4-2 DS1302內(nèi)部結(jié)構(gòu)</p><p><b> 各引腳的功能為:</b></p><p> Vcc1:主電源;Vcc2:備用電源。當(dāng)Vcc2>Vcc1+0.2V時,由Vcc2向DS1302供電,當(dāng)Vcc2<Vcc1時,由Vcc1向DS1302供電。</p><p> SCLK:串行時鐘,輸入,控制數(shù)據(jù)的輸入與
85、輸出;</p><p> I/O:三線接口時的雙向數(shù)據(jù)線;</p><p> CE:輸入信號,在讀、寫數(shù)據(jù)期間,必須為高。該引腳有兩個功能:第一,CE開始控制字訪問移位寄存器的控制邏輯;其次,CE提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒ā?lt;/p><p> DS1302有下列幾組寄存器:</p><p> 1、DS1302有關(guān)日歷、時間的
86、寄存器共有12個,其中有7個寄存器(讀時81h),存放的數(shù)據(jù)格式為BCD碼形式。如圖4-3所示</p><p><b> 圖4-3</b></p><p> 小時寄存器(85h、84h)的位7用定義DS1302時運(yùn)行于12小時模式還是24小時模式。當(dāng)為高時,選擇12小時模式。在12小時模式時,位5是,當(dāng)為1時,表示PM。在24小時模式時,位5是第二個10小時位。&
87、lt;/p><p> 秒寄存器(81j、80h)的位7定義為時鐘暫停標(biāo)志(CH)。當(dāng)該位置位1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位置位0時,時鐘開始運(yùn)行。</p><p> 控制寄存器(8Fh、8Eh)的位7是寫保護(hù)位(WP),其它7位均置為0。在任何的對時鐘和RAM的寫操作之前,WP位必須為0。當(dāng)WP位為1時,寫保護(hù)位防止對任一寄存器的寫操作。</p>&
88、lt;p><b> 2 讀寫時序說明</b></p><p> DS1302時SPI總線驅(qū)動方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。</p><p> 要想與DS1302通信,首先要先了解DS1302的控制字。DS1302看控制字,如圖4-4。</p><p><b> 圖4-4</b>
89、</p><p> 控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。 </p><p> 位6:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù); </p><p> 位5至位1(A4~A0):指示操作單元的地址; </p><p> 位0(最低有效位):如為0,表示要進(jìn)行寫操作,為1表示
90、進(jìn)行讀操作。</p><p> 控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。</p><p> 4.1.2 時鐘DS1302硬件連接</p><p> 圖4-
91、5 DS1302硬件連接圖</p><p> 4.2 LCD1602時鐘軟件程序(部分)</p><p> #include <AT89x51.h></p><p> #include <string.h></p><p> #include < intrins.h ></p><
92、;p> #define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ;</p><p> #define LCM_RW P2_6 //定義引腳</p><p> #define LCM_RS P2_5</p><p> #define LCM_E P2_7</p><p&g
93、t; #define LCM_Data P0</p><p> #define Busy 0x80 //用于檢測LCM狀態(tài)字中的Busy標(biāo)識</p><p> #define uchar unsigned char</p><p> sbit T_CLK=P1^0;</p><p> sbit T_IO =P1^1
94、;</p><p> sbit T_RST=P1^2;</p><p> sbit ACC0=ACC^0;</p><p> sbit ACC7=ACC^7;</p><p> sbit LED=P1^4; //背光燈輸出 (因本實驗板無此功能 所以此項功能用P1.4LED燈作為指示)</p><p>
95、 sbit system=P3^2; //模式 對應(yīng)實驗板K1按鍵</p><p> sbit TimerUp=P3^3; //時間減 對應(yīng)實驗板K2按鍵</p><p> sbit TimerDown=P3^4; //時間加 對應(yīng)實驗板K3按鍵</p><p> sbit BEEP=P3^6; //蜂鳴器</p>&
96、lt;p> void Set(uchar,uchar); //根據(jù)選擇調(diào)整相應(yīng)項目</p><p> void RTInputByte(uchar); //輸入 1Byte */</p><p> uchar RTOutputByte(void); //輸出 1Byte */</p><p> void W1302(
97、uchar, uchar); //向DS1302寫入一個字節(jié)</p><p> uchar R1302(uchar); //從DS1302讀出一個字節(jié)</p><p> void Set1302(uchar * ); //設(shè)置時間 </p><p> void KeySound(); //按鍵音</p>
98、;<p> void ClockSound(); //鬧鈴蜂鳴聲</p><p> uchar id,msec,model,LedTime,d;</p><p> bit a,b; //閃爍標(biāo)志位 </p><p> uchar inittime[7]=
99、{0x50,0x59,0x23,0x24,0x07,0x05,0x09};//初始化后設(shè)置為:11年6月7日星期2 08點(diǎn)00分00秒</p><p> void Out_LCM(void); //顯示屏幕</p><p> void model0(void); //顯示輸出</p><p> void model1(void);</p&
100、gt;<p> void model2(void);</p><p> void model3(void);</p><p> void model4(void);</p><p> void model5(void);</p><p> void model6(void); </p><
101、p> void id_case1_key();//項目調(diào)整</p><p> void Modset(); //模式鍵處理</p><p> void WriteDataLCM(uchar WDLCM);</p><p> void WriteCommandLCM(uchar WCLCM,BuysC);</p>
102、<p> uchar ReadStatusLCM(void);</p><p> void LCMInit(void);</p><p> void OutputInformation(uchar X, uchar Y, uchar DData);</p><p> void DisplayListChar(uchar X, uchar Y
103、, uchar code *DData);</p><p> void Delay5Ms(void);</p><p> void Delay400Ms(void);</p><p> void systemsetup(void); //進(jìn)入系統(tǒng)設(shè)置</p><p> uchar code sys
104、temp[]={"System.setup"}; //字符串輸出(系統(tǒng)設(shè)定)</p><p> uchar code TIMER[]={"Time"}; //字符串輸出(時間)</p><p> uchar code DATE[]={"Date"}; //字符串輸出(日期)<
105、;/p><p> uchar code alarmclock[]={"Clock"}; //字符串輸出(鬧鈴)</p><p> uchar code lamp[]={"Lamp"}; //字符串輸出(背光燈)</p><p> uchar code reset[]={"Reset"
106、}; //字符串輸出(時間歸零)</p><p> uchar code exit[]={"Exit"}; //字符串輸出(退出)</p><p> uchar code set[]={"Set"};//字符串輸出(設(shè)置)</p><p> uchar code sec[]={&
107、quot;sec"}; //字符串輸出(秒)</p><p> uchar code ClockSet[]={"ClockSet"};//字符串輸出(鬧鈴設(shè)置)</p><p> uchar code ClockOn[]={"ON"}; //字符串輸出(ON)</p><p&
108、gt; uchar code ClockOff[]={"OFF"}; //字符串輸出(OFF)</p><p> void timesetup(void); //時間設(shè)置</p><p> void datesetup(void); //日期設(shè)置</p><p
109、> void alarmclockset(void); //鬧鈴設(shè)置</p><p> void lampsetup(void); //背光燈設(shè)置</p><p> void timereset(void); //時間清零</p><p> 第5章
110、 調(diào)試與功能說明</p><p> 單片機(jī)應(yīng)用系統(tǒng)的調(diào)試包括硬件和軟件兩部分,但是他們并不能完全分開。一般的方法是排除明顯的硬件故障,再進(jìn)行綜合調(diào)試,排除可能的軟/硬件故障。</p><p><b> 5.1 硬件調(diào)試</b></p><p> 拿到電路板后,首先要檢查加工質(zhì)量,并確保沒有任何方面的錯誤,如短路和斷路,尤其要避免電源短路;
111、元器件在安裝前要逐一檢查,用萬用表測其數(shù)值,看是否與所用相同;完成焊接后,應(yīng)先空載上電(芯片座上不插芯片),并檢查各引腳的電位是否正確。若一切正常,方可在斷電的情況下將芯片插入,再次檢查各引腳的電位及其邏輯關(guān)系。將萬用表的探針放到單片機(jī)接電源的引腳上檢測一下,看是否符合要求。</p><p> 5.2 系統(tǒng)性能測試與功能說明</p><p> 走時:默認(rèn)為走時狀態(tài),按24小時制分別顯示
112、“時時-分分-秒秒”,有2個“-”動態(tài)顯示,時間會按實際時間以秒為最少單位變化。</p><p> 走時調(diào)整:按ksec對秒進(jìn)行調(diào)整,按一下加一秒;按kmin對分進(jìn)行調(diào)整,按一下加一分;按khour對時進(jìn)行調(diào)整,按一下加一小時,從而達(dá)到快速設(shè)定時間的目的。</p><p> 5.3 系統(tǒng)時鐘誤差分析</p><p> 時間是一個基本物理量,具有連續(xù)、自動流逝、
113、不重復(fù)等特性。我國時間基準(zhǔn)來自國家授時中心,人們?nèi)粘J褂玫臅r鐘就是以一定的精度與該基準(zhǔn)保持同步的。結(jié)合時間概念和誤差理論,可以定義電子鐘的走時誤差S=S1-S2,S1表示程序?qū)嶋H運(yùn)行計算所得的秒;S2表示客觀時間的標(biāo)準(zhǔn)秒。S>0時表示電子鐘秒單元數(shù)值刷新滯后,即走時誤差為“慢”;反之,S<0表示秒單元數(shù)值的刷新超前,即走時誤差為“快”。</p><p> 本次設(shè)計的單片機(jī)電子鐘系統(tǒng)中,其誤差主要來源
114、包括晶體頻率誤差,定時器溢出誤差,延遲誤差。晶體頻率產(chǎn)生震蕩,容易產(chǎn)生走時誤差;定時器溢出的時間誤差,本應(yīng)這一秒溢出,但卻在下一秒溢出,造成走時誤差;延遲時間過長或過短,都會造成與基準(zhǔn)時間產(chǎn)生偏差,造成走時誤差。</p><p> 5.4 軟件調(diào)試問題及解決</p><p> 軟件程序的調(diào)試一般可以將重點(diǎn)放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。前者
115、不需要硬件仿真器,可借助于軟件仿真器即可;后者一般需要仿真系統(tǒng)的支持。本次課題,Keil軟件來調(diào)試程序,通過各個模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。</p><p> 仿真部分采用protus 6 professional軟件,此軟件功能強(qiáng)大且操作較為簡單,可以很容易的實現(xiàn)各種系統(tǒng)的仿真。</p><p> 首先打開protus 6 professional軟件
116、,在元件庫中找到要選用的所有元件,然后進(jìn)行原理圖的繪制;繪制好后再選擇wave6000已經(jīng)編譯好的*.hex文件,選擇運(yùn)行,觀察顯示結(jié)果,根據(jù)顯示的結(jié)果和課題的要求再修改程序,再運(yùn)行查,直到滿足要求。</p><p><b> 結(jié)束語</b></p><p> 我在這一次單片機(jī)最小系統(tǒng)的設(shè)計過程中,很是受益匪淺。通過對自己在大學(xué)四年時間里所學(xué)的知識的回顧,并充分發(fā)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)最小系統(tǒng)
- 51單片機(jī)畢業(yè)設(shè)計--基于mc51單片機(jī)的最小系統(tǒng)設(shè)計與研究
- 單片機(jī)最小系統(tǒng)課程設(shè)計
- 單片機(jī)最小系統(tǒng)仿真
- 單片機(jī)最小系統(tǒng).dwg
- 51單片機(jī)最小系統(tǒng)
- 單片機(jī)最小系統(tǒng).dwg
- mcs51單片機(jī)最小系統(tǒng)設(shè)計
- 單片機(jī)最小系統(tǒng)課程設(shè)計論文
- 本科課程設(shè)計(單片機(jī)最小系統(tǒng))
- 單片機(jī)最小系統(tǒng)實驗總結(jié)
- 單片機(jī)最小系統(tǒng)確定sch
- protel之單片機(jī)最小系統(tǒng)pcb課程設(shè)計
- 交通燈課程設(shè)計---單片機(jī)最小系統(tǒng)設(shè)計
- 交通燈課程設(shè)計---單片機(jī)最小系統(tǒng)設(shè)計
- 51單片機(jī)最小系統(tǒng)的設(shè)計與制作初學(xué)者
- 畢業(yè)論文基于單片機(jī)設(shè)計的最小系統(tǒng)
- 基于51單片機(jī)的最小系統(tǒng)畢業(yè)論文
- 51單片機(jī)最小系統(tǒng)制作畢業(yè)論文
- 基于at89c51單片機(jī)的最小系統(tǒng)設(shè)計
評論
0/150
提交評論