基于單片機的電子萬年歷設(shè)計_第1頁
基于單片機的電子萬年歷設(shè)計_第2頁
基于單片機的電子萬年歷設(shè)計_第3頁
基于單片機的電子萬年歷設(shè)計_第4頁
基于單片機的電子萬年歷設(shè)計_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

xxxxxx學院題目:基于單片機的萬年歷設(shè)計學生姓名電子信息專業(yè)2009級1班指導教師學部計算機科學與電氣工程課程設(shè)計時間2012年6月19日-I--I-電子信息工程單片機課程設(shè)計報告基于單片機的電子萬年歷設(shè)計摘要隨著科技的快速發(fā)展,時間的流逝,至從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀錄。DS12887是美國達拉斯半導體公司(Dallas)最新推出的串行接口實時鐘芯片,采用CMOS技術(shù)制成,具有內(nèi)部晶振和時鐘芯片備份鋰電池,同時它與目前IBMAT計算機常用的時鐘芯片MC146818B和DS1287管腳兼容,可直接替換。它所提供的世紀字節(jié)在位置32h,世紀寄存器32h到2000年1月1日從19增到20。采用DS12887芯片設(shè)計的時鐘電路不需任何外圍電路和器件,并具有良好的微機接口。DS12887芯片具有微功耗,外圍接口簡單,精度高,工作穩(wěn)定可靠等優(yōu)點,可廣泛用于各種需要較高精度的實時時鐘系統(tǒng)。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒等信息,還具有時間校準等功能。該電路采用AT89S52單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電。綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。關(guān)鍵詞:1602液晶,STC89C52單片機,DS12887時鐘目錄TOC\o"1-5"\h\z摘要I第1章緒論11.1本設(shè)計的意義11.1.1設(shè)計發(fā)展與應(yīng)用11.2本設(shè)計的功能11.3本設(shè)計的要求2第2章主要系統(tǒng)結(jié)構(gòu)描述32.1系統(tǒng)結(jié)構(gòu)框圖及工作流程介紹3STC89C52模塊介紹32.2液晶顯示模塊作用介紹52211602字符型LCD簡介62.3時鐘模塊作用介紹10231DS12887的介紹102.4本章小結(jié)13第3章系統(tǒng)硬件電路設(shè)計與實現(xiàn)143.1單片機最小系統(tǒng)設(shè)計143.1.1單片機介紹143.1.2單片機時鐘電路介紹153.1.3單片機復位電路介紹163.1.4單片機按鍵電路介紹163.2程序下載介紹16321主要芯片引腳功能介紹163.3本章小結(jié)17第4章系統(tǒng)軟件調(diào)試環(huán)境介紹18KEIL51軟件簡介184.1.1軟件功能184.1.2軟件應(yīng)用流程194.2程序下載軟件介紹21421軟件功能21422軟件應(yīng)用流程214.3本章小結(jié)24第5章系統(tǒng)程序設(shè)計255.1系統(tǒng)程序設(shè)計流程圖255.2時鐘程序模塊詳細流程圖26521程序流程圖對應(yīng)程序代碼265.3液晶程序模塊詳細流程圖28531程序流程圖對應(yīng)程序代碼295.4按鍵控制程序模塊詳細流程圖31541程序流程圖對應(yīng)程序代碼315.5本章小結(jié)33結(jié)論34參考文獻35附錄36基于單片機的電子萬年歷設(shè)計第1章緒論本設(shè)計的意義本設(shè)計是基于51系列的單片機進行的電子萬年歷設(shè)計,可以顯示年月日時分秒及周信息,具有可調(diào)整日期和時間功能。在設(shè)計的同時對單片機的理論基礎(chǔ)和外圍擴展知識進行了比較全面準備。在硬件與軟件設(shè)計時,沒有良好的基礎(chǔ)知識和實踐經(jīng)驗會受到很大限制,每項功能實現(xiàn)時需要那種硬件,程序該如何編寫,算法如何實現(xiàn)等,沒有一定的基礎(chǔ)就不可能很好的實現(xiàn)。所以意在培養(yǎng)同學的創(chuàng)新精神與實踐能力。設(shè)計發(fā)展與應(yīng)用時間在我們的生活中有著不可取代的作用,它可以為我們清晰地記錄下制作從開始到結(jié)束所需要的時間。時間對人們來說總是寶貴的,工作的忙碌性和繁雜性容易使人忘記當前時間,忘記了要做的事情。當事情不重要的時候,這種遺忘無傷大雅,但是,一旦事情重要,一時的耽誤可能釀成大禍。例如,許多火災都是由于人們遺忘而發(fā)生的,而時間的重要性在醫(yī)院、冶金、化工、食品、機械、石油等工業(yè)中,更是舉足重輕,而現(xiàn)在鐘表的數(shù)字化給人們的生活帶來了極大地方便。成為人們必不可少的必需品,廣泛用于個人家庭以及車站、碼頭、劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒和溫度等信息,還具有時間校準等功能。萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。1.2本設(shè)計的功能本電路是由STC89C52單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由DS12887提供,它可以對年、月、日、周日、時、分、秒進行計時。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1287內(nèi)部有一個用于臨時性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、時、分、秒,具有使用壽命長,精度高和低功耗等特點。1.3本設(shè)計的要求隨著電子技術(shù)的高速發(fā)展,對電子方面人才的要求越來越高,不僅要求其具備相關(guān)的專業(yè)理論知識,還要求其具有較強的設(shè)計、制作等實踐動手能力,學校此次舉行的電子設(shè)計無疑是對從事電子相關(guān)專業(yè)的人的一次很好的鍛煉和考驗,是培養(yǎng)信息人才的一次良好的機會,為其提供了一個理論知識與實踐相結(jié)合的平臺。本次設(shè)計可分為兩部分:硬件部分、軟件部分。硬件部分包括:AT89S52單片機、DS12C887時鐘芯片、1602LCD液晶顯示器。主要由AT89S52單片機、實時時鐘芯片電路、液晶顯示輸出電路、鍵盤輸入電路組成等幾大部分組成。具體說來,系統(tǒng)智能控制部分由單片機及其相關(guān)的外圍電路組成,外圍電路包括復位電路、晶振電路、鍵盤設(shè)計、電源電路。利用單片機將復位電路、動態(tài)顯示電路、電源電路等正確的連接在一起,并通過單片機的編程來實現(xiàn)本次設(shè)計任務(wù)中的要求。軟件部分包括了主程序模塊,DS12C887模塊,LCD1602模塊,鍵盤控制模塊本設(shè)計的基本要求是:具有年、月、日、星期、時、分、秒等功能,同時具備年、月、日、星期、時、分、秒校準功能。具體的用單片機實現(xiàn)具有計時、校時等功能的數(shù)字時鐘,是以單片機AT89S52為核心元件,結(jié)合DS12C887時鐘芯片,采用1602液晶顯示屏作為動態(tài)顯示年、月、日、星期、時、分、秒等的現(xiàn)代計時。第2章主要系統(tǒng)結(jié)構(gòu)描述系統(tǒng)結(jié)構(gòu)框圖及工作流程介紹本次設(shè)計的題目是基于DS12C887的高精度時鐘的設(shè)計,可以正常的顯示年、月、日、時、分、秒。本系統(tǒng)利用單片機實現(xiàn)具有計時、校時等功能的數(shù)字時鐘,是以單片機AT89S52為核心元件,同時采用1602液晶顯示屏動態(tài)顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。與傳統(tǒng)機械表相比,它具有走時精確,顯示直觀等特點。另外具有校時功能,利用單片機實現(xiàn)的數(shù)字時鐘具有編程靈活,便于功能的擴充等優(yōu)點。圖2-1STC89C52模塊介紹STC89C52是美國ATMEL公司生產(chǎn)的低電壓、高性能的CMOS8位單片機,片內(nèi)含4kbytes的可反復擦寫的只讀程序存儲器(PEROM)和128bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,功能強大STC89C52的結(jié)構(gòu)引腳功能:?VCC:電源電壓?GND:接地?P0口:P0口是一組8位漏極開路型雙向I/0口,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗轉(zhuǎn)入端用。?P1口:P1是一個內(nèi)部帶上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電萌。?P2口:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。?P3口::①可以作為輸入/輸出口,外接輸入/輸出設(shè)備。②作為第二功能使?P3口的第二功能?RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。?ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振器頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。?PSEN:程序存儲允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時.每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN信號不出現(xiàn)。?EA/VPP:EA=O,單片機只訪問外部程序存儲器。EA=1,單片機訪問內(nèi)部程序存儲器。.XTALI:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。.XTAL2:振蕩器反相放大器的輸出端。T89S52單片機為40引腳雙列直插芯片,有四個I/O口PO,P1,P2,P3,MCS-51單片機共有4個8位的I/O口(PO、Pl、P2、P3),每一條I/O線都能獨立地作輸出或輸入。STC89C52的特點

?與MCS-51產(chǎn)品指令系統(tǒng)完全兼容4k字節(jié)可重擦寫Flash閃速存儲器1000次擦寫周期?全靜態(tài)操作:0Hz--24MHz?三級加密程序存儲器128*8字節(jié)內(nèi)部RAM?32個可編程I/O口線2個16位定時/計數(shù)器6個中斷源?可編程串行UART通道?低功耗空閑和掉電模式2.2液晶顯示模塊作用介紹1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。顯示電路采用LCD1602液晶顯示,如圖(10)所示,圖中只畫出了其相應(yīng)的接口,3腳用于調(diào)節(jié)LCD1602的背光,4、5、6為LCD1602的控制口,用于控制其寫入或是讀出指令,7至14腳為LCD1602的數(shù)據(jù)口,將數(shù)傳送到LCD1602中。+5VLCD1-LMO10L'5O山■才ILI+5VLCD1-LMO10L'5O山■才ILIILI'KiMfelzNlrlspz圖2—2LCD1602顯示電路2.2.11602字符型LCD簡介本設(shè)計采用1602字符型LCD,可顯示兩行,每行16個字符,不能顯示漢字,內(nèi)置含128個字符的ASCII字符集字庫,只有并行接口,無串行接口。這種1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16x1,16x2,20x2和40x2行等的模塊。1602字符型LCD的主要技術(shù)參數(shù)為:(1)顯示容量:16x2個字符;(2)芯片工作電壓:4.5~5.5V;(3)工作電流2mA(5.0V)不包括背光電流;(4)模塊最佳工作電壓:5V;(5)字符尺寸:2.95x4.35(WxH)mm;(6)帶有英文和日文字庫,使用方便;1602字符型LCD的基本操作時序:讀狀態(tài)、+?斗纖亠44=3輸入:RS=L,R/W=H,輸出:D0~D7=狀態(tài)字輸入:RS=H,R/W=H,輸出:無E=H讀數(shù)據(jù)E=H寫指令輸入:RS=L,R/W=L,輸出:D0~D7=數(shù)據(jù)D0~D7=指令碼,E=高脈沖寫指令輸入:RS=H,R/W=L,輸出:無D0~D7=數(shù)據(jù),E=咼脈沖1602字符型LCD的RAM地址映射圖:液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符??刂破鲀?nèi)部帶有80B的RAM緩沖區(qū),對應(yīng)關(guān)系如圖所示。LCD16字x2行000102030405060708090A0B0C0D0E0F???27404142434445464748494A4B4C4D4E4F???67圖2-11602內(nèi)部RAM地址映射圖當向圖中的00?OF、40?4F地址中任一處寫入顯示數(shù)據(jù)時,液晶都可立即顯示出來,當寫入到10~27或50~67地址處時,必須通過移屏指令將它們移入可顯示區(qū)域方可顯示正常。1602字符型LCD的狀態(tài)字說明如表3.4所示。表2-2狀態(tài)字說明STA7STA6STA5STA4STA3STA2STA1STA0D7D6D5D4D3D2D1D0STA0?STA6當前地址指針的數(shù)值STA7讀/寫操作使能1—禁止;1—允許原則上沒次對控制器進行讀/寫操作之前,都必須進行讀/寫檢測,確保STA7為0。實際上由于單片機的操作速度慢于液晶控制器的反應(yīng)速度,因此可以不進行讀/寫檢測,或只進行簡短延時即可。1602字符型LCD的數(shù)據(jù)指針設(shè)置:控制器內(nèi)部設(shè)有一個數(shù)據(jù)地址指針,用戶可以通過它們訪問內(nèi)部的全部80B的RAM。數(shù)據(jù)指針設(shè)置如表3.5所示。表2-3數(shù)據(jù)指針設(shè)置指令碼功能80H+地址碼(0H?27H,40H?67H)設(shè)置數(shù)據(jù)地址指針1602字符型LCD的其他設(shè)置如表3.6所示。表2-4其他設(shè)置

指令碼功能01H顯示清屏:1.數(shù)據(jù)指針清02.所有顯示清002H顯示回車:數(shù)據(jù)指針清01602字符型LCD的初始化設(shè)置:顯示模式設(shè)置顯示模式設(shè)置如表3.7所示。表2-5初始化設(shè)置的顯示模式設(shè)置

指令碼功能0~~0~~1~~1~~1~~0~~0~~0~~設(shè)置16x2顯示,5x7點陣,8位數(shù)據(jù)

接口顯示開/關(guān)以及光標設(shè)置顯示開/關(guān)以及光標設(shè)置如表3.8所示。表2-6初始化設(shè)置的顯示開/關(guān)以及光標設(shè)置

指令碼功能00001DCBD=1開顯示;D=0關(guān)顯示C=1顯示光標;C=0不顯示光標B=1光標閃爍;B=0光標不顯示0000001NSN=1當讀或?qū)懸粋€字符后地址指針加1,且光標加1N=0當讀或?qū)憘€字符后地址指針減1,且光標減1S=1當寫一個字符時,整屏顯示右移N=1或左移N=0,已得到光標不移動而屏幕移動的效果S=0當寫一個字符時,整屏顯示不移動00010000光標左移00010100光標右移00011000整屏左移,同時光標跟隨移動

00011100整屏右移,同時光標跟隨移動1602字符型LCD的寫操作時序:(1)通過RS確定是寫數(shù)據(jù)還是寫命令。寫命令包括使液晶的光標顯示/不顯示、光標閃爍/不閃爍、需/不需要移屏、在液晶的什么位置顯示等等。寫數(shù)據(jù)時指要顯示什么內(nèi)容。(2)讀/寫控制端設(shè)置為寫模式,即低電平。(3)將數(shù)據(jù)或命令送達數(shù)據(jù)線上。(4)給E一個高脈沖將數(shù)據(jù)送入液晶控制器,完成寫操作。讀操作時序、寫操作時序分別如圖所示。RSP/W二,ES茁r圖2-3讀操作時序tFDBOD07茁r圖2-3讀操作時序tF圖2-4寫操作時序2.3時鐘模塊作用介紹2.3.1DS12887的介紹DS12887是美國達接斯半導體公司(DaHas)最新推出的串行接口實時時鐘芯片,采用CMOS技術(shù)制成,具有內(nèi)部晶振和時鐘芯片備份鋰電池,同時它與目前IBMAT計算機常用的時鐘芯片MC146818B和DS1287管腳兼容,可直接替換。它所提供的世紀字節(jié)在位置32h,世紀寄存器32h到2000年1月1日將從19遞增到20。采用DS12887芯片設(shè)計的時鐘電路無需任何外圍電路和器件,并具有良好的微機接口。DS12887芯片具有微功耗,外圍接口簡單,精度高,工作穩(wěn)定可靠等優(yōu)點,可廣泛用于各種需要較高精度的實時時鐘系統(tǒng)中。DS12887的主要功能介紹內(nèi)含一個鋰電池,斷電后運行十年以上不丟失數(shù)據(jù)。計秒,分,時,天,星期,日,月,年,并有閏年補償功能。二進制數(shù)碼或BCD碼表示時間,日歷和定鬧。12小時或24小時制,12小時時鐘模式帶有PM和AM指示,有夏令時功能。MotoRola和Intel總線時序選擇。有128個字節(jié)RAM單元與軟件接口,其中14個字節(jié)作為時鐘和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護功能??删幊谭讲ㄐ盘栞敵?。中斷信號輸出(IRQ)和總線兼容,定鬧中斷,周期性中斷、時鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進行測試。DS12887的原理及引腳說明

DS12887內(nèi)部由振蕩電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時鐘和控制單元,114字節(jié)用戶非易失RAM,十進制/二進制累加器,總線接口電路,電源開關(guān)寫保護單元和內(nèi)部鋰電池等部分組成。DS12887引腳分配如圖1:VCC:直流電源+5V電壓。當5V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫;當VCC低于4.25V,讀寫被禁止,計時功能仍繼續(xù);當VCC下降到3V以下時,RAM和計時器供電被切換到內(nèi)部鋰電池。MOT(模式選擇):MOT引腳接到VCC時,選擇MOTOROLA時序,當接到GND時,選擇Intel時序。SQW(方波信號輸出):SQW引腳能從實時鐘內(nèi)部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。AD0-AD7(雙向地址/數(shù)據(jù)復用線):總線接口,可與Motorola微機系列和Intel微機系列接口。AS(地址選通輸入):用于實現(xiàn)信號分離,在AD/ALE的下降沿把地址鎖入DS12887。DS(數(shù)據(jù)選通或讀輸入):DS/RD引腳有兩種操作模式,取決于MOT引腳的電平,當使用Motorola時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總線的時刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇Intel時序時,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義相同。R/W(讀/寫輸入):R/W引腳也有兩種操作模式。選Motorola時序時,R/W是低電平信號時,指示當前周期是讀或?qū)懼芷?DS為高電平時,R/W高電平指示讀周期,R/W信號一低電平信號,稱為WR。在此模式下,R/W引腳與通用RAM的寫允許信號(WE)的含義相同。CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷的條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。RESET(復位輸出):當該腳保持低電平時間大于200ms,保證DS12887有效復位。2.4本章小結(jié)本章主要是對系統(tǒng)結(jié)構(gòu)進行描述,以及各個功能模塊的作用和特點,為編程進行復習準備工作。使我們更加了解這些模塊的運用。

第3章系統(tǒng)硬件電路設(shè)計與實現(xiàn)單片機最小系統(tǒng)設(shè)計圖3-1單片機最小系統(tǒng)3.1.1單片機介紹單片機(microcontroller,又稱微控制器)是在一塊硅片上繼承了各種部件的微型計算機。這些部件包括中央處理器CPU、數(shù)據(jù)存儲器、定時器/計數(shù)器和多種I/O接口電路。STC89C52單片機為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3,MCS-51單片機共有4個8位的I/O口(PO、Pl、P2、P3),每一條I/O線都能獨立地作輸出或輸入。

nnnnnnnnnnnnnnnnnnnn器手話話著益參蘭益兗nnnnnnnnnnnnnnnnnnnn器手話話著益參蘭益兗圖3-23?1?2單片機時鐘電路介紹時鐘是時序的基礎(chǔ),8052片內(nèi)由一個反向放大器構(gòu)成振蕩器,可以由它產(chǎn)生時鐘。但是雖然89C52有內(nèi)部振蕩電路,但要形成時鐘,必須外接元件,所以實際構(gòu)成的是振蕩時鐘電路。外接晶體以及電容C1和C2構(gòu)成并聯(lián)諧振電路接在放大器的反饋回路中。對接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。晶體頻率可在1.2MHz-12MHz之間任選,電容C1和C2的典型值在20pF-100pF之間選擇,考慮到本系統(tǒng)對于外接晶體的頻率穩(wěn)定性要求不高,所以采取比較廉價的陶瓷諧振器。由于本系統(tǒng)應(yīng)用的機器周期為ls,所以,晶振選擇為12MHz,根據(jù)調(diào)試電容選擇30pF.C13C130pF圖3-3?一|||?30pF?一|||?30pF1-|—IY1i^tiC2

3?1?3單片機復位電路介紹在單片機系統(tǒng)中,為了保證在上電時進行可靠的初始化,同時為了保證對電源的監(jiān)控,需要采用復位電路。常用的復位電路有RC復位電路和復位芯片,在此我們采用RC復位電路。如圖:VCCCIOI]+|(?VCCCIOI]+|(?10uFR31_廠F0O?p22R3°310KI'1003?1?4單片機按鍵電路介紹按鍵電路由四個輕觸開關(guān)組成,如圖(9)所示。按鍵用來調(diào)整時間,其一端直接接到單片機的端口,另一端接地,當按下按鍵時,相應(yīng)的端口變?yōu)榈碗娖?,通過一個與門只要這四個按鍵有一個按下就會在P3.2檢測到一低電平就觸發(fā)外部中斷0進入按鍵調(diào)節(jié)程序中,通過與各個鍵相連的端口P3.4_P3.7可以判斷是哪個鍵按下,從而作相應(yīng)的操作。3.2程序下載介紹單片機在控制本地的外圍器件時信息的交互是通過8位并行數(shù)據(jù)線進行的,在電路的硬件設(shè)計上,主要采用串口和MAX232方便的實現(xiàn)單片機PC機之間的串行通信。3?2?1主要芯片引腳功能介紹MAX232芯片是美信公司專門為電腦的RS-232標準串口設(shè)計的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。C31-C27—C31-C27—T2OLII舊NIM圖3-4cr^joT1OUTIMR-|OUIT1IMT2IMF^?OUT引腳介紹:556第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。D第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R10UT)、11腳(T1IN)、14腳(T10UT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R20UT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。主要特點:1、符合所有的RS-232C1、符合所有的RS-232C技術(shù)標準2、只需要單一+5V電源供電3、4、功耗低,典型供電電流5mA5、3、4、功耗低,典型供電電流5mA5、內(nèi)部集成2個RS-232C驅(qū)動器6、內(nèi)部集成兩個RS-232C接收器下圖為MX232雙串口的連接圖,可以分別接單片機的串片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V-行通信口或者實驗板的其它串行通信接口:C3104"-^6P-^4TXD-^0RXD—9U5VCCGND申Cou$C3104"-^6P-^4TXD-^0RXD—9U5VCCGND申Cou$1Ci」151o151MIAX232tn

utC1+V+C1-C2+C2-V-?4~5C41U〒+C51U=+C61U251in2Cout251out2Cin+C71U3849O——O■OOO——OO“DB9圖3—53.3本章小結(jié)本章主要對硬件系統(tǒng)結(jié)構(gòu)進行描述以及如何實現(xiàn)的一些詳細流程。DS12C887的A高精確時鐘的硬件設(shè)計,硬件模塊包括AT89S52控制模塊,DS12C887時鐘模塊,1602顯示模塊,鍵盤及外圍電路外圍電路即晶振和復位電路功能運用。。nBSheetofDrawnBy:Date:1-Jan-2000SheetofDrawnBy:File:D:\jiaotongdeng\jiaotongdeng.ddb第4章系統(tǒng)軟件調(diào)試環(huán)境介紹KEIL51軟件簡介單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(^Vision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。軟件功能KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。C51工具包的整體結(jié)構(gòu),其中^Vision與Ishell分別是C51forWindows和forDos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。Keil51的編譯環(huán)境如圖5-1所示。圖中:標題欄:顯示當前編譯的文件

菜單條:有十項菜單可供選擇,相應(yīng)的所有操作命令均可在此菜單中查找;工具欄:常用命令的快捷圖標按鈕;管理窗口:顯示工程文件的項目、各個寄存器值的變化、參考資料等;信息窗口:顯示當前文件編譯、運行等相關(guān)信息;工作窗口:各種文件的顯示窗口。標題欄華e|圉他P1F1P1rJ--PSSourd(ji&ipS團5.I:e」』]jjp,BiildCariraidFrd昌標題欄華e|圉他P1F1P1rJ--PSSourd(ji&ipS團5.I:e」』]jjp,BiildCariraidFrd昌弧電國也逼用’艷亞礙計、單用機PL丨】曾Fdrrar(営j』fl屈冃mTjg:笄出—阿釧■'亞山跑民朗恥arFI自口"l-titV?lA-e叫*^^7蘭卒如■二=|菜卑柔甘fg[ProjKiW<d-£C?#管理窗口三二工具欄Z*1廿化"Irljrr-.4TTg.></、》Adtsfiieueharu.ncLgncelchirfridefineu]ntnas-i^nedintuciia-r匸;Q烹足義工作窗口Ebit3FD_Asbit□REEU_ASblt丫ELL阻兇EMsbi1信息窗口=biiL__“商北直行九^defin.est^t^lkf6圖5-1Keil51的編譯環(huán)境KeilC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到KeilC51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹KeilC51開發(fā)系統(tǒng)各部分功能和使用。4.1.2軟件應(yīng)用流程Keil51編譯指南:第1步:打開Keil51軟件,首先彈出一個開機啟動畫面。第2步:然后進入Keil51的開發(fā)界面。下面簡要介紹一下Keil51開發(fā)環(huán)境中各個區(qū)域的功能。Keil51開發(fā)環(huán)境可以分為四個區(qū)域,分別為:菜單條、項目文件管理窗口、代碼編譯窗口和代碼編譯信息窗口四個部分。菜單條分為十項,所有的命令都可以在這里找到。下面的命令是一些常用的菜單命令,如文件的打開、關(guān)閉及保存。其中編譯命令最為常用。中間靠左是項目文件管理窗口,這里可以看到當前項目中所包含的所有帶編譯的文件。項目文件管理窗口的右側(cè)是代碼編譯窗口,這事我們最主要的工作區(qū)域。最底層顯示了代碼編譯的信息。當代碼有語法錯誤時,可以在這里輕松的找到問題的所在。第3步:下面以建立一個簡單的項目為例,來說明Keil51開發(fā)項目的一般方法。單擊Project菜單項,選擇NewProject項。第4步:此時彈出CreateNewProject對話框,選擇合適的路徑口,在文件名一欄中填入新工程的名字。單擊保存。第5步:根據(jù)所用的器件,選擇CPU的型號,單擊確定。第6步:Keil51詢問是否生成默認的配置文件,這個可選可不選,這里選定。單擊Yes,觀察項目文件管理窗口的變化。第7步:在File菜單下單擊New選項,新建文件。此時在代碼窗口出現(xiàn)一“Textl”空白文檔。第8步:在“Textl”中編輯完代碼后,單擊File菜單中的保存項,彈出保存對話框。保存名寫為text.c。單擊保存。注意在對文件命名時必須加擴展名。第9步:在項目導航欄中SourceGroup上單擊右鍵,選AddFiletoGroup‘SourceGroup1'。第10步:此時彈出AddFile對話框。選中剛才保存的text.c文件。單擊Add。此時在項目文件管理窗口中就會出現(xiàn)剛才所添加的文件text.c。第11步:單擊快捷菜單欄中的編譯按鈕裁,可以編譯程序。第12步:單擊Project菜單項,選擇OptionforTarget‘Target1'選項。在彈出的對話框中可以對Project進行總體配置。第13步:選擇Output選項卡,單擊CreateHEXFile,代碼輸出格式應(yīng)為HEX-80。第14步:單擊確定后,并重新編譯??梢钥吹骄幾g成功之后,Build選項卡里又多了一項。這是生成的HEX文件。第15步:單擊Debug菜單項中的Start/StopDebugSession命令或工具欄中的口進入調(diào)試界面。第16步:單擊調(diào)試界面Debug菜單項中的Go命令或工具欄中的到-運行程序,單擊StopRunning命令或來結(jié)束程序。觀察運行結(jié)果,若結(jié)果正確,便可通過下載軟件將它燒寫到目標板上去。這樣,一個簡單的Keil51下的項目就完成了。注:Keil51對匯編語言文件的編譯調(diào)試步驟和對C語言的編譯調(diào)試基本上是一樣的,只是在第八步中用匯編語言進行代碼的編寫,并在保存文件時將擴展名加成.asm。本系統(tǒng)中,最初采用把9個狀態(tài)分別設(shè)置成一個子函數(shù)的方法。在每個子函數(shù)中對在此狀態(tài)中需要點亮的LED單獨賦值,延時程序采用定時器延時,在主函數(shù)中設(shè)置調(diào)用子函數(shù)。但是在調(diào)試過程中遇到很多問題,比如,LED并未按照理想的方式點亮或熄滅,也沒有狀態(tài)變化。在經(jīng)過分析后,采用了另一種更為簡單的方法,即給P1口和P2口整體賦值,如P1=0xff、P2=0xff即表示所有LED不點亮。每個狀態(tài)只需賦一個或兩個值,需要延時只需調(diào)用延時程序。此外,對延時程序也進行了修改,把原有方案改為用CPU延時,這樣,程序變得較為簡單易行。程序下載軟件介紹STC89C52單片機采用STC_ISP_V4.80向內(nèi)部燒寫程序。4.2.1軟件功能STC_ISP_V4.80是由STC公司研發(fā),可以向STC89C51、STC89C52等系列單片機內(nèi)燒寫程序??梢栽O(shè)置波特率,串口等參數(shù)。同時STC_ISP_V4.80還可以作為串口調(diào)試工具,用于串口收發(fā)數(shù)據(jù)的調(diào)試軟件。軟件應(yīng)用流程第一:打開STC_ISP_V4.80軟件,分別設(shè)置最高,最低波特率,并選擇相應(yīng)的串口等參數(shù)。如圖:n5TC-ISP.exehttp:f/Mnvw.MCU-Hemcry-aiin^^££::139228fl5190(tt^平}WarnPn九80程序丈件“I串口肋手L程文件IPr&p~znFile.10n'n'n'n'n'HHHu.u.u.u.u.o:o:o:o:n'DDDDDOOOODDDDDDDDDooo□oooon-n-n-n-n-ooooommmmro???MrorororowwwwmDDDDDOOOODDDDDDDDD00000ooon-n-n-n-n-ooooflFFFFP;U.U.U.U.U.URRRRFn'rl'n'rl'TUuu-u.u.u.u.ozozozozrl-OOQOOOOOOCCCCOOOOOo-UOOOOOOQ-u-u-un-nQQQOn'n'n'n'n'HHHu.u.u.u.u.o:o:o:o:n'□□□□OOOOOOOOOOOOOQ口口口oooooo口口口口口口口口口DDDDDOOOODDDDDDDDDDODOOOOOOOOOOOOOOO■n'n'n'npm.u.u.u.u.uF!F:F:R'nDDDDODDODDDDDDDDDD□□□□-uoooon-n-n-n-oooooQooooooooooooooooon-on-OOOOOQ_u_u_u_UOQQQOgoaoaoafflmmmolmmmmKIKIKIKIm□□□□OOOOOOOOOOOOOD口口口OOOOOOQQQQOQQQO銳帶幕監(jiān)常船址皿罷珥■■■■^■nF'nFpm.u.u.u.u.uF!F!F!F:FSiepl/^ffiL:JlglecLNCVTxpe選擇單片At型號L口1丁金£:rP疋rialDryRom匕|SPCB9[232KtJS^LOLiOLETSl-zpj.-^sKl:Jg為_:?■廠開\>-'-r1/1■Tniril1!-:rJJ^.uj同期址址馳幻應(yīng)魚耳PI廬打開E叩:ii:弓感沖二打磁磁慮三17打開文件前潔0第沖打JTTiTF^iH丈件OHPort,H磁Band選聲串行口,境j反"'跡竺~二1頁一三\占汁17車丄空芝呼l.u.-)氏:TI乂一孔扛麻=樂'匚包:£總'=:?D別:丄1上■■-J-b?群4^j^TrziiI-■--i;'=HLl句1J:u:_::T-iti1左于汪l_&廠丐<■Jz廠單件諱'E京Jbl」:無I曽f;l:l_l.'LC1L-<■tillZiLt.如希低功耗.卄厲下癒§9申鹽可I*1/2的f/-/?ri=7ll■Ik'l1C皆干r=二..■■n:f內(nèi)時JEAlffl-Mfl:廣整止訪閆存允許訪問O理推倉I下i.:下奩用尸叵出世序龍任菽15芷工沁_一尹隈呂rTESV陽T1*■1T1*■1h's■話-古5t*pB/Si-5E5:UMiHdid/~Fff;先點下審注?Eft再MCIL上電早■位-掙啟動DnYnJoadi'TSfeMI'如虧F:fl;\±1IIA^:-lFit':十.片評調(diào)試協(xié)用r芻片也此三:叮1_尸=盤光“丁巴F=ni^ir|:^-且科恤針時SIU旳氏1肚/知+慕列單片機新版本U版育如用尸軟件啟動內(nèi)部暑門狗后□只百淨電關(guān)暑naat*空匡壬左1跑d-.ud-.u*>on切塊電■匕宦是“f-:打丸九蕪」P3.U/fcO,T3.LyT訕jffl過昭竝32¥?踽5宜圉電腦的毋11L.--=I■-1=ii=ik=,=r<!LHft'用八.世用芒呂二Jr丁書中匕禮在111當一『FT--衛(wèi)門.;|占對三-小:CIfI諸關(guān)iirnffk.flCV-WenarT.gg網(wǎng)J站』及時升級第二:打開所要下載的.hex文件,如圖所示:LSTCISP,?hfctp;/?www-MCU-MepiQfY.a>m1392平}程序立件Prc'CrsiiFile程序立件Prc'CrsiiFile:s口工丁工雄史廣Stepl/歩猱】:Sele吐HCUTym選擇單片機型號WCUTyi)i?ATMflnooryF;oji^4|訂「礙口=73-和-IUJLlf/000102C604050&070609OADBCCODOEOFSt切占擊瑚2:Op?File/打開文件世件范ffil內(nèi)耒用區(qū)域tSOD)jSSftffcbkotEi)tsak和—f1屮廿脈■塞Honblg/煒瑤皿大器增5S:印幣卜;功制SL^3/歩驟J:歸Cffl.|COM3諸嘗試長高繪愜醐打F在于莊件號內(nèi)部擴展燦T-KANT;:下袞用戶衛(wèi)用tc-3sp-v480Clatehepv-I.^O-not-aetupI整戊KSr15?i>*<遼上#居□XOUDD[£OLD0XO£DDKO3Dcicazi:in-floflo_u_u-u_un-.L_r.L_r_rH][?CDngnn叩qqECDDODODDO□□00ECXiOU00000000ECDDODODDO□□00nnu.n-u.n_n_J.;TT-IT丄TT-UFJFFnH;-u-;-u-Hn~U-;ODOD00ODnnODODUUu:nnODOD00u:ODODDO00no□□no□□00□o□□OOon00no□□noonuOno00nonnDOnn□□UUnnDOUU00UUnnDOnnoo00nn□□nnffi|isrnine*卜舷虛百效5生士土若門也T"t>.in-文翳型⑴T"t>.in-文翳型⑴廠劭只進方式打開為卜乍UJR=-H叢夏ISWS時間'll'Jh二中H<C.汽LL-rKxL..;Lr:tc:r:二mnsjit斤用樣手卜/.柏夭孚r,4E6SB)計數(shù)|j■日】CLc^rNCU^rianor^.EMJFiB第三:點擊DownLoad,程序就開始燒寫了。如圖:帀帀STCCSPrP?hftp;//wwwrMCU-M?xK)rY,com茲禾主持江対22805190[越永千)畑網(wǎng)期:耳,曲ie_:c-VUJ:-.Tii±li單片*1卑呂i?r'i"/Lh甘veg:Rx?脅e:-f9:.et?f「-|zoozir?r柱牙宣坤串匚』-丁工祀乂咋|Prnsra.inTile上卄逞廳史廠詁寧i二稈呂EI;減料宰弍*吊K滬忖蘭-專II.:總對半■InK.'i-nrilH/nrp土-T件-ffiirx用川疑便「■M址血)核駛和17打開更件前法曝沖打rrr-nnii丈件it^:.訐爭*:丑力E'詵頂屮?:1氏更■'1'"■-、:■■-■■'t■?"T,>L催計WI1E.■有j京氏沼訣衛(wèi)樂塔丘r1/7滬ir.iffl-.'.:驢iTJD齋愜功戦I&WHm以下叛罷増話可選1/Ee6ia下歡袴啟動Fl.O/fl.lCt號下載無關(guān)廣苓于P皿把TT蠡快瞬動內(nèi)母擴展AUI-HAH:廠套止訪曰忙允許訪向匪!魅j■R上匸乏三r広三老序時埒蘇藍匸山亡?弁腐匚r-.T-f;■肘7iP3C~lDuvli叫:比七忙V曲忙I.中空訐V門納3ic-J:vnl<bjJ.廠當日標弋碼戔主去S£和川“立出齊立冃%去下亂命4:也址mdi□JttMOmCO000310mmOTttEO5OTOTKOOmmOOffiMOmmOTttKO□3OZG0mm□3?70WWOTttBOIXIIXootmommOTODAJOgOTOTKiBOmmootrcommOTttJBOtnmCdKiEOmmOTODFOKIOTM01Q0IXIE□00110mmDFOECIDcn-玉flk□goBo7□Bo5o4□rl_n-dryAvAxvAvAvAAv=;『czop=;『c=;P=;『琲P瓚丄mFC唱琲ODOUDOOOODOUDOOOOD.un-n-_un-.un-0.UQn-_un-.un-n-Qn-OOOCOOOOOQOCOOOOOOouooooooooooQoon-n:uoOQOOQOOOOQOOQOOOODGooooooooflooooon:uoo-u-un-fln-o-un-Q-uofln-n--uoon--uon-on-o-un-QoQon-n-oooo-u-un-fln-o-un-o-uQfln-n--uoDo-u-un-fln-o-un-Q-uofln-n--uooDDDDDDDODDDDDDDDDDooooooooooooooooooDDn-DD0DD0Dn-DD0DDDDooooooooooooooooooDDn-DDDDDODODDDDODDooooooooooooooooooDDODDODDODODDoDODDoooooooooooooooooou.rl'n'u.rl'u.ozfu.n'n'u.rl'u.u.n'u.rl'u-rl_n_u-rl_u.oz!=u.n_n_u-rl_u.u-n_u.rl_吐刁I口衛(wèi)上'.下孔]氏n下孔]也那丁上叮3'1--F3FFILL上L'..-:施-7=ttX^JC09C51Tr-'TH柔列單**i版巫C版百我EDQ5莊月鴻臓用U孟件召騎住瓷%二勺匸廣只£尸電二丐門垃VW世關(guān)百門遼:-*口?卩古蘭注*VVNCLF-flanory.:cn匸站及時丹蟻L?In/T:r-==-^.L^^J'JL3把-"H應(yīng)=穢序.二呆三尸札.'.F:w「1曰I-.U/K::L小防丫目r^z.-成右?數(shù)miiSTC-ISP.exehttp://m.ICUIe?ory.co*技術(shù)支持:139^2805190永平)牝r:3.91□回區(qū)謎epM步騾1::零1知MCUType選擇單片機型號MCUTypeAPMem-ery00001FFF文件緩沖區(qū)]_閘_j串口調(diào)試助手]工程文件FileBuffer:F:^51開發(fā)根-學習檢@51程序IAK08餐數(shù)字電壓表\ABGOE地址00010203040506070809OAOEUCOHUEOF▲「Step耶歩驟階OpsitFilet打開文件Ct件范圍內(nèi)未用區(qū)域埴E)起始地址(M棱驗和|0|000AO37HF打開文件前清G煖沖OpeiJil"打幵文件廠_廠—p打開文件前渚Q緩沖打廿數(shù)據(jù)文廠rStep3/步罟3:Select”5Fort,MaxBaud/選擇串行口屮最高波特率,?血:~?是高波特率:1115200-諳嘗試提高最低波特率或使爰高波特率=攝低漩特率:2400-5tep4/步驟4:DoubleSpeed設(shè)置孜倍速,缺省為普通速度JDaublespeed./孜倍速:振蕩放丈器増益:如需低功耗”16MHzlil下振蕩卷増益可選lZZ-gain下次冷啟動Pl.0.T1.1檸與下載無關(guān)r等于比0才可下軌垛速.啟動內(nèi)部擴^AUX-RAM:廣.禁止訪恂下如載用戶應(yīng)用程序時將數(shù)據(jù)Flas晅一并擦除廣」C000000000010000020000030000U4U000050000U6U000070000030000090OOOUAUOOOOEUOOOOCOOOOULiUOOOUEUOOOOFU00010000011080

3E

宗41¥A200FA80222022E5C20074564TF.BA2DE800122D2CO

OAFl75FOE:7T5CE904F4574FAOA22F592EO22FO24D28130004C3A306E:227480C2E5E3751030EE60F83B542074E:4COAFC291FO05FO84050075C2744Li20A20101A392D22420102420D28090024520雄A280C290CO74843085E:5FF54206EiA274F5

yi

書E5CO20C2T54C74452074809922D2BCA285FOFOFOE:6AU22522E38EEJi7890C2no202485C2FFF.B44002022A2CO1890EOFO3020ClE:5器492000A27EBC22暮FO22D215004T56741999A220C27FAFCl20H2E:6312A494F386B7F74E490FA22ehFOClE700oc74544C74648093AF22EiFEC05noC2D231n14154A2ucIIFMB4IIFF5FE7F20clFLEEE5pSlepS/步驟5:Dcwnl^d/下載先點下載按鈕再MCU上電復位逾啟動Stop/停止■Ee-Downlosd/'廠毎次下我前重新調(diào)入已打開在緩沖區(qū)的文件,方便調(diào)試使用

:-當目標代碼發(fā)生變化后自動調(diào)班友件,并立即發(fā)送下我命瑟Chinese:正在嘗試與MCU/單片機握手連接「1丨話菲疔wwwMPlf—Mpmnrv「亦網(wǎng)站U時斗氐下功能僅針對:STC89C51RC/EJJ+系列單片機新版本C版有敷年E月嗎后供貨用戶軟件啟動內(nèi)部看門狗后r只有停電關(guān)看門狗忖復位關(guān)看門狗下載成功聲音提示:YES'rNO童復下載間隔時間砂)2工選項自定鑿下我脫機下載|檢直耐選項自動増星ISPEEMCJJ2..http:?CU-le*ory^com技術(shù)支持:13922KU5190永平)Ver:3.91STC-ISP?exerStep3/步驟3:Select.COMFort,MaxBaud/選擇串行口,攝高波特率COM:|COM4~耳:..:攝高波特率:~刁潔嘗試提高最低波特率或使攝高波特率=攝低波特率:2400'廠毎決下我前彥新調(diào)尺已打開在緩沖國的文件‘方便調(diào)試使用廣當目標代碼發(fā)生變化后自動調(diào)入文件,并立即發(fā)送下我命選項自定鬼干載|脫機下載]檢查MCU選項]自動増量\ISFEEMCjJ?.|-St&p2/步驟2:OpenFile總打開文件戌件范圍內(nèi)未用區(qū)域埴皿);一國始地址(heQ校驗和|0|000A£l37H-1^打開文件前渚0緩沖OpenFile/打開文件JP打-訐丈件前漬0緩沖打開數(shù)據(jù)文件i-^ep47步驟4:DoubleSpeed設(shè)置敦倍速,缺省為普通速度Doiiblespeed/雙倍速:6T/X?倍速f*12T/單倍速振蕩放犬器増益:ri/2gain■*fullgain如需低功耗,16MHiEA下振蕩器増益可選1從gain下挨後啟動Fl.0.P1.1:V與下載無關(guān)C等于0,0才可下我,快速啟動內(nèi)部擴展AUX-RAM:廣禁止訪問忖允許訪問堺雖烈推薦)下次下載用戶應(yīng)用程序時將數(shù)據(jù)FIX晅一井擦除「YES.NO下載成功聲音提示―復下載間隔時間返—ET-Etepl/步驟1:E.electMCUTyp1C"Typee選擇單片機型號APMemorv00001FFF忘在擦除應(yīng)用程序區(qū)…正在下聿…J汙箱時間Program0K/下載0KVerify0K/檢驗0Kerasetim苗/展曉町間:progr:amtimes/下載時間Hav-eaiready:'eiicrypt.図下功能僅針對.STC89C51Rfi'7RI+系列單片機新版本C版有效如05年E耳以后供貨用戶軟件啟動內(nèi)部看門狗后「只有停電關(guān)看門狗忙復位關(guān)看門狗(00:01:13:11:23)00:01.00:001-已加密IStep5/步驟5:Download/下載先點下載按鈕再MCU上電復位■冷啟動Re-Dowriload/重復下載Downlgd/下載|Hix地址000102030405060708090A0EOCOH0EOF丄00000080007581607580FF75AUFF111531OC310000103E11CESOF8C290114C116E:90002A7401000020117490003B740211T4224449474954410000304C564F4C544Ei4554455200205F.4F4C540000404147453A2020202020562000743811A2000050116E:743811A211BE743811A2116E:74OC00006011A2116B740111A2116E227E197F64HF000070FEDEFA22B401oc748011A2119974SO11000080A2800A74CO11A2119974CO11A2E493E:4ooociyn00012211AFA380F5227818742011AFD8OOOOAUFA22F5SOC292C291D29011BCC29022F5OOOOEU80D292C291L29011ECC290227FFALiFFEOOOOCO22COELIE5F024CO11A2noE011AF22ECT5OOOOEiU200A11E30520742E8520F011ClED0520OOOOEU11Fl2275F01084E5F024308520F011ClOOOOFU2275F010842430COF08520F011ClLUF0000100E5F0243005208520F011Cl22L2B7C2B5000110C2B7D2EG00L2B5C2BE.C2B5D2EG00D2B5二文件緩沖EI_no_串口調(diào)試助手工程文件〕FileBuffer:F:\51開發(fā)板-學習板\C51程序\ADC0832數(shù)字電壓表\ADC084.3本章小結(jié)本章主要對系統(tǒng)軟件調(diào)試環(huán)境進行介紹,并詳細的解釋了軟件應(yīng)用流程。以便于我們對它進行使用。包括軟件介紹和調(diào)試中存在的問題和解決辦法以及顯示結(jié)果。第5章系統(tǒng)程序設(shè)計5.1系統(tǒng)程序設(shè)計流程圖初始化讀日期、時間寫日期、時間顯示子程序開關(guān)控制子程序日期修改子程序X時間修改子程序顯示結(jié)果返回圖5-1主程序流程圖時鐘程序模塊詳細流程圖圖4.2DS12C887的流程圖5.2.1程序流程圖對應(yīng)程序代碼voidinit_ds12887(unsignedchar*time){unsignedchartime_rigst;P12887b=0x80;//SET=1芯片停止工作允許初始化Year=*time;time++;Month=*time;time++;Day=*time;time++;Hour=*time;time++;Min=*time;P12887_databuf=0x55;P12887a=0x20;//00100000工作頻率32.768kHztime_rigst=P12887c;//清除中斷請求標志time_rigst=P12887d;//片內(nèi)寄存器和RAM數(shù)據(jù)有效P12887b=0x06;//00000110關(guān)閉報警中斷,2進制數(shù),24小時制,芯片工作

}unsignedcharRead12887(unsignedcharucType)//讀取系統(tǒng)時間ucType代表要讀的內(nèi)容{unsignedcharidataucValue;while((P12887a&0x80)==0x80);//{t++;if(t>20000)break;};//12887A寄存器最高位為112887處于更新狀態(tài)禁止讀寄存器switch(ucType)//察看要讀的內(nèi)容{case1:ucValue=Year;//取年寄存器break;case2:if((Month<1)||(Month>12))Month=1;//月校正ucValue=Month;//取月寄存器break;case3://取日寄存器//小時校正////取日寄存器//小時校正//取小時寄存器//分校正//取分寄存器case4:if(Hour>23)Hour=0;ucValue=Hour;break;case5:if(Min>59)Min=0;ucValue=Min;break;case6:if(Second>59)Second=0;//秒校正

ucValue=Second;break;〃取秒寄存器default:ucValue=0;ucValue=Second;break;〃取秒寄存器default:ucValue=0;}returnucValue;//返回讀的數(shù)據(jù)}voidwait();液晶程序模塊詳細流程圖圖5-31602LCD的流程圖5.3.1程序流程圖對應(yīng)程序代碼/不不不不不不不不不不不不不不不不不不不不不不不J/彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、彳、/

voidsend_command(uintcommand){wait();L_W_C=command;voiddelay(){uinti,j;for(i=0;i<50;i++)for(j=0;j<50;j++)voidwait(){ucharx;do{x=L_R_C;}while(x&0x80);delay();寫數(shù)據(jù)}寫數(shù)據(jù)/不不不不不不不不不不不不不不不不不不不不不不不不不voidsend_data(uintsdata){wait();L_W_D=sdata;voiddis_time(ucharaddr,uchartype){uchardis_h,dis_l;uchartime_buf,star_addr;if(addr<16)star_addr=0x80;elsestar_addr=0xc0-10;time_buf=Read12887(type);dis_h=time_buf/10+0x30;dis_l=time_buf%10+0x30;send_command(star_addr+addr);send_data(dis_h);send_command(star_addr+1+addr);send_data(dis_l);

5.4按鍵控制程序模塊詳細流程圖開等馬握縫理序等待按就稈序加讎奇端分鐘減分鐘加年/)□月加年詭月滅臼加控制讎旨敕.應(yīng)入小耐明整團予按讎有效,跳出時間購整程庁>進入王睛環(huán)程庁控制避有頰,進入月關(guān)整程序瀟健有'敕臼遁L]控制鍵有就,進入好$中調(diào)整程廳控刪磁:何效.進人星期陰整程用控制屣有效*避入日陶整程序控制膛口救?遊入年調(diào)整鋰序等待慢謹程呼等待扌秦邂程廳5.4按鍵控制程序模塊詳細流程圖開等馬握縫理序等待按就稈序加讎奇端分鐘減分鐘加年/)□月加年詭月滅臼加控制讎旨敕.應(yīng)入小耐明整團予按讎有效,跳出時間購整程庁>進入王睛環(huán)程庁控制避有頰,進入月關(guān)整程序瀟健有'敕臼遁L]控制鍵有就,進入好$中調(diào)整程廳控刪磁:何效.進人星期陰整程用控制屣有效*避入日陶整程序控制膛口救?遊入年調(diào)整鋰序等待慢謹程呼等待扌秦邂程廳聊待按灘程疥減礎(chǔ)育牧加曜孩趣加讎掃敞減鍵有敘加髓育敏減關(guān)宵敞加璉有就星期減IT冊加i星期加I圖6時間調(diào)整程序流程圖5.4.1程序流程圖對應(yīng)程序代碼voidkey(){unsignedcharpd1,zc,wei=1;P12887b=0x80;//SET=1芯片停止工作允許初始化send_command(0x0f);send_command(0x81);pd1=1;//send_data(time_int[0]/10);zc=time_int[0]/10;while(pd1){right=left=up=left=ok=1;if(up==0){zc++;send_data(zc+48);send_command(0x80+wei);while(!up);}if(down==0){zc--;send_data(zc+48);send_command(0x80+wei);while(!down);}if(right==0){//zc=0;switch(wei){case1:temp_time[0]=zc*10;zc=time_int[0]%10;wei++;break;case2:temp_time[0]+=zc;zc=time_int[1]/10;wei+=2;break;case4:temp_time[1]=zc*10;zc=time_int[1]%10;wei++;break;case5:temp_time[1]+=zc;zc=time_int[2]/10;wei+=2;break;case7:temp_time[2]=zc*10;zc=time_int[2]%10;wei++;break;case8:temp_time[2]+=zc;zc=time_int[3]/10;wei=0x47;break;case0x47:temp_time[3]=zc*10;zc=time_int[3]%10;wei++;break;case0x48:temp_time[3]+=zc;zc=time_int[4]/10;wei+=2;break;case0x4a:temp_time[4]=zc*10;zc=time_int[4]%10;wei++;break;case0x4b:temp_time[4]+=zc;pd1=0;break;default:;}//send_data(zc+48);send_command(0x80+wei);while(!right);}}for(pd1=0;pd1<5;pd1++){time_int[pd1]=temp_time[pd1];}init_ds12887(time_int);send_command(0x0c);}5.5本章小結(jié)本章主要是針對系統(tǒng)程序進行設(shè)計,以及一些流程圖的構(gòu)建。當本章敘述完以后也就代表了整個設(shè)計接近尾聲了,剩下的就是一些修正和調(diào)試工作。對于各種模塊的功能以及子程序如何編寫有了更詳細深刻的了解。本次用C語言編寫的萬年歷系統(tǒng)主要實現(xiàn)了年歷、月歷、日歷的顯示,并且可通過鍵盤來變換相應(yīng)的年月日,最終的設(shè)計結(jié)果達到的這些要求,通過這次課程設(shè)計,使我對C語言了解不在停留在書面的了解,而是有了更深的理解,培養(yǎng)了自己的分析能力和設(shè)計能力,受益匪淺。本系統(tǒng)是以單片機AT89S52芯片為核心部件,實現(xiàn)了時鐘的功能。此次在軟件上是花費時間最多的,由于很多的知識早已經(jīng)遺忘并且在原來的學習中,這部分知道掌握的并不是特別好,很多的內(nèi)容理解都是翻看原來的教科書再結(jié)合自己圖書館的書的基礎(chǔ)上理解來的,平時我們上網(wǎng)找資料,上圖書館,盡可能的了解有關(guān)于C語言這方面的知識。通過這次課程設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我初步了解了C語言的原理,并且在硬件方面,對原來所學的單片機上的很多內(nèi)容進行了溫故。參考文獻參考文獻周興華編著.手把手教你學單片機C程序設(shè)計.北京:北京航空航天大學出版社,2007侯玉寶編著.基于Proteus的51系列單片機設(shè)計與仿真.北京:電子工業(yè)出版社,2008張義和編著?例說51單片機(C語言).北京:人民郵電出版社.2008李朝青編著.單片機原理及接口技術(shù).北京:北京航空航天大學出版社,2005周慈航編著.單片機應(yīng)用程序設(shè)計基礎(chǔ).北京:北京航空航天大學出版社,1991馬忠梅編著.單片機的C語言應(yīng)用程序設(shè)計.北京:北京航空航天大學出版社,2003李廣弟編著.單片機基礎(chǔ).北京:北京航空航天大學出版社,1994曾巧媛編著.單片機原理及應(yīng)用.北京:電子工業(yè)出版社,1997邱麗芳編著.單片機原理與應(yīng)用.人民郵電出版社,2007何立民編著.MCS-51系列單片機應(yīng)用系統(tǒng)設(shè)計.北京航空航天大學出版社,2003電路圖33'3?PIOP】6PHP25P12FMPl)P23P14P22PISPHPI6P20P17RESETPD6P02WSQWAD7AD6AD5AD4NCADJNCAD2NCADINCADO—ICWIRQDS畑伽openfileODocum2OI2-OWI1SizeNumberentsandA4電路板照片程序代碼#include<reg52.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedint#defineL_W_DXBYTE[0Xf9ff]#defineLW_CXBYTE[0Xf1ff]#defineLR_CXBYTE[0Xf5ff]#defineSecondXBYTE[0xfe00]秒//#defineSecondAlarmXBYTE[0xfe01]秒鬧//#defineMinXBYTE[0xfe02]分//#defineMinAlarmXBYTE[0xfe03]分鬧//#defineHourXBYTE[0xfe04]小時//

#defineHourAlarmXBYTE[0xfe05]小時/鬧/#defineDayXBYTE[0xfe07]日//#defineMonthXBYTE[0xfe08]月//#defineYearXBYTE[0xfe09]年//#defineP12887aXBYTE[0xfe0a]//12887的A寄存器XBYTE[0xfe0b]XBYTE[0xfe0c]#definePl2887bXBYTE[0xfe0b]XBYTE[0xfe0c]//12887的B寄存器#defineP12887c//12887的C寄存器#definePl2887d//12887的D#definePl2887d//12887的D寄存器#defineP12887e//12887內(nèi)的存儲空間#defineP12887fXBYTE[0xfe0d]XBYTE[0xfe0e]XBYTE[0xfe0f]#defineP12887_databufXBYTE[0xfe10]sbitright=PlA4;sbitleft=PlA5;sbitup=PlA6;sbitdown=PlA7;sbitok=P3A2;sbitbeep=P1A3;uchartime_int[]={12,6,26,9,10};uchartemp_time[]={0,0,0,0,0};voidinit_ds12887(unsignedchar*time){unsignedchartime_rigst;P12887b=0x80;//SET=1芯片停止工作允許初始化Year=*time;time++;Month=*time;time++;if((Day<1)||(Day>31))Day=1;if((Day<1)||(Day>31))Day=1;//日校正Day=*time;time++;Hour=*time;time++;Min=*time;P12887_databuf=0x55;P128

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論