畢業(yè)設(shè)計(論文)-基于單片機(jī)多功能電子時鐘的設(shè)計與仿真(含程序仿真) .doc_第1頁
畢業(yè)設(shè)計(論文)-基于單片機(jī)多功能電子時鐘的設(shè)計與仿真(含程序仿真) .doc_第2頁
畢業(yè)設(shè)計(論文)-基于單片機(jī)多功能電子時鐘的設(shè)計與仿真(含程序仿真) .doc_第3頁
畢業(yè)設(shè)計(論文)-基于單片機(jī)多功能電子時鐘的設(shè)計與仿真(含程序仿真) .doc_第4頁
畢業(yè)設(shè)計(論文)-基于單片機(jī)多功能電子時鐘的設(shè)計與仿真(含程序仿真) .doc_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

程序仿真等全套設(shè)計,聯(lián)系153893706第1章 緒 論1.1引言二十一世紀(jì)的今天,最具代表性的計時產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機(jī)械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機(jī)械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機(jī)數(shù)碼計時技術(shù)的應(yīng)用(電子萬年歷),使計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動日期、星期、溫度以及其他日常附屬信息的顯示功能,它更符合消費者的生活需求!因此,電子萬年歷的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進(jìn)步我國生產(chǎn)的電子萬年歷有很多種,總體上來說以研究多功能電子萬年歷為主,使萬年歷除了原有的顯示時間,日期等基本功能外,還具有鬧鈴,報警等功能。商家生產(chǎn)的電子萬年歷更從質(zhì)量,價格,實用上考慮,不斷的改進(jìn)電子萬年歷的設(shè)計,使其更加的具有市場。本設(shè)計為軟件,硬件相結(jié)合的一組設(shè)計。在軟件設(shè)計過程中,應(yīng)對硬件部分有相關(guān)了解,這樣有助于對設(shè)計題目的更深了解,有助于軟件設(shè)計?;镜囊私庖恍┲饕骷幕竟δ芎妥饔?。除了采用集成化的時鐘芯片外,還有采用mcu的方案,利用at89系列單片微機(jī)制成萬年歷電路,采用軟件和硬件結(jié)合的方法,控制led數(shù)碼管輸出,分別用來顯示年、月、日、時、分、秒,其最大特點是:硬件電路簡單,安裝方便易于實現(xiàn),軟件設(shè)計獨特,可靠。at89c52是由atmel公司推出的一種小型單片機(jī)。95年出現(xiàn)在中國市場。其主要特點為采用flash存貯器技術(shù),降低了制造成本,其軟件、硬件與mcs-51完全兼容,可以很快被中國廣大用戶接受。本文介紹了基于at89c52單片機(jī)設(shè)計的電子萬年歷。1.2 選題背景及研究的目的與意義1.2.1 設(shè)計的目的電子鐘已成為人們?nèi)粘I钪斜夭豢缮俚奈锲罚瑥V泛用于個人家庭以及車站 碼頭、劇院、辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來了極大的方便。隨著技術(shù)的發(fā)展人們已經(jīng)不再滿足于鐘表原先簡單的計時功能,希望出現(xiàn)一些新的功能,諸如日歷的顯示鬧鐘的應(yīng)用等,以帶來更大的方便,而所有這些,又都以數(shù)字化的電子時鐘為基礎(chǔ)的。因此,研究實用電子時鐘及其擴(kuò)展應(yīng)用,有著非常現(xiàn)實的意義,具有很大的實用價值。1.2.2 研究的意義 由于數(shù)字集成電路的發(fā)展采用了先進(jìn)的石英技術(shù),現(xiàn)代電子時鐘具有走時準(zhǔn)確性能穩(wěn)定 制作維修簡單等優(yōu)點,彌補(bǔ)了傳統(tǒng)鐘表的許多不足之處。我們利用單片機(jī)技術(shù)設(shè)計制作的電子萬年歷,可以很方便的由軟件編程進(jìn)行功能的調(diào)整和改進(jìn),使其能夠準(zhǔn)確顯示年月 日 時間 星期的同時,還能具有很多其他功能。如設(shè)置鬧鐘 語音報時 陰陽歷的轉(zhuǎn)換 二十四節(jié)氣的顯示等,有一定的新穎性和實用性,同時體積小 攜帶方便,使用也更為方便,具有技術(shù)更新周期短 成本低 開放靈活等優(yōu)點,具備一定的市場前景。這里介紹的就是一款可滿足使用者特殊要求,輸出方式靈活 計時準(zhǔn)確 性能穩(wěn)定 維護(hù)方便的使用電子萬年歷。采用單片機(jī)進(jìn)行遙控系統(tǒng)的應(yīng)用設(shè)計,具有硬件接口簡單方便,變成靈活多樣,操作碼個數(shù)可隨意設(shè)定等優(yōu)點。1.3 研究內(nèi)容1、選用電子萬年歷芯片時,應(yīng)重點考慮功能實在、使用方便、單片存儲、低功耗、抗斷電的器件。2、根據(jù)選用的電子萬年歷芯片設(shè)計外圍電路和單片機(jī)的接口電路。3、在硬件設(shè)計時,結(jié)構(gòu)要盡量簡單實用、易于實現(xiàn),使系統(tǒng)電路盡量簡單。4、根據(jù)設(shè)計的硬件電路,編寫控制at89c51芯片的單片機(jī)程序。5、通過編程、編譯、調(diào)試,把程序下載到單片機(jī)上運行,并實現(xiàn)本設(shè)計的功能。6、在硬件電路和軟件程序設(shè)計時,主要考慮提高人機(jī)界面的友好性,方便用戶操作等因素。7、軟件設(shè)計時必須要有完善的思路,要做到程序簡單,調(diào)試方便。1.4 國內(nèi)外課題研究概況:1957年,ventura發(fā)明了世界上的第一個電子表,奠定了電子時鐘的基礎(chǔ),電子時鐘開始迅速發(fā)展起來。20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎涉及了社會的各個領(lǐng)域,有力的推動了社會的發(fā)展和信息化社會程度的提高,同時使現(xiàn)在電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。數(shù)字時鐘已經(jīng)成為人們?nèi)粘I钪械谋匦杵?。盡管現(xiàn)在市場上已有現(xiàn)成的數(shù)字鐘集成電路芯片出售,并且價格便宜,使用方便。但考慮到單片機(jī)電子時鐘電路的基本組成包涵了數(shù)字電路的主要組成部分,因此進(jìn)行數(shù)字時鐘的設(shè)計和模擬是必要的。研究數(shù)字鐘及擴(kuò)大其應(yīng)用范圍有著非常重要意義。從電子時鐘近年的發(fā)展趨勢來看,正朝著多層次用戶、多品種、多規(guī)格、高精度、小體積、低能耗等方面發(fā)展。在這種趨勢下,時鐘的數(shù)字化,智能化已經(jīng)成為現(xiàn)代時鐘生產(chǎn)研究的主導(dǎo)設(shè)計方向。帶有時鐘功能的電子產(chǎn)品和電子設(shè)備進(jìn)年來廣泛地出現(xiàn)在國內(nèi)外市場中。例如奧運會倒計時顯示屏、鐵路安全顯示屏、生產(chǎn)線看板、體育比賽記時屏、大型室外高亮度時鐘等,這類產(chǎn)品覆蓋銀行、醫(yī)院、地鐵車站、體育運動、電視臺、監(jiān)控系統(tǒng)、高大建筑物等行業(yè)。電子鐘是一種利用數(shù)字電路來顯示秒、分、時的計時裝置,與傳統(tǒng)的機(jī)械鐘相比,它具有走時準(zhǔn)確、顯示直觀、無機(jī)械傳動裝置等優(yōu)點,因而得到廣泛應(yīng)用。隨著人們生活環(huán)境的不斷改善和美化,在許多場合可以看到數(shù)字電子鐘。lcd數(shù)字電子鐘已經(jīng)成為一種時尚,但目前市場上各式各樣的lcd數(shù)字電子鐘大多數(shù)用全硬件電路實現(xiàn),電路結(jié)構(gòu)復(fù)雜,功率損耗大等缺點。因此有必要對數(shù)字電子鐘進(jìn)行改進(jìn)。電子技術(shù)是十九世紀(jì)末、二十世紀(jì)初開始發(fā)展起來的新興技術(shù),二十世紀(jì)發(fā)展最迅速,應(yīng)用最廣泛,成為近代科學(xué)技術(shù)發(fā)展的一個重要標(biāo)志。在其推動下,現(xiàn)代電子產(chǎn)品正在以前所未有的革新速度,向著功能多樣化、體積最小化、功耗最低化的方向迅速發(fā)展,電子技術(shù)的發(fā)展有力的推動社會生產(chǎn)力的發(fā)展。機(jī)械式鐘表雖然也可以告知人們時間,也可以定時,顯示日歷。但是由于受到機(jī)械結(jié)構(gòu)、動力和體積的限制,在功能、性能以及造價上都沒辦法與電子時鐘相比。電子鐘是采用電子電路實現(xiàn)對時、分、秒進(jìn)行數(shù)字顯示的計時裝置,廣泛應(yīng)用于個人家庭,室外廣場,汽車站和火車站等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴(kuò)展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、定時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,電子鐘的研究有著良好的發(fā)展前景和市場潛力。protues軟件是英國labcenter electronics公司出版的eda工具軟件。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。它與其他軟件最大的不同及最大的優(yōu)點在于它能夠仿真大量的單片機(jī)芯片比如mcs-51系列,以及單片機(jī)的外圍電路,比如鍵盤、led等。通過protues軟件的使用,我們能夠輕易的獲得一個功能齊全、實用方便的一個單片機(jī)實驗室。本設(shè)計是以51系列單片機(jī)為核心的電子時鐘,通過數(shù)碼點陣顯示,能夠?qū)崿F(xiàn)基本時間和日歷的顯示并且可通過鍵盤對時間進(jìn)行調(diào)整。應(yīng)用protues軟件進(jìn)行單片機(jī)系統(tǒng)電子時鐘的設(shè)計與仿真的實現(xiàn)。該方法既能驗證所設(shè)計的系統(tǒng)是否滿足實際的技術(shù)要求,又能提高系統(tǒng)的設(shè)計與質(zhì)量,降低開發(fā)成本,提高系統(tǒng)價值。第2章 整體設(shè)計方案2.1 設(shè)計要求基本要求:1.設(shè)計一個多功能電子鐘系統(tǒng);2.實現(xiàn)時間、日期、星期的顯示;3.能進(jìn)行對時;4.確定單片機(jī)的型號;5.設(shè)計單片機(jī)外部接線圖及軟件流程圖。6.進(jìn)行軟件編程及調(diào)試。7.系統(tǒng)仿真。創(chuàng)新要求:加入一個檢測溫度的系統(tǒng)并能在lcd上顯示2.2 系統(tǒng)基本方案的選擇和論證2.2.1單片機(jī)芯片的選擇方案和論證:方案一: 采用傳統(tǒng)的at89c51作為電機(jī)的控制核心。單片機(jī)算術(shù)運算功能強(qiáng),軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域應(yīng)用廣泛。采用ftc10f04單片機(jī),還帶有非易失性flash程序存儲器。它是一種高性能、低功耗的8位cmos微處理芯片,市場應(yīng)用最多。其主要特點如下:8kb flash rom,可以擦除1000次以上,數(shù)據(jù)保存10年。由于本系統(tǒng)對cpu運算速度要求很高,需要執(zhí)行很復(fù)雜的運算,方案一成本比較低,適合做設(shè)計,方案二運算速度高,性能好,所以兩種方案都有可取之處。選用方案一作為主方案,方案二作為備用方案。2.2.2顯示模塊選擇方案和論證:方案一: 采用led液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設(shè)計中不采用led液晶顯示屏。方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。方案三:采用lcd液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示文字,圖形,顯示多樣,清晰可見.而且體積較小,使用方便,更容易滿足工程上對于電路更加簡潔的要求,讓我們學(xué)習(xí)到更多的關(guān)于液晶顯示器的知識,所以選擇了液晶顯示器,根據(jù)本設(shè)計的數(shù)據(jù)顯示要求選擇lcd1602液晶即可。2.2.3時鐘芯片的選擇和論證:方案一:直接采用單片機(jī)定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。方案二:采用ds1302時鐘芯片實現(xiàn)時鐘,ds1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計數(shù),而且精度高,位的ram做為數(shù)據(jù)暫存區(qū),工作電壓2.5v5.5v范圍內(nèi),2.5v時耗電小于300na。2.2.4溫度傳感器的選擇方案與論證:方案一:使用熱敏電阻作為傳感器,用熱敏電阻與一個相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個電阻變化的分壓值,并進(jìn)行a/d轉(zhuǎn)換。此設(shè)計方案需用a/d轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會產(chǎn)生較大的測量誤差。方案二:采用數(shù)字式溫度傳感器ds18b20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以去除a/d模塊,降低硬件成本,簡化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測量精度高、測量范圍廣等優(yōu)點(測溫程序說明在附錄)。2.3 系統(tǒng)總體方案按照系統(tǒng)設(shè)計功能的要求,對此次作品的方案選定: 采用at89s52作為主控制系統(tǒng); ds1302提供時鐘;數(shù)字式溫度傳感器;lcd液晶顯示屏作為顯示單元;鍵盤。電路系統(tǒng)構(gòu)成框圖如圖所示:圖2.1 系統(tǒng)框圖主控芯片使用51系列at89c51單片機(jī),時鐘芯片使用美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘ds1302。采用ds1302作為計時芯片,可以做到計時準(zhǔn)確。更重要的是,ds1302可以在很小電流的后備電源(2.55.5v電源,再2.5v時耗電小于300na),而且ds1302可以編程選擇多種充電電流來隊后備電源進(jìn)圖。2.4 本章小結(jié)本章首先介紹了計算機(jī)控制系統(tǒng)的五種基本形式,經(jīng)查閱相關(guān)資料確定了本文所需要設(shè)計的單片機(jī)電子時鐘概念。根據(jù)實際情況與技術(shù)要求,畫出了系統(tǒng)結(jié)構(gòu)框圖,并擬定了系統(tǒng)總體設(shè)計方案,包括傳感器單元、鍵盤單元、時鐘芯片及顯示單元系統(tǒng)各部分,并對每一部分都進(jìn)行了較詳細(xì)的敘述。第3章 系統(tǒng)硬件設(shè)計3.1 本系統(tǒng)的硬件設(shè)計概述本電路是由at89c51單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3v超低壓工作;時鐘電路由ds1302提供,它是一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內(nèi)部有一個31*8的用于臨時性存放數(shù)據(jù)的ram寄存器??僧a(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;溫度的采集由ds18b20構(gòu)成;顯示部份由lcd顯示。3.2 單片機(jī)的選擇及分析3.2.1 單片機(jī)的定義和特點所謂單片機(jī)就是把cpu、寄存器、ram/rom、i/o接口電路集成在一塊集成電路芯片上,構(gòu)成一個完整的微型計算機(jī)。單片機(jī)的主要特點有:1、集成度高、功能強(qiáng): 微型計算機(jī)通常由中央處理器(cpu)、存儲器(ram, rom)以及i/o接口組成,其各部分分別集成在不同的芯片上。例如,大家熟悉的z80微型計算機(jī)就是由z80-cpu、存儲器(ram, rom), pio等芯片組成的,單片機(jī)則不同,它把cpu, ram, rom, i/o接口,以及定時器/計數(shù)器都集成在一個芯片上。目前應(yīng)用得最多的是mcs-51系列單片機(jī)。 和微型計算機(jī)進(jìn)行比較,單片機(jī)不僅體積大大減小,而且功能大為增強(qiáng)。mcs-51系列單片機(jī)內(nèi)的定時/計數(shù)器為16位,而z80微型計算機(jī)只有8位,mcs-51系列單片機(jī)中不但有4個并行i/o接口,而且還有串行接口,且時鐘頻率可達(dá)12mhz。2、結(jié)構(gòu)合理: 目前單片機(jī)大多采用harvard結(jié)構(gòu)。這是數(shù)據(jù)存儲器與程序存儲器相互獨立的一種結(jié)構(gòu)。而在許多微型計算機(jī)(如z80, inte18085, m6800等)中,大都采用兩類存儲器合二為一(即統(tǒng)一編址)的方式。單片機(jī)采用上述結(jié)構(gòu)主要有四點好處存儲量大、速度快、抗干擾性、強(qiáng)指令豐富。3.2.2 單片機(jī)的發(fā)展概況自從1974年12月美國仙童(fairchild )公司第一個推出8位單片機(jī)fs以來,單片機(jī)以驚人的速度發(fā)展,從4位機(jī)、8位機(jī)發(fā)展到16位機(jī)、32位機(jī),集成度越來越高,功能越來越強(qiáng),應(yīng)用范圍越來越廣。到目前為止,單片機(jī)的發(fā)展主要可分為以下四個階段:第一階段:4位單片機(jī)。這種單片機(jī)的特點是價格便宜,控制功能強(qiáng),片內(nèi)含有多種i/o接口,如并行i/o接口、串行i/o接口、定沖計數(shù)器接口、中斷功能接口等。根據(jù)不同用途,還配有許多專用接口,如打印機(jī)接口、鍵盤及顯示器接口,pla(可編程邏輯陣列)譯碼輸出接口,有些甚至還包括a/d, d/a轉(zhuǎn)換,pll(鎖相環(huán)),聲音合成等電路。豐富的i/o功能大大地增強(qiáng)了4位單片機(jī)的控制功能,從而使外部接口電路極為簡單。第二階段:低、中檔8位機(jī)(1974-1978年)。這種8位機(jī)一般不帶有i/o接口,尋址范圍通常為4kb。它是8位機(jī)的早期產(chǎn)品,如mostek公司的3870, intel公司的8048等單片機(jī)即屬此類。第三階段:高檔8位機(jī)階段(1978-1982年)。這一類單片機(jī)常有串行i/o接口,有多級中斷處理,定時/計數(shù)器為16位,片內(nèi)的ram和rom的容量相對增大,且尋址范圍可達(dá)64kb,有的片內(nèi)還帶有a/d轉(zhuǎn)換接口。這類單片機(jī)有intel公司的mcs-51,motorola公司的6801和ziiog公司的z8等。由于這類單片機(jī)應(yīng)用領(lǐng)域較廣,其結(jié)構(gòu)和性能還在不斷地改進(jìn)和發(fā)展。第四階段:16位單片機(jī)和超8位單片機(jī)(1982年至今)。此階段的主要特征是,一方面不斷完善高檔8位機(jī),改善其結(jié)構(gòu),以滿足不同用戶的需要;另一方面發(fā)展16位單片機(jī)及專用單片機(jī)。16位單片機(jī)除了cpu為16位外,片內(nèi)ram和rom的容量也進(jìn)一步增大,片內(nèi)ram為232字節(jié),rom為8kb,片內(nèi)帶有高速輸入輸出部件,多通道10位a/d轉(zhuǎn)換部件,中斷處理為8級,其實時處理能力更強(qiáng)。近來,32位單片機(jī)己進(jìn)入實用階段,但還未引入國內(nèi)市場。在今后單片機(jī)的發(fā)展趨勢將是:向著大容量、高性能化,小容量、低價格化和外圍電路內(nèi)裝化等幾個方面發(fā)展。3.2.3本系統(tǒng)單片機(jī)的選擇at89c51是美國atmel公司生產(chǎn)的低電壓,高性能cmos8位單片機(jī),片內(nèi)含4k bytes的反復(fù)擦寫的flash只讀程序存儲器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(cpu)和flash存儲單元可靈活應(yīng)用于各種控制領(lǐng)域。圖3.1為其引腳圖。1、主要特性:與mcs-51完全兼容 4k字節(jié)可編程flash存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時間:10年 全靜態(tài)工作:0hz-24mhz 三級程序存儲器鎖定 1288位內(nèi)部ram 32可編程i/o線 兩個16位定時器/計數(shù)器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路2、功能性概述:at89c51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)flash閃速存儲器,128字節(jié)內(nèi)部ram,32個i/o口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,at89c51可下降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。3、at89c51的內(nèi)部結(jié)構(gòu)介紹單片機(jī)電路是系統(tǒng)控制的核心。單片機(jī)選用從atmel公司的低功耗、高性能的8位cmos芯片at89c51,其片內(nèi)帶有4k字節(jié)的閃速可編程及可擦除只讀存儲器(eprom)。引腳功能說明如下:vcc:電源電壓gnd:地 p0口:p0口是一組8位漏極開路型雙向i/o口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的力式驅(qū)動8個ttl邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在flash編程時,p0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校圖3.1 at89c51引腳圖驗時,要求外接上拉電阻。pl口:p1口是一個帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級叫可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。flash編程和程序校驗期間,p1接收低8位地址。p2口:p2口是一個帶有內(nèi)部上拉電阻的8位雙向i/o口,p2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。在訪問外部序程存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行movxdptr指令)時,p2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行movx ri指令)時,p2口線上的內(nèi)容(也即特殊功能寄存器區(qū)中r2寄存器的內(nèi)容),在整個訪問期間不改變。flash編程或校驗時,p2亦接收高位地址和其它控制信號。p3口:p3口是一組帶有內(nèi)部上拉電阻的8位雙向i/o口。p3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個ttl邏輯門電路。對p3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的p3口將用上拉電阻輸出電流(iil)。p3口除了作為一般的i/0口線外,更重要的用途是它的第二功能,如下表3.1所示。p3口還接收一些用于flash閃速存儲器編程和程序校驗的控制信號。表3.1 p3口第二功能端口引腳第二功能p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2(外中斷0)p3.3(外中斷1)p3.4t0(定時/計數(shù)器0)p3.5t1(定時/計數(shù)器1)p3.6(外部數(shù)據(jù)存儲器寫選通)p3.7(外部數(shù)據(jù)存儲去讀選通)rst:復(fù)位輸入。當(dāng)振蕩器工作時,rst引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ale:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ale仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ale脈沖。對flash存儲器編程期間,該引腳還用于輸入編程脈沖(cs)。如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh單元的d0位置位,可禁止ale操作。該位置位后,只有一條movx和movc指令ale才會被激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ale無效。psen:程序儲存允許(psen)輸出是外部程序存儲器的讀選通信號,當(dāng)at89c51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次psen有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的psen信號不出現(xiàn)。ea/vpp:外部訪問允許。欲使cpu僅訪問外部程序存儲器(地址為0000h-ffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復(fù)位時內(nèi)部會鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲器中的指令。flash存儲器編程時,該引腳加上+12v的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v編程電壓vpp。xtal1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。xtal2:振蕩器反相放大器的輸出端。時鐘振蕩器:圖3.2 內(nèi)部振蕩電路與外部振蕩電路at89c51中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1和xtal2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖3-2。外接石英晶體(或陶瓷諧振器)及電容c1、c2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容c1、c2雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。采用外部時鐘的電路如圖3.2所示,這種情況下,外部時鐘脈沖接到xtal1端,即內(nèi)部時鐘發(fā)生器的輸入端,xtal2則懸空。時鐘電路一般由晶體震蕩器、晶震控制芯片和電容組成。時鐘電路可以簡單定義如下:1、就是產(chǎn)生象時鐘一樣準(zhǔn)確的振蕩電路。2、任何工作都按時間順序。用于產(chǎn)生這個時間的電路就是時鐘電路?,F(xiàn)在流行的串行時鐘電路很多,如ds1302、ds1307、pcf8485等。這些電路的接口簡單、價格低廉、使用方便,被廣泛地采用。3.3 ds1302時鐘電路3.3.1 ds1302的介紹ds1302是美國dallas公司推出的具有涓細(xì)電流充電能力的低功耗實時時鐘電路,它可以對年、月、日、周、日、時、分、秒進(jìn)行計時,且具有閏年補(bǔ)償?shù)榷喾N功能。傳統(tǒng)的數(shù)據(jù)記錄存在時鐘精度不高,易受環(huán)境影響。而且傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此,只能記錄數(shù)據(jù)而無法準(zhǔn)確記錄其出現(xiàn)的時間,出現(xiàn)時鐘混亂等缺點。ds1302可以用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結(jié)果的分析及對異常數(shù)據(jù)出現(xiàn)的原因的查找具有重要意義。若采用單片機(jī)計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費單片機(jī)的資源,而且,某些測控系統(tǒng)可能不允許。但是,如果在系統(tǒng)中采用時鐘芯片ds1302,則能很好地解決這個問題。3.3.2 時鐘電路連接在ds1302的引腳排列中,vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc1+0.2v時,vcc2給ds1302供電。當(dāng)vcc2小于vcc1時,ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對ds1302進(jìn)行操作。如果在傳送過程中rsts置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電動行時,在vcc大于等于2.5v之前,rst必須保持低電平。中有在sclk 為低電平時,才能將rst置為高電平,i/o為串行數(shù)據(jù)輸入端(雙向)。sclk始終是輸入端。3.3 溫度采集模塊設(shè)計ds18b20是一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從ds18b20讀出的信息或?qū)懭雂s18b20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的ds18b20供電,而無需額外電源。因而使用ds18b20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。1、ds18b20有獨特的單線接口方式:ds18b20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20的雙向通訊。2、在使用中不需要任何外圍元件。3、可用數(shù)據(jù)線供電,電壓范圍: 3.05.5 v。4、測溫范圍:-55125 。固有測溫分辨率為0.5 。5、通過編程可實現(xiàn)912位的數(shù)字讀數(shù)方式。6、用戶可自設(shè)定非易失性的報警上下限值。7、支持多點組網(wǎng)功能,多個ds18b20可以并聯(lián)在惟一的三線上,實現(xiàn)多點測溫。8、負(fù)壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。3.4 顯示模塊介紹mlo16液晶模塊采用hd44780控制器。hd44780具有簡單而功能較強(qiáng)的指令集,可以實現(xiàn)字符移動、閃爍等功能。mlo16與單片機(jī)通訊可采用8位或者4位并行傳輸兩種方式。hd44780控制器由兩個8位寄存器、指令寄存器和數(shù)據(jù)寄存器、忙標(biāo)志、顯示數(shù)據(jù)ram、字符發(fā)生器ram、地址計數(shù)器、ir用于寄存指令碼,只能寫入不能獨處;dr用于寄存數(shù)據(jù),數(shù)據(jù)有內(nèi)部操作自動寫入ddram和cgram,或者暫存從ddram何cgram獨處的數(shù)據(jù)。bf位1時,液晶模塊處于內(nèi)部處理模式,不響應(yīng)外部操作指令和接收數(shù)據(jù)。ddram用來存儲顯示的字符,能存儲80個字符碼。cgrom有8位字符碼生成5*7點陣字符或者4個5*10點陣字符。ac可以存儲ddram和cgram的地址,如果地址碼隨指令寫入ir則ir自動把地址碼裝入ac,同時選擇ddram或者cgram單元。3.5 本章小結(jié)本章主要敘述了控制系統(tǒng)的硬件電路的功能和設(shè)計。首先,對本系統(tǒng)硬件部分先進(jìn)行了總體概述并選擇出單片機(jī)型號,除單片機(jī)的主控電路外,還有時鐘電路模塊,溫度采集模塊,顯示模塊的設(shè)計。對硬件輸入與輸出兩方面的每一部分都進(jìn)行了較詳細(xì)的敘述,包括各器件的選型以及相關(guān)的信號調(diào)理電路。第4章 系統(tǒng)軟件設(shè)計4.1程序流程圖4.1.1系統(tǒng)的總體程序流程 在程序設(shè)計過程中,采用合理的程序設(shè)計結(jié)構(gòu)很關(guān)鍵。在本系統(tǒng)設(shè)計過程中,主程序采用了自上而下的設(shè)計思路。本系統(tǒng)的總體程序流程圖如下: 4.1系統(tǒng)總體流程圖4.1.2按鍵調(diào)整程序流程圖本設(shè)計采用三鍵調(diào)時(設(shè)置、上鍵、下鍵),當(dāng)按下設(shè)置鍵后開始用上、下鍵調(diào)分,再次按下設(shè)置鍵開始調(diào)整小時(方法同上),依次類推調(diào)星期、日、月、年如下圖。4.2本章小結(jié)軟件設(shè)計是本系統(tǒng)的重點之一,它直接影響到系統(tǒng)的整體性能。本章詳細(xì)描述了控制軟件的功能和設(shè)計思路。首先介紹軟件的設(shè)計結(jié)構(gòu),然后在說明軟件的操作方法,然后列出軟件相應(yīng)的子程序流程圖與程序清單。4.2 時間調(diào)整程序流程圖第5章proteus系統(tǒng)的仿真5.1編程環(huán)境proteus介紹proteus軟件是由英國labcenter electronics公司開發(fā)的eda工具軟件,由isis和ares兩個軟件構(gòu)成,其中isis是一款便捷的電子系統(tǒng)仿真平臺軟件,ares是一款高級的布線編輯軟件,它集成了高級原理布線圖、混合模式spice電路仿真、pcb設(shè)計以及自動布線來實現(xiàn)一個完整的電子設(shè)計。5.2用proteus isis對時鐘硬件電路設(shè)計通過proteus isis軟件的vsm(虛擬仿真技術(shù)),用戶可以對模擬電路、數(shù)字電路、模數(shù)混合電路,以及基于微控制器的系統(tǒng)連同所有外圍接口電子元器件一起仿真。用proteus isis設(shè)計硬件電路的過程5.2.1選擇設(shè)計圖紙的到小根據(jù)設(shè)計所使用到元器件的多少,選擇合適大小的設(shè)計圖紙,操作是單擊菜單欄上的systemset sheet size ,然后彈出如圖5.1所示的對話框,從中選擇合適大小的圖紙,也可以選擇user進(jìn)行圖紙的自定義設(shè)置。在設(shè)計過程中也可以通過此方法調(diào)整圖紙的大小。圖5.1選擇圖紙5.2.2選取仿真所需的元器件 選取元器件的方式是,單擊如圖5.2所示的按鈕“p”。會彈出如圖5.3所示的窗口。圖5.2選取元器件圖5.3元器件列表從此窗口的左上角的“keywords”中輸入電子萬年歷設(shè)計用到的器件,如輸入“at89c51”,在中間會列出帶有輸入關(guān)鍵字的元器件,選擇合適的元器件并雙擊它,則已經(jīng)選擇好了該元器件。然后再在“keywords”中輸入其他所需的元器件,用同樣的方法進(jìn)行操作。最后選擇好所有的元器件如圖5.4所示。圖5.4所用器件at89c51代表單片機(jī)會,ds1302代表時鐘芯片,respack-8代表八排電阻等。5.2.3把元器件放到圖紙的合適位置進(jìn)行布線單擊如圖5.3所示的元器件at89c51,再在右邊圖紙上單擊,就把元器件放入到了圖紙上。再用同樣的方法把ds1302放入到圖紙的合適位置。如果元器件放置錯誤,這可通過兩次右擊刪除所放置的元器件,如果位置放得不理想,可以先右擊該器件,然后按住左鍵進(jìn)行移動。在布線之前,如果覺得元器件的引腳的方向不好布線,則可以通過單擊四個按鈕進(jìn)行調(diào)整,這四按鈕的意思分別是:順時針旋轉(zhuǎn)90,逆時針旋轉(zhuǎn)90,沿y軸對稱,沿x軸對稱。通過這樣的調(diào)整,可以使整個布局合理一些。接著進(jìn)行布線,由于proteus isis有自動布線的功能。isis還提供了網(wǎng)絡(luò)布線,即不使用線連接也可以把兩個引腳虛擬的連接了起來。具體操作是:單擊要連線的一個引腳,連出適當(dāng)?shù)木嚯x后雙擊,另一個引腳也同樣操作,單擊“l(fā)bl”按鈕,在彈出的窗口中的“string”中填入名稱,如“a” ,對out7引腳進(jìn)行同樣的操作,在“string”中也填入名稱“a”,這樣就完成了引腳的網(wǎng)絡(luò)連接,這個好處避免兩個距離比較遠(yuǎn)的器件進(jìn)行真實線的連接,使布線美觀。5.2.4編輯窗口連接端子要讓最后的設(shè)計成功仿真時,必須放置并連接端子。選擇,從中可以選擇電路原理中的兩個通用的端子,一個是接地,一個是電源。如圖5.5所示。圖5.5連接端子5.3keil工程文件的建立、設(shè)置與目標(biāo)文件的獲得單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)閏pu可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于mcs-51單片機(jī)的匯編軟件有早期的a51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,keil軟件是目前最流行開發(fā)mcs-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持keil即可看出。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通 過一個集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。運行keil軟件需要pentium或以上的cpu,16mb或更多ram、20m以上空閑的硬盤空間、win98、nt、win2000、winxp等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用c語言編程,那么keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件),即使不使用c語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。5.3.1keil工程的建立首先啟動keil軟件的集成開發(fā)環(huán)境,這里假設(shè)讀者已正確安裝了該軟件,可以從桌面上直接雙擊uvision的圖標(biāo)以啟動該軟件。uvison啟動后,程序窗口的左邊有一個工程管理窗口,該窗口有3個標(biāo)簽,分別是files、regs、和books,這三個標(biāo)簽頁分別顯示當(dāng)前項目的文件結(jié)構(gòu)、cpu的寄存器及部份特殊功能寄存器的值(調(diào)試時才出現(xiàn))和所選cpu的附加說明文件1、源文件的建立使用菜單“file-new”或者點擊工具欄的新建文件按鈕,即可在項目窗口的右側(cè)打開一個新的文本編緝窗口,在該窗口中輸入?yún)R編語言源程序保存該文件,注意必須加上擴(kuò)展名(匯編語言源程序一般用asm或a51為擴(kuò)展名),這里假定將文件保存為exam1.asm。需要說明的是,源文件就是一般的文本文件,不一定使用keil軟件編寫,可以使用任意 文本編緝器編寫,而且,keil的編緝器對漢字的支持不好,建議使用ultraedit之類的編緝 軟件進(jìn)行源程序的輸入。2、建立工程文件在項目開發(fā)中,并不是僅有一個源程序就行了,還要為這個項目選擇cpu(keil支持?jǐn)?shù)百種cpu,而這些cpu的特性并不完全相同),確定編譯、匯編、連接的參數(shù),指定調(diào)試的方式,有一些項目還會有多個文件組成等,為管理和使用方便,keil使用工程(project)這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個工程中,只能對工程而不能對單一的源程序進(jìn)行編譯(匯編)和連接等操作,下面我們就一步一步地來建立工程。點擊“project-new project”菜單,出現(xiàn)一個對話框,要求給將要建立的工程起一個名字,你可以在編緝框中輸入一個名字(設(shè)為exam1),不需要擴(kuò)展名。點擊“保存”按鈕,出現(xiàn)第二個對話框,如圖5.2所示,這個對話框要求選擇目標(biāo)cpu(即你所用芯片的型號),keil 支持的cpu很多,我們選擇atmel公司的89c51芯片。點擊atmel前面的“+”號,展開該層,點擊其中的89c51,然后再點擊“確定”按鈕,回到主界面,此時,在工程窗口的文件頁中,出現(xiàn)了“target1”,前面有“+”號,點擊“+”號展開,可以看到下一層的“source group1”,這時的工程還是一個空的工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入,點擊“source group1”使其反白顯示,然后,點擊鼠標(biāo)右鍵,出現(xiàn)一個下拉菜單,選中其中的“add file to group”“source group1”,出現(xiàn)一個對話框,要求尋找源文件,注意,該對話框下面的“文件類型” 默認(rèn)為c source file(*.c),也就是以c為擴(kuò)展名的文件,圖5.1而我們的文件是以asm為擴(kuò)展名的,所以在列表框中找不到 exam1.asm,要將文件類型改掉,點擊對話框中“文件類型”后的下拉列表,找到并選中“asm source file(*.a51,*.asm), 這樣,在列表框中就可以找到 exam1.asm文件了。雙擊exam1.asm文件,將文件加入項目,注意,在文件加入項目后,該對話框并不消失,等待繼續(xù)加入其它文件,但初學(xué)時常會誤認(rèn)為操作沒有成功而再次雙擊同一文件,這時會出現(xiàn)如圖4所示的對話框,提示你所選文件已在列表中,此時應(yīng)點擊“確定”,返回前一對話框,然后點擊“close”即可返回主界面,返回后,點擊“source group 1”前的加號,會發(fā)現(xiàn) exam1.asm 文件已在其中。雙擊文件名,即打開該源程序。圖5.25.3.2工程的詳細(xì)設(shè)置工程建立好以后,還要對工程進(jìn)行進(jìn)一步的設(shè)置,以滿足要求。首先點擊左邊project窗口的target 1,然后使用菜單“project-option for targettarget1” 即出現(xiàn)對工程設(shè)置的對話框,這個對話框可謂非常復(fù)雜,共有 8個頁面,要全部搞清可不容易,好在絕大部份設(shè)置項取默認(rèn)值就行了。設(shè)置對話框中的target頁面,如圖5所示,xtal后面的數(shù)值是晶振頻率值,默認(rèn)值是所選目標(biāo)cpu的最高可用頻率值,對于我們所選的at89c51而言是 24m,該數(shù)值與最終產(chǎn)生的目標(biāo)代碼無關(guān),僅用于軟件模擬調(diào)試時顯示程序執(zhí)行時間。正確設(shè)置該數(shù)值可使顯示時間與實際所用時間一致,一般將其設(shè)置成與你的硬件所用晶振頻率相同,如果沒必要了解程序執(zhí)行的時間,也可以不設(shè),這里設(shè)置為12。memory model用于設(shè)置ram使用情況,有三個選擇項,small是所有變量都在單片機(jī)的內(nèi)部ram中;compact是可以使用一頁外部擴(kuò)展ram,而larget則是可以使用全部外部的擴(kuò)展ram。code model用于設(shè)置rom空間的使用,同樣也有三個選擇項,即small模式,只用低于2k的程序空間;compact 模式,單個函數(shù)的代碼量不能超過2k,整個程序可以使用64k程序空間;larget 模式,可用全部64k空間。use on-chip rom選擇項,確認(rèn)是否僅使用片內(nèi)rom(注意:選中該項并不會影響最終生成的目標(biāo)代碼量);operating 項是操作系統(tǒng)選擇,keil提供了兩種操作系統(tǒng):rtx tiny和rtx full,關(guān)于操作系統(tǒng)是另外一個很大的話題了,通常我們不使用任何操作系統(tǒng),即使用該項的默認(rèn)值:none(不使用任何 操作系統(tǒng));off chip code memory用以確定系統(tǒng)擴(kuò)展rom的地址范圍,off chip xdata memory組用于確定系統(tǒng)擴(kuò)展ram的地址范圍,這些選擇項必須根據(jù)所用硬件來決定,由于該例是單片應(yīng)用,未進(jìn)行任何擴(kuò)展,所以均不重新選擇,按默認(rèn)值設(shè)置。圖5.3設(shè)置對話框中的output頁面,如圖4所示,這里面也有多個選擇項,其中 creat hex file用于生成可執(zhí)行代碼文件(可以用編程器寫入單片機(jī)芯片的hex格式文件,文件的擴(kuò)展名為.hex),默認(rèn)情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項,這一點是初學(xué)者易疏忽的,在此特別提醒注意。選中 debug information將會產(chǎn)生調(diào)試信息,這些信息用于調(diào)試,如果需要對程序進(jìn)行調(diào)試,應(yīng)當(dāng)選中該項。browse information是產(chǎn)生瀏覽信息,該信息可以用菜單view-browse來查看,這里取默認(rèn)值。按鈕“select folder for objects”是用來選擇最終的目標(biāo)文件所在的文件夾,默認(rèn)是與工程文件在同一 個文件夾中。name of executable用于指定最終生成的目標(biāo)文件的名字,默認(rèn)與工程的名字相同,這兩項一般不需要更改。工程設(shè)置對話框中的其它各頁面與c51編譯選項、a51的匯編選項、bl51連接器的連接選項等用法有關(guān),這里均取默認(rèn)值,不作任何修改。圖5.4以下僅對一些有關(guān)頁面中常用的選項作一個簡單介紹。listing標(biāo)簽頁用于調(diào)整生成的列表文件選項。在匯編或編譯完成后將產(chǎn)生( *.lst)的列表文件,在連接完成后也將產(chǎn)生(*.m51)的列表文件,該頁用于對列表文件的內(nèi)容和形式進(jìn)行細(xì)致的調(diào)節(jié),其中比較常用的選項是“c compile listing”下的“assamble code”項,選中該項可以在列表文件中生成c語言源程序所對應(yīng)的匯編代碼。c51標(biāo)簽頁用于對keil的c51編譯器的編譯過程進(jìn)行控制,其中比較常用的是“code optimization”組,該組中l(wèi)evel是優(yōu)化等級,c51在對源程序進(jìn)行編譯時,可以對代碼多至9級優(yōu)化,默認(rèn)使用第8級,一般不必修改,如果在編譯中出現(xiàn)一些問題,可以降低優(yōu)化級別試一試。emphasis是選擇編譯優(yōu)先方式,第一項是代碼量優(yōu)化(最終生成的代碼量?。?;第二項是速度優(yōu)先(最終生成的代碼速度快);第三項是缺省。默認(rèn)的是速 度優(yōu)先,可根據(jù)需要更改。設(shè)置完成后按確認(rèn)返回主界面,工程文件建立、設(shè)置完畢。5.3.3編譯、連接在設(shè)置好工程后,即可進(jìn)行編譯、連接。選擇菜單project-build target,對當(dāng)前工程進(jìn)行連接,如果當(dāng)前文件已修改,軟件會先對該文件進(jìn)行編譯,然后再連接以產(chǎn)生目標(biāo)代碼;如果選擇rebuild all target files將會對當(dāng)前工程中的所有文件重新進(jìn)行編譯然后再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的,而 translate .項則僅對該文件進(jìn)行編譯,不進(jìn)行連接。以上操作也可以通過工具欄按鈕直接進(jìn)行。圖5.5是有關(guān)編譯、設(shè)置的工具欄按鈕,從左到右分別是:編譯、編譯連接、全部重建、停止編譯和對工程進(jìn)行設(shè)置。編譯過程中的信息將出現(xiàn)在輸出窗口中的build頁中,如果源程序中有語法錯誤,會有錯誤報告出現(xiàn),雙擊該行,可以定位到出錯的位置。圖5.5對源程序反復(fù)修改之后,最終會得到如圖5.6所示的結(jié)果,提示獲得了名為exam1.hex的文件,該文件即可被編程器讀入并寫到芯片中,同時還產(chǎn)生了一些其它相關(guān)的文件,可被用于keil的仿真與調(diào)試,這時可以進(jìn)入下一步調(diào)試的工作。圖5.65.4本章小結(jié)在開發(fā)產(chǎn)品時,有時軟件(也就是應(yīng)用程序)先行予硬件設(shè)計,可以用軟件模擬仿真器對應(yīng)用程序進(jìn)行軟件模擬調(diào)試。另外,現(xiàn)在應(yīng)用程序的開發(fā)較多的情形往往幾個人共同開發(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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論