




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 微控制原理題 目: 基于S08的萬年歷設(shè)計 院系名稱: 電氣工程學院 專業(yè)班級: 自動化1101 學生姓名: 學 號: 摘 要在日新月異的21世紀里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設(shè)備都趨于人性化、智能化,這些電器設(shè)備大部分都含有CPU控制器或者是單片機。單片機以其高可靠性、高性價比、低電壓、低功耗等一系列優(yōu)點,近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應用于工業(yè)控制系統(tǒng)、通訊設(shè)備、日常消費類產(chǎn)品和玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民生活的各個方面,如車間流水線控制、自動化系統(tǒng)等、智能型家用電器(冰箱、空調(diào)、彩電)等。用單片機來控制的小型家電產(chǎn)品具有便攜實用,操作簡單的特點。 本
2、文設(shè)計的電子萬年歷屬于小型智能家用電子產(chǎn)品。利用飛思卡爾MC9S08AW60單片機進行控制,實時時鐘芯片采用PCF8563,外加掉電存儲電路和顯示電路,可實現(xiàn)時間的調(diào)整和顯示。當今的電子萬年歷不僅可以顯示年、月、日、時、分、秒、星期,有些萬年歷還可以顯示當時當?shù)氐臏囟?,附帶功能還包括整點鬧鈴、定時鬧鈴等。安全性也越來越能得到保障,部分電子萬年歷具有防爆、防震、防火、防水的特性。顯示屏的選擇也更豐富,可以選擇LCD或LED。關(guān)鍵詞: MC9S08AW60單片機、 PCF8563時鐘芯片、電子萬年歷。第一章 緒論1.1 課題研究的目的和意義電子萬年歷既可廣泛應用于家庭,也可應用于銀行、郵電、賓館、
3、醫(yī)院、學校、企業(yè)、商店等相關(guān)行業(yè)的大廳,以及單位會議室、門衛(wèi)等場所。因而,此設(shè)計具有相當重要的現(xiàn)實意義和實用價值。1.2 萬年歷的發(fā)展 二十一世紀的今天,最具代表性的計時產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機械鐘或表。第二次革命是石英晶體振蕩器的應用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機數(shù)碼計時技術(shù)的應用(電子萬年歷),使計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮?/p>
4、熟悉的夜光數(shù)字顯示方式,更加直觀明了,并增加了全自動日期、星期、溫度以及其他日常附屬信息的顯示功能,電子萬年歷的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進步。 如今電子萬年歷飛入了尋常百姓家,掛式、臺式以及帶裝飾畫面等豐富的電子萬年歷數(shù)不勝數(shù),不但滿足了精準的計時需求,還將計時帶上了科技時尚的味道。單片機技術(shù)所應用的功能控制芯片可進行多種功能的設(shè)置,如鬧鐘、報時、日歷查詢、語音等;并改善了很多原有石英鐘不能解決的問題,例如:數(shù)字夜光顯示、數(shù)據(jù)存儲以及全自動溫度檢測等功能;這給傳統(tǒng)計時消費帶來了新的動力,越來越多的消費者選擇了電子萬年歷。1.3 電子萬年歷的顯示方式l 全數(shù)碼顯示萬年歷:以LED
5、夜光數(shù)碼顯示日期、時間、星期、節(jié)氣倒計,以及溫度等日常信息,無附加信息;l 2、帶畫面電子萬年歷:除以LED夜光數(shù)碼顯示日期、時間、星期、節(jié)氣倒計,以及溫度等日常信息,糅合了多項先進電子技術(shù)及現(xiàn)代經(jīng)典工藝,帶有藝術(shù)畫面的產(chǎn)品。第二章 電子萬年歷的總體方案設(shè)計2.1 功能介紹本次設(shè)計主要用單片機控制程序讓它在液晶上顯示年、月、日、時、分、秒及星期。時、分、秒的計數(shù)結(jié)果經(jīng)過數(shù)據(jù)處理可直接送顯示器顯示。當計時發(fā)生誤差的時候可以用校時電路進行校正。時計數(shù)器計滿24小時后自動向日計數(shù)器進一,日計數(shù)器由平年、閏年的大、小月和二月的判斷應與當月相應的日期相一致,當日計數(shù)器計滿時,向月計數(shù)器進位,月計數(shù)器計滿
6、12月向年計數(shù)器進位,當年計數(shù)器計滿100時所有計數(shù)器清零。設(shè)計采用的是年、月、日和時、分、秒、星期同時顯示。2.2設(shè)計法案選擇方案一 用EDA技術(shù)及VHDL語言控制來實現(xiàn)顯示,且顯示也可以用數(shù)碼管,但是數(shù)碼管屏幕有限不是很方便的顯示很多的數(shù)據(jù)以及文字等。對于VHDL語言也不夠了解,故不采用此方案。方案二 用C語言編程來控制單片機讓它在液晶上顯示數(shù)據(jù)及文字。由于單片機結(jié)構(gòu)簡單、控制功能強、可靠性高、體積小、價格低等優(yōu)點,以及液晶屏幕可以完整的同時顯示數(shù)據(jù)及文字等內(nèi)容, 綜合上述方案的選擇與比較,選擇方案二。主要是由于電器元件的熟悉程度以及市場的供求關(guān)系。在方案二中,大部分的電器元件我們較熟悉并
7、且更容易獲得2.3 總體設(shè)計思路 此設(shè)計在液晶上顯示年、月、日、時、分、秒及星期,其原理框圖如下圖所示,電路一般包括以下幾個部分:單片機模塊、時鐘模塊、鍵盤模塊及顯示模塊。主控芯片采用飛思卡爾的MC9S08AW60單片機,時鐘芯片采用PCF8563。圖2-1 電子萬年歷原理框圖對于各部分:(1) 為使時鐘走時與標準時間一致,校時電路是必不可少的,鍵盤用來校正液晶上顯示的時間。(2) 時鐘模塊為單片機提供時鐘信號。(3) 單片機通過輸出各種電脈沖信號來驅(qū)動控制各部分正常工作。(4) 單片機發(fā)送的信號經(jīng)過顯示電路通過譯碼最終在液晶上顯示出來。第三章 系統(tǒng)的硬件設(shè)計 硬件設(shè)計主要包括AW60主控芯片
8、最小系統(tǒng)的設(shè)計、顯示電路的設(shè)計、鍵盤矯正電路的設(shè)計、時鐘模塊的設(shè)計、串行通信接口電路的設(shè)計和電源模塊。3.1 主控芯片最小系統(tǒng)的設(shè)計 本設(shè)計的主控芯片采用飛思卡爾的MC9S08AW60單片機,其是低成本、高性能8位微處理器S08家族中的成員。Freescale的S08系列8位MCU由于其穩(wěn)定性高、開發(fā)周期短、成本低、型號多樣、兼容性好而被廣泛應用。3.1.2 芯片引腳分配64腳的引腳分配如下圖所示。每個引腳 有可能有多個復用功能,有的引腳有兩個復用功能,有的引腳有四個復用功能。進行硬件最小系統(tǒng)設(shè)計時,一般以引腳的圖3-1 MC9S08AW60 64腳QFP/LQFP封裝圖第一功能作為引腳名進行
9、原理圖設(shè)計。3.1.3 MCU內(nèi)部結(jié)構(gòu)圖3-2給出了MC9S08AW60的內(nèi)部結(jié)構(gòu)。圖3-2 MC9S08AW60 MCU結(jié)構(gòu)框圖3.1.4 系統(tǒng)時鐘分配AW60系統(tǒng)時鐘分配如下圖所示:圖3-3 系統(tǒng)時鐘分配圖一些模塊內(nèi)的MCU有時鐘源的選擇。圖1-2顯示了一個簡化的時鐘接線圖。ICG提供了時鐘來源: l ICGOUT是ICG模塊的一個輸出。它可以是下列之一: 外部晶體振蕩器 外部時鐘源 頻率鎖相環(huán)子模塊中的輸出數(shù)位控制振蕩器(DCO) ICG內(nèi)的控制位確定連接哪個時鐘源。 l FFE是一個控制信號,在ICG內(nèi)部產(chǎn)生。如果ICGOUT的頻率> 4 × ICGERCLK的頻率,這
10、個信號是一個邏輯1,固定頻率的時鐘將為ICGERCLK / 2 。否則,固定頻率的時鐘將為BUSCLK 。 l ICGLCLK 開發(fā)工具可以選擇內(nèi)部自時鐘頻率源( 8MHz),以加快BDC通信系統(tǒng),在那里總線時鐘很慢。 l ICGERCLK 外部參考時鐘可以選擇作為實時中斷時鐘源。也可以用來作為ALTCLK,輸入給ADC模塊。 3.1.5 MCU最小系統(tǒng)設(shè)計MCU的最小系統(tǒng)是指可以使內(nèi)部程序運行所必需的外圍電路。一般情況下,MCU的硬件最小系統(tǒng)由BDM下載器接口、晶振及復位等電路組成。圖3-4 MCU硬件最小系統(tǒng)電路圖3.2 時鐘模塊3.2.1 PCF8563概述PCF8563 是 PHILI
11、PS 公司推出的一款工業(yè)級內(nèi)含 I2C 總線接口功能的具有極低功耗的多功能時鐘/日歷芯片 PCF8563 的多種報警功能 定時器功能 時鐘輸出功能以及中斷輸出功能能完成各種復雜的定時服務 甚至可為單片機提供看門狗功能 內(nèi)部時鐘電路 內(nèi)部振蕩電路 內(nèi)部低電壓檢測電路 1.0V 以及兩線制 I2C 總線通訊方式 不但使外圍電路及其簡潔 而且也增加了芯片的可靠性 同時每次讀寫數(shù)據(jù)后 內(nèi)嵌的字地址寄存器會自動產(chǎn)生增量 當然作為時鐘芯片 PCF8563 亦解決了 2000 年問題 因而PCF8563 是一款性價比極高的時鐘芯片 它已被廣泛用于電表 水表 氣表 電話 傳真機 便攜式儀器以及電池供電的儀器儀
12、表等產(chǎn)品領(lǐng)域。(1) PCF8563特性:l 寬電壓范圍 1.05.5V,復位電壓標準值 Vlow=0.9V;l 超低功耗:典型值為 0.25A (VDD=3.0V,Tamb=25);l 可編程時鐘輸出頻率為 32.768KHz 、1024Hz 、32Hz 、1Hz;l 四種報警功能和定時器功能;l 內(nèi)含復位電路、振蕩器電容和掉電檢測電路;(2) PCF8563內(nèi)部結(jié)構(gòu)框圖如下圖所示:圖3-5 PCF8563內(nèi)部結(jié)構(gòu)方框圖(3) 引腳配置及引腳說明分別如圖3-6和表3-1所示。圖3-6 PCF8563引腳配置表3-1 PCF8563引腳描述符號引腳號描述OSCI1振蕩器輸入OSCO2振蕩器輸出
13、/INT3中斷輸出(開漏;低電平有效)VSS4地SDA5串行數(shù)據(jù) I/OSCL6串行時鐘輸入CLKOUT7時鐘輸出(開漏)VDD8正電源(4) PCF8563基本原理PCF8563 有 16 個8 位寄存器:一個可自動增量的地址寄存器,一個內(nèi)置 32.768KHz 的振蕩器(帶有一個內(nèi)部集成的電容),一個分頻器(用于給實時時鐘 RTC 提供源時鐘),一個可編程時鐘輸出,一個定時器,一個報警器,一個掉電檢測器和一個 400KHz I2C 總線接口。所有 16 個寄存器設(shè)計成可尋址的 8 位并行寄存器,但不是所有位都有用。 前兩個寄存器(內(nèi)存地址00H 01H)用于控制寄存器和狀態(tài)寄存器,內(nèi)存地址
14、 02H 08H 用于時鐘計數(shù)器(秒年計數(shù)器)地址09H0CH用于報警寄存器(定義報警條件),地址 0DH 控制 CLKOUT 管腳的輸出頻率,地址 0EH 和 0FH分別用于定時器控制寄存器和定時器寄存器。秒、分鐘、小時、日、月、年、分鐘報警、小時報警、日報警寄存器,編碼格式為 BCD,星期和星期報警寄存器不以 BCD 格式編碼。當一個 RTC 寄存器被讀時,所有計數(shù)器的內(nèi)容被鎖存,因此,在傳送條件下,可以禁止對時鐘/日歷芯片的錯讀。3.2.2 PCF8563模塊原理圖PCF8563和AW60芯片的連接采用IIC總線接口。IIC是多主設(shè)備兩線雙向串行總線接口,是不同芯片間傳輸數(shù)據(jù)的簡單、有效
15、且常有的通信方式之一。IIC總線接口的特點:l 在硬件上,二線制的I2C串行總線使得各IC只需最簡單的連接,而且總線接口都集成在IC中,不需另加總線接口電路。l I2C總線還支持多主控(multi-mastering)。l 串行的8位雙向數(shù)據(jù)傳輸位速率在標準模式下可達100kbps,快速模式下可達400kbps,高速模式下可達3.4Mbps。l 連接到相同總線的IC數(shù)量只受到總線最大電容(400pf)的限制。但如果在總線中加上82B715總線遠程驅(qū)動器可以把總線電容限制擴展十倍,傳輸距離可增加到15m。圖3-7 IIC總線的典型連接PCF8563時鐘芯片的外圍電路如圖3-8所示,將其中的SCL
16、和SDA分別接AW60的PTC0、PTC1引腳即可。圖3-8 AW60與PCF8563的硬件接口3.3 鍵盤模塊 鍵盤是由若干按鍵組成的開關(guān)矩陣,它是最簡單的MCU數(shù)字量輸入設(shè)備,在本設(shè)計中起到調(diào)整日期、時間的作用。鍵盤的種類分多種。按鍵盤的分布方式可分為獨立式和矩陣式;按讀入鍵值的方式可分為直讀方式和掃描方式;按是否進行硬件編碼可分為硬件編碼方式和非編碼方式;按微處理器響應方式可分為中斷方式和查詢方式。本設(shè)計采用4×4矩陣式鍵盤,4條I/O線組成行輸入口,4條I/O線組成列輸出口,在行列線的每一個交點上設(shè)置一個按鍵。讀鍵值的方法一般采用掃描方式,即MCU輸出口按位輪換輸出低電平,再
17、從輸入口讀入鍵信息最后獲得編碼。這種方式占用I/O線較少。圖3-9 4×4鍵盤與MCU接法3.4 LCD顯示模塊LCD(Liquid Crystal Display)作為電子信息產(chǎn)品的主要顯示器件,相對于其他類型的顯示部件有其自身的特點,主要包括:低電壓微功耗、平板型結(jié)構(gòu)、使用壽命長、被動顯示、顯示信息量大、易于彩色化、無電磁輻射等。LCD與AW60的連接方式如圖3-9所示圖3-10 LCD與AW60的硬件連接3.5 串行通信接口模塊3.5.1 串行通信簡介目前幾乎所有的臺式機電腦都帶有9針的異步串行通信口,簡稱串口或COM口,串行通信是MCU與外界通信的簡便方式之一。MCU引腳輸入
18、輸出一般使用TTL電平,即晶體管-晶體管邏輯電平。而TTL電平的“1”和“0”的特征電壓分別為2.4V和0.4V,即大于2.4V則識別為“1”,低于0.4V則識別為“0”。它適用于板內(nèi)數(shù)據(jù)傳輸,不能傳輸?shù)暮苓h,為使信號傳輸?shù)母h,美國電子工業(yè)協(xié)會EIA制定了串行物理接口標準RS-232。RS232采用負邏輯,-15V-3V為邏輯“1”,+3V+15V為邏輯“0”。RS-232最大的傳輸距離是30m通信速率一般低于20kbps。3.5.2 RS-232九芯接口在RS-232通信中,常常使用精簡的RS-232通信,通信中僅使用3根線:RxD(接收線)、TxD(發(fā)送線)和GND(地線)。表3-1 9
19、芯串行接口引腳含義表圖3-11 9芯串行接口排列引腳號功能引腳號功能1接收線信號檢測(載波檢測DCD)6數(shù)據(jù)通信設(shè)備準備就緒(DSR)2接收數(shù)據(jù)線(RXD)7請求發(fā)送(RTS)3發(fā)送數(shù)據(jù)線(TXD)8允許發(fā)送(CTS)4數(shù)據(jù)終端準備就緒(DTR)9振鈴指示5信號地(SG)3.5.3 TTL電平到RS-232電平轉(zhuǎn)換電路在MCU 中,若用RS-232總線進行串行通信,則需外接電路實現(xiàn)電平轉(zhuǎn)換,在發(fā)送端,需要用驅(qū)動電路將TTL電平轉(zhuǎn)換成RS-232電平;在接收端,需要用接受電路將RS-232D電平轉(zhuǎn)換成TTL電平。在此使用MAX232芯片進行轉(zhuǎn)換,該芯片使用單一+5V電源供電實現(xiàn)電平轉(zhuǎn)換。圖3-1
20、2 MAX232引腳分配表3-2 MAX232芯片輸入輸出引腳分類與基本接法TTL電平引腳方向典型接口RS232電平引腳方向典型接口11輸入接MCU的TXD13輸入接到9芯接口的2腳RXD12輸出接MCU的RXD14輸出接到9芯接口的3腳TXD10輸入接MCU的TXD8輸入接到9芯接口的2腳RXD9輸出接MCU的RXD7輸出接到9芯接口的3腳TXD MAX232芯片進行電平轉(zhuǎn)換的基本原理: 1) 發(fā)送過程:發(fā)送過程:MCU的TXD(TTL電平)經(jīng)過MAX232的11腳(T1IN)送到MAX232內(nèi)部,在內(nèi)部TTL電平被“提升”為232電平,通過14腳(T1OUT)發(fā)送出去。2) 接收過程:外部
21、232電平經(jīng)過MAX232的13腳(R1IN)進入到MAX232的內(nèi)部,在內(nèi)部232電平被“降低”為TTL電平,經(jīng)過12腳(R1OUT)送到MCU的RXD,進入MCU內(nèi)。圖3-13 串行通信接口電平轉(zhuǎn)換電路3.6 電源模塊擴展板使用12 伏直流電源供電,通過開關(guān)型可調(diào)降壓穩(wěn)壓器LM2576T-ADJ 可輸出5 伏電源,電路原理圖分別如圖3-14所示。圖3-14 12V轉(zhuǎn)換為5V的 電源模塊原理圖第四章 系統(tǒng)的軟件設(shè)計在硬件電路確定之后,則系統(tǒng)所有的智能功能要由軟件來完成。軟件是整個控制系統(tǒng)設(shè)計的核心,它具有充分的靈活性,可以根據(jù)系統(tǒng)的要求而變化,對于同樣的硬件系統(tǒng),配以不同的軟件系統(tǒng),所實現(xiàn)的
22、功能也就不一樣,而且有此硬件電路的功能都可以用軟件來實現(xiàn)。所以對于一個系統(tǒng)設(shè)計來說,軟件系統(tǒng)常常比硬件系統(tǒng)需要更多的工作量。整個系統(tǒng)的硬件組成相對簡單,較小的硬件開銷需要相對復雜的軟件進行補償,下面較為詳細地分析軟件的設(shè)計。 4.1 系統(tǒng)軟件設(shè)計概述本系的軟件采用結(jié)構(gòu)化模塊程序設(shè)計,所謂“模塊”,實質(zhì)上就是具有一定功能、相對獨立的程序段。其基本思路是將整個控制系統(tǒng)的功能分解為幾個相對獨立的標準模塊,使其中的每一個程序模塊完成某一特定的控制功能,并且分別只有一個入口和出口中,這樣就可以對每一個程序分別定義無歧義性的輸入變量和輸出變量,使它們的運行相對地不受其它程序的影響,從而增強了系統(tǒng)的可靠性。
23、模塊設(shè)計的主要特點是:單模塊比一個完整的程序容易編寫、查錯和測試;模塊可以實現(xiàn)共享,一個模塊可被多個任務在不同的條件下調(diào)用;把輸入/輸出封裝起來,可以使程序其余部分免受經(jīng)常變動;輸入/輸出放入模塊使得程序很容易適應輸入/輸出設(shè)備的變動。這樣的設(shè)計有利于程序化碼的優(yōu)化,而且便于設(shè)計、調(diào)試和維護。軟件結(jié)構(gòu)采用模塊化設(shè)計方法,將所要完成的功能分別編寫和調(diào)試,所有模塊調(diào)試成功以后,將各個模塊連接成軟件系統(tǒng)。在本電子萬年歷的設(shè)計中,軟件系統(tǒng)包括主程序、LCD顯示程序、鍵盤調(diào)整程序等模塊。4.2 系統(tǒng)軟件流程圖系統(tǒng)軟件設(shè)計流程圖如圖4-1所示。圖4-1 軟件設(shè)計流程圖4.3 AW60和PCF8563之間數(shù)
24、據(jù)傳輸(1) AW60和PCF8563之間數(shù)據(jù)傳輸采用IIC總線接口,AW60向PCF8563寫一個字節(jié)數(shù)據(jù)的數(shù)據(jù)幀格式圖4-3所示。圖4-2 AW60向PCF8563中寫一字節(jié)的數(shù)據(jù)幀格式主機要向從機寫1個字節(jié)數(shù)據(jù)時,主機首先產(chǎn)生START信號,然后緊跟著發(fā)送一個從機地址,這個地址共有7位,緊接著的第8位是數(shù)據(jù)方向位(R/W),0表示主機發(fā)送數(shù)據(jù)(寫),1表示主機接收數(shù)據(jù)(讀),這時候主機等待從機的應答信號(ACK),當主機收到應答信號時,發(fā)送要訪問的地址,繼續(xù)等待從機的響應信號,當主機收到響應信號時,發(fā)送1個字節(jié)的數(shù)據(jù),繼續(xù)等待從機的響應信號,當主機收到響應信號時,產(chǎn)生停止信號,結(jié)束傳送過
25、程。AW60向PCF8563寫一個字節(jié)數(shù)據(jù)的流程圖如圖4-3所示。圖4-3 AW60向PCF8563寫一個數(shù)據(jù)AW60向PCF8563中寫一個字節(jié)數(shù)據(jù)的具體C語言程序如下所示:uint8 IICwrite1(uint8 DeviceAddr, uint8 AccessAddr, uint8 Data) I2C_IIC1C |= 1 << TXBit; /TX = 1,MCU設(shè)置為發(fā)送模式 SendSignal('S'); /發(fā)送開始信號 I2C_IIC1D = DeviceAddr & 0xFE;/發(fā)送設(shè)備地址,并通知從機接收數(shù)據(jù) if (Wait('
26、;T') /等待一個字節(jié)數(shù)據(jù)傳送完成 return 1; /沒有傳送成功,寫一個字節(jié)失敗 if (Wait('A') /等待從機應答信號 return 1; /沒有等到應答信號,寫一個字節(jié)失敗 I2C_IIC1D = AccessAddr; /發(fā)送訪問地址 if (Wait('T') /等待一個字節(jié)數(shù)據(jù)傳送完成 return 1; /沒有傳送成功,寫一個字節(jié)失敗 if (Wait('A') /等待從機應答信號 return 1; /沒有等到應答信號,寫一個字節(jié)失敗 I2C_IIC1D = Data; /寫數(shù)據(jù) if (Wait('
27、T') /等待一個字節(jié)數(shù)據(jù)傳送完成 return 1; /沒有傳送成功,寫一個字節(jié)失敗 if (Wait('A') /等待從機應答信號 return 1; /沒有等到應答信號,寫一個字節(jié)失敗 SendSignal('O'); /發(fā)送停止信號 return 0; 寫多個字節(jié)數(shù)據(jù)的C語言程序如下所示:uint8 IICwriteN(uint8 DeviceAddr, uint8 AccessAddr, uint8 Data, uint8 N) uint8 i, j; for (i = 0;i < N;i+) for(j = 0;j < 15;j+
28、); /最小延時(發(fā)送的每個字節(jié)之間要有時間間隔) if (IICwrite1(DeviceAddr, AccessAddr + i, Datai) return 1; /其中一個字節(jié)沒有發(fā)送出去,返回失敗標志:1 if (i >= N) return 0; /成功發(fā)送N個數(shù)據(jù),返回成功標志:0 (2) AW60從PCF8563讀一字節(jié)數(shù)據(jù)的數(shù)據(jù)幀格式如圖4-4所示。圖4-4 AW60從PCF8563中讀一字節(jié)的數(shù)據(jù)幀格式當主機要從從機讀1個字節(jié)數(shù)據(jù)時,主機首先產(chǎn)生START信號,然后緊跟著發(fā)送一個從機地址,注意此時該地址的第8位為0,表明是向從機寫命令,這時候主機等待從機的應答信號(A
29、CK),當主機收到應答信號時,發(fā)送要訪問的地址,繼續(xù)等待從機的應答信號,當主機收到應答信號后,主機要改變通信模式,所以主機發(fā)送重新開始信號,然后緊跟著發(fā)送一個從機地址,注意此時該地址的第8位為1,表明將主機設(shè)置成接收模式開始讀取數(shù)據(jù),這時主機等待從機的應答信號,當主機收到應答信號時,就可以接收1個字節(jié)的數(shù)據(jù),當接收完成后,主機發(fā)送非應答信號,表示不再接收數(shù)據(jù),主機進而產(chǎn)生停止信號,結(jié)束傳送過程。AW60從PCF8563讀一字節(jié)數(shù)據(jù)的流程圖如圖4-5所示。圖4-5 AW60從PCF8563讀一個數(shù)據(jù)AW60從PCF8563中讀一個字節(jié)數(shù)據(jù)的具體C語言程序如下所示: uint8 IICread1(
30、uint8 DeviceAddr, uint8 AccessAddr, uint8 *Data) I2C_IIC1C |= 1 << TXBit; /TX = 1,MCU設(shè)置為發(fā)送模式 SendSignal('S'); /發(fā)送開始信號 I2C_IIC1D = DeviceAddr & 0xFE;/發(fā)送設(shè)備地址,并通知從機接收數(shù)據(jù) if (Wait('T') /等待一個字節(jié)數(shù)據(jù)傳送完成 return 1; /沒有傳送成功,讀一個字節(jié)失敗 if (Wait('A') /等待從機應答信號 return 1; /沒有等到應答信號,讀一
31、個字節(jié)失敗 I2C_IIC1D = AccessAddr; /發(fā)送訪問地址 if (Wait('T') /等待一個字節(jié)數(shù)據(jù)傳送完成 return 1; /沒有傳送成功,讀一個字節(jié)失敗 if (Wait('A') /等待從機應答信號 return 1; /沒有等到應答信號,讀一個字節(jié)失敗 I2C_IIC1C |= 1 << RSTABit; /主機模式下,RSTA位置1,產(chǎn)生重復開始信號 I2C_IIC1D = DeviceAddr | 0x01;/通知從機改為發(fā)送數(shù)據(jù) if (Wait('T') /等待一個字節(jié)數(shù)據(jù)傳送完成 retur
32、n 1; /沒有傳送成功,讀一個字節(jié)失敗 if (Wait('A') /等待從機應答信號 return 1; /沒有等到應答信號,讀一個字節(jié)失敗 I2C_IIC1C &= (1 << TXBit ); /TX = 0,MCU設(shè)置為接收模式 *Data = I2C_IIC1D; /讀出IIC1D,準備接收數(shù)據(jù) if (Wait('T') /等待一個字節(jié)數(shù)據(jù)傳送完成 return 1; /沒有傳送成功,讀一個字節(jié)失敗 SendSignal('O'); /發(fā)送停止信號 *Data = I2C_IIC1D; /讀出接收到的一個數(shù)據(jù) r
33、eturn 0; /正確接收到一個字節(jié)數(shù)據(jù)讀取多個字節(jié)數(shù)據(jù)的C語言程序如下所示:uint8 IICreadN(uint8 DeviceAddr, uint8 AccessAddr, uint8 Data, uint8 N) uint8 i, j; for (i = 0;i < N;i+) for(j = 0;j < 15;j+); /最小延時(發(fā)送的每個字節(jié)之間要有時間間隔) if (IICread1(DeviceAddr, AccessAddr + i, &Datai) return 1; /其中一個字節(jié)沒有接收到,返回失敗標志:1 if (i >= N) retu
34、rn 0; /成功接收N個數(shù)據(jù),返回成功標志:0 4.4 LCD顯示程序設(shè)計LCD顯示程序的任務是AW60主控芯片持續(xù)不斷地從PCF8563時鐘芯片中讀出相應數(shù)據(jù),之后再轉(zhuǎn)換為用于LCD顯示的數(shù)據(jù)。圖4-6 LCD顯示程序流程圖4.5 鍵盤調(diào)用程序設(shè)計鍵盤調(diào)整程序的任務是當鍵盤被按下時,系統(tǒng)響應鍵盤中斷。系統(tǒng)按照按鍵的意義作出相應的反應,如調(diào)整時間、調(diào)整日期等。當AW60芯片通檢測鍵盤被按下后,立即調(diào)用鍵盤調(diào)整程序,此時LCD顯示具體調(diào)整的情況。圖4-7 鍵盤調(diào)整程序流程圖第五章 調(diào)試本章調(diào)試分為硬件調(diào)試和軟件調(diào)試,檢驗本次設(shè)計是否合理、可行。硬件調(diào)試所用工具為飛思卡爾嵌入式開發(fā)平臺,軟件調(diào)試
35、所用工具為Codewarrior。5.1 硬件調(diào)試5.1.1 簡介傳統(tǒng)的嵌入式應用開發(fā)方法主要是使用仿真器模擬目標系統(tǒng)中MCU的運行情況,希望達到在目標系統(tǒng)硬件尚未定型與制版情況下,先行調(diào)試目標系統(tǒng)的硬件、軟件,為目標系統(tǒng)的研制提供前期基礎(chǔ)。但是在一些情況下,難以實現(xiàn)100%的實時仿真,有些功能在用仿真器調(diào)試時十分正常,而到了實際應用系統(tǒng)卻不能順利運行。同時,傳統(tǒng)的仿真方式的一些調(diào)試功能僅適用于初學者,對于具有一定開發(fā)經(jīng)驗并擁有通用功能模塊積累的開發(fā)者,往往增加了開發(fā)時間。SD嵌入式開發(fā)套件是針對飛思卡爾MC9S08/S12/ColdFire系列的開發(fā)工具,提供BDM方式在線編程調(diào)試功能。開發(fā)
36、套件由寫入器、核心板以及擴展板組成。寫入器通過USB接口與PC機連接,通過BDM接口與核心板連接(如圖5-1)。在集成開發(fā)環(huán)境的支持下,通過寫入器可對核心板上的MCU進行在線編程、調(diào)試。擴展板上提供核心板底座、數(shù)碼管、4×4鍵盤、開關(guān)、模擬電位器、蜂鳴器、LCD、傳感器、串行口以及USB、CAN、IIC、SPI、網(wǎng)絡等接口。圖5-1 集成開發(fā)套件結(jié)構(gòu)框圖SD嵌入式開發(fā)套件可作為飛思卡爾系列MCU教學、培訓的實驗器材,也可作為大中專學生和技術(shù)人員自學的實驗器材。系統(tǒng)特點如下:(1) 通用性。支持目前飛思卡爾S08、S12、ColdFire系列MCU。(2) 靈活性。硬件系統(tǒng)靈活,根據(jù)實
37、際需要選配或自己制作核心板。(3) 功能齊全。提供配套教材、豐富的編程實例及網(wǎng)上技術(shù)交流平臺。(4) 可靠性強。擦除、寫入等操作后的數(shù)據(jù)檢驗功能確保了操作的正確性。5.1.2 SD-ExtBoard-D 型擴展板SD-ExtBoard-D型擴展板(以下簡稱擴展板)適用于HC08、HCS08、HC12、HCS12、ClodFire等系列MCU的核心板,提供160引腳核心板底座接口。核心板底座接口如圖5-2所示。圖5-2 核心板底座接口示意圖核心板底座接口共有四個雙排插座:Core1、Core2、Core3以及Core4。為方便接線,每個插座對應一個40引腳的單排插座。擴展板硬件布局如圖5-3所示
38、。擴展板包括的硬件模塊有:復位、電源、調(diào)試小燈、蜂鳴器、繼電器、8段數(shù)碼管、液晶、4×4鍵盤、撥碼開關(guān)、傳感器接口(光敏、熱敏)、串行口、USB、CAN、IIC、SPI、以太網(wǎng)口、Zigbee、RFID、串口轉(zhuǎn)USB等。此外,擴展板上還提供了六列插孔,以便插入元件進行實驗。圖 5- 擴展板布 i局5.1.2 SD-PRG-III型寫入器1) 寫入器簡介:S08/S12/ColdFire BDM為S08/S12/ColdFire 三合一寫入器(如圖5-4),適用于Freescale HCS08/RS08/HCS12/S12X/ColdFire全系列MCU,開發(fā)環(huán)境使用Freescale
39、 CodeWarrior。寫入器使用USB線連接PC,使用BDM接口連接目標板。其中HCS08/RS08/HCS12系列芯片使用6針BDM接口,ColdFire芯片使用26針BDM接口。2) 驅(qū)動安裝將寫入調(diào)試器與PC機的USB口相連,系統(tǒng)彈出“發(fā)現(xiàn)新硬件”的提示,并彈出“找到新的硬件向?qū)А睂υ捒?,選擇“從列表或指定位置安裝(高級)”選項。單擊“下一步”,選擇“不要搜索,我要自己選擇要安裝的驅(qū)動程序?!?,單擊“下一步”,選擇“Windows CE USB Devices”,單擊“下一步”,選擇“從磁盤安裝”,然后選擇驅(qū)動程序的路徑,選擇driver文件夾,單擊確定將完成USB驅(qū)動的安裝。3)
40、調(diào)試庫安裝調(diào)試庫共包含5個文件:OpenSourceBDM.dll,tbdml.dll,tblcf.dll,tblcf.cfg和 tblcf_gdi.dll。調(diào)試庫可以通過以下兩種方式進行安裝:l 手動安裝調(diào)試庫:S08:將OpenSourceBDM.dll拷貝到:Codewarrior for S08安裝目錄Proggdi目錄中。 S12:將tbdml.dll拷貝到:Codewarrior for S12安裝目錄Proggdi目錄中。 ColdFire:新建Codewarrior for ColdFire安裝目錄binPluginsSupportColdFireusbdm_cf目錄。將tbl
41、cf.dll,tblcf.cfg和 tblcf_gdi.dll拷貝到目錄usbdm_cf中。l 腳本自動安裝調(diào)試庫:以上步驟可通過執(zhí)行Install.cmd腳本完成,首先使用記事本打開Install.cmd,修改其中CF_HCS12_DIR,CF_HCS08_DIR和CF_CFVx_DIR三個變量,三個變量分別對應Codewarrior for S12、S08和Coldfire的安裝路徑。修改結(jié)束保存,雙擊執(zhí)行Install.cmd即可完成調(diào)試庫安裝。 或者雙擊運行InstallInputPath.cmd,按任意鍵,根據(jù)提示依次輸入CodeWarrior For S08的安裝路徑(如C:Pro
42、gram FilesFreescaleCodeWarrior for Microcontrollers V6.2),按回車;再輸入CodeWarrior For S12的安裝路徑(如C:Program FilesFreescaleCodewarrior for HCS12(X) V5.0),按回車;再輸入CodeWarrior For ColdFire的安裝路徑(如C:Program FilesFreescaleCodeWarrior for ColdFire V6.3),按回車。 注意:如果雙擊不能運行InstallInputPath.cmd腳本時,可以按照如下步驟進行操作。先將Instal
43、lInputPath.cmd拷貝到d盤根目錄下。然后點擊開始->運行->輸入cmd->回車。在終端輸入“d:”按回車,再輸入“InstallInputPath.cmd”按回車,根據(jù)提示再進行操作。5.1.3 MC9S08AW60核心板對于不同MCU,需要設(shè)計相應的核心板,核心板的實質(zhì)是芯片的最小系統(tǒng),包含晶振電路和編程接口,S08MCU的編程接口為BDM接口。核心板上另一個重要部分是將I/O引到相應的接口上,這需要和擴展板配合工作。MC9S08AW60(以下簡稱AW60)核心板實物圖如圖5-5所示。圖5-5 MC9S08AW60核心板實物圖5.2 軟件調(diào)試5.2.1 Code
44、Warrior簡介軟件調(diào)試工具使用的是Freescale CodeWarrior.。CodeWarrior Development Studio是完整的用于編程應用中硬件bring-up的集成開發(fā)環(huán)境。 采用CodeWarrior IDE,開發(fā)人員可以得益于采用各種處理器和平臺(從Motorola到TI到Intel)間的通用功能性。根據(jù)Gartner Dataquest的報告,CodeWarrior編譯器和調(diào)試器在商用嵌入式軟件開發(fā)工具的使用率方面排名第一。而這只是流行的CodeWarrior軟件開發(fā)工具中的兩個。CodeWarrior包括構(gòu)建平臺和應用所必需的所有主要工具 - IDE、編譯器
45、、調(diào)試器、編輯器、鏈接器、匯編程序等。另外,CodeWarrior IDE支持開發(fā)人員插入他們所喜愛的工具,使他們可以自由地以希望的方式工作。CodeWarrior開發(fā)工作室將尖端的調(diào)試技術(shù)與健全開發(fā)環(huán)境的簡易性結(jié)合在一起,將C/C+源級別調(diào)試和嵌入式應用開發(fā)帶入新的水平。開發(fā)工作室提供高度可視且自動化的框架,可以加速甚至是最復雜應用的開發(fā),因此對于各種水平的開發(fā)人員來說,創(chuàng)建應用都是簡單而便捷的。它是一個單一的開發(fā)環(huán)境,在所有所支持的工作站和個人電腦之間保持一致。在每個所支持的平臺上,性能及使用均是相同的。無需擔心主機至主機的不兼容。5.2.2 程序調(diào)試(一) 創(chuàng)建新工程:點擊FileNew
46、 Project圖5-6 新建工程步驟1選中MC9S08AW60芯片,并選擇 HCS08 Open Source BDM,接著點“下一步”圖5-7 新建工程步驟2選擇C語言編寫,定義工程名稱為“E-calendar.mcp”,并選擇工程位置。圖5-7 新建工程步驟3將程序代碼添加進工程中,進行編譯圖5-8 對工程編譯第六章 總結(jié)與展望6.1 總結(jié)本課題的設(shè)計過程經(jīng)歷了多個步驟,包括方案選擇、總體方案設(shè)計、系統(tǒng)硬件設(shè)計、系統(tǒng)軟件設(shè)計、系統(tǒng)調(diào)試等。本設(shè)計的特點總結(jié)如下:(1) 大多數(shù)的電子萬年歷的設(shè)計中MCU采用的是Intel芯片,如AT89C51單片機,時鐘芯片采用DS1302,而本次設(shè)計的MC
47、U采用Freescale的MC9S08AW60,時鐘芯片采用PCF8563,用另一種思維,從另一種角度看待電子萬年歷的設(shè)計。(2) 利用飛思卡爾嵌入式系統(tǒng)開發(fā)平臺進行硬件開發(fā),飛思卡爾公司的CodeWarrior進行軟件開發(fā),完成功能程序的編譯及調(diào)試。6.2 展望 由于時間限制,某些研究工作沒有進一步展開,研究的應用對象有尚待完善之處。本設(shè)計所完成的功能還相對簡單,僅有年、月、日、時、分、秒以及星期的顯示,在日后的進一步研發(fā)中,應當考慮讓萬年歷擁有更豐富的功能。比如溫度檢測、定時報警等功能。在未來的研發(fā)當中也完全可以采用性能更加強大MCU,功能更加豐富的時鐘/日歷芯片,以滿足人們對生活更加豐富
48、的要求。參考文獻1 Motorola(Freescale)HCS08 Family Reference Manual,Rev1,20032 FreescaleMC9S08AW60 Data Street,Rev2,20063 王宜懷、張書奎、王林、吳瑾著,嵌入式技術(shù)基礎(chǔ)與實踐(第2版)北京:清華大學出版社,20114 美John Catsoulis著,徐君明、許鐵軍、黃年松等譯嵌入式硬件設(shè)計北京:中國電力出版社,20045 Tommy Noergarrd 著. 馬洪兵 谷源濤 譯. 嵌入式系統(tǒng)硬件與軟件架構(gòu). 北京:人民郵電出版社,20086 John Catsoulis 著. 徐君明 陳振林 郭天杰 改編. 嵌入式硬件設(shè)計. 北京:中國電力出版社,20077 王宜懷、陳建明、蔣銀珍著,基于32位Code
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 園林建設(shè)專項施工方案
- 2024年廣東省中考滿分作文《當好自己故事的主角》3
- 合作商超協(xié)議合同范本
- 胃造口術(shù)后護理
- 農(nóng)莊永久出售合同范例
- 交運股合同范例
- 制定高效的日常生產(chǎn)計劃
- 加強知識管理的有效方式計劃
- 品牌數(shù)字化轉(zhuǎn)型的路徑與挑戰(zhàn)計劃
- 項目管理的最佳實踐計劃
- GB/T 27476.2-2014檢測實驗室安全第2部分:電氣因素
- GA 1010-2012看守所床具
- 婦女權(quán)益保障法課件
- 2023新教科版六年級下冊科學全冊教材分析(新版本)
- 魯教版八年級美術(shù)下冊《自己設(shè)計動漫形象》教學課件
- 急性胰腺炎評分表大全
- 文件、檔案借閱申請表
- PPP項目從建設(shè)期進入運營期需要梳理哪些程序
- DBJ50T 135-2012 綠色建筑設(shè)計規(guī)范
- 幼兒園大班數(shù)學:《10以內(nèi)的相鄰數(shù)》課件
- 304不銹鋼圓管檢驗報告
評論
0/150
提交評論