版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、鄭重申明本人呈交的畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì)),是在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行實(shí)習(xí)和研究工作所取得的成果,所有數(shù)據(jù)、圖片資料真實(shí)可靠。盡我所知,除文中已經(jīng)注明引用的內(nèi)容外,本畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì))的成果不包含他人享有著作權(quán)的內(nèi)容。對(duì)本畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì))所涉及的實(shí)習(xí)和研究工作做出貢獻(xiàn)的其他個(gè)人和集體,均已在文中以明確的方式標(biāo)明。本畢業(yè)實(shí)習(xí)報(bào)告(設(shè)計(jì))的知識(shí)產(chǎn)權(quán)歸屬于作者與培養(yǎng)單位。學(xué)生簽名簽字蓋章日期0000.00摘要本文介紹了基于AT89C51單片機(jī)的多功能電子萬年歷的硬件結(jié)構(gòu)和軟硬件設(shè)計(jì)方法。系統(tǒng)以AT89C51單片機(jī)為控制器,以串行時(shí)鐘日歷芯片DS1302記錄日歷和時(shí)間,它可以對(duì)年、月、日、時(shí)、分、秒
2、進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能。萬年歷采用直觀的數(shù)字顯示,可以在LED上同時(shí)顯示年、月、日、周日、時(shí)、分、秒,還具有時(shí)間校準(zhǔn)等功能。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),具有廣闊的市場(chǎng)前景。關(guān)鍵字:AT89C51;電子萬年歷;DS1302目 錄1 緒論41.1課題研究的背景41.2課題的研究目的與意義41.3課題解決的主要內(nèi)容42 系統(tǒng)的總體設(shè)計(jì)62.1系統(tǒng)方案的構(gòu)想與確定62.2 器件的選用62.2.1單片機(jī)的選擇63 系統(tǒng)硬件的設(shè)計(jì)83.1系統(tǒng)硬件電路設(shè)計(jì)83.1.1系統(tǒng)硬件框圖83.1.2 AT89C51單片機(jī)83.1.3 8位移位寄存器74LS16
3、4(串行輸入,并行輸出)123.1.4 ds1302134 系統(tǒng)的軟件設(shè)計(jì)204.1 主程序204.2 從1302讀取日期和時(shí)間程序215 PROTEUS使用225.1編程環(huán)境PROTEUS225.2用PROTEUS ISIS對(duì)電子萬年歷的硬件電路設(shè)計(jì)225.3用PROTEUS ISIS進(jìn)行電子萬年歷的仿真測(cè)試26結(jié)論29致謝30參考文獻(xiàn)30附錄31附錄131第一章 緒論1.1 課題研究的背景隨著科技的快速發(fā)展,時(shí)間的流逝,從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀(jì)錄。它可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子
4、萬年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、時(shí)、分、秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。該電路采用AT89C51單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。1.2課題的研究目的與意義二十一世紀(jì)是數(shù)字化技術(shù)高速發(fā)展的時(shí)代,而單片機(jī)在數(shù)字化高速發(fā)展的時(shí)代扮演著極為重要的角色。電子萬年歷的開發(fā)與研究在信息化時(shí)代的今天亦是當(dāng)務(wù)之急,因?yàn)樗鼞?yīng)用在學(xué)校、機(jī)關(guān)、企業(yè)、部隊(duì)等單位禮堂、訓(xùn)練場(chǎng)地、教學(xué)室、公共場(chǎng)地等場(chǎng)合,可以說遍及人們生活的每一個(gè)角落。所以說電
5、子萬年歷的開發(fā)是國(guó)家之所需,社會(huì)之所需,人民之所需。由于社會(huì)對(duì)信息交換不斷提高的要求及高新技術(shù)的逐步發(fā)展,促使電子萬年歷發(fā)展并且投入市場(chǎng)得到廣泛應(yīng)用。1.3課題解決的主要內(nèi)容本課題所研究的電子萬年歷是單片機(jī)控制技術(shù)的一個(gè)具體應(yīng)用,主要研究?jī)?nèi)容包括以下幾個(gè)方面:(1)選用電子萬年歷芯片時(shí),應(yīng)重點(diǎn)考慮功能實(shí)在、使用方便、單片存儲(chǔ)、低功耗、抗斷電的器件。(2)根據(jù)選用的電子萬年歷芯片設(shè)計(jì)外圍電路和單片機(jī)的接口電路。(3)在硬件設(shè)計(jì)時(shí),結(jié)構(gòu)要盡量簡(jiǎn)單實(shí)用、易于實(shí)現(xiàn),使系統(tǒng)電路盡量簡(jiǎn)單。(4)根據(jù)硬件電路圖,在開發(fā)板上完成器件的焊接。(5)根據(jù)設(shè)計(jì)的硬件電路,編寫控制AT89C51芯片的單片機(jī)程序。(6
6、)通過編程、編譯、調(diào)試,把程序下載到單片機(jī)上運(yùn)行,并實(shí)現(xiàn)本設(shè)計(jì)的功能。(7)在硬件電路和軟件程序設(shè)計(jì)時(shí),主要考慮提高人機(jī)界面的友好性,方便用戶操作等因素。(8)軟件設(shè)計(jì)時(shí)必須要有完善的思路,要做到程序簡(jiǎn)單,調(diào)試方便。第二章 系統(tǒng)的總體設(shè)計(jì)單片機(jī)電子萬年歷的制作有多種方法,可供選擇的器件和運(yùn)用的技術(shù)也有很多種。所以,系統(tǒng)的總體設(shè)計(jì)方案應(yīng)在滿足系統(tǒng)功能的前提下,充分考慮系統(tǒng)使用的環(huán)境,所選的結(jié)構(gòu)要簡(jiǎn)單使用、易于實(shí)現(xiàn),器件的選用著眼于合適的參數(shù)、穩(wěn)定的性能、較低的功耗以及低廉的成本。2.1系統(tǒng)方案的構(gòu)想與確定系統(tǒng)的功能往往決定了系統(tǒng)采用的結(jié)構(gòu),經(jīng)過成本,性能,功耗等多方面的考慮決定用三個(gè)8位74LS
7、164串行接口外接LED顯示器,RESPACK-8對(duì)單片機(jī)AT89C51進(jìn)行供電,時(shí)間芯片DS1302連接單片機(jī)AT89C51。從而實(shí)現(xiàn)電子萬年歷的功能。2.2 器件的選用單片機(jī)AT89C51電容RESPACK-8三個(gè)74LS164串行接口傳感器DS13022.2.1單片機(jī)的選擇單片機(jī)自70年代問世以來以微處理器(MPU)技術(shù)及超大規(guī)模集成電路技術(shù)的發(fā)展為先導(dǎo),用廣泛的應(yīng)用領(lǐng)域拉動(dòng)得到蓬勃發(fā)展,單片機(jī)功能正日漸完善。單片機(jī)的應(yīng)用,使許多領(lǐng)域的技術(shù)水平和自動(dòng)化程度大大提高,可以說當(dāng)今世界正在經(jīng)受一場(chǎng)以單片機(jī)技術(shù)為標(biāo)志的新技術(shù)革命浪潮的沖擊。主要單片機(jī)類型如下:(1)MCS-51系列單片機(jī)MCS-
8、51系列單片機(jī)主要是指Intel公司生產(chǎn)的以51位內(nèi)核的單片機(jī)芯片,具有8位CPU、4K字節(jié)ROM、128字節(jié)RAM、可擴(kuò)展外部64K字節(jié)RAM和ROM、2個(gè)16位的定時(shí)器/計(jì)數(shù)器、4個(gè)8位并行I/O口、1個(gè)全雙工串行I/O口、21字節(jié)的專用寄存器、5個(gè)中斷源、片內(nèi)自帶振蕩器、片內(nèi)單總線等功能部件。(2)AT89C51單片機(jī)AT89C51單片機(jī)的主要特性如下:l 與MCS-51產(chǎn)品指令系統(tǒng)完全兼容l 4K字節(jié)的在線編程Flash存儲(chǔ)器,1000次擦寫周期l 4.05.5V的工作電壓范圍l 全靜態(tài)工作模式:033MHzl 三級(jí)程序存儲(chǔ)器鎖l 128×8字節(jié)內(nèi)部RAM l 32個(gè)可編程I
9、/O口線l 2個(gè)16位定時(shí)/計(jì)數(shù)器l 6個(gè)中斷源l 全雙工串行UART通道l 低功耗空閑和掉電模式l 中斷可從空閑模式喚醒系統(tǒng)l 看門狗(WDT)及雙數(shù)據(jù)指針l 掉電標(biāo)識(shí)和快速編程特性l 具有掉電狀態(tài)下的中斷恢復(fù)功能l 靈活的在系統(tǒng)編程(ISP字節(jié)或頁寫模式)由于AT89C51單片機(jī)片內(nèi)有4K字節(jié)的在線編程Flash存儲(chǔ)器,可以擦寫1000次,具有掉電模式,而且具有掉電狀態(tài)下的中斷恢復(fù)功能,對(duì)設(shè)計(jì)開發(fā)非常實(shí)用。所以選用AT89C51單片機(jī)作為電子萬年歷芯片的控制單片機(jī)。第三章 系統(tǒng)硬件的設(shè)計(jì)根據(jù)上述所確定的系統(tǒng)方案構(gòu)想,下面進(jìn)行系統(tǒng)硬件電路的具體設(shè)計(jì),系統(tǒng)的總體結(jié)構(gòu)框圖如圖所示。3.1系統(tǒng)硬件
10、電路設(shè)計(jì)3.1.1系統(tǒng)硬件框圖系統(tǒng)硬件框圖如圖3-1時(shí)鐘芯片DS1302串口AT89C51P2口LED顯示器驅(qū)動(dòng)電路圖3-1 系統(tǒng)硬件框圖3.1.2 AT89S51單片機(jī)本系統(tǒng)采用的是美國(guó)ATMEL公司生產(chǎn)的AT89C51單片機(jī),首先我們來熟悉一下AT89C51單片機(jī)的外部引腳和內(nèi)部結(jié)構(gòu)。1.單片機(jī)的引腳功能AT89C51單片機(jī)有40個(gè)引腳。l Vcc:電源電壓+5Vl GND:接地l P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換
11、地址(低8位)和數(shù)據(jù)總線服用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí)要求外接上拉電阻。l P1口:P1口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。 Flash 編程和程序校驗(yàn)期間,P1接收低8位地址。l P2口:P2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1
12、”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVXDPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器(MOVX Ri指令)時(shí),P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個(gè)訪問期間不改變。Flash 編程和程序校驗(yàn)期間,P2亦接收低高位地址和其他控制信號(hào)。l P3口:P3口是一組帶內(nèi)部上拉電阻的8位雙向I/O,P3的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),
13、它們被內(nèi)部的上拉電阻拉高并可作為輸入端口。作輸入端時(shí),被外部拉低的P3口將用上拉電阻輸出電流。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,見表3-1所示:P3口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。表3-1 P3口的第二功能圖端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時(shí)/計(jì)時(shí)器0外部輸入)P3.5T1(定時(shí)/計(jì)時(shí)器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)l RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)
14、器周期以上高電平將使單片機(jī)復(fù)位。WDT溢出將使引腳輸出高電平,設(shè)置SFR AUXR的DISRT0(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。l ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存器允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過多特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置,
15、可禁止ALE操作。該位置后,只有一條MOVX和MOVC指令A(yù)LE才會(huì)被激活。另外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無效。l PSEN:程序存儲(chǔ)允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的PSEN信號(hào)。l EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部
16、程序存儲(chǔ)器中的指令。Flash存儲(chǔ)器編程時(shí),該引腳加上+12V的變成電壓Vpp.l XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。l XTAL2:振蕩器反相放大器的輸出端。AT89C51單片機(jī)內(nèi)部結(jié)構(gòu)2.AT89C51單片機(jī)與MCS-51完全兼容 l 看門狗(WDT):WDT是一種需要軟件控制的復(fù)位方式。WDT 由13位計(jì)數(shù)器和特殊功能寄存器中的看門狗定時(shí)器復(fù)位存儲(chǔ)器(WDTRST)構(gòu)成。WDT 在默認(rèn)情況下無法工作;為了激活WDT,用戶必須往WDTRST 寄存器(地址:0A6H)中依次寫入01EH 和0E1H。當(dāng)WDT激活后,晶振工作,WDT在每個(gè)機(jī)器周期都會(huì)增加。WDT計(jì)時(shí)周期依賴
17、于外部時(shí)鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒有辦法停止WDT工作。當(dāng)WDT溢出,它將驅(qū)動(dòng)RSR引腳輸出一個(gè)高電平。l 可編程串口(UART)在AT89C51中,UART 的操作與AT89C51 和AT89C52 一樣。AT89C51系列單片機(jī)的串行通信口可以工作于同步和異步通信方式。當(dāng)工作于異步方式時(shí),它具有全雙工的操作功能,也就是說,它可以同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收。串行口內(nèi)的接收器采用的是雙緩沖結(jié)構(gòu),能夠在接收到的第一個(gè)字節(jié)從接收寄存器讀走之前就開始接收第二個(gè)字節(jié)(當(dāng)然,如果第二個(gè)字節(jié)接收完畢,而第一個(gè)字節(jié)仍然沒有被讀走,那將會(huì)丟掉一個(gè)字節(jié))。串行口的發(fā)送和接收操作都是通過特殊功
18、能寄存器中的數(shù)據(jù)緩沖寄存器SBUF進(jìn)行的,但在SBUF的內(nèi)部,接收寄存器和發(fā)送寄存器在物理結(jié)構(gòu)上是完全獨(dú)立的。如果將數(shù)據(jù)寫入SBUF,數(shù)據(jù)會(huì)被送入發(fā)送寄存器準(zhǔn)備發(fā)送。如果執(zhí)行SBUF指令,則讀出的數(shù)據(jù)一定來自接收緩存器。因此,CPU對(duì)SBUF的讀寫,實(shí)際上是分別訪問2個(gè)不同的寄存器。這2個(gè)寄存器的功能決不能混淆。l 振蕩電路:AT89C51系列單片機(jī)的內(nèi)部振蕩器,由一個(gè)單極反相器組成。XTAL1反相器的輸入,XTAL2為反相器的輸出??梢岳盟鼉?nèi)部的振蕩器產(chǎn)生時(shí)鐘,只要XTAL1和XTAL2引腳上一個(gè)晶體及電容組成的并聯(lián)諧振電路,便構(gòu)成一個(gè)完整的振蕩信號(hào)發(fā)生器,此方式稱為內(nèi)部方式。另一種方式由
19、外部時(shí)鐘源提供一個(gè)時(shí)鐘信號(hào)到XTAL1端輸入,而XTAL2端浮空。在組成一個(gè)單片機(jī)應(yīng)用系統(tǒng)時(shí),多數(shù)采用這種方式,這種方式結(jié)構(gòu)緊湊,成本低廉,可靠性高。在電路中,對(duì)電容C1和C2的值要求不是很嚴(yán)格,如果使用高質(zhì)的晶振,則不管頻率為多少,C1、C2通常都選擇30pF。l 定時(shí)/計(jì)數(shù)器:AT89C51單片機(jī)內(nèi)含有2個(gè)16位的定時(shí)器/計(jì)數(shù)器。當(dāng)用于定時(shí)器方式時(shí),定時(shí)器的輸入來自內(nèi)部時(shí)鐘發(fā)生電路,每過一個(gè)機(jī)器周期,定時(shí)器加1,而一個(gè)機(jī)器周期包含有12個(gè)振蕩周期,所以,定時(shí)器的技術(shù)頻率為晶振頻率的1/12,而計(jì)數(shù)頻率最高為晶振頻率的1/24。為了實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能,定時(shí)器中含有3種基本的寄存器:控制寄存器
20、、方式寄存器和定時(shí)器/計(jì)數(shù)器??刂萍拇嫫魇且粋€(gè)8位的寄存器,用于控制定時(shí)器的工作狀態(tài),方式寄存器是一個(gè)8位的寄存器,用于確定定時(shí)器的工作方式,定時(shí)器/計(jì)數(shù)器是16位的計(jì)數(shù)器,分為高字節(jié)和低字節(jié)兩部分。l RAM:高于7FH內(nèi)部數(shù)據(jù)存儲(chǔ)器的地址是8位的,也就是說其地址空間只有256字節(jié),但內(nèi)部RAM的尋址方式實(shí)際上可提供384字節(jié)。的直接地址訪問同一個(gè)存儲(chǔ)空間,高于7FH的間接地址訪問另一個(gè)存儲(chǔ)空間。這樣,雖然高128字節(jié)區(qū)分與專用寄器 ,即特殊功能寄存器區(qū)的地址是重合的,但實(shí)際上它們是分開的。究竟訪問哪一區(qū),存是通過不同的尋址方式加以區(qū)分的。l SFR:SFR是具有特殊功能的所有寄存器的集合,
21、共含有22個(gè)不同寄存器,它們的地址分配在80HFFH中。雖然如此,不是所有的單元都被特殊功能寄存器占用,未被占用的單元,其內(nèi)容是不確定的。如對(duì)這些單元進(jìn)行讀操作,得到的是一些隨機(jī)數(shù),而寫入則無效,所以在編程時(shí)不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序狀態(tài)字寄存器PSW、堆棧指針SP、數(shù)據(jù)指針DPTR、I/O端口、串行口數(shù)據(jù)緩沖器SBUF、定時(shí)器寄存器、捕捉寄存器、控制寄存器。l 中斷系統(tǒng):AT89C51單片機(jī)有6個(gè)中斷源,中斷系統(tǒng)主要由中斷允許寄存器IE、中斷優(yōu)先級(jí)寄存器IP、優(yōu)先級(jí)結(jié)構(gòu)和一些邏輯門組成。IE寄存器用于允許或禁止中斷;IP寄存器用于
22、確定中斷源的優(yōu)先級(jí)別;優(yōu)先級(jí)結(jié)構(gòu)用于執(zhí)行中斷源的優(yōu)先排序;有關(guān)邏輯門用于輸入中斷請(qǐng)求信號(hào)。在整個(gè)中斷響應(yīng)過程中CPU所執(zhí)行的操作步驟如下:(1)完成當(dāng)前指令的操作(2)將PC內(nèi)容壓入堆棧(3)保存當(dāng)前的中斷狀態(tài)(4)阻止同級(jí)的中斷請(qǐng)求(5)將中斷程序入口地址送PC寄存器(6)執(zhí)行中斷服務(wù)程序(7)返回3.1.3 8位移位寄存器74LS164(串行輸入,并行輸出)74LS164為8位移位寄存器,其主要電特性的典型值如表3-2:表3-2 74LS164主要電特性典型值型號(hào)fmPn54/7416436MHz185mW54/74LS16436 MHz80mW當(dāng)清除端(CLEAR)為低電平時(shí),輸出端(Q
23、AQH)均為低電平。串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng)A、B任意一個(gè)為低電平時(shí)停止新數(shù)據(jù)輸入,在時(shí)鐘端(CLOCK)脈沖上升沿作用下Q0為低電平。當(dāng)有一個(gè)為高電平,則另一個(gè)就允許輸入數(shù)據(jù),并在CLOCK上升沿作用Q0的狀態(tài)。引出端符號(hào)CLOCK 時(shí)鐘輸入端CLEAR 同步清除輸入端(低電平有效)A,B 串行數(shù)據(jù)輸入端QAQH 輸出端邏輯及封裝圖,如3-2,3-3 圖3-2 邏輯圖 圖3-3 封裝圖極限值電源電壓7V輸入電壓5.5V工作環(huán)境溫度54164-5512574164-070儲(chǔ)存溫度-65150表3-3真值表 H高電平L低電平X任意電平低到高電平跳變QA0,QB0,QH0規(guī)定的穩(wěn)態(tài)條
24、件建立前的電平QAn,QGn時(shí)鐘最近的前的電平時(shí)序圖如下3-4 圖3-4 時(shí)序圖推薦工作條件如表3-4:表3-4推薦工作條件 靜態(tài)特性(TA為工作環(huán)境溫度范圍)如表3-5表3-5工作環(huán)境溫度范圍 1:測(cè)試條件中的“最小”和“最大” 用推薦工作條件中的相應(yīng)值。動(dòng)態(tài)特性(TA=25)如表3-6表3-6動(dòng)態(tài)特性 2:fmax最大時(shí)鐘頻率。tPLH輸出由低電平到高電平傳輸延遲時(shí)間tPHL輸出由高電平到低電平傳輸延遲時(shí)間3.1.4 ds1302 現(xiàn)在流行的串行時(shí)鐘電路很多,如DS1302、 DS1307、PCF8485等。這些電路的接口簡(jiǎn)單、價(jià)格低廉、使用方便,被廣泛地采用。本文介紹的實(shí)時(shí)時(shí)鐘電路DS1
25、302是DALLAS公司的一種具有涓細(xì)電流充電能力的電路,主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。 DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后
26、背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。 DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)R
27、ST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK始終是輸入端。 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é)總是從最
28、低位開始輸出。 在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1902,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。 DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表1。 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)
29、單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。 DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。DS1902與89C2051的連接圖,其中,時(shí)鐘的顯示用LED。 DS1302與CPU的連接,實(shí)際上,在調(diào)試程序時(shí)可以不加電容器,只加一個(gè)32.768kHz 的晶振即可。只是選擇晶振時(shí),不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時(shí)顯示實(shí)時(shí)溫度。只要占用CPU一個(gè)口線即可。 LE
30、D還可以換成LCD,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產(chǎn)的10位多功能8段液晶顯示模塊LCM101,內(nèi)含看門狗(WDT)/時(shí)鐘發(fā)生器及兩種頻率的蜂鳴器驅(qū)動(dòng)電路,并有內(nèi)置顯示RAM,可顯示任意字段筆劃,具有34線串行接口,可與任何單片機(jī)、IC接口。功耗低,顯示狀態(tài)時(shí)電流為2A (典型值),省電模式時(shí)小于1A,工作電壓為2.4V3.3V,顯示清晰。DS1302的實(shí)時(shí)時(shí)間流程。根據(jù)流程框圖,不難采集實(shí)時(shí)時(shí)間。下面對(duì)DS1302的基本操作進(jìn)行編程: 根據(jù)本人在調(diào)試中遇到的問題,特作如下說明DS1302 與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏
31、輯1,如果D7=0,則禁止寫DS1302,即寫保護(hù);D6=0,指定時(shí)鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 在DS1302的時(shí)鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時(shí),DS1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;
32、再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個(gè)字節(jié)。 要特別說明的是備用電源B1,可以用電池或者超級(jí)電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電池。可以用老式電腦主板上的3.6V充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解電容器代替。100 F就可以保證1小時(shí)的正常走時(shí)。DS1302在第一次加電后,必須進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。 DS1302 存在時(shí)鐘精度不高,易受環(huán)境影響,出現(xiàn)時(shí)鐘混亂等缺點(diǎn)。DS1302可以用于數(shù)據(jù)記錄,特別是對(duì)某些具有
33、特殊意義的數(shù)據(jù)點(diǎn)的記錄,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄。這種記錄對(duì)長(zhǎng)時(shí)間的連續(xù)測(cè)控系統(tǒng)結(jié)果的分析及對(duì)異常數(shù)據(jù)出現(xiàn)的原因的查找具有重要意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時(shí)采樣或定時(shí)采樣,沒有具體的時(shí)間記錄,因此,只能記錄數(shù)據(jù)而無法準(zhǔn)確記錄其出現(xiàn)的時(shí)間;若采用單片機(jī)計(jì)時(shí),一方面需要采用計(jì)數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費(fèi)單片機(jī)的資源,而且,某些測(cè)控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時(shí)鐘芯片DS1302,則能很好地解決這個(gè)問題。電子萬年歷的功能是在程序控制下實(shí)現(xiàn)的。該系統(tǒng)的軟件設(shè)計(jì)方法與硬件設(shè)計(jì)相對(duì)應(yīng),按整體功能分成多個(gè)不同的程序模塊,分別進(jìn)行設(shè)計(jì)、編程和調(diào)試,最后通過主
34、程序?qū)⒏鞒绦蚰K連接起來。這樣有利于程序修改和調(diào)試,增強(qiáng)了程序的可移植性。第四章 單片機(jī)的主程序4.1 主程序開始讀年、月、日送第一塊LED顯示讀星期、閏、年、日送第二塊LED顯示讀時(shí)、分、秒送第三塊LED顯示返回主程序如圖4-1所示:4.2 從1302讀取日期和時(shí)間程序系統(tǒng)初始化開 始需要調(diào)整時(shí)間嗎?讀1302日期和時(shí)間調(diào)整時(shí)間和日期YN圖4-2 從1302讀取程序第五章 PROTEUS使用5.1編程環(huán)境PROTEUSPROTEUS軟件是由英國(guó)LabCenter Electronics 公司開發(fā)的EDA工具軟件,由ISIS和ARES兩個(gè)軟件構(gòu)成,其中ISIS是一款便捷的電子系統(tǒng)仿真平臺(tái)軟件,
35、ARES是一款高級(jí)的布線編輯軟件,它集成了高級(jí)原理布線圖、混合模式SPICE電路仿真、PCB設(shè)計(jì)以及自動(dòng)布線來實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)。5.2用PROTEUS ISIS對(duì)電子萬年歷的硬件電路設(shè)計(jì)通過PROTEUS ISIS軟件的VSM(虛擬仿真技術(shù)),用戶可以對(duì)模擬電路、數(shù)字電路、模數(shù)混合電路,以及基于微控制器的系統(tǒng)連同所有外圍接口電子元器件一起仿真。用PROTEUS ISIS設(shè)計(jì)硬件電路的過程 選擇設(shè)計(jì)圖紙的到小根據(jù)設(shè)計(jì)所使用到元器件的多少,選擇合適大小的設(shè)計(jì)圖紙,操作是單擊菜單欄上的SystemSet Sheet Size ,然后彈出如圖5-1所示的對(duì)話框,從中選擇合適大小的圖紙,也可以選擇
36、User進(jìn)行圖紙的自定義設(shè)置。在設(shè)計(jì)過程中也可以通過此方法調(diào)整圖紙的大小。圖 5-1 選取仿真所需的元器件 選取元器件的方式是,單擊如圖5-2所示的按鈕“P”。會(huì)彈出如圖5-3所示的窗口。圖 5-2圖 5-3從此窗口的左上角的“Keywords”中輸入電子萬年歷設(shè)計(jì)用到的器件,如輸入“AT89C51”,在中間會(huì)列出帶有輸入關(guān)鍵字的元器件,選擇合適的元器件并雙擊它,則已經(jīng)選擇好了該元器件。然后再在“Keywords”中輸入其他所需的元器件,用同樣的方法進(jìn)行操作。最后選擇好所有的元器件如圖5-4所示。圖 5-4 所用器件其中74LS174表示三個(gè)串行接口,AT89C51代表單片機(jī)會(huì),DS1302代
37、表時(shí)鐘芯片,RESPACK-8代表八排電阻。 把元器件放到圖紙的合適位置,進(jìn)行布線單擊如圖5-4所示的元器件AT89C51,再在右邊圖紙上單擊,就把元器件放入到了圖紙上。再用同樣的方法把ds1302放入到圖紙的合適位置。如果元器件放置錯(cuò)誤,這可通過兩次右擊刪除所放置的元器件,如果位置放得不理想,可以先右擊該器件,然后按住左鍵進(jìn)行移動(dòng)。在布線之前,如果覺得元器件的引腳的方向不好布線,則可以通過單擊這四個(gè)按鈕進(jìn)行調(diào)整,這四按鈕的意思分別是:順時(shí)針旋轉(zhuǎn)90°,逆時(shí)針旋轉(zhuǎn)90°,沿Y軸對(duì)稱,沿X軸對(duì)稱。通過這樣的調(diào)整,可以使整個(gè)布局合理一些。接著進(jìn)行布線,由于PROTEUS ISI
38、S有自動(dòng)布線的功能,比如要把AT89C51的P2口連到74LS164的OUT8口,只要先在P2引腳上單擊一下,再在OUT8引腳上單擊,則ISIS自動(dòng)將兩個(gè)引腳連上線。圖 5-5 at89c51與ds1302的連接ISIS還提供了網(wǎng)絡(luò)布線,即不使用線連接也可以把兩個(gè)引腳虛擬的連接了起來。具體操作是:?jiǎn)螕粢B線的一個(gè)引腳,連出適當(dāng)?shù)木嚯x后雙擊,另一個(gè)引腳也同樣操作,在單擊如圖6-5所示的“LBL”按鈕,再在圖中P0.1引腳的A處單擊,在彈出的窗口中的“String”中填入名稱,如“A” ,對(duì)OUT7引腳進(jìn)行同樣的操作,在“String”中也填入名稱“A”,這樣就完成了P3.4引腳與RES引腳的網(wǎng)絡(luò)
39、連接,這個(gè)好處避免兩個(gè)距離比較遠(yuǎn)的器件進(jìn)行真實(shí)線的連接,使布線美觀。 編輯窗口連接端子要讓最后的設(shè)計(jì)成功仿真時(shí),必須放置并連接端子。選擇,從中可以選擇電路原理中的兩個(gè)通用的端子,一個(gè)是接地,一個(gè)是電源。如圖5-6所示。圖 5-6連接端子在PROTEUS ISIS中的最終設(shè)計(jì)圖如圖5-7所示圖 5-7仿真圖最后分別對(duì)各元器件的屬性值進(jìn)行設(shè)置,單擊按鈕,進(jìn)行電氣檢測(cè),查看接線是否合理,說明硬件電路已經(jīng)順利的完成。5.3用PROTEUS ISIS進(jìn)行電子萬年歷的仿真測(cè)試 添加Keil中編寫的代碼文件單擊工具欄中的SourceAdd/Remove Source files.,彈出一個(gè)對(duì)話框,分別單擊“
40、New” ,然后選擇在Keil中編寫的數(shù)字電壓表.ASM匯編語言程序,單擊“OK” ,完成添加代碼文件。 編譯源程序,生成.HEX目標(biāo)代碼文件單擊SourceBuild All。如果編譯結(jié)果沒有錯(cuò)誤,會(huì)出現(xiàn)如圖5-8所示的結(jié)果。圖5-8 加載.HEX目標(biāo)代碼文件通過如圖5-9所示的對(duì)話框,選擇剛才編譯生成的.HEX文件。設(shè)置使單片機(jī)的運(yùn)行頻率為6MHz 。圖5-9 單擊按鈕,進(jìn)行對(duì)電子萬年歷的仿真測(cè)試,運(yùn)行結(jié)果如圖5-10所示圖5-10仿真測(cè)試 PROTEUS的調(diào)試功能由于使用的是匯編語言編寫的程序,如果在測(cè)量的時(shí)候測(cè)量值顯示錯(cuò)誤,說明程序中存在問題,這個(gè)問題只用在仿真測(cè)量的時(shí)候才能被發(fā)現(xiàn),這
41、時(shí)可以使用PROTEUS對(duì)程序進(jìn)行調(diào)試。單擊按鈕,再單擊菜單欄中的Debug,可以在最下面選擇打開內(nèi)存觀察窗口,寄存器值觀察窗口,匯編語言源代碼窗口等等。在匯編語言源代碼窗口中,也可以在所需要設(shè)置斷點(diǎn)的語句前雙擊設(shè)置斷點(diǎn),當(dāng)設(shè)置斷點(diǎn)的時(shí)候,程序運(yùn)行到所設(shè)斷點(diǎn)處停止,從而可以在內(nèi)存、寄存器等的值的變化,從而找出程序出錯(cuò)的地方。結(jié)論本課題從理論到實(shí)際應(yīng)用,用AT89C51單片機(jī)與8位模數(shù)轉(zhuǎn)換芯片74LS164等一些電路的組合,成功的設(shè)計(jì)出了一個(gè)電子萬年歷。而且所設(shè)計(jì)的電子萬年歷設(shè)計(jì)也按當(dāng)初要求的能夠在PROTEUS中進(jìn)行仿真,并且能夠很精確的顯示年歷。可以說該電子萬年歷具有很高的實(shí)用價(jià)值。在軟件設(shè)
42、計(jì)的過程中,利用了Keil這個(gè)軟件在程序錄入和調(diào)試的時(shí)候的優(yōu)越性,讓我能夠在編寫軟件的時(shí)候很方便的發(fā)現(xiàn)軟件中的錯(cuò)誤,現(xiàn)在已經(jīng)能夠使用Keil對(duì)所設(shè)計(jì)的程序進(jìn)行調(diào)試。對(duì)于PROTEUS這款軟件,也能熟練掌握電路設(shè)計(jì)仿真。由于平時(shí)沒有接觸過這兩個(gè)軟件,加上畢業(yè)設(shè)計(jì)的時(shí)間有限,對(duì)于他們的連接調(diào)試程序,未能熟練掌握,但以后有機(jī)會(huì)的話會(huì)再好好學(xué)習(xí)的。本次設(shè)計(jì)的電子萬年歷也存在的不足的地方,有待于以后的改進(jìn)。致謝經(jīng)過三個(gè)多月的時(shí)間,畢業(yè)設(shè)計(jì)按照預(yù)期完成了,由于本人的知識(shí)水平有限,論文和設(shè)計(jì)中有遺漏和缺陷的地方懇請(qǐng)指正。感謝我的導(dǎo)師高玉芹老師給了我莫大的幫助,在她悉心的指導(dǎo)和嚴(yán)格的要求下,作品和論文順利完成
43、了。論文從選題和最終完成,凝結(jié)著導(dǎo)師的辛勤的汗水,她不辭勞苦的教導(dǎo)、嚴(yán)謹(jǐn)?shù)淖黠L(fēng)使我終生受益。在此畢業(yè)設(shè)計(jì)完成之際,謹(jǐn)向?qū)熀退袔椭^我的老師致以崇高的敬意和衷心的感謝。還有感謝家人、朋友還有宿舍里所有的室友,是他們給我創(chuàng)造了良好的學(xué)習(xí)氛圍,在學(xué)習(xí)和生活中給了我支持和幫助。在以后的學(xué)習(xí)生活中我會(huì)時(shí)時(shí)敦促自己更加努力,不辜負(fù)師長(zhǎng)、親人、朋友對(duì)我的期望。參考文獻(xiàn)1 趙長(zhǎng)德.微型計(jì)算機(jī)原理與接口技術(shù)M.北京:機(jī)械工業(yè)出版社,1999:98-350.2 蘇平.單片機(jī)的原理與接口技術(shù)M.北京:電子工業(yè)出版社,2006:1-113.3 王忠民.微型計(jì)算機(jī)原理M.西安:西安科技大學(xué)出版社,2003:15-5
44、5.4 胡戴明.計(jì)算機(jī)組成原理M.北京:經(jīng)濟(jì)科學(xué)出版社,2005:43-56.5 紀(jì)宗南.單片機(jī)外圍器件使用手冊(cè)M.北京:北京航空航天大學(xué)出版社,622-655.6 周雪.模擬電子技術(shù)M西安: 西安電子科技大學(xué)出版社,2005:81-95.7 左金生.電子與模擬電子技術(shù)M.北京:電子工業(yè)出版社,2004:105-131.8 尹勇.單片機(jī)開發(fā)環(huán)境Vision2的開發(fā)指南M. 北京:北京航空航天大學(xué)出版社,2004:173-199.9 張斌武.單片機(jī)系統(tǒng)Proteus設(shè)計(jì)與仿真M. 北京:電子工業(yè)出版社,2005:52-89.附錄附錄1源代碼DELAYC#define DELAY_C#includ
45、e”includesh”#define XTAL 12void delay_lus(void) asm(”nop”): void delay_nus(unsigned int n) unsigned int i=0;for(i=0;i<n;i+)delay_lus(); void delay_ims(void) unsigned int i; for(i=0:i<(unsigned int)(XTAL*143-2);i+); void delay_nms(unsigned int n) unsigned int i=0; for(i=0;i<n;i+) delay_ims()
46、; DSl302C#include”includesh”#define DSl302_C unsigned char bflag;unsigned char bpm;unsigned char get_hours(void) unsigned char i; unsigned char R_Byte; unsigned char TmpByte; reset(); write(0x85); ddr_set_io(); R_Byte=0x00; Prt_clear_io(); ddr_clear_io(); for(i:0;i<4;i+) TmpByte=0; if(pinp&(1
47、<<io) TmpByte=1; TmpByte<<=7;R_Byte>>=1;R_Byte I=TmpByte;Prt_set_clk();delay_nus(2);prt_clear_clk();delay_nus(2);bflag=0;if(pinp&(1<<io) bflag=l;prt_set_clk();delay_nus(2);prt_clear_clk();delay_nus(2); bpm=0;if(pinp&(1<<io) bpm=1;prt_set_clk();delay_nus(2);prt_c
48、lear_clk();delay_nus(2);prt_clear_rst();prt_clear_clk();R_Byte >>=4;return R_Byte;unsigned char readbyte(unsigned char w_byte) unsigned char temp; reset(); write(w_byte); temp=read(); prt_clear_rst(); prt_clear_clk(); return temp;void writebyte(unsigned char w_byte,unsigned char w_2_byte) rese
49、t();write(w_byte); write(w_2_byte); prt_clear_rst(); prt_clear_clk();void reset(void) ddr_set_rst(); prt_clear_clk(); prt_clear_rst(); prt_set_rst();void write(unsigned char W_Byte) unsigned char i; DDRC=0xFF;for(i=0;i<8;i+) Prt_clear_io(); if(W_Byte &0x01) prt_set_io();Prt_set_clk();delay_nu
50、s(1);delay_nus(2);prt_clear_clk();delay_nus(1);delay_nus(2);W_Byte>>=1; unslgned char read(void) unsigned char i; unsigned char R_Byte; unsigned char R_Byte2; unsigned char TmpByte; ddr_set_io(); R_Byte=0x00; R_Byte2=0x00;prt_clear_io();ddr_clear_io();for(i=0;i<4;i+)get the first 4 bits Tmp
51、Byte=0;if(pinp&(1<<io) TmpByte=1; TmpByte=0x80; TmpByte<<=7;R_Byte= (R-Byte>>1);/R_Byte>>=1;R_Byte |=TmpByte;prt_set_clk();delay_nus(1);/delay_nus(2);prt_chear_clk();delay_nus(1);delay_nus(2);for(i=0;i<4;i+) TmpByte=0; if(pinp&(1<<io) TmpByte=1; TmpByte=0x80;
52、 TmpByte<<=7; R_Byte2=(R_Byte2>>1);R_Byte2>>=l; R_Byte2 |=TmpByte; Prt_set_clk(); delay_nus(1):delay_nus(2); prt_clear_clk(); delay_nus(1);delay_nus(2); R_Byte>>=4; R_Byte2>>=4; R_Byte=(R_Byte2*10)+R_Byte; return R_Byte;HD44780C#include”includesh”#define HD44780_Cvoid l
53、cd_pulse(void) Icdsete()delay_nms(1);Icd_clear_e(); delay_nms(1); void icd_wait(void) asm(”nop”);void icd_send(unsigned char data) Lcd_wait();dataport=data;lcd_pulse();void clrscr(void)lcd_clear_rs();lcd_clear_rw();icd_send(0x01);lcd_wait();void gotoz(unsigned char z)lcd_clear_rs();lcd_clear_rw();lcd_send(z | 0x80);void gotoxy(unsigned char x
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)食品凝固劑行業(yè)市場(chǎng)運(yùn)營(yíng)模式及未來發(fā)展動(dòng)向預(yù)測(cè)報(bào)告
- 2024-2030年中國(guó)集群通信系統(tǒng)行業(yè)商業(yè)模式分析及投資規(guī)劃研究報(bào)告
- 2024-2030年中國(guó)阿奇霉素行業(yè)供需分析及投資戰(zhàn)略建議報(bào)告
- 2024-2030年中國(guó)陰極電泳涂料行業(yè)供需趨勢(shì)及發(fā)展風(fēng)險(xiǎn)研究報(bào)告
- 2024-2030年中國(guó)鎳鎘電池產(chǎn)業(yè)競(jìng)爭(zhēng)策略及發(fā)展規(guī)劃分析報(bào)告
- 2024-2030年中國(guó)銑鋸機(jī)行業(yè)發(fā)展?fàn)顩r規(guī)劃分析報(bào)告
- 2024年教育培訓(xùn)咨詢服務(wù)協(xié)議
- 公共設(shè)施維護(hù)安全責(zé)任協(xié)議書
- 觀察植物的科學(xué)教案5篇
- 物流行業(yè)安全生產(chǎn)優(yōu)化方案
- 護(hù)理核心制度督查表20179
- 紅色古色綠色文化教育活動(dòng)策劃方案
- 《Monsters 怪獸》中英對(duì)照歌詞
- 《正交分解法》導(dǎo)學(xué)案
- 建筑材料知識(shí)點(diǎn)匯總
- 平面構(gòu)成作品欣賞
- 英語管道專業(yè)術(shù)語
- 淺談?wù)Z文課程內(nèi)容的橫向聯(lián)系
- 社會(huì)工作畢業(yè)論文(優(yōu)秀范文8篇)
- 五篇500字左右的短劇劇本
- 新形勢(shì)下如何加強(qiáng)醫(yī)院新聞宣傳工作
評(píng)論
0/150
提交評(píng)論