版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于jtag ice的avr單片機(jī)開發(fā)系統(tǒng)的軟件設(shè)計(jì)基于jtag ice的avr單片機(jī)開發(fā)系統(tǒng)的軟件設(shè)計(jì) 摘 要本課題介紹基于jtag ice 的avr單片機(jī)開發(fā)系統(tǒng)的軟件設(shè)計(jì)。系統(tǒng)采用c語言編程方法。課題以自主研發(fā)的avr單片機(jī)開發(fā)平臺為基礎(chǔ)。使用了icc avr、avr studio和串口調(diào)試等軟件,為系統(tǒng)各個(gè)模塊及整體開發(fā)程序,進(jìn)而講述了本系統(tǒng)的各項(xiàng)功能。其中串口調(diào)試軟件是使用vc+自主開發(fā)。整個(gè)開發(fā)平臺有顯示、按鍵、adc、dac、蜂鳴器、紅外、串行通信、i2c通信、spi通信等模塊。各個(gè)模塊都編寫有相應(yīng)的例程。通過這些例程結(jié)合開發(fā)系統(tǒng)可以很容易地學(xué)會 avr的各種功能。另外,在學(xué)會各
2、個(gè)模塊化功能的基礎(chǔ)上,編寫了一個(gè)開發(fā)系統(tǒng)整體程序。把系統(tǒng)上面所有的資源盡量都用上,使讀者對此系統(tǒng)有更深入的了解。經(jīng)過對此avr單片機(jī)開發(fā)系統(tǒng)的講解,讀者會對中高檔單片機(jī)有一個(gè)深刻的了解,對以后工作或?qū)W習(xí)arm等更高端產(chǎn)品都會有很大幫助。在以后的推廣中,可以替代51單片機(jī)的位置。使用戶在單片機(jī)領(lǐng)域提高一個(gè)檔次。關(guān)鍵詞avr單片機(jī);icc avr;avr studio;開發(fā)平臺;串口調(diào)試 the avr jtag ice-based microcontroller development system software design automation specialty zhang zhao-
3、weiabstract:this topic describes the avr jtag ice-based microcontroller development system software design. system uses the c language programming. subject to independent research and development of the avr microcontroller development platform. use the icc avr, avr studio and serial debugging softwa
4、re modules for the system and the overall development process, and then described the features of this system. one serial port debugging software is developed using vc + +. showing the entire development platform, buttons, adc, dac, buzzers, infrared, serial communication, i2c communication, spi com
5、munication module. the preparation of each module has a corresponding routine. development system through the combination of these routines can easily learn various functions of avr. in addition, learn the various modular features based on the preparation of a development system as a whole program.
6、the system all of the above resources have to spend as much as possible, so that readers have a deeper understanding of the system. after this brief avr microcontroller development system, high-grade readers will have a profound understanding of microcontroller, after work or study on arm and other
7、more high-end products will be of great help. promotion in the future, you can replace 51 single-chip location. allows the user to improve a grade in the scm area.key words: avr microcontroller; icc avr; avr studio; development platform; serial debug目 錄1 引言11.1 課題背景及意義11.2 國內(nèi)外研究現(xiàn)狀11.3 論文組織結(jié)構(gòu)21.3 本章小
8、結(jié)22 關(guān)鍵技術(shù)分析22.1 系統(tǒng)所用到的軟件介紹22.2 icc avr軟件介紹22.3 avr studio軟件介紹52.4 串口調(diào)試軟件的介紹82.5 本章小結(jié)93 系統(tǒng)主要功能模塊設(shè)計(jì)93.1 系統(tǒng)包含的模塊93.2 按鍵掃描程序103.3 模數(shù)轉(zhuǎn)換(adc)程序113.4 數(shù)模轉(zhuǎn)換程序113.5 12864液晶程序123.6 24c02iic通信協(xié)議程序123.7 串口通信程序143.8 本章小結(jié)154 系統(tǒng)軟件架構(gòu)154.1 系統(tǒng)整體程序+12864液晶顯示154.2 系統(tǒng)整體程序+1602液晶顯示174.3 本章小結(jié)185 系統(tǒng)測試185.1 系統(tǒng)測試工具185.2 系統(tǒng)測試方法
9、及分析195.3 本章小結(jié)19結(jié)束語20參考文獻(xiàn)21附錄22致謝29221 引言 1.1 課題背景及意義國內(nèi)高等院校的單片機(jī)教學(xué)與研究已經(jīng)走過了20多年的歷程:從最早的z80單片機(jī)到mcs-51的流行;從8位avr單片機(jī)32位arm的推廣演變;從人工編譯到紫外線擦除eprom;從isp在線編程到計(jì)算機(jī)模擬仿真。而目前大部分學(xué)校開設(shè)的“單片機(jī)原理及嵌入式應(yīng)用”一類的課程還是以20世紀(jì)80年代開始流行的mcs-51系列單片機(jī)為藍(lán)本,以匯編語言(或c語言)為編程工具,以并行擴(kuò)展為核心,講述單片機(jī)的接口技術(shù)及單片機(jī)的嵌入式應(yīng)用。盡管mcs-51在實(shí)際應(yīng)用中還占據(jù)著相當(dāng)大的市場,但隨著微電子技術(shù)和信息技
10、術(shù)的迅猛發(fā)展,以及各種新型數(shù)據(jù)傳輸接口技術(shù)的出現(xiàn)和新器件的推出,傳統(tǒng)的mcs-51由于自身結(jié)構(gòu)原因,在數(shù)據(jù)通信和系統(tǒng)擴(kuò)展的能力方面開始顯得捉襟見肘,與各種新技術(shù)的發(fā)展和應(yīng)用產(chǎn)生脫節(jié)。avr是最近10年見發(fā)展起來的新型的、基于增強(qiáng)型risc(精簡指令集)結(jié)構(gòu)的單片機(jī)。avr在運(yùn)行速度,內(nèi)存容量,內(nèi)部功能模塊的集成化(soc),以串行接口為主的外圍擴(kuò)展,適合使用高級語言編程,以及在開發(fā)技術(shù)和仿真調(diào)試技術(shù)的應(yīng)用等諸多方面都比mcs-51先進(jìn),比較充分和全面地代表了當(dāng)前8位單片機(jī)和嵌入式應(yīng)用技術(shù)的發(fā)展方向。因此,一個(gè)好的開發(fā)平臺可以讓人們更全面、更容易的了解和學(xué)習(xí)avr單片機(jī)。本課題研究出的smart
11、開發(fā)系統(tǒng),體積小,攜帶方便,內(nèi)容豐富,經(jīng)濟(jì)實(shí)用,而且對以后的工作和學(xué)習(xí)高端產(chǎn)品會有很大幫助。1.2 國內(nèi)外研究現(xiàn)狀在國內(nèi),1999年atmel公司與華東師范大學(xué)電子系合作,建立了國內(nèi)第一個(gè)avr實(shí)驗(yàn)室,并首次在高校中開設(shè)了avr課程。然而avr相關(guān)資料的翻譯、編輯、出版花費(fèi)了大量的時(shí)間。以至于到目前為止,國內(nèi)大多數(shù)高校還在以mcs-51系列單片機(jī)為藍(lán)本,引領(lǐng)學(xué)生進(jìn)入單片機(jī)領(lǐng)域。在國外,avr單片機(jī)由atmel公司于1997年強(qiáng)勢推出后,很快就得到了市場的認(rèn)可,并迅速推廣開來,成為msc-51強(qiáng)有力的競爭者。與此同時(shí),國外的許多高校,如美國的麻省理工學(xué)院、耶魯大學(xué)工程系、康奈爾大學(xué)、加拿大的多倫
12、多計(jì)算機(jī)大學(xué)工程系等,也紛紛跟進(jìn)市場需求,更新課程內(nèi)容體系,在開設(shè)的相關(guān)課程中選擇和使用avr。在國內(nèi)雖然也有avr開發(fā)系統(tǒng),但并沒有得到推廣。本課題研究的開發(fā)系統(tǒng)集合相應(yīng)功能的前提下,做到了真正的smart。在國內(nèi)產(chǎn)品中是最小、最高效的一個(gè)開發(fā)系統(tǒng)。1.3 論文組織結(jié)構(gòu)論文分五部分介紹整個(gè)設(shè)計(jì)過程:第一部分主要介紹課題來源和研究的現(xiàn)實(shí)意義;國內(nèi)外與課題類似項(xiàng)目的研究狀況;概述論文的整體結(jié)構(gòu)和各章節(jié)內(nèi)容要點(diǎn)。第二部分結(jié)合圖示,講解各種軟件的使用方法。第三部分主要采用程序流程圖的方式,講述開發(fā)系統(tǒng)上各個(gè)模塊的編程方法。第四部分采用程序流程圖的方式,介紹了開發(fā)系統(tǒng)整體程序。第五部分介紹了系統(tǒng)的測試
13、與實(shí)現(xiàn)過程。1.3 本章小結(jié)本章主要介紹了課題研究的背景和意義、國內(nèi)外的研究現(xiàn)狀以及論文的組織結(jié)構(gòu)。隨著時(shí)代的發(fā)展,科技的進(jìn)步,avr單片機(jī)的廣泛推廣。基于avr的開發(fā)系統(tǒng)正逐步體現(xiàn)出了其價(jià)值。下面對本課題關(guān)鍵技術(shù)進(jìn)行分析。2 關(guān)鍵技術(shù)分析2.1 系統(tǒng)所用到的軟件介紹本系統(tǒng)主要用到三個(gè)軟件,分別是icc avr、avr studio和串口調(diào)試軟件。icc avr是一個(gè)編程軟件,用來編寫系統(tǒng)程序。支持匯編和c語言,本課題以c語言為主講述icc avr使用方法。avr studio為下載調(diào)試軟件,結(jié)合jtag仿真器,可以在線調(diào)試,是使用者能夠清楚程序每一步運(yùn)行的情況,加深使用者對avr內(nèi)部運(yùn)行機(jī)制
14、的了解。串口調(diào)試軟件是在vc+平臺上開發(fā)后使用installshield2008打包生成的應(yīng)用程序。主要用于串口調(diào)試實(shí)驗(yàn)。(本課題主要研究avr單片機(jī)開發(fā)平臺,所以對vc+及installshield2008軟件不做過多介紹。)2.2 icc avr軟件介紹自atmel的at90系列單片機(jī)誕生以來,有很多第三方廠商為at90系列開發(fā)了用于程序開發(fā)的c語言工具。atmel公司推薦的第三方c編譯器有:(1)iar embedded workbenc(2)imagecraft iccavr/icctiny(3)gnu c-compiler(4)codevidion c-compiler1本課題推薦i
15、magecraft的iccavr編譯器,理由有一下幾點(diǎn):(1)免費(fèi)提供30天的試用版軟件,可以生產(chǎn)燒錄文件,而iar免費(fèi)提供的使用版軟件,只生產(chǎn)調(diào)試文件,不能生產(chǎn)燒錄軟件。而且網(wǎng)上有許多對iccavr的破解方法,可以長期使用(對于學(xué)生推薦使用,對于其他人建議使用正版軟件);(2)功能適合,使用方便,技術(shù)支援好;(3)不端增加新功能模塊,如單總線,spi,uart,iic總線,lcd,led等;imagecraft的iccavr是一種使用符合ansi標(biāo)準(zhǔn)的c語言來開發(fā)微控制器(mcu)程序的一個(gè)工具,它有以下幾個(gè)主要特點(diǎn):iccavr是一個(gè)綜合了編譯器和工程管理器的集成工作環(huán)境(ide),其可在
16、windows9x/nt/xp下工作。源文件全部被組織到工程中,文件的編譯和工程的構(gòu)筑也在這個(gè)環(huán)境中完成。編譯錯(cuò)誤顯示在狀態(tài)窗口中,并且當(dāng)你用鼠標(biāo)單擊編譯錯(cuò)誤時(shí),光標(biāo)會自動(dòng)跳轉(zhuǎn)到編譯窗口中起錯(cuò)誤的那一行。這個(gè)工程管理器還能直接產(chǎn)生您希望得到的可以直接使用的intel hex格式文件,intel hex格式文件可被大多數(shù)的編程器所支持,用于下載程序到芯片中去。iccavr是一個(gè)32位的程序,支持長文件名2,3。icc avr有一個(gè)強(qiáng)大的應(yīng)用程序生成器(application builder)功能,讓你在對avr內(nèi)部寄存器和相應(yīng)配置不太熟悉的情況下,快速地編寫程序。以圖形化界面選擇式配置,有軟件自
17、動(dòng)生成代碼。對于項(xiàng)目開發(fā)來說,大大的縮短了開發(fā)時(shí)間。對于icc avr的安裝可參考一般程序的安裝步驟,下面介紹icc avr的界面以及使用方法。圖1 icc avr 6.31版本的窗口如圖1,icc avr編程界面主要分為5部分。第一部分為:菜單項(xiàng);第二部分為:快捷菜單圖標(biāo);第三部分為:程序編輯區(qū);第四部分為:編輯狀態(tài)顯示欄;第五部分為:文件列表框;上文已經(jīng)提到應(yīng)用程序生成器(application builder),這個(gè)功能對于剛接觸avr的人有用。使用此功能有兩種方法:第一種在菜單項(xiàng)中選tools-application builder。第二種在快捷菜單圖標(biāo)欄中點(diǎn)擊圖標(biāo)。會彈出圖2視圖框。
18、圖2 應(yīng)用程序生成器窗口如圖2為應(yīng)用程序生成器窗口,最上面有cpu、ports、timer0、timer1、timer2、uart、spi、analog標(biāo)簽。(1) 在cpu標(biāo)簽下可以選擇cpu類型、晶振、看門狗、中斷、eeprom等功能,特別注意,當(dāng)選擇不共的cpu時(shí),后面相關(guān)配置的標(biāo)簽中的內(nèi)容會不一樣,此處選擇m16;(2) 在ports標(biāo)簽下可以配置io口的輸入輸出狀態(tài),以及是否帶上拉電阻等功能;(3) 在timer0標(biāo)簽下可以配置定時(shí)器0的相關(guān)功能;(4) 在timer1標(biāo)簽下可以配置定時(shí)器1的相關(guān)功能;(5) 在timer2標(biāo)簽下可以配置定時(shí)器2的相關(guān)功能;(6) 在uart標(biāo)簽下可
19、以配置uart的相關(guān)功能;(7) 在spi標(biāo)簽下可以配置spi和twi(iic)通信協(xié)議的相關(guān)功能;(8) 在analog標(biāo)簽下可以配置adc的相關(guān)功能;注:由于篇幅限制,不再給出每個(gè)標(biāo)簽下的視圖。當(dāng)上面?zhèn)€種功能配置好后,點(diǎn)擊options-include“main()”,然后點(diǎn)擊ok。編譯器就會自動(dòng)生成程序的大致框架,只需填寫相應(yīng)的程序就可完成想要實(shí)現(xiàn)的功能,非常方便、快捷。2.3 avr studio軟件介紹atmel avr tools在線硬件仿真極大的減輕了設(shè)計(jì)者在程序查錯(cuò)時(shí)的負(fù)擔(dān)。本開發(fā)系統(tǒng)配帶的仿真器,可實(shí)現(xiàn)程序的在線調(diào)試,程序的每一步都可在開發(fā)板上看到效果。在調(diào)試程序問題時(shí),明白
20、每一步的功能一切盡在掌控中,可在一定程度上達(dá)到人機(jī)對話。通過該軟件也可在電腦界面上顯示單片機(jī)io口的配置狀態(tài)和實(shí)際狀態(tài),使設(shè)計(jì)高效便捷。對已經(jīng)運(yùn)行的tools/avr studio 4進(jìn)行如圖3示操作。點(diǎn)擊打開文件夾快捷方式,或著點(diǎn)擊file-open file。圖3 avr studio初始界面軟件會彈出如圖4的界面(此界面為選擇正確的文件夾路徑后的界面)。選擇正確文件夾的路徑,找到要在線仿真的程序文件夾,在文件夾中選擇*.cof文件并點(diǎn)擊打開。即可把在線仿真的可執(zhí)行文件添加到軟件中。圖4 avr studio選擇*.cof文件經(jīng)過以上操作后會彈出新的對話框,直接點(diǎn)保存即可。如圖5操作。圖5
21、 生成并保存*.aps文件左側(cè)調(diào)試方式窗口里選/jtag ice,右側(cè)設(shè)備窗口里選/atmega16,然后點(diǎn)擊finish完成操作。如圖6操作所示。圖6 選擇仿真模式進(jìn)入其工作界面,右上方的按鈕為常用操作按鈕,開始按鈕,停止按鈕,全速運(yùn)行功能,暫停按鈕,跳入單步運(yùn)行,單個(gè)程序整體運(yùn)行,跳出所在程序,將光標(biāo)放在程序的某一位置,點(diǎn)擊此按鈕可直接運(yùn)行到光標(biāo)處,該按鈕具有單步自動(dòng)運(yùn)行功能,中斷按鈕,取消所有中斷該界面可以清晰的看出io口電平分布情況,每運(yùn)行一步驟,相應(yīng)的端口都會產(chǎn)生相應(yīng)的變化,界面的電位情況即為開發(fā)板上io口電平分布。圖中黃色箭頭代表程序運(yùn)行到的位置。如下圖7所示。圖7 avr stu
22、dio進(jìn)入在線仿真模式下的界面特別注意的一點(diǎn)是,在使用jtag ice在線仿真前,必須把硬件連接好,否則將無法進(jìn)入在線仿真界面。正確的連接方法如圖8所示。圖8 jtag ice的正確連接圖2.4 串口調(diào)試軟件的介紹本課題研究的開發(fā)系統(tǒng),摒棄了傳統(tǒng)的串口模式,使用pl2303將串口轉(zhuǎn)換為usb口后與pc進(jìn)行通信。大大縮小了開發(fā)平臺的體積。使開發(fā)平臺達(dá)到功能豐富,但體積更小的目的。在做串口實(shí)驗(yàn)時(shí),需要一個(gè)串口調(diào)試助手來幫住我們。通過自學(xué),在vc+環(huán)境下成功開發(fā)出了一個(gè)屬于自己的串口調(diào)試軟件4,5,6。下圖9為自主研發(fā)的串口調(diào)試軟件界面。圖9 串口調(diào)試軟件界面此串口調(diào)試軟件有:端口選擇、波特率選擇、
23、奇偶校驗(yàn)、數(shù)據(jù)位、停止位等串口調(diào)試的基本設(shè)置和狀態(tài)顯示(在最下面status:后顯示以上選擇的狀態(tài))。有一個(gè)顯示區(qū)和一個(gè)數(shù)據(jù)輸入?yún)^(qū)。還包括發(fā)送接收模式的選擇(十六進(jìn)制還是字符型,默認(rèn)為字符型)。這些都是一般串口軟件所有的功能。本軟件還有顯示區(qū)數(shù)據(jù)保持功能,可以讓串口接收到大量數(shù)據(jù)后以*.txt格式保存到設(shè)置的目錄中。默認(rèn)目錄為c:comdata。點(diǎn)擊更改按鈕,可以改變其保存目錄。此軟件還可以自動(dòng)發(fā)送數(shù)據(jù),并可設(shè)置起發(fā)送周期。還可以發(fā)送文件,把大量數(shù)據(jù)保持在文本文件中,以文件的方式發(fā)送。這些功能在一些項(xiàng)目調(diào)試中將會起到很大的作用。2.5 本章小結(jié)本章主要講述了本課題所需用到的各種軟件及其操作方法
24、,從各種軟件的使用可以看出本開發(fā)系統(tǒng)編程方便,調(diào)試簡單,應(yīng)用性強(qiáng)。了解了變成軟件的功能后,我們再來了解一下系統(tǒng)各個(gè)主要功能模塊及其功能。3 系統(tǒng)主要功能模塊設(shè)計(jì)3.1 系統(tǒng)包含的模塊下圖10為開發(fā)平臺各模塊示意圖。圖10 avr開發(fā)平臺模塊示意圖開發(fā)平臺上可以做的實(shí)驗(yàn)有很多。如顯示部分有:四位數(shù)碼管、1602液晶顯示、12862液晶顯示、8個(gè)發(fā)光二極管顯示。還有adc模數(shù)轉(zhuǎn)換實(shí)驗(yàn),紅外接收實(shí)驗(yàn),按鍵掃描實(shí)驗(yàn),24c02存儲器可練習(xí)iic通信,93c46可練習(xí)spi通信,usb口可用來為系統(tǒng)提供電源和串口通信實(shí)驗(yàn),如圖10所示。而且主控芯片atmega16的4組io口都有預(yù)留接口,可以通過杜邦線
25、鏈接其他期間進(jìn)行實(shí)驗(yàn)??傊伍_發(fā)平臺可以做的實(shí)驗(yàn)有很多。由于篇幅的限制下面我簡單介紹幾個(gè)具有代表性模塊程序。3.2 按鍵掃描程序作為開發(fā)平臺的核心控制器,avr單片機(jī)就有豐富的輸入輸出接口。而本開發(fā)平臺上面,最主要的輸入模塊就是按鍵模塊。此開發(fā)系統(tǒng)除了復(fù)位按鍵外有3行,2列按鍵。考慮到板子空間和功能使用,最終決定了只在開發(fā)平臺上留下6個(gè)按鍵。這6個(gè)按鍵就可以做按鍵掃描程序,也可滿足一定的功能應(yīng)用7。圖11 矩陣按鍵原理圖圖12 矩陣按鍵掃描程序流程圖如圖11為開發(fā)平臺上的3*2矩陣按鍵原理圖,圖12為程序流程圖8。以上程序流程圖是一般的按鍵掃描流程圖,如需有特殊功能(如加按鍵去抖動(dòng)功能,按鍵
26、釋放功能),可另行修改。3.3 模數(shù)轉(zhuǎn)換(adc)程序作為開發(fā)平臺的另一個(gè)重要的輸入模塊,adc模塊用來實(shí)現(xiàn)數(shù)模轉(zhuǎn)換實(shí)驗(yàn)。它主要是使用avr單片機(jī)的內(nèi)部adc對電壓進(jìn)行檢測。然后在系統(tǒng)內(nèi)部進(jìn)行相應(yīng)處理。對于adc的編程很簡單,參考2.2 icc avr軟件介紹。使用icc avr的應(yīng)用程序生成器功能。在analog標(biāo)簽下對adc進(jìn)行相應(yīng)配置后,可以讓軟件自動(dòng)生產(chǎn)程序框架,然后在主函數(shù)中編寫相應(yīng)換算程序即可9。下圖13為adc程序流程圖。圖13 adc程序流程圖3.4 數(shù)模轉(zhuǎn)換程序與模數(shù)轉(zhuǎn)換相對應(yīng),雖然avr單片機(jī)內(nèi)部沒有專門的dac模塊,但我們可以通過其定時(shí)器產(chǎn)生pwm波來模擬dac的效果。從
27、而使其相當(dāng)于既有adc功能又有dac功能。關(guān)于dac程序可以參考定時(shí)器的應(yīng)用。在icc avr的application builder功能中,把定時(shí)器配置成pwm模式,即可讓軟件自動(dòng)生成大致程序框架,讓后填寫自己要要實(shí)現(xiàn)的其它程序即可。3.5 12864液晶程序12864作為一款圖形液晶,既可以顯示漢字,有可以顯示圖形,而且價(jià)格便宜,使用范圍廣。想要熟練掌握12864液晶,就要認(rèn)真學(xué)習(xí)12864數(shù)據(jù)手冊,在了解其時(shí)序、指令、及數(shù)據(jù)傳輸方式后,可以編寫驅(qū)動(dòng)程序。當(dāng)然由于目前12864已經(jīng)是一款非常成熟的產(chǎn)品,其驅(qū)動(dòng)程序在網(wǎng)上很容易找到。要想快速使用12864,可以直接導(dǎo)入其驅(qū)動(dòng)程序到工程中,并進(jìn)
28、行相應(yīng)io口是配置,然后就可直接對12864進(jìn)行操作,讓其顯示你想要顯示的結(jié)果了10。如圖14所示為12864程序路程圖。圖14 12864程序流程圖3.6 24c02iic通信協(xié)議程序(1)iic總線是philips公司提出的串行總線,但現(xiàn)在實(shí)際上已成為一個(gè)國際標(biāo)準(zhǔn),在超過100種不同的ic上實(shí)現(xiàn)并得到超過50家公司的許可。它只用兩根總線(時(shí)鐘線scl和數(shù)據(jù)線sda)實(shí)現(xiàn)了多主的總線連接。它有3種模式:標(biāo)準(zhǔn)模式(100kbits/s),快速模式(400kbits/s)和高速模式(3.4mbits/s),尋址方式有7位和10位方式。(2)scl和sda都是雙向線路,都通過一個(gè)上拉電阻連接到正的
29、電源電壓,如下圖15所示。當(dāng)總線空閑時(shí)這兩條線路都是高電平。圖15 iic通信總線圖完整的iic數(shù)據(jù)傳輸如下圖16所示:圖16 iic數(shù)據(jù)傳輸時(shí)序圖它包括起始條件、地址傳送、數(shù)據(jù)傳送、響應(yīng)位、停止條件組成。起始條件是指在scl線是高電平時(shí),sda從高電平向低電平切換。停止條件是指當(dāng)scl是高電平時(shí),sda從電平向高電平切換。接下來的一個(gè)字節(jié)包含7位地址和一位讀/寫控制位。接下來是主發(fā)到從或從發(fā)到主的數(shù)據(jù),緊跟著的是響應(yīng)位,由接收數(shù)據(jù)的設(shè)備發(fā)出。最后是停止位表示數(shù)據(jù)傳輸?shù)耐瓿?。整個(gè)過程中傳輸?shù)?或0是在scl為高時(shí)sda的電平?jīng)Q定的。而sda線的高或低電平狀態(tài)只有在scl為低電平時(shí)才能改變11。
30、(3)三種典型的數(shù)據(jù)傳輸模式。a. 主機(jī)只發(fā)送數(shù)據(jù)給從機(jī)指定地址。b. 主機(jī)尋址從機(jī),只從從機(jī)讀取數(shù)據(jù)。c. 以上兩種的復(fù)合模式,即主機(jī)既想向從機(jī)寫數(shù)據(jù)又需要從機(jī)反饋數(shù)據(jù)。三種模式的示意圖如下圖17、18、19、20所示:圖17 主機(jī)只發(fā)送數(shù)據(jù)圖18 主機(jī)只接收數(shù)據(jù)圖19 主機(jī)即發(fā)送又接收數(shù)據(jù)圖20 以上三個(gè)圖中圖示及字母表示的含義對于24c02的程序主要是熟練iic通信協(xié)議,只要按照圖的時(shí)序,就可以對24c02的存儲空間進(jìn)行讀寫12。這里不在專門畫其程序流程圖。3.7 串口通信程序串口通信是大多數(shù)產(chǎn)品和pc間的通信方式。本課題專門為串口通信設(shè)計(jì)了串口調(diào)試軟件。串口程序的編寫可以使用icc a
31、vr的application builder功能,對串口進(jìn)行配置后,讓軟件自動(dòng)生產(chǎn)中斷函數(shù),自動(dòng)計(jì)算相應(yīng)波特率下的初始配置。不用在翻書尋找其需要配置的寄存器,計(jì)算波特率的公式13。如下圖21所示,配置波特率為9600,數(shù)據(jù)位為8位,無奇偶校驗(yàn),使用接收和發(fā)送中斷。圖21 uart串行通信的配置3.8 本章小結(jié)本章講述了各個(gè)功能模塊的功能及其變成方法。以程序流程圖的方式演示了按鍵掃描模塊、數(shù)模轉(zhuǎn)換、12864液晶等幾個(gè)典型的程序編寫思路。從這幾個(gè)模塊程序的編寫方法上可以看出其他模塊的使用方法。本章還講述了iic協(xié)議和串行通信協(xié)議的使用方法,為mcu與其外設(shè)通信指明了方向。下面介紹系統(tǒng)整體程序的架
32、構(gòu)和實(shí)現(xiàn)方法。4 系統(tǒng)軟件架構(gòu)本系統(tǒng)程序集合了開發(fā)系統(tǒng)上大部分功能。由于數(shù)碼管顯示、1602液晶顯示、12864液晶顯示公用i/o口。所以,顯示部分只能有一個(gè)來顯示。整板測試分為兩種,一種為開發(fā)板+12864液晶,一種為開發(fā)板+1602液晶。4.1 系統(tǒng)整體程序+12864液晶顯示開發(fā)板+12864功能介紹:上電初始化,數(shù)碼管顯示時(shí)鐘,從30分30秒開始。12864上顯示南陽理工學(xué)院和?;?。(注意請把12864與開發(fā)板連接,若不連接會造成初始化不能通過,整個(gè)程序無法運(yùn)行)。如圖22是12864整體程序流程圖。按下按鍵1:數(shù)碼管顯示時(shí)鐘。按下按鍵2:12864液晶顯示南陽理工學(xué)院和?;铡0聪掳存I
33、3:清屏液晶。按下按鍵4:在數(shù)碼管上顯示紅外鍵值。按下按鍵5:在12864上顯示紅外鍵值(關(guān)閉數(shù)碼管)(注意如果液晶上顯示右?;?,按下此鍵時(shí),中間的四個(gè)位會顯示按鍵值,而把原來的部分圖形覆蓋,所以建議按下此鍵之前,對液晶清屏)。按下按鍵6:循環(huán)播放兩首歌曲(生日快樂歌,一千年以后)。圖22 整體程序+12864顯示4.2 系統(tǒng)整體程序+1602液晶顯示開發(fā)板+1602功能介紹:上電初始化,數(shù)碼管顯示時(shí)鐘,從30分30秒開始。1602上顯示welcom to nanyangligong。(注意請把1602與開發(fā)板鏈接,若不鏈接會造成初始化不能通過,整個(gè)程序無法運(yùn)行)。如圖23所示,是1602程序
34、流程圖。按下按鍵1:數(shù)碼管顯示時(shí)鐘。按下按鍵2:1602液晶顯示welcom to nanyangligong。按下按鍵3:清屏液晶。按下按鍵4:在數(shù)碼管上顯示紅外鍵值。按下按鍵5:循環(huán)播放生日快樂歌。按下按鍵6:循環(huán)播放一千年以后。圖23 整體程序+1602顯示4.3 本章小結(jié)通過整體程序的編寫,使我對avr單片機(jī)有了很深刻的認(rèn)識,同時(shí)對軟件的操作也更加得心應(yīng)手。對整個(gè)系統(tǒng)的程序的編寫有了一些心得體會。在編寫一個(gè)整體項(xiàng)目程序時(shí),如上面的兩個(gè)整體程序。要先規(guī)劃avr內(nèi)部資源。如atmega16中有3個(gè)定時(shí)器,每個(gè)定時(shí)器都用來做什么,各個(gè)i/o口都用來做什么。還有都用到了哪些功能,哪些中斷。這些
35、都確定好后,可以使用icc avr的application builder功能生成系統(tǒng)程序框架,讓后把這個(gè)框架填充起來。這樣可以省去很多不必要的麻煩,同時(shí)也節(jié)省了很多開發(fā)時(shí)間。在程序編寫過程中要增加某個(gè)功能,而一開始的時(shí)候沒有規(guī)劃,也可以application builder的preview功能獲取該功能的相關(guān)配置,并把其復(fù)制到你的工程文件中。對于一個(gè)具有很多功能的程序,不要感覺無從下手。其實(shí)一個(gè)功能強(qiáng)大的程序都是由許多小程序堆積而成的。從最簡單的功能開始寫起,一步一步往上添加功能。到最后,所有功能就全部實(shí)現(xiàn)了。遇到問題多思考,查找資料,逛逛論壇。不要因?yàn)橐粋€(gè)現(xiàn)象、問題自己沒見過就覺得很奇怪,
36、無法解決。任何問題都是有原因的,都會有辦法解決的。5 系統(tǒng)測試5.1 系統(tǒng)測試工具(1)數(shù)字萬用表(dt9205)本儀表以大規(guī)模集成電路、雙積分a/d(模/數(shù))轉(zhuǎn)換器為核心,配以全功能過載保護(hù)電路,可用來測量直流和交流電壓、電流、電阻、電容、二極管、三極管、溫度、頻率、電路通斷等。精確度:(%讀數(shù)+第四位上的字?jǐn)?shù))。注意:括號內(nèi)的第2部分,為精確度的修正值,應(yīng)放在該檔位的最后一位數(shù)字上。精確度保證期為1年。環(huán)境溫度:230c50c;相對濕度: 75%。(2)smart avr開發(fā)平臺a.以atmega16芯片為核心主控制器;b.顯示部分由4個(gè)數(shù)碼管,一個(gè)1602液晶接口,一個(gè)12864液晶接口
37、組成,使得顯示的方案可任意組合;c.其他資源:具有鍵盤模塊,蜂鳴器,紅外顯示,模數(shù)轉(zhuǎn)換,iic通信方式的存儲器,spi通信方式的存儲器,復(fù)位電路,jtag接口,isp接口,jtag仿真器;(3)自制直流穩(wěn)壓電源輸入電壓:交流220v,5060hz,允許電壓變化10輸出電壓:直流024v, 01a,可調(diào)調(diào)整范圍:0.01v電壓穩(wěn)定度:510-3負(fù)載穩(wěn)定度:510-3輸出文波:1mv5.2 系統(tǒng)測試方法及分析整個(gè)開發(fā)板硬件完成后軟件的測試主要分兩方面。一方面是各個(gè)模塊的編程調(diào)試。另一方面是整體程序的編程調(diào)試。各模塊是測試思想為:借助數(shù)碼管的顯示功能,來判斷各個(gè)模塊的功能是否實(shí)現(xiàn)。例如,鍵盤可以通過
38、編碼在數(shù)碼管上顯示,按下哪個(gè)按鍵數(shù)碼管就顯示幾。紅外接收到的數(shù)據(jù)經(jīng)過處理后也可在數(shù)碼管上顯示出來。模數(shù)轉(zhuǎn)換后的數(shù)值經(jīng)過處理后可在數(shù)碼管上顯示電壓值。這個(gè)電壓值在測試的時(shí)候,與用萬用表測的電壓值有一定的偏差(顯示值比測得的值大)。經(jīng)過分析,這個(gè)現(xiàn)象的原因是因?yàn)槭褂昧穗娔X上面的usb給開發(fā)平臺提供電源。其帶負(fù)載時(shí)的電壓會下降,而模數(shù)轉(zhuǎn)換顯示的數(shù)值是以5v電壓為標(biāo)準(zhǔn)轉(zhuǎn)換的。若換上自制的帶負(fù)載能力強(qiáng)的電源就會很準(zhǔn)確了。當(dāng)然除了使用數(shù)碼管外還可以使用液晶,在液晶上顯示相應(yīng)的數(shù)據(jù)。也可通過八個(gè)發(fā)光二極管來表現(xiàn)各部分工作情況。整體程序的測試:整體程序的測試首先通過不斷的調(diào)試,完善各個(gè)功能。在功能實(shí)現(xiàn)的前提下
39、,追求程序的穩(wěn)定性,程序的執(zhí)行效率。通過不端改善,整體程序可以按照前文所述的功能運(yùn)行。特別注意的是!此開發(fā)系統(tǒng)雖然可以使用計(jì)算機(jī)上的usb口直接供電,但一些對電壓要求比較高的實(shí)驗(yàn)(如數(shù)模轉(zhuǎn)換,模數(shù)轉(zhuǎn)換實(shí)驗(yàn))最好用帶負(fù)載能力強(qiáng)的電源。這樣會減少不必要的干擾,達(dá)到理想的效果。5.3 本章小結(jié)本章主要介紹了系統(tǒng)測試所用到的工具、系統(tǒng)測試的方法。對以一個(gè)系統(tǒng)來說,軟硬件是無法分割的,特別是在整體調(diào)試的過程中。軟件的良好運(yùn)行建立在硬件工作正常的前提下。硬件離開了軟件也就沒有了意義。在整體調(diào)試過程中,軟件主要負(fù)責(zé)實(shí)現(xiàn)預(yù)定是功能,所以沒有測試結(jié)果,只有最后工作正常系統(tǒng)。結(jié)束語本開發(fā)系統(tǒng)基于atmega16l
40、單片機(jī)及其外圍元器件配合jtag ice仿真器的開發(fā)平臺,板載模塊有八個(gè)可控發(fā)光二極管,四個(gè)數(shù)碼管、1602、12864液晶顯示接口、3*2鍵盤、iic總線電路、spi總線電路、紅外、蜂鳴器、usb轉(zhuǎn)串口等電路,組成了一個(gè)功能強(qiáng)大的開發(fā)平臺,開發(fā)了配套的jtag ice仿真器,使軟件開發(fā)周期縮短,成本降低。在如此完善的功能的前提下,做成了最小開發(fā)板。本系統(tǒng)有以下特點(diǎn):人機(jī)界面友好、體積小、靈活性好、穩(wěn)定性高、下載程序方便、抗干擾能力強(qiáng)。在整個(gè)系統(tǒng)的開發(fā),調(diào)試,整理中有如下幾點(diǎn)心得:(1) icc avr是一個(gè)功能強(qiáng)大的開發(fā)平臺。特別是其應(yīng)用程序生成器功能,可以使初學(xué)者找到自信,讓學(xué)習(xí)變得簡單。
41、讓開發(fā)項(xiàng)目的人節(jié)省開發(fā)時(shí)間,提高開發(fā)效率。(2) icc avr+avr studio的配合非常經(jīng)典,icc avr的強(qiáng)大就不用多說,avr studio可以結(jié)合jtag仿真器,讓程序在開發(fā)平臺上的運(yùn)行透明化。讓使用者明白程序的每一步實(shí)現(xiàn)什么樣的功能。讓bug無處藏身。(3) 當(dāng)然擁有強(qiáng)大的開發(fā)工具并不代表你就學(xué)會了所有東西。知識還是需要自己去認(rèn)真琢磨研究才能參透。只有付出的越多,才能得到的越多。編程時(shí),經(jīng)常會碰到一些想不到的問題,要多思考為什么,對問題進(jìn)行認(rèn)真的剖析。只有把問題弄清楚了,以后才不會犯同樣的錯(cuò)誤。(4) 對于一個(gè)大的項(xiàng)目、大的工程,可以通過把他分割成一個(gè)個(gè)小的模塊,一點(diǎn)一點(diǎn)來實(shí)現(xiàn),一個(gè)功能一個(gè)功能向上面添加的方法來完成。這樣一個(gè)自己感覺無法完成的項(xiàng)目就會在不知不覺間完成。
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 改擴(kuò)建工程施工合同的融資方案3篇
- 插畫師勞動(dòng)合同樣本3篇
- 散熱器招標(biāo)文件的合同簽訂流程指導(dǎo)3篇
- 教育培訓(xùn)項(xiàng)目中標(biāo)合同3篇
- 旅游大巴車租賃合同范本3篇
- 放心供應(yīng)商零件訂購合同3篇
- 工業(yè)烤箱安裝工程合同書3篇
- 工業(yè)往來貸款協(xié)議3篇
- 房屋買賣委托書填寫指南3篇
- 旅游合同范本集合3篇
- 信用證常用條款中英文對照
- 拔罐技術(shù)操作流程圖
- 圍墻工程量清單
- 合力為科技hlw8012應(yīng)用設(shè)計(jì)v2.31hlw8012參數(shù)計(jì)算說明
- 《資本經(jīng)營》形成性考核作業(yè)1及答案
- 專題講座2022年《英語》新課標(biāo)PPT課件解析《義務(wù)教育英語課程標(biāo)準(zhǔn)(2022年版)》
- 【課件】Unit3ReadingforWriting寫作指導(dǎo)課件課件-2021-2022學(xué)年高中英語人教版(2019)必修第二冊
- PLC課程設(shè)計(jì)說明書旋轉(zhuǎn)式濾水器電氣控制系統(tǒng)設(shè)計(jì)
- 高效全自動(dòng)凈水器操作使用說明
- 伯努利方程逐段試算法求水庫回水
- ppt素材――小圖標(biāo) 可直接使用
評論
0/150
提交評論