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