第9章 編譯器和集成開發(fā)環(huán)境_第1頁
第9章 編譯器和集成開發(fā)環(huán)境_第2頁
第9章 編譯器和集成開發(fā)環(huán)境_第3頁
第9章 編譯器和集成開發(fā)環(huán)境_第4頁
第9章 編譯器和集成開發(fā)環(huán)境_第5頁
已閱讀5頁,還剩256頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

ATmega單片機(jī)原理及應(yīng)用——C語言教程

第9章編譯器和集成開發(fā)環(huán)境

主講:海濤

廣西大學(xué)電氣工程學(xué)院內(nèi)容提要隨著AVR單片機(jī)的日益普及,目前有多種編譯及下載軟件提供對AVR系列單片機(jī)的支持。在本章中,介紹了SL-ISP1.518和PonyProg2000兩種下載程序軟件,詳細(xì)講解軟件的使用方法,說明如何操作軟件進(jìn)行單片機(jī)軟件編寫下載。對于AVR單片機(jī)的編譯器也作了詳細(xì)的介紹,簡單描述了如何使用編譯器建立一個(gè)新工程,以及各個(gè)功能的使用方法,最后還介紹一些常用的單片機(jī)小工具。9.1單片機(jī)程序下載及集成開發(fā)環(huán)境9.1.1單片機(jī)下載方式簡介AVR單片機(jī)支持普通串口方式、STK500方式、并口(SPI)方式及USB方式等多種下載方式。普通串口方式的速度快,但支持的軟件不多。連ATmel公司的

AVR

Studio

內(nèi)的

AVR

pro也停止了更新。因此,普通串口方式不支持最新的芯片。STK500下載為ATmel公司官方推薦的下載方式。與并口下載方式和USB下載方式相對比,STK500具有速度快,AVRStudio直接支持該下載方式等優(yōu)點(diǎn)。并且,只要AVR

studio

發(fā)布新版本,該下載方式支持的器件就同步更新,不會發(fā)生不支持新器件的情況。STK500方式也有其缺點(diǎn):價(jià)格較高。目前仿造ATmel公司的STK500下載線的售價(jià)也在百元以上。因此,該方法不適合在教學(xué)中使用。

并口下載方式利用PC機(jī)的并口(俗稱打印口)進(jìn)行程序下載。其下載速度要明顯慢于STK500方式。但在教學(xué)應(yīng)用中,由于選用的芯片flash容量不大,并且對下載速度要求不高,并口下載線是一個(gè)很好的選擇。較之串口下載方式和STK500下載方式,并口下載線成本低,有較多軟件支持,適合大范圍推廣。并口下載線的制作方法有很多,讀者可以在網(wǎng)絡(luò)上下載到多個(gè)版本的原理圖。這里,推薦一種簡單實(shí)用的接線方式,其原理圖如圖9.1所示:圖9.1并口下載線原理圖支持并口下載線的軟件很多。比較常用的有ProgPony及雙龍公司的SL-ISP等。由于對軟件的支持不足,并口下載軟件通常不能像STK500那樣對新的器件立即支持。以ProgPony為例,作為一個(gè)免費(fèi)的下載軟件,ProgPony2000之后還未見新版本出現(xiàn)。但用于教學(xué)中的主流芯片,各個(gè)版本的并口下載軟件均給予較好的支持。因此,在教學(xué)中,使用并口下載軟件和并口下載線是一個(gè)較好的選擇。筆者通過對比使用,認(rèn)為目前較好的并口下載軟件是雙龍公司的SL-ISP最新版本SL-ISP1.518。作為一個(gè)免費(fèi)的軟件,讀者可以到雙龍公司的主頁:進(jìn)行免費(fèi)下載。圖9.2為SL-ISP1.518的主界面。在主界面中,可以設(shè)置芯片型號、通信接口、下載速度、程序存儲器文件、數(shù)據(jù)存儲器文件、編程選項(xiàng)、加密模式等。通過主界面還可以對芯片進(jìn)行擦除、編程、校驗(yàn)、讀取等操作。只要在編程選項(xiàng)中進(jìn)行相應(yīng)的設(shè)置,通過按鍵便可以實(shí)現(xiàn)一鍵編程,不需每次更改程序后都重載程序。圖9.2SL-ISP1.518的主界面在對AVR單片機(jī)進(jìn)行編程的時(shí)候,首先要對熔絲位進(jìn)行相應(yīng)的配置。熔絲位的配置決定了單片機(jī)工作的頻率。如果熔絲位配置錯誤造成單片機(jī)工作頻率與給定頻率不一致,會引起單片機(jī)工作不穩(wěn)定甚至鎖死的現(xiàn)象發(fā)生。SL-ISP1.518版本中,增添了STK500的熔絲位配置界面,可以不必記憶熔絲位配置組合,直接選定所需的頻率范圍進(jìn)行熔絲位配置。如圖9-3所示,在編程選項(xiàng)中的前打勾,便會彈出“配置熔絲設(shè)置”對話框。圖9.3配置熔絲位配置熔絲設(shè)置對話框如圖9.4所示。通過該對話框可以對單片機(jī)的熔絲位直接進(jìn)行設(shè)置,也可以點(diǎn)擊“設(shè)置導(dǎo)航”按鍵開啟類似STK500的熔絲位設(shè)置界面對熔絲位進(jìn)行設(shè)置。建議初學(xué)者選擇第二種配置方式。圖9.4配置熔絲設(shè)置對話框SL-ISP1.518的STK500的熔絲位設(shè)置如圖9.5所示。只需選中相應(yīng)的配置組合即可。目前還有較為流行的一款并口下載軟件-PonyProg2000,同樣作為一款免費(fèi)的軟件,讀者可以從http://www.LancOS.com下載。該軟件操作簡單,人機(jī)界面比較直觀,對于新學(xué)者來說比較容易上手,下面具體來介紹下該軟件的應(yīng)用方法。圖9.6為PonyProg2000的主界面。在主界面中,與雙龍相似,同樣可以設(shè)置芯片型號、通信接口、下載速度、程序存儲器文件、數(shù)據(jù)存儲器文件、編程選項(xiàng)、加密模式等。通過主界面還可以對芯片進(jìn)行擦除、編程、校驗(yàn)、讀取等操作。只要在編程選項(xiàng)中進(jìn)行相應(yīng)的設(shè)置,通過按鍵便可以實(shí)現(xiàn)一鍵編程,不需每次更改程序后都重載程序。圖9.6PonyProg2000的主界面如圖所示的打開文件一欄,點(diǎn)擊后輸入目標(biāo)程序地址,再將單片機(jī)的類型選擇成所用的類型,一般習(xí)慣上先擦寫一次CPU,將原來的程序擦除,再點(diǎn)擊圖中下載程序的按鍵,就可以將程序下載入單片機(jī)內(nèi)了。這里我們來介紹下一鍵編程的操作,點(diǎn)擊主頁面菜單中的功能欄中的鍵,會出現(xiàn)如圖9.7一鍵編程的操作界面界面。如圖所示,點(diǎn)擊陰影命令后會出現(xiàn)右邊的界面,用來設(shè)置一鍵編程的操作指令,圖中所勾選的為一般設(shè)置的指令,先調(diào)取程序、擦除舊程序、寫入新程序。設(shè)置后,以后再編程時(shí)就可以只點(diǎn)擊就可以完成程序的下載工作了,非常簡便,推薦讀者使用。點(diǎn)擊會出現(xiàn)如圖9.8所示的界面,可以參照圖9.5進(jìn)行設(shè)置。9.2單片機(jī)編譯器和集成環(huán)境的介紹作為一種當(dāng)前應(yīng)用較廣泛的單片機(jī),有多種集成開發(fā)環(huán)境支持對AVR單片機(jī)的程序開發(fā)。由于C語言在單片機(jī)設(shè)計(jì)中具有直觀、可讀性強(qiáng)、程序移植容易等優(yōu)點(diǎn),在本書中,將著重介紹AVR單片機(jī)基于C語言的編譯器和集成環(huán)境。

由于WinAVR脫胎于GCC,因此不可避免的一些操作會與大部分用戶熟悉的Windows的操作方式有所不同。為了解決這個(gè)問題,晶士電子(AtmanElectronics)開發(fā)了一個(gè)基于WinAVR的中文集成開發(fā)環(huán)境——AtmanAvr。通過AtmanAvrCIDE用戶可以以熟悉的Windows操作界面及操作方式對AVR單片機(jī)進(jìn)行開發(fā)。讀者可以通過登錄晶士電子的主頁:/下載到最新版本的AtmanAvr的30天試用版本。AtmanAvrCIDE除了集成中文的Windows操作界面外,筆者認(rèn)為其最大的優(yōu)點(diǎn)在于其幫助文件。在AtmanAvrCIDE的主界面中,可以通過按“F1”鍵調(diào)用該幫助文件。通過該幫助文件,可以獲取關(guān)于AtmanAvrCIDE的全部信息,其中甚至包括C語言的介紹。同時(shí),該幫助文件對每個(gè)函數(shù)的用法都以實(shí)例演示,方便用戶使用。相信讀者通過該幫助文件能很快的掌握AtmanAvrCIDE的使用。就C語言而言,目前常見的集成開發(fā)環(huán)境有WinAVR、AtmanAvr、ICCAVR及IARAVR等多種。其中,WinAVR是將Unix操作系統(tǒng)中的GCC移植到Windows操作系統(tǒng)中的一個(gè)AVR單片機(jī)的集成編譯環(huán)境。WinAVR是一個(gè)一個(gè)完全免費(fèi)的軟件,在AVR用戶中是使用最多的。讀者可以通過下面的鏈接免費(fèi)下載最新版本的WinAVR集成開發(fā)環(huán)境:/projects/winavr/1.ATMANAVR編譯器的安裝可以直接運(yùn)行光盤上setup.exe安裝程序進(jìn)行安裝,有以下幾種方法:方法1:(l)打開“我的電腦”;(2)打開光盤驅(qū)動器所對應(yīng)的盤符;(3)雙擊光盤中文件“setup.exe”的圖標(biāo);(4)按照屏幕提示選定一個(gè)安裝路徑后進(jìn)行安裝。默認(rèn)的安裝路徑為“C:\ATMAN”,一般情況選默認(rèn)的安裝位置。方法2:(l)在開始菜單中選擇“運(yùn)行”命令;(2)在運(yùn)行對話框中輸入“<drive>:\Setup.exe;注意,“<drive>”對應(yīng)機(jī)器中的光盤驅(qū)動器盤符,如果光盤為F盤,則填入“f:\setup.exe”;(3)按“確定”鍵開始安裝;(4)按照屏幕提示,選定一個(gè)安裝路徑后進(jìn)行安裝。方法3:由于ATMANAVR升級較快,光盤中的安裝文件并不一定是最新的,可以到晶士公司的網(wǎng)站上(/ChineseSite/SoftwareChinese.htm)或國內(nèi)總代理雙龍電子公司網(wǎng)站(http://.on)下載最新版,將安裝文件下載到電腦內(nèi)一個(gè)子目錄中再安裝。(1)打開“我的電腦”;(2)打開存放下載升級版的文件夾;(3)雙擊文件夾中的“atmanAVRdem.exe”的圖標(biāo);(4)選定一個(gè)安裝路徑后進(jìn)行安裝。圖9.9電腦屏幕上的圖標(biāo)圖9.10演示版的標(biāo)題欄按上述方法安裝后,在電腦屏幕上生成如圖9.9的“AtmanAvr.exe”圖標(biāo)。雙擊后得到的只是一個(gè)演示版(標(biāo)題欄如圖9.10所示),演示版只能使用30天,在30天之內(nèi)沒有使用限制(等同于標(biāo)準(zhǔn)版),超過30天后,要注冊才能使用,正版用戶還要進(jìn)行注冊才可以得到一個(gè)無使用時(shí)間限制的正式版。

注意:

1.舊版ATMANAVR有安裝路徑的限制(即安裝路徑中不能有空格或中文,否則不能正常編譯),在ATMANAVR5.8.1版及更新的版本中,對安裝的路徑則沒有任何限制,可以安裝在任意文件夾中。2.如果硬盤上原先已安裝過ATMANAVR演示版且尚未到期(30天免費(fèi)試用期),此時(shí)重新安裝ATMANAVR,則軟件會自動終止免費(fèi)試用,因此在演示版30天的有效期內(nèi)不能重裝ATMANAVR。如果演示版到期后還需要繼續(xù)使用演示版軟件,只要格式化硬盤后重裝Windows和ATMANAVR,又可以再使用30天。9.3ATMANAVR編譯器簡介AtmanAvrC是為Atmel公司的AVR系列單片機(jī)應(yīng)用AVRGCC編譯器而開發(fā)的集成開發(fā)環(huán)境IDE。包括向?qū)?、文本編輯器和調(diào)試器等。它有下幾個(gè)主要特點(diǎn):1.ATMANAVR是一個(gè)綜合了編輯器和工程管理器的集成工作環(huán)境(IDE),是一個(gè)純32位的程序,可在Windows95/Windows98/WindowsME/WindowsNT/Windows2000/WindowsXP下運(yùn)行。2.源文件全部被組織到工程之中,文件的編輯和工程的構(gòu)筑也在IDE的環(huán)境中完成。

3.ATMANAVR是一個(gè)32位的程序,支持長文件名。4.ATMANAVR提供了全部的庫源代碼及一些簡單的應(yīng)用實(shí)例供初學(xué)者參考,特別是提供庫源代碼,對于用戶理解庫函數(shù)的參數(shù)及返回值等是非常有益的,并且用戶能夠根據(jù)庫源代碼對ATMANAVR提供的庫函數(shù)進(jìn)行剪裁和擴(kuò)充。ATMANAVR中的文件類型及擴(kuò)展名文件類型是由它們的擴(kuò)展名決定的,ATMANAVR的IDE和編譯器可以使用以下幾種類型文件:

1.輸入文件類型

.c擴(kuò)展名,表示是C語言源文件;.s擴(kuò)展名,表示是匯編語言源文件;.h擴(kuò)展名,表示是C語言的頭文件;.prj擴(kuò)展名,表示是工程文件,這個(gè)文件保存由IDE所創(chuàng)建和修改與整個(gè)工程的有關(guān)信息;.a擴(kuò)展名,表示是庫文件,它可以由幾個(gè)庫封裝在一起,也可以創(chuàng)建或修改自定義的庫。2.輸出文件類型

.s擴(kuò)展名,對應(yīng)每個(gè)C語言源文件,由編譯器在編譯時(shí)產(chǎn)生的同名匯編輸出文件;.o擴(kuò)展名,匯編產(chǎn)生的同名目標(biāo)文件,多個(gè)目標(biāo)文件可以鏈接成一個(gè)可執(zhí)行文件;.hex擴(kuò)展名,INTELHEX格式文件,其中包含了程序的全部可執(zhí)行代碼;.eep擴(kuò)展名,INTELHEX格式文件,包含了EEPROM的初始化數(shù)據(jù);.cof擴(kuò)展名,COFF格式輸出文件,用于在ATMEL的AVRStudio環(huán)境下進(jìn)行程序調(diào)試;

.lis擴(kuò)展名,列表文件,列舉出了源文件中的全部語句對應(yīng)的匯編代碼,但變量和代碼沒完成絕對定位。說明:如果使用文件編譯方式,則生成該文件的.1is文件,如果對整個(gè)工程進(jìn)行編譯,則每一個(gè)源文件均生成一個(gè)與該源文件同名的.lis文件。.lst擴(kuò)展名,列表文件,列舉了含啟動文件一起編譯生成的全部匯編代碼,是整個(gè)工程組對定位后的完整列表文件。說明,如果使用文件編譯方式,則生成該文件的.lst文件,如果對整個(gè)工程進(jìn)行編譯,則只生成一個(gè)與工程同名的.lst文件。

.mp擴(kuò)展名,內(nèi)存映像文件,它包含了程序中有關(guān)符號及其所占內(nèi)存大小的信息;.cmd擴(kuò)展名,NoICE2.xx調(diào)試命令文件;.noi擴(kuò)展名,NoICE2.xx調(diào)試命令文件;.dbg擴(kuò)展名,ImageCraft調(diào)試命令文件。9.4AVR存儲器的使用ATMANAVR共包含三種不同類型的存儲器空間,下面分別對其進(jìn)行介紹。1.程序存儲器(Flash)

程序存儲器是用于保存程序代碼以及常數(shù)表和數(shù)據(jù)的初始值等的空間。ATMANAVR編譯器可以生成一個(gè)對應(yīng)程序存儲器映像的輸出文件(INTEXHEX文件),大部分編程器均支持用這個(gè)格式的文件對芯片編程。由于AVR中的X、Y、Z指針為16位,有效的訪問空間為64KB,因此在ATMANAVR編譯器中,使用普通的C程序不能直接訪問大于64KB的程序存儲器,為了訪問64KB以上的存儲器(如在Megal28中),應(yīng)選中“UseRAMPZ/ELPM”(Project->Option->Target)前的復(fù)選框,并且在設(shè)定RAMPZ寄存器后直接調(diào)用ELPM指令來訪問Flash存儲器。編譯器生成代碼分配到不同的區(qū)域“areas”,區(qū)域按照程序存儲器地址增高的順序被使用,共分為以下區(qū)域:interruptvectors:這個(gè)區(qū)域包含中斷向量func-lit:函數(shù)表區(qū)。這個(gè)區(qū)的每個(gè)字保存了函數(shù)入口的地址,為了與代碼壓縮完全兼容,所有間接的函數(shù)索引必須進(jìn)行額外對準(zhǔn)。如果在C中通過函數(shù)指針調(diào)用函數(shù),編譯器可自動完成對準(zhǔn)的操作。

在匯編中,這個(gè)對準(zhǔn)必須在用戶程序中進(jìn)行,舉例如下:.a(chǎn)reafunc-1it;假設(shè)-foo是函數(shù)的名稱PL-foo::.Word-foo;創(chuàng)建函數(shù)表入口.a(chǎn)reatext;ldiR30,<PL-foo;ldiR31,>PL-foorcallxicall;編程人員應(yīng)把函數(shù)表入口地址先送入R30、R31寄存器后,才可以使用庫函數(shù)xicall間接調(diào)用這個(gè)函數(shù)。

lit:這個(gè)區(qū)域包括了整型數(shù)和浮點(diǎn)數(shù)常量。idata:全局變量和字符串的初始值保存在這個(gè)區(qū)域,在啟動時(shí),由程序復(fù)制到數(shù)據(jù)存儲器的data區(qū)。text:這個(gè)區(qū)域包括程序代碼。2.內(nèi)部數(shù)據(jù)存儲器(SRAM)

這個(gè)數(shù)據(jù)存儲器是用于保存變量、堆棧和動態(tài)內(nèi)存分配的堆棧,通常它們不出現(xiàn)在輸出文件中,但在程序運(yùn)行時(shí)被使用。圖9.11數(shù)據(jù)內(nèi)存的使用一個(gè)沒有使用外部擴(kuò)展數(shù)據(jù)存儲器的程序使用數(shù)據(jù)內(nèi)存如圖9-11所示,在該圖中,從地址0開始的96個(gè)字節(jié)(0x60)是CPU寄存器和I/O寄存器,編譯器從96往上放置全局變量和字符串,在變量區(qū)域的頂部是用戶可以利用的分配動態(tài)內(nèi)存,在高端地址,硬件堆棧開始于SRAM的最高字節(jié),在它的下面是軟件堆棧,硬件堆棧和軟件堆棧均為向下生長型。要求程序員在設(shè)計(jì)程序時(shí)要確保硬件堆棧不生長進(jìn)軟件堆棧,而軟件堆棧不生長進(jìn)已分配數(shù)據(jù)的動態(tài)分配區(qū)中,否則將會導(dǎo)致意外的結(jié)果。編譯器生成數(shù)據(jù)分配到不同的區(qū)域“areas”,區(qū)域按照數(shù)據(jù)存儲器的地址增高的順序使用,共分為以下區(qū)域:data:是包含全局變量、靜態(tài)變量和字符串的數(shù)據(jù)區(qū)域。全局變量和字符串的初始值保存在程序存儲器的“idata”區(qū)域內(nèi),在啟動時(shí)被復(fù)制進(jìn)data數(shù)據(jù)區(qū)的。bss:這個(gè)區(qū)域包含末初始化的C全局變量,按ANSIC標(biāo)準(zhǔn)這些變量在啟動時(shí)將初始化為0。3.外部數(shù)據(jù)存儲器(SRAM)

如果選擇帶有外部SRAM(32K或64KB)的目標(biāo)器件,那么堆棧是放置在內(nèi)部SRAM的頂部并且朝低端內(nèi)存地址生長,數(shù)據(jù)內(nèi)存(圖9.8中的動態(tài)分配內(nèi)存區(qū)域)是開始于硬件堆棧的頂部(即外部SRAM的底部)并且向上生長,這樣分配的原因是在多數(shù)場合訪問內(nèi)部SRAM比訪問外部SRAM的速度要快,分配堆棧到較快的內(nèi)存有很多好處。EEPROM:這個(gè)區(qū)域包含EEPROM數(shù)據(jù),ATMANAVR編譯器將需要置于EEPROM數(shù)據(jù)寫進(jìn)擴(kuò)展名為.eep的輸出文件中,在對AVR芯片編程時(shí)將該文件寫入芯片的EEPROM存儲器中。4.EEPROM存儲器9.5啟動文件在一些特殊的應(yīng)用中,如用戶需判斷單片機(jī)是上電復(fù)位還是由其他原因引起復(fù)位(如看門狗等),并且針對不同的復(fù)位情況采取不同的對策,這時(shí)用戶可能需要使用自己的啟動文件,在IAR中需要修改相應(yīng)的XCL文件才能實(shí)現(xiàn)改變啟動文件的目的,ATMANAVR和CodeVsionAVR在工程屬性窗口中可以直接指定使用外部的啟動文件。

根據(jù)目標(biāo)MCU的種類和功能,ATMANAVR編譯器將從下面默認(rèn)的啟動文件中選擇一個(gè)。crtavr:o:非ATmega類芯片默認(rèn)的啟動文件。crtatmega.o:ATmega類芯片默認(rèn)的啟動文件。ATMANAVR也提供了下面四種常用的啟動文件,用戶可以在工程選項(xiàng)對話框中(Project->OPhtions->Target->NonDefaultstartup)指定一個(gè)啟動文件(或用戶自定義的啟動文件),應(yīng)注意必須指定啟動文件的絕對路徑,如果沒有指出啟動文件的路徑,則默認(rèn)啟動文件位于工程選項(xiàng)庫路徑所指定的目錄中(默認(rèn)為c:\atmanavr\lib)。crtavrram.c:與crtavr.o相比,增加了初始化外部SRAM。crtatmgaram.o:與crtatmega.o相比,增加了初始化外部SRAM。crtboot.o:與crtavr.o相比,增加了bootloader的內(nèi)容,只有ATmega類的芯片才能選用。Crtboothi.o:與crtboot。相比,增加了使用ELPM/RAMPZ內(nèi)容,一般在需要讀取大于64KB字節(jié)存儲器中的常數(shù)表格或字符串時(shí)才用。上面的非ATmega類芯片的每一個(gè)中斷入口地址使用一個(gè)字(2個(gè)字節(jié)),而ATmega類的每個(gè)中斷入口地址使用2個(gè)字(4個(gè)字節(jié)),因此兩種芯片的啟動文件不能混用。

啟動文件的功能有:1.初始化硬件和軟件堆棧指針。2.從idata區(qū)復(fù)制初始化數(shù)據(jù)到直接尋址數(shù)據(jù)區(qū)data區(qū)。3.將bss區(qū)全部初始化為零。4.啟動文件定義了一個(gè)全局符號“-start”,它是程序的起點(diǎn)。5.調(diào)用用戶主程序。6.定義一個(gè)退出點(diǎn),即定義為一個(gè)無限循環(huán)。如果主函數(shù)(main)一旦退出,它將進(jìn)入這個(gè)退出點(diǎn)進(jìn)行無限循環(huán)。下面簡單介紹如何修改和創(chuàng)建一個(gè)新的啟動文件:使用ATMANAVR的IDE或UlterEdit32打開需要修改的啟動文件(crtavr.s、crtatmega.s或其他文件),對啟動文件進(jìn)行相應(yīng)的修改并保存,如果用UlterEdit32軟件編輯,應(yīng)退出UlterEdit32軟件并用IDE調(diào)用修改后的啟動文件,在IDE中選擇“File”菜單的“CompileFileTo->StmpFileToObject”,生成相應(yīng)的目標(biāo)文件(crtavr.o、crtatmega.o或其他的文件名)。9.6ATMANAVR菜單解釋本章的菜單是按ATMANAVR5.8.1介紹的,其他版本的菜單可能會與本章介紹的略有不同。在介紹某單前,讀者應(yīng)先了解以下關(guān)于文件的幾種說法:活動的文件:是指打開的當(dāng)前正在編輯的文件;打開的文件:是指已調(diào)入IDE環(huán)境中的文件。可以是活動的文件(正在編輯),也可以是放在后臺的文件;沒有打開的文件:是指該文件保存在硬盤上,沒有調(diào)入IDE環(huán)境。1、文件菜單文件菜單如圖9.12所示。新建:創(chuàng)建一個(gè)新文件或新工程,使用此命令,會彈出對話框由用戶選擇是建立文件還是工程,及文件或工程的類型和創(chuàng)建位置等。打開:打開一個(gè)已存在的文件,如果是.aws文件,將打開整個(gè)工程。關(guān)閉:關(guān)閉當(dāng)前被打開的文件。打開工作區(qū):打開一個(gè)已存在的工作區(qū)(.aws文件)。保存工作區(qū):保存當(dāng)前被打開的工作區(qū)。工作區(qū)另存為:把當(dāng)前被打開的工作區(qū)另存為一個(gè)新的版本保存到一個(gè)新的目錄,同時(shí)打開該新工作區(qū)。關(guān)閉工作區(qū):關(guān)閉當(dāng)前被打開的工作區(qū)。保存:保存當(dāng)前文件。另存為:當(dāng)前文件另存為新文件。全部保存:保存當(dāng)前所有打開的文件,包括工作區(qū)。打印:打印當(dāng)前文件的全部或選定部分。頁面設(shè)置:設(shè)置打印文件頁面。最近的文件:最近打開的文件列表,利于用戶查看和重新打開。最近的工作區(qū):最近打開的工作區(qū)列表,利于用戶查看和重新打開。退出:退出AtmanAvrC。2.編輯菜單

編輯菜單如圖9.13所示。撤消:撤消上一次編輯操作。重復(fù):重復(fù)上一次編輯操作。剪切:剪切當(dāng)前選中的文檔內(nèi)容或項(xiàng)目。復(fù)制:復(fù)制當(dāng)前選中的文檔內(nèi)容。粘貼:在當(dāng)前位置插入剪切板中的內(nèi)容。全部選擇:選中當(dāng)前文檔的全部內(nèi)容。查找:在當(dāng)前文檔中查找字符串。

在文件中查找:在多個(gè)文檔中查找字符串。查找過程中再次使用此命令可中斷當(dāng)前查找。替換:用一個(gè)新字符串替換當(dāng)前文檔中的字符串。書簽:添加或清除標(biāo)簽。到下一個(gè)書簽:轉(zhuǎn)到下一個(gè)標(biāo)簽。到上一個(gè)書簽:轉(zhuǎn)到上一個(gè)標(biāo)簽。清除所有書簽:清除所有標(biāo)簽。Breakpoints:顯示斷點(diǎn)對話框。參數(shù)提示信息:顯示函數(shù)參數(shù)提示信息。完成關(guān)鍵字:顯示相關(guān)關(guān)鍵字的全稱。3.查看菜單

查看菜單如圖9.14所示。工具欄:彈出子菜單,顯示或隱藏相關(guān)工具欄狀態(tài)欄:顯示或隱藏狀態(tài)欄。工作區(qū):顯示或隱藏工作區(qū)窗口。輸出:顯示或隱藏輸出窗口。調(diào)試窗口:彈出子菜單,顯示或隱藏各調(diào)試窗口。圖9.144.工程菜單

工程菜單如圖9.15所示。添加工程:彈出子菜單,向工程添加相關(guān)項(xiàng)目。打開:打開工程。設(shè)置:設(shè)置工程相關(guān)屬性。

添加工程彈出的子菜單如圖9.16所示。如圖9.15如圖9.16新建:創(chuàng)建一個(gè)新文件或新工程,使用此命令,會彈出對話框由用戶選擇是建立文件還是工程,及文件或工程的類型和創(chuàng)建位置等。如果是文件,可以指定是否插入到當(dāng)前工程中。文件:添加文件到當(dāng)前工程中。使用此命令,會彈出對話框由用戶選擇添加哪些文件,如果某些文件在工程中已存在,則自動濾除。5.編譯菜單

編譯菜單如圖9.17所示。編譯文件:編譯源代碼文件。構(gòu)件:編譯和連接工程,生成工程屬性中指定的輸出文件。重建全部:重新編譯和連接工程。開始調(diào)試:彈出子菜單,啟動調(diào)試器。AVRStudio:調(diào)用AVRStudio調(diào)試。編程:調(diào)用芯片編程程序。如圖9.176.工具菜單工具菜單如圖9.18所示。代碼向?qū)?啟動代碼向?qū)?,這是一個(gè)對工程項(xiàng)目動態(tài)維護(hù)的工具。AtmanAvrOnline:打開AtmanAvr主頁。用戶自定義工具示例。AtmanAvrUpdate:下載AtmanAvrC升級軟件包AtmanAvrUpdate.exe,升級AtmanAvr。用戶自定義工具示例。如圖9.18AVRStudio:設(shè)定AVRStudio的路徑。編程工具:指定芯片編程程序。定制:通過“定制”對話框,用戶可以自定義AtmanAvrCIDE的界面、菜單、工具欄、快捷鍵和其他工具軟件。AtmanAvrOnline和AtmanAvrUpdate就是兩個(gè)用戶自定義工具的示例,用戶最多可以自定義10個(gè)工具。選擇:通過“選擇”對話框,用戶可以自定義AtmanAvrCIDE的界面、窗口字體、格式及操作行為等。7.Window菜單窗口菜單如圖9.19所示。新建窗口:為當(dāng)前文件打開一個(gè)新窗口。層疊窗口:以重疊方式顯示窗口。橫向平鋪:以水平排列方式顯示窗口。排列圖標(biāo):排列最小化窗口圖標(biāo)。Windows:顯示當(dāng)前所有打開窗口列表。如圖9.198.幫助菜單幫助菜單如圖9.20所示。幫助:顯示幫助文件。關(guān)于AtmanAvr:顯示AtmanAvrC的版本信息。如圖9.209.7工程的建立下面將簡單介紹使用AtmanAvrCIDE的向?qū)Чδ芙⒁粋€(gè)工程的步驟。在AtmanAvrCIDE的菜單欄點(diǎn)擊“工程->添加工程->新建”建立一個(gè)新的工程。彈出圖9.21所示的窗口。圖9.21建立新工程界面

在該窗口中選擇AVRC語言向?qū)ВˋVRCWizard),指工程存放目錄及工程名稱,點(diǎn)擊“確定”進(jìn)入下一頁面。

圖9.22新工程設(shè)置界面

在如圖9.23所示的ProjectWizard-Step1的“設(shè)置MCU”窗口中可以設(shè)置芯片的型號、時(shí)鐘頻率及看門狗的設(shè)置。在本節(jié)中,將以ATmega8單片機(jī)為例簡要介紹工程向?qū)У氖褂?。其它芯片的設(shè)置在參考本設(shè)置的基礎(chǔ)上,通過閱讀AtmanAvrCIDE的幫助文件和芯片的數(shù)據(jù)手冊,可以快速地建立一個(gè)AVR單片機(jī)的工程。芯片型號、時(shí)鐘頻率及看門狗設(shè)置完畢后,單擊“下一步”進(jìn)入下一窗口。

9.23MCU設(shè)置界面9.24I/O端口設(shè)置界面圖9.24所示為第二步:I/O端口的設(shè)置。在該窗口中,可以設(shè)置I/O端口每位的輸入或輸出狀態(tài)、輸出電平為高電平或低電平、是否有上拉電阻等參數(shù)。AVR單片機(jī)的I/O端口配置寄存器的關(guān)系可以在各個(gè)型號單片機(jī)的數(shù)據(jù)手冊中獲得.單擊“下一步”進(jìn)入定時(shí)器/計(jì)數(shù)器配置界面如圖9.25定時(shí)器設(shè)置界面.

在第三步定時(shí)計(jì)數(shù)器窗口中,如圖9.25所示??梢苑謩e配置定時(shí)器/計(jì)數(shù)器0、定時(shí)器/計(jì)數(shù)器1及定時(shí)器/計(jì)數(shù)器2的狀態(tài)??梢栽凇爸袛唷贝翱谥羞x擇中斷的類型。Overflow表示的是定時(shí)器溢出中斷選擇,其中還有比較A中斷,比較B中斷以及外部時(shí)間中斷。輸入捕獲是T1所特有的功能,外部引腳為ICP,可選擇上升沿觸發(fā)中斷。下面的輸出A,輸出B則是你根據(jù)要求來設(shè)置比較值,當(dāng)定時(shí)器的值等于比較值時(shí),會產(chǎn)生一個(gè)比較中斷。以定時(shí)器溢出中斷“Overflow”為例,選中定時(shí)器溢出中斷后,單擊“計(jì)算”,可在如圖9.26所示的彈出窗口中設(shè)置定時(shí)器溢出中斷的設(shè)定值,并將顯示實(shí)際值和TCNT寄存器的初始值。設(shè)置完畢后,單擊“確定”并在步驟三的主窗口中單擊“下一步”進(jìn)入下一窗口。9.26定時(shí)器間隔時(shí)間溢出設(shè)置9.27外部中斷設(shè)置界面圖9.28所示為步驟五模數(shù)轉(zhuǎn)換器的設(shè)置窗口。在該窗口中,可對模數(shù)轉(zhuǎn)換的相關(guān)參數(shù)加以設(shè)定。通過“時(shí)鐘頻率”的下拉菜單可以選擇模數(shù)轉(zhuǎn)換的時(shí)鐘頻率。需要注意的是:在“時(shí)鐘頻率”的值改變的同時(shí),“轉(zhuǎn)換時(shí)間”中的值也隨之改變。當(dāng)該值為紅色時(shí),會造成模數(shù)轉(zhuǎn)換錯誤,應(yīng)避免該情況的發(fā)生。通過“基準(zhǔn)電源”的下拉菜單,可以選擇模數(shù)轉(zhuǎn)換的基準(zhǔn)電源。9.28ADC設(shè)置界面

單擊“下一步”進(jìn)入圖9.29所示的模擬比較器配置窗口。通過該窗口可對模擬比較器進(jìn)行初始化的配置。9.29模擬比較器配置界面單擊“下一步”進(jìn)入如圖9.30所示的“同步串行接口SPI”的配置窗口。在該窗口中可設(shè)置SPI通信的中斷方式、主從機(jī)模式、時(shí)鐘速率、時(shí)鐘相位、時(shí)鐘極性及數(shù)據(jù)順序等參數(shù)。9.30“同步串行接口SPI”的配置窗口步驟8為“通用串行接口UART”設(shè)置窗口,如圖9.31所示。在該窗口中可以設(shè)置通用串行接口的收發(fā)模式、波特率、傳輸字符位數(shù)及是否帶有奇偶校驗(yàn)和停止位等參數(shù)。同時(shí),在該窗口中還顯示出在當(dāng)前時(shí)鐘與波特率下的誤碼率。9.31“通用串行接口UART”設(shè)置窗口單擊“下一步”進(jìn)入如圖9.32所示的“雙總線串行接口TWI”配置窗口。在該窗口內(nèi)可以使能TWI及TWI中斷、設(shè)定SCL頻率,并可顯示實(shí)際的SCL頻率。9.32“雙總線串行接口TWI”配置窗口單擊“下一步”進(jìn)入如圖9.33所示的“液晶顯示器LCD”配置窗口。AtmanAvrCIDE為用戶提供了一個(gè)液晶顯示器控制的頭文件,用戶可以直接使用該窗口對端口進(jìn)行配置,利用其提供的液晶控制函數(shù),可以容易的對液晶顯示器進(jìn)行讀、寫等操作。具體的控制函數(shù)及用法可以從AtmanAvrCIDE的幫助文件中獲得。9.33“液晶顯示器LCD”配置窗口單擊“完成”實(shí)現(xiàn)對一個(gè)工程的初始化配置。在如圖9.34所示的資源窗口,顯示了經(jīng)過初始化配置后生成的全部資源文件和頭文件。其中,主文件與項(xiàng)目名稱相同;其他文件名的自動命名原則為工程名后加對應(yīng)功能名稱。至此,我們已經(jīng)完成了一個(gè)工程的初始化。9.34資源窗口9.8ATMANAVR5.8.1支持的庫函數(shù)介紹C語言一般都提供很多庫函數(shù)供用戶調(diào)用,在ATMANAVR的安裝文件夾中有一個(gè)LIB文件夾,就提供了標(biāo)準(zhǔn)C庫和AVR專用的庫供用戶調(diào)用,用戶也可以創(chuàng)建或修改自定義的庫。如果一個(gè)庫中的函數(shù)被引用,鏈接器會將該相關(guān)代碼鏈接到模塊或生成的輸出文件中。下面對ATMANAVR9.8.1所提供的庫函數(shù)作簡單的介紹。9.8.1C標(biāo)準(zhǔn)庫函數(shù)由于AVR處理器具有多種存儲器空間,因此在應(yīng)用中要特別注意傳遞給函數(shù)的參數(shù)的存儲類型。C庫函數(shù)僅支持一種存儲類型,不能把EEPROM和FLASH存儲空間變量作為操作數(shù)。#include<stdlib.h>符號常量#defineDTOSTR_ALWAYS_SIGN0x01#defineDTOSTR_PLUS_SIGN0x02#defineDTOSTR_UPPERCASE0x04#defineRAND_MAX0x7FFF#defineRANDOM_MAX0x7FFFFFFFabortfreeabsitoaatoilabsatolldivbsearchlongjmpcallocltoadivmallocdtostreqsortdtostrfrandexitrand_r

randomstrtodrandom_rstrtolsetjmpstrtoulsrandultoasrandomutoa9.8.2數(shù)學(xué)函數(shù)基本數(shù)學(xué)常數(shù)和函數(shù)。#include<math.h>常數(shù)#defineM_PI3.141592653589793238462643

#defineM_SQRT21.4142135623730950488016887函數(shù)

acosisinfasinisnanatan,atan2ldexp

ceillog,log10Cosmodfcoshpowexpsinfabssinhfloorsqrtfmodsquarefrexptaninversetanh9.8.3字符函數(shù)字符函數(shù)執(zhí)行對單個(gè)字符的操作。#include<ctype.h>isalnum isprintisalpha ispunctisascii isspaceisblank isupperiscntrl isxdigitisdigit toasciiisgraph tolowerislower toupper9.8.4字符串函數(shù)

字符串函數(shù)操作以NULL結(jié)尾的字符串。如果字符串存儲在程序存儲器空間,使用程序存儲器API函數(shù)。#include<string.h>memccpy strcpymemchr strlcatmemcmp strlcpymemcpy strlenstrchr strlwrstrcmp strncasecmpMemmove strncpymemset strnlenstrcasecmp strrchrstrcat strrevStrncat strstrstrncmp strupr9.8.5存儲器API函數(shù)AVR系列單片機(jī)指令與數(shù)據(jù)使用不同的地址空間。由于寄存器和RAM為8位,而程序存儲器為16位,因此操作上要比使用單一地址空間復(fù)雜一些。另外,EEPROM與前兩者又處于不同的地址空間。通常指令使用flashROM,數(shù)據(jù)使用SRAM,如果要訪問EEPROM或把數(shù)據(jù)放在ROM空間,GCC提供的存儲器API函數(shù)封裝了這些底層操作,可以方便地實(shí)現(xiàn)這些目的。1、程序存儲器API把數(shù)據(jù)放在ROM空間的益處在于:數(shù)據(jù)可以隨時(shí)使用,不需要在啟動時(shí)進(jìn)行初始化,同時(shí)不會因?yàn)槌绦蜻\(yùn)行中的錯誤而遭到破壞。由于ROM處于不同的地址空間,在ROM中定義變量使用特別的聲明(參見變量),訪問ROM中變量可以通過程序存儲器API函數(shù)。#include<pgmspace.h>__ATTR_CONST__,__ATTR_PROGMEM__,__ATTR_PURE____elpm_inline strcat_P__lpm_inline strcmp_Pmemcpy_P strcpy_Ppgm_read_byte strcasecmp_Ppgm_read_byte_far strlen_Ppgm_read_byte_near strncasecmp_Ppgm_read_word strncmp_Ppgm_read_word_far strncpy_Ppgm_read_word_near PSTRPRG_RDB 2、EEPROMAPIAVR系列單片機(jī)具有非易失的存儲空間EEPROM,它與靜態(tài)RAM不在同一地址空間。訪問EEPROM單元需要借助I/O寄存器。EEPROMAPI函數(shù)封裝了底層操作功能,使訪問EEPROM簡便易行。使用EEPROMAPI函數(shù),需要包含eeprom.h文件。eeprom_is_read eeprom_read_byteeeprom_read_block eeprom_read_wordeeprom_write_byte eeprom_write_blockeeprom_write_word

9.8.6中斷API函數(shù)中斷API函數(shù)封裝了對中斷的控制功能,包括中斷的使能或禁止,中斷例程的定義等。它們分別定義在interrupt.h和sig-avr.h文件中。clienable_external_intINTERRUPTseiSIGNALtimer_enable_int

9.8.7I/OAPI函數(shù)I/OAPI函數(shù)提供高層訪問I/O寄存器的功能,支持字或字節(jié)讀寫操作,位測試,位操作等。I/OAPI函數(shù)定義在io.h,iomacros.h和parity.h文件中。#include<io.h>BV loop_until_bit_is_clearbit_is_clear loop_until_bit_is_setbit_is_set outp,outbCbi outwinp,inb __outwinw outw_atomicinw parity_even_bitinw_atomic sbi9.8.8看門狗API函數(shù)看門狗API函數(shù)封裝了對看門狗的操作功能,宏定義在wdt.h文件中。#include<wdt.h>符號常量#defineWDTO_15MS0

#defineWDTO_30MS1

#defineWDTO_60MS2

#defineWDTO_120MS3

#defineWDTO_250MS4

#defineWDTO_500MS5

#defineWDTO_1S6

#defineWDTO_2S7wdt_disablewdt_enablewdt_reset9.8.9LCD庫函數(shù)LCD函數(shù)提供C程序與用HitachiHD44780或與之兼容的芯片封裝的LCD模塊間的操作接口。該庫函數(shù)支持1x8,2x12,3x12,1x16,2x16,2x20,4x20,2x24和2x40格式的LCD。函數(shù)定義文件為lcd.h.LCD模塊與MCU按下列方式連接:MCUPortX0-RS(LCDpin4)

MCUPortX1-RD(LCDpin5)

MCUPortX2-EN(LCDpin6)

MCUPortX4-DB4(LCDpin11)

MCUPortX5-DB5(LCDpin12)

MCUPortX6-DB6(LCDpin13)

MCUPortX7-DB7(LCDpin14)#include<lcd.lcd_clearlcd_commandlcd_gotoxylcd_homelcd_initlcd_putcharlcd_putslcd_puts_Plcd_read_bytelcd_set_custom_charlcd_write_byte9.8.10其他函數(shù)AtmanAvrC支持的其他相關(guān)函數(shù)。delay9.9單片機(jī)調(diào)試小工具利用個(gè)人電腦顯示器,觀察單片機(jī)調(diào)試情況。下面介紹如何利用計(jì)算機(jī)RS232串口與單片機(jī)連接進(jìn)行軟件調(diào)試。圖9.35為計(jì)算機(jī)與單片機(jī)的硬件連接示意圖。計(jì)算機(jī)與單片機(jī)之間交換的數(shù)據(jù)可以通過RS-232電平轉(zhuǎn)換來進(jìn)行可靠傳輸。圖9.35計(jì)算機(jī)與單片機(jī)連接示意圖圖9.36SSCOM軟件圖9.36為SSCOM軟件調(diào)試界面。SSCOM是一款非常好的串口調(diào)試工具,可改變發(fā)送周期,選擇串口,設(shè)置波特率、數(shù)據(jù)位、較驗(yàn)位和停止位。將計(jì)算機(jī)COM串口與單片機(jī)系統(tǒng)接口連接,根據(jù)單片機(jī)軟件系統(tǒng)設(shè)置好串口、波特率、數(shù)據(jù)位、停止位和校驗(yàn)位后,在字符串輸入框中輸入一個(gè)命令字,點(diǎn)擊發(fā)送,單片機(jī)系統(tǒng)就會接收從串口進(jìn)來的數(shù)據(jù)并進(jìn)行處理。單片機(jī)系統(tǒng)如果有反饋數(shù)據(jù),便會發(fā)送至計(jì)算機(jī)串口端并在軟件窗口顯示。圖9.37為LED數(shù)碼管字形碼發(fā)生器的軟件界面。在使用該軟件前先確認(rèn)一下數(shù)碼管是共陰極還是共陽極,然后點(diǎn)擊腳位設(shè)置,按照數(shù)碼管管腳與74HC595芯片的連接順序填好對應(yīng)的管腳標(biāo)號(如圖9.38所示),點(diǎn)擊確認(rèn)。接下來就可以點(diǎn)擊左邊的數(shù)碼管得到你所想要顯示的字符,同時(shí)在右邊的代碼欄里面將顯示該字符的代碼。

圖9.37LED數(shù)碼管字形碼發(fā)生器

圖9.38腳位設(shè)置

本章小結(jié)1、單片機(jī)下載方式:AVR單片機(jī)支持普通串口方式、STK500方式、并口(SPI)方式及USB方式等多種下載方式。2、常用下載軟件:SL-ISP1.518、PonyProg2000。3、ATMANAVR具有以下幾種不同類型的存儲器空間:程序存儲器(Flash)、內(nèi)部數(shù)據(jù)存儲器(SRAM)、3.外部數(shù)據(jù)存儲器(SRAM)、EEPROM存儲器4、啟動文件的功能:初始化硬件和軟件堆棧指針、從idata區(qū)復(fù)制初始化數(shù)據(jù)到直接尋址數(shù)據(jù)區(qū)data區(qū)、將bss區(qū)全部初始化為零、啟動文件定義了一個(gè)全局符號“-start”,它是程序的起點(diǎn)、調(diào)用用戶主程序、定義一個(gè)退出點(diǎn),即定義為一個(gè)無限循環(huán)、如果主函數(shù)(main)一旦退出,它將進(jìn)入這個(gè)退出點(diǎn)進(jìn)行無限循環(huán)。5、I/OAPI函數(shù)提供高層訪問I/O寄存器的功能,支持字或字節(jié)讀寫操作,位測試,位操作等。6、看門狗API函數(shù)封裝了對看門狗的操作功能,宏定義在wdt.h文件中。7、LCD函數(shù)提供C程序與用HitachiHD44780或與之兼容的芯片封裝的LCD模塊間的操作接口。8、常用的單片機(jī)調(diào)試軟件如SSCOM軟件和LED數(shù)碼管字形碼發(fā)生器。MagneticResonanceImaging磁共振成像發(fā)生事件作者或公司磁共振發(fā)展史1946發(fā)現(xiàn)磁共振現(xiàn)象BlochPurcell1971發(fā)現(xiàn)腫瘤的T1、T2時(shí)間長Damadian1973做出兩個(gè)充水試管MR圖像Lauterbur1974活鼠的MR圖像Lauterbur等1976人體胸部的MR圖像Damadian1977初期的全身MR圖像

Mallard1980磁共振裝置商品化1989

0.15T永磁商用磁共振設(shè)備中國安科

2003諾貝爾獎金LauterburMansfierd時(shí)間MR成像基本原理實(shí)現(xiàn)人體磁共振成像的條件:人體內(nèi)氫原子核是人體內(nèi)最多的物質(zhì)。最易受外加磁場的影響而發(fā)生磁共振現(xiàn)象(沒有核輻射)有一個(gè)穩(wěn)定的靜磁場(磁體)梯度場和射頻場:前者用于空間編碼和選層,后者施加特定頻率的射頻脈沖,使之形成磁共振現(xiàn)象信號接收裝置:各種線圈計(jì)算機(jī)系統(tǒng):完成信號采集、傳輸、圖像重建、后處理等

人體內(nèi)的H核子可看作是自旋狀態(tài)下的小星球。自然狀態(tài)下,H核進(jìn)動雜亂無章,磁性相互抵消zMyx進(jìn)入靜磁場后,H核磁矩發(fā)生規(guī)律性排列(正負(fù)方向),正負(fù)方向的磁矢量相互抵消后,少數(shù)正向排列(低能態(tài))的H核合成總磁化矢量M,即為MR信號基礎(chǔ)ZZYYXB0XMZMXYA:施加90度RF脈沖前的磁化矢量MzB:施加90度RF脈沖后的磁化矢量Mxy.并以Larmor頻率橫向施進(jìn)C:90度脈沖對磁化矢量的作用。即M以螺旋運(yùn)動的形式傾倒到橫向平面ABC在這一過程中,產(chǎn)生能量

三、弛豫(Relaxation)回復(fù)“自由”的過程

1.

縱向弛豫(T1弛豫):

M0(MZ)的恢復(fù),“量變”高能態(tài)1H→低能態(tài)1H自旋—晶格弛豫、熱弛豫

吸收RF光子能量(共振)低能態(tài)1H高能態(tài)1H

放出能量(光子,MRS)T1弛豫時(shí)間:

MZ恢復(fù)到M0的2/3所需的時(shí)間

T1愈小、M0恢復(fù)愈快T2弛豫時(shí)間:MXY喪失2/3所需的時(shí)間;T2愈大、同相位時(shí)間長MXY持續(xù)時(shí)間愈長MXY與ST1加權(quán)成像、T2加權(quán)成像

所謂的加權(quán)就是“突出”的意思

T1加權(quán)成像(T1WI)----突出組織T1弛豫(縱向弛豫)差別

T2加權(quán)成像(T2WI)----突出組織T2弛豫(橫向弛豫)差別。

磁共振診斷基于此兩種標(biāo)準(zhǔn)圖像磁共振常規(guī)h檢查必掃這兩種標(biāo)準(zhǔn)圖像.T1的長度在數(shù)百至數(shù)千毫秒(ms)范圍T2值的長度在數(shù)十至數(shù)千毫秒(ms)范圍

在同一個(gè)馳豫過程中,T2比T1短得多

如何觀看MR圖像:首先我們要分清圖像上的各種標(biāo)示。分清掃描序列、掃描部位、掃描層面。正常或異常的所在部位---即在同一層面觀察、分析T1、T2加權(quán)像上信號改變。絕大部分病變T1WI是低信號、T2WI是高信號改變。只要熟悉掃描部位正常組織結(jié)構(gòu)的信號表現(xiàn),通常病變與正常組織不會混淆。一般的規(guī)律是T1WI看解剖,T2WI看病變。磁共振成像技術(shù)--圖像空間分辨力,對比分辨力一、如何確定MRI的來源(一)層面的選擇1.MXY產(chǎn)生(1H共振)條件

RF=ω=γB02.梯度磁場Z(GZ)

GZ→B0→ω

不同頻率的RF

特定層面1H激勵、共振

3.層厚的影響因素

RF的帶寬↓

GZ的強(qiáng)度↑層厚↓〈二〉體素信號的確定1、頻率編碼2、相位編碼

M0↑--GZ、RF→相應(yīng)層面MXY----------GY→沿Y方向1H有不同ω

各1H同相位MXY旋進(jìn)速度不同同頻率一定時(shí)間后→→GX→沿X方向1H有不同ω沿Y方向不同1H的MXYMXY旋進(jìn)頻率不同位置不同(相位不同)〈三〉空間定位及傅立葉轉(zhuǎn)換

GZ----某一層面產(chǎn)生MXYGX----MXY旋進(jìn)頻率不同

GY----MXY旋進(jìn)相位不同(不影響MXY大?。?/p>

↓某一層面不同的體素,有不同頻率、相位

MRS(FID)第三節(jié)、磁共振檢查技術(shù)檢查技術(shù)產(chǎn)生圖像的序列名產(chǎn)生圖像的脈沖序列技術(shù)名TRA、COR、SAGT1WT2WSETR、TE…….梯度回波FFE快速自旋回波FSE壓脂壓水MRA短TR短TE--T1W長TR長TE--T2W增強(qiáng)MR最常用的技術(shù)是:多層、多回波的SE(spinecho,自旋回波)技術(shù)磁共振掃描時(shí)間參數(shù):TR、TE磁共振掃描還有許多其他參數(shù):層厚、層距、層數(shù)、矩陣等序列常規(guī)序列自旋回波(SE),快速自旋回波(FSE)梯度回波(FE)反轉(zhuǎn)恢復(fù)(IR),脂肪抑制(STIR)、水抑制(FLAIR)高級序列水成像(MRCP,MRU,MRM)血管造影(MRA,TOF2D/3D)三維成像(SPGR)彌散成像(DWI)關(guān)節(jié)運(yùn)動分析是一種成像技術(shù)而非掃描序列自旋回波(SE)必掃序列圖像清晰顯示解剖結(jié)構(gòu)目前只用于T1加權(quán)像快速自旋回波(FSE)必掃序列成像速度快多用于T2加權(quán)像梯度回波(GE)成像速度快對出血敏感T2加權(quán)像水抑制反轉(zhuǎn)恢復(fù)(IR)水抑制(FLAIR)抑制自由水梗塞灶顯示清晰判斷病灶成份脂肪抑制反轉(zhuǎn)恢復(fù)(IR)脂肪抑制(STIR)抑制脂肪信號判斷病灶成分其它組織顯示更清晰血管造影(MRA)無需造影劑TOF法PC法MIP投影動靜脈分開顯示水成像(MRCP,MRU,MRM)含水管道系統(tǒng)成像膽道MRCP泌尿路MRU椎管MRM主要用于診斷梗阻擴(kuò)張超高空間分辨率掃描任意方位重建窄間距重建技術(shù)大大提高對小器官、小病灶的診斷能力三維梯度回波(SPGR) 早期診斷腦梗塞

彌散成像MRI的設(shè)備一、信號的產(chǎn)生、探測接受1.磁體(Magnet):靜磁場B0(Tesla,T)→組織凈磁矩M0

永磁型(permanentmagnet)常導(dǎo)型(resistivemagnet)超導(dǎo)型(superconductingmagnet)磁體屏蔽(magnetshielding)2.梯度線圈(gradientcoil):

形成X、Y、Z軸的磁場梯度功率、切換率3.射頻系統(tǒng)(radio-frequencesystem,RF)

MR信號接收二、信號的處理和圖象顯示數(shù)模轉(zhuǎn)換、計(jì)算機(jī),等等;MRI技術(shù)的優(yōu)勢1、軟組織分辨力強(qiáng)(判斷組織特性)2、多方位成像3、流空效應(yīng)(顯示血管)4、無骨骼偽影5、無電離輻射,無碘過敏6、不斷有新的成像技術(shù)MRI技術(shù)的禁忌證和限度1.禁忌證

體內(nèi)彈片、金屬異物各種金屬置入:固定假牙、起搏器、血管夾、人造關(guān)節(jié)、支架等危重病人的生命監(jiān)護(hù)系統(tǒng)、維持系統(tǒng)不能合作病人,早期妊娠,高熱及散熱障礙2.其他鈣化顯示相對較差空間分辨較差(體部,較同等CT)費(fèi)用昂貴多數(shù)MR機(jī)檢查時(shí)間較長1.病人必須去除一切金屬物品,最好更衣,以免金屬物被吸入磁體而影響磁場均勻度,甚或傷及病人。2.掃描過程中病人身體(皮膚)不要直接觸碰磁體內(nèi)壁及各種導(dǎo)線,防止病人灼傷。3.紋身(紋眉)、化妝品、染發(fā)等應(yīng)事先去掉,因其可能會引起灼傷。4.病人應(yīng)帶耳塞,以防聽力損傷。掃描注意事項(xiàng)顱腦MRI適應(yīng)癥顱內(nèi)良惡性占位病變腦血管性疾病梗死、出血、動脈瘤、動靜脈畸形(AVM)等顱腦外傷性疾病腦挫裂傷、外傷性顱內(nèi)血腫等感染性疾病腦膿腫、化膿性腦膜炎、病毒性腦炎、結(jié)核等脫髓鞘性或變性類疾病多發(fā)性硬化(MS)等先天性畸形胼胝體發(fā)育不良、小腦扁桃體下疝畸形等脊柱和脊髓MRI適應(yīng)證1.腫瘤性病變椎管類腫瘤(髓內(nèi)、髓外硬膜內(nèi)、硬膜外),椎骨腫瘤(轉(zhuǎn)移性、原發(fā)性)2.炎癥性疾病脊椎結(jié)核、骨髓炎、椎間盤感染、硬膜外膿腫、蛛網(wǎng)膜炎、脊髓炎等3.外傷骨折、脫位、椎間盤突出、椎管內(nèi)血腫、脊髓損傷等4.脊柱退行性變和椎管狹窄癥椎間盤變性、膨隆、突出、游離,各種原因椎管狹窄,術(shù)后改變,5.脊髓血管畸形和血管瘤6.脊髓脫髓鞘疾?。ㄈ鏜S),脊髓萎縮7.先天性畸形胸部MRI適應(yīng)證呼吸系統(tǒng)對縱隔及肺門區(qū)病變顯示良好,對肺部結(jié)構(gòu)顯示不如CT。胸廓入口病變及其上下比鄰關(guān)系縱隔腫瘤和囊腫及其與大血管的關(guān)系其他較CT無明顯優(yōu)越性心臟及大血管大血管病變各類動脈瘤、腔靜脈血栓等心臟及心包腫瘤,心包其他病變其他(如先心、各種心肌病等)較超聲心動圖無優(yōu)勢,應(yīng)用不廣腹部MRI適應(yīng)證主要用于部分實(shí)質(zhì)性器官的腫瘤性病變肝腫瘤性病變,提供鑒別信息胰腺腫瘤,有利小胰癌、胰島細(xì)胞癌顯示宮頸、宮體良惡性腫瘤及分期等,先天畸形腫瘤的定位(臟器上下緣附近)、分期膽道、尿路梗阻和腫瘤,MRCP,MRU直腸腫瘤骨與關(guān)節(jié)MRI適應(yīng)證X線及CT的后續(xù)檢查手段--鈣質(zhì)顯示差和空間分辨力部分情況可作首選:1.累及骨髓改變的骨?。ㄔ缙诠侨毖詨乃?,早期骨髓炎、骨髓腫瘤或侵犯骨髓的腫瘤)2.結(jié)構(gòu)復(fù)雜關(guān)節(jié)的損傷(膝、髖關(guān)節(jié))3.形狀復(fù)雜部位的檢查(脊柱、骨盆等)軟件登錄界面軟件掃描界面圖像瀏覽界面膠片打印界面報(bào)告界面報(bào)告界面2合理應(yīng)用抗菌藥物預(yù)防手術(shù)部位感染概述外科手術(shù)部位感染的2/3發(fā)生在切口醫(yī)療費(fèi)用的增加病人滿意度下降導(dǎo)致感染、止血和疼痛一直是外科的三大挑戰(zhàn),止血和疼痛目前已較好解決感染仍是外科醫(yī)生面臨的重大問題,處理不當(dāng),將產(chǎn)生嚴(yán)重后果外科手術(shù)部位感染占院內(nèi)感染的14%~16%,僅次于呼吸道感染和泌尿道感染,居院內(nèi)感染第3位嚴(yán)重手術(shù)部位的感染——病人的災(zāi)難,醫(yī)生的夢魘

預(yù)防手術(shù)部位感染(surgicalsiteinfection,SSI)

手術(shù)部位感染的40%–60%可以預(yù)防圍手術(shù)期使用抗菌藥物的目的外科醫(yī)生的困惑★圍手術(shù)期應(yīng)用抗生素是預(yù)防什么感染?★哪些情況需要抗生素預(yù)防?★怎樣選擇抗生素?★什么時(shí)候開始用藥?★抗生素要用多長時(shí)間?定義:指發(fā)生在切口或手術(shù)深部器官或腔隙的感染分類:切口淺部感染切口深部感染器官/腔隙感染一、SSI定義和分類二、SSI診斷標(biāo)準(zhǔn)——切口淺部感染

指術(shù)后30天內(nèi)發(fā)生、僅累及皮膚及皮下組織的感染,并至少具備下述情況之一者:

1.切口淺層有膿性分泌物

2.切口淺層分泌物培養(yǎng)出細(xì)菌

3.具有下列癥狀體征之一:紅熱,腫脹,疼痛或壓痛,因而醫(yī)師將切口開放者(如培養(yǎng)陰性則不算感染)

4.由外科醫(yī)師診斷為切口淺部SSI

注意:縫線膿點(diǎn)及戳孔周圍感染不列為手術(shù)部位感染二、SSI診斷標(biāo)準(zhǔn)——切口深部感染

指術(shù)后30天內(nèi)(如有人工植入物則為術(shù)后1年內(nèi))發(fā)生、累及切口深部筋膜及肌層的感染,并至少具備下述情況之一者:

1.切口深部流出膿液

2.切口深部自行裂開或由醫(yī)師主動打開,且具備下列癥狀體征之一:①體溫>38℃;②局部疼痛或壓痛

3.臨床或經(jīng)手術(shù)或病理組織學(xué)或影像學(xué)診斷,發(fā)現(xiàn)切口深部有膿腫

4.外科醫(yī)師診斷為切口深部感染

注意:感染同時(shí)累及切口淺部及深部者,應(yīng)列為深部感染

二、SSI診斷標(biāo)準(zhǔn)—器官/腔隙感染

指術(shù)后30天內(nèi)(如有人工植入物★則術(shù)后1年內(nèi))、發(fā)生在手術(shù)曾涉及部位的器官或腔隙的感染,通過手術(shù)打開或其他手術(shù)處理,并至少具備以下情況之一者:

1.放置于器官/腔隙的引流管有膿性引流物

2.器官/腔隙的液體或組織培養(yǎng)有致病菌

3.經(jīng)手術(shù)或病理組織學(xué)或影像學(xué)診斷器官/腔隙有膿腫

4.外科醫(yī)師診斷為器官/腔隙感染

★人工植入物:指人工心臟瓣膜、人工血管、人工關(guān)節(jié)等二、SSI診斷標(biāo)準(zhǔn)—器官/腔隙感染

不同種類手術(shù)部位的器官/腔隙感染有:

腹部:腹腔內(nèi)感染(腹膜炎,腹腔膿腫)生殖道:子宮內(nèi)膜炎、盆腔炎、盆腔膿腫血管:靜脈或動脈感染三、SSI的發(fā)生率美國1986年~1996年593344例手術(shù)中,發(fā)生SSI15523次,占2.62%英國1997年~2001年152所醫(yī)院報(bào)告在74734例手術(shù)中,發(fā)生SSI3151例,占4.22%中國?SSI占院內(nèi)感染的14~16%,僅次于呼吸道感染和泌尿道感染三、SSI的發(fā)生率SSI與部位:非腹部手術(shù)為2%~5%腹部手術(shù)可高達(dá)20%SSI與病人:入住ICU的機(jī)會增加60%再次入院的機(jī)會是未感染者的5倍SSI與切口類型:清潔傷口 1%~2%清潔有植入物 <5%可染傷口<10%手術(shù)類別手術(shù)數(shù)SSI數(shù)感染率(%)小腸手術(shù)6466610.2大腸手術(shù)7116919.7子宮切除術(shù)71271722.4肝、膽管、胰手術(shù)1201512.5膽囊切除術(shù)8222.4不同種類手術(shù)的SSI發(fā)生率:三、SSI的發(fā)生率手術(shù)類別SSI數(shù)SSI類別(%)切口淺部切口深部器官/腔隙小腸手術(shù)6652.335.412.3大腸手術(shù)69158.426.315.3子宮切除術(shù)17278.813.57.6骨折開放復(fù)位12379.712.28.1不同種類手術(shù)的SSI類別:三、SSI的發(fā)生率延遲愈合疝內(nèi)臟膨出膿腫,瘺形成。需要進(jìn)一步處理這里感染將導(dǎo)致:延遲愈合疝內(nèi)臟膨出膿腫、瘺形成需進(jìn)一步處理四、SSI的后果四、SSI的后果在一些重大手術(shù),器官/腔隙感染可占到1/3。SSI病人死亡的77%與感染有關(guān),其中90%是器官/腔隙嚴(yán)重感染

——InfectControlandHospEpidemiol,1999,20(40:247-280SSI的死亡率是未感染者的2倍五、導(dǎo)致SSI的危險(xiǎn)因素(1)病人因素:高齡、營養(yǎng)不良、糖尿病、肥胖、吸煙、其他部位有感染灶、已有細(xì)菌定植、免疫低下、低氧血癥五、導(dǎo)致SSI的危險(xiǎn)因素(2)術(shù)前因素:術(shù)前住院時(shí)間過長用剃刀剃毛、剃毛過早手術(shù)野衛(wèi)生狀況差(術(shù)前未很好沐?。τ兄刚髡呶从每股仡A(yù)防五、導(dǎo)致SSI的危險(xiǎn)因素(3)手術(shù)因素:手術(shù)時(shí)間長、術(shù)中發(fā)生明顯污染置入人工材料、組織創(chuàng)傷大止血不徹底、局部積血積液存在死腔和/或失活組織留置引流術(shù)中低血壓、大量輸血刷手不徹底、消毒液使用不當(dāng)器械敷料滅菌不徹底等手術(shù)特定時(shí)間是指在大量同種手術(shù)中處于第75百分位的手術(shù)持續(xù)時(shí)間其因手術(shù)種類不同而存在差異超過T越多,SSI機(jī)會越大五、導(dǎo)致SSI的危險(xiǎn)因素(4)SSI危險(xiǎn)指數(shù)(美國國家醫(yī)院感染監(jiān)測系統(tǒng)制定):病人術(shù)前已有≥3種危險(xiǎn)因素污染或污穢的手術(shù)切口手術(shù)持續(xù)時(shí)間超過該類手術(shù)的特定時(shí)間(T)

(或一般手術(shù)>2h)六、預(yù)防SSI干預(yù)方法根據(jù)指南使用預(yù)防性抗菌藥物正確脫毛方法縮短術(shù)前住院時(shí)間維持手術(shù)患者的正常體溫血糖控制氧療抗菌素的預(yù)防/治療預(yù)防

在污染細(xì)菌接觸宿主手術(shù)部位前給藥治療

在污染細(xì)菌接觸宿主手術(shù)部位后給藥

防患于未然六、預(yù)防SSI干預(yù)方法

——抗菌藥物的應(yīng)用186預(yù)防和治療性抗菌素使用目的:清潔手術(shù):防止可能的外源污染可染手術(shù):減少粘膜定植細(xì)菌的數(shù)量污染手術(shù):清除已經(jīng)污染宿主的細(xì)菌六、預(yù)防SSI干預(yù)方法

——抗菌藥物的應(yīng)用187需植入假體,心臟手術(shù)、神外手術(shù)、血管外科手術(shù)等六、預(yù)防SSI干預(yù)方法

——抗菌藥物的應(yīng)用預(yù)防性抗菌素使用指征:可染傷口(Clean-contaminatedwound)污染傷口(Contaminatedwound)清潔傷口(Cleanwound)但存在感染風(fēng)險(xiǎn)六、預(yù)防SSI干預(yù)方法

——抗菌藥物的應(yīng)用外科預(yù)防性抗生素的應(yīng)用:預(yù)防性抗生素對哪些病人有用?什么時(shí)候開始用藥?抗生素種類選擇?使用單次還是多次?采用怎樣的給藥途徑?六、預(yù)防SSI干預(yù)方法

——抗菌藥物的應(yīng)用預(yù)防性抗菌素顯示有效的手術(shù)有:婦產(chǎn)科手術(shù)胃腸道手術(shù)(包括闌尾炎)口咽部手術(shù)腹部和肢體血管手術(shù)心臟手術(shù)骨科假體植入術(shù)開顱手術(shù)某些“清潔”手術(shù)六、預(yù)防SSI干預(yù)方法

——抗菌藥物的應(yīng)用外科預(yù)防性抗生素的應(yīng)用:預(yù)防性抗生素對哪些病人有用?什么時(shí)候開始用藥?抗生素種類選擇?使用單次還是多次?采用怎樣的給藥途徑?六、預(yù)防SSI干預(yù)方法

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論