




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2.1編寫匯編語言程序一、目的(1)學(xué)會使用ADS1.2編寫、調(diào)試匯編語言程序。(2)掌握使用存取指令讀寫存儲器的編程方法。(3)掌握單步、分段調(diào)試程序方法。二、步驟1、啟動IDE在WindowsXP系統(tǒng)窗口,執(zhí)行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜單命令,打開IDE二、步驟2、創(chuàng)建工程在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇工程模板:ARMExecutableImage(B)為工程起一個名字:Exp2101(C)配置工程存儲路徑:G:\Exp2101(D)擊【確定】按鈕,完成工程創(chuàng)建工程模板工程名工程存儲路徑二、步驟2、創(chuàng)建工程工程管理窗口文件選項卡鏈接順序選項卡生成目標(biāo)二、步驟2、創(chuàng)建工程工程管理存儲路徑內(nèi)容數(shù)據(jù)目錄工程文件輸出文件存儲路徑二、步驟3、創(chuàng)建源程序文件在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇File選項卡(B)為文件起一個名字:Exp.s(C)配置文件存儲路徑為工程存儲路徑:G:\Exp2101(D)使AddtoProject復(fù)選框處于選中狀態(tài)(E)Targes欄所有選項全部選中(F)擊【確定】按鈕,文件創(chuàng)建完畢二、步驟3、創(chuàng)建源程序文件源程序管理窗口二、步驟4、編寫源程序(A)在源程序管理窗口中,錄入源程序代碼(B)執(zhí)行菜單命令File|Save保存源程序二、步驟5、配置編譯鏈接參數(shù)(A)執(zhí)行菜單命令Edit|DebugRelSettings,打開DebugRelSettings窗口(B)在DebugRelSettingsPanels中,選中Linker|ARMLinker項二、步驟(5)、配置編譯鏈接參數(shù)(A)在ARMLinker子窗口中,選擇Output選項卡(B)在SimpleImage組內(nèi)ROBase配置為0x40000000;
RWBase配置為0x40003000;二、步驟5、配置編譯鏈接參數(shù)(A)在ARMLinker子窗口中,選擇Options選項卡(B)在ImageEntryPoint錄入0x40000000點擊按鈕OK,參數(shù)配置完畢二、步驟6、編譯程序(A)打開源程序編輯窗口二、步驟6、編譯程序(B)執(zhí)行菜單Project|Compile命令,對源程序編譯操作,如有錯誤,顯示如下錯誤信息窗口(C)錯誤信息:Unknownopcode操作碼錯誤,AREAExp101,code,READONLY指令前無空格(D)點擊錯誤信息位置,進入源程序編輯窗口,將指令A(yù)REAExp101,code,READONLY指令前加入空格一條錯誤信息錯誤信息位置二、步驟6、編譯程序(E)重復(fù)執(zhí)行編譯、改錯操作,直至編譯無錯誤。(F)編譯Exp.s后生成的輸出文件Exp.o保存到C:\Exp101\Exp101_Data\Debug\ObjectCode中,如下圖輸出文件生成目標(biāo)二、步驟7、鏈接程序(A)執(zhí)行Project|Make菜單命令,進行鏈接操作,生成的可執(zhí)行鏡像文件保存在C:\Exp101\Exp101_Data\Debug目錄下,如下圖:鏡像文件生成目標(biāo)二、步驟8、調(diào)試程序(1)啟動AxdDebugger軟件:IDE工程管理窗口中,鼠標(biāo)點擊按鈕,啟動調(diào)試器,如下圖:PC要調(diào)試的源程序文件名二、步驟8、調(diào)試程序(2)顯示觀察窗口(A)執(zhí)行ProcessorViews|Registers菜單命令,顯示寄存器窗口,如下圖:(B)執(zhí)行ProcessorViews|Memory菜單命令,顯示存儲器窗口,如下圖:寄存器窗口存儲器窗口二、步驟8、調(diào)試程序(2)調(diào)試語句MOVR1,R1,ROR#8(A)程序指針PC定位到指令MOVR1,R1,ROR#8在指令MOVR1,R1,ROR#8前設(shè)置一斷點鼠標(biāo)移到行號12前空白處,雙擊鼠標(biāo),則在指令MOVR1,R1,ROR#8前設(shè)置一斷點,如下圖:要調(diào)試的語句斷點二、步驟8、調(diào)試程序(2)調(diào)試語句MOVR1,R1,ROR#8(B)程序指針PC定位到指令MOVR1,R1,ROR#8運行程序,使程序指針PC指向指令MOVR1,R1,ROR#8鼠標(biāo)點擊按鈕,執(zhí)行程序,程序指針PC指向指令MOVR1,R1,ROR#8程序指針PC、斷點要調(diào)試的語句二、步驟8、調(diào)試程序(2)調(diào)試語句MOVR1,R1,ROR#8(C)指令MOVR1,R1,ROR#8調(diào)試前已知條件查看寄存器窗口,得知R1=0x11223344指令MOVR1,R1,ROR#8功能為,R1循環(huán)右移8個二進制位,理論結(jié)果R1=0x44112233寄存器名稱寄存器值二、步驟8、調(diào)試程序(2)調(diào)試語句MOVR1,R1,ROR#8(D)單步執(zhí)行指令MOVR1,R1,ROR#8鼠標(biāo)單擊按鈕,單步執(zhí)行指令MOVR1,R1,ROR#8,如下如斷點程序指針PC要調(diào)試的指令二、步驟8、調(diào)試程序(2)調(diào)試語句MOVR1,R1,ROR#8(E)指令MOVR1,R1,ROR#8執(zhí)行后,R1的結(jié)果查看寄存器窗口,得知R1=0x44112233(F)結(jié)果分析:調(diào)試結(jié)果與指令執(zhí)行理論結(jié)果一致寄存器名稱R1寄存器的值二、步驟8、調(diào)試程序(3)調(diào)試語句STRR1,[R0](A)程序指針PC定位到指令STRR1,[R0]在指令STRR1,[R0]前設(shè)置一斷點鼠標(biāo)移到行號13前空白處,雙擊鼠標(biāo),則在指令STRR1,[R0]前設(shè)置一斷點,如下圖:斷點要調(diào)試的語句二、步驟8、調(diào)試程序(2)調(diào)試語句STRR1,[R0](B)程序指針PC定位到指令STRR1,[R0]運行程序,使程序指針PC指向指令STRR1,[R0]鼠標(biāo)點擊按鈕,執(zhí)行程序,程序指針PC指向指令STRR1,[R0]要調(diào)試的語句程序指針PC、斷點二、步驟8、調(diào)試程序(2)調(diào)試語句STRR1,[R0](C)指令STRR1,[R0]調(diào)試前已知條件查看寄存器窗口,得知R1=0x44112233,R0=0x40003000指令STRR1,[R0]功能為,R1存入字存儲單元0x40003000,即
[0x40003000]=0x44112233寄存器名稱寄存器值二、步驟8、調(diào)試程序(2)調(diào)試語句STRR1,[R0](D)單步執(zhí)行指令STRR1,[R0]鼠標(biāo)單擊按鈕,單步執(zhí)行指令STRR1,[R0],如下如存儲區(qū)起始地址存儲單元[0x40003000]=0x44112233二、步驟8、調(diào)試程序(2)調(diào)試語句STRR1,[R0](E)指令STRR1,[R0]執(zhí)行后,R1=0x44112233R0=0x40003000查看存儲器窗口,得知[0x40003000]=0x44112233(F)結(jié)果分析:調(diào)試結(jié)果與指令執(zhí)行理論結(jié)果一致存儲區(qū)起始地址存儲單元[0x40003000]=0x44112233二、步驟8、調(diào)試程序(4)調(diào)試程序段:包括行號為12、13、14指令的程序段(A)在程序段第一條指令前設(shè)置斷點在指令MOVR1,R1,ROR#8前設(shè)置一斷點鼠標(biāo)移到行號12前空白處,雙擊鼠標(biāo),則在指令MOVR1,R1,ROR#8前設(shè)置一斷點,如下圖:要調(diào)試的語句斷點:程序段第一條指令二、步驟8、調(diào)試程序(4)調(diào)試程序段:包括行號為12、13、14指令的程序段(B)程序指針PC定位到程序段第一條指令處運行程序,使程序指針PC指向指令MOVR1,R1,ROR#8鼠標(biāo)點擊按鈕,執(zhí)行程序,程序指針PC指向指令MOVR1,R1,ROR#8程序指針指向程序段第一條指令要調(diào)試的程序段二、步驟8、調(diào)試程序(4)調(diào)試程序段:包括行號為12、13、14指令的程序段(C)刪除指令MOVR1,R1,ROR#8前的斷點鼠標(biāo)移到行號12前空白處,雙擊鼠標(biāo),則在指令MOVR1,R1,ROR#8前斷點刪除,如下圖:程序指針指向程序段第一條指令要調(diào)試的程序段二、步驟8、調(diào)試程序(4)調(diào)試程序段:包含行號為12、13、14指令的程序段(D)在程序段隨后一條語句設(shè)置另一斷點在指令BL前設(shè)置一斷點鼠標(biāo)移到行號15前空白處,雙擊鼠標(biāo),則在指令BL前設(shè)置一斷點,如下圖:斷點:程序段隨后指令PC:程序段第一條指令二、步驟8、調(diào)試程序(4)調(diào)試程序段:包含行號為12、13、14指令的程序段(E)程序段調(diào)試前已知條件查看寄存器窗口,得知R1=0x11223322,R0=0x40003000程序段功能為,R1循環(huán)右移8個二進制位,即R1=0x44112233
將R1的值存入以R0值為存儲器地址的字單元中,即[0x40003000]=0x44112233讀入以R0值為存儲器地址的字單元值,存入R1中,即R1=0x44112233二、步驟8、調(diào)試程序(4)調(diào)試程序段:包含行號為12、13、14指令的程序段(F)執(zhí)行程序段鼠標(biāo)單擊按鈕,執(zhí)行包含行號為12、13、14指令的程序段
,如下如二、步驟8、調(diào)試程序(4)調(diào)試程序段:包含行號為12、13、14指令的程序段(G)執(zhí)行程序段結(jié)果R1=0x44112233
[0x40003000]=0x44112233
R1=0x44112233與理論值一致2.2編寫C語言程序一、目的(1)學(xué)會使用ADS1.2編寫、調(diào)試C語言程序。(2)掌握使用地址指針訪問存儲器的編程方法。(3)熟悉單步、分段調(diào)試程序方法與技巧。二、步驟1、啟動IDE在WindowsXP系統(tǒng)窗口,執(zhí)行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜單命令,打開IDE二、步驟2、創(chuàng)建工程在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇工程模板:ARMExecutableImage(B)為工程起一個名字:Exp2102(C)配置工程存儲路徑:G:\Exp2102(D)擊【確定】按鈕,完成工程創(chuàng)建工程模板工程名工程存儲路徑二、步驟2、創(chuàng)建工程工程管理窗口文件選項卡鏈接順序選項卡生成目標(biāo)二、步驟2、創(chuàng)建工程工程管理存儲路徑內(nèi)容數(shù)據(jù)目錄工程文件輸出文件存儲路徑二、步驟3、創(chuàng)建源程序文件在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇File選項卡(B)為文件起一個名字:Exp2102.c(C)配置文件存儲路徑為工程存儲路徑:G:\Exp2102(D)使AddtoProject復(fù)選框處于選中狀態(tài)(E)Targes欄所有選項全部選中(F)擊【確定】按鈕,文件創(chuàng)建完畢二、步驟3、創(chuàng)建源程序文件源程序管理窗口二、步驟4、編寫源程序(A)在源程序管理窗口中,錄入源程序代碼(B)執(zhí)行菜單命令File|Save保存源程序二、步驟5、配置編譯鏈接參數(shù)(1)、顯示ARMLinker配置窗口(A)執(zhí)行菜單命令Edit|DebugRelSettings,打開DebugRelSettings窗口(B)在DebugRelSettingsPanels中,選中Linker|ARMLinker項二、步驟5、配置編譯鏈接參數(shù)(2)配置程序區(qū)、數(shù)據(jù)區(qū)參數(shù)(A)在ARMLinker子窗口中,選擇Output選項卡(B)在SimpleImage組內(nèi)ROBase配置為0x40000000;
RWBase配置為0x40003000;二、步驟5、配置編譯鏈接參數(shù)(3)配置鏡像入口點參數(shù)(A)在ARMLinker子窗口中,選擇Options選項卡(B)在ImageEntryPoint錄入0x40000000點擊按鈕OK,參數(shù)配置完畢二、步驟5、配置編譯鏈接參數(shù)(4)配置生成目標(biāo)(A)單機生成目標(biāo)欄的按鈕,下拉列表顯示所有可用生成目標(biāo)(B)選擇Debug作為生成目標(biāo)生成目標(biāo)二、步驟6、編譯程序(A)打開源程序編輯窗口二、步驟6、編譯程序(B)單擊編譯按鈕,對源程序執(zhí)行編譯操作,如有錯誤,修改錯誤。重復(fù)執(zhí)行編譯、改錯操作,直至無錯。(C)編譯源程序文件Exp2102.c后,生成輸出文件Exp2102.O二、步驟7、鏈接程序(A)單擊鏈接按鈕,進行鏈接操作,生成的可執(zhí)行鏡像文件保存在G:\Exp2102\Exp2102_Data\DebugRel目錄下,如下圖:鏡像文件生成目標(biāo)二、步驟8、調(diào)試程序(1)啟動AxdDebugger軟件:WindowsXP操作桌面,執(zhí)行【開始】|
【所有程序】|ARMDeveloperSuiteV1.2|AxDDebugger菜單命令,運行調(diào)試器軟件AxDDebugger,如下圖:
二、步驟8、調(diào)試程序(2)調(diào)入可執(zhí)行鏡像文件Exp2102.axf
(A)執(zhí)行File|LoadImage菜單命令,顯示LoadImage窗口,如下圖:二、步驟8、調(diào)試程序(2)調(diào)入可執(zhí)行鏡像文件Exp2102.axf
(B)選擇G:\Exp2102\Exp2102_Data\DebugRel目錄下的鏡像文件Exp2102.axf,然后點擊打開,進入調(diào)試界面,如下圖:程序指針二、步驟8、調(diào)試程序(3)定位到用戶程序的第一條語句處(A)單擊程序執(zhí)行按鈕,執(zhí)行程序,程序指針執(zhí)向用戶程序的第一條語句,如下圖:程序指針二、步驟8、調(diào)試程序(4)顯示變量窗口(A)執(zhí)行ProcessorViews|Variables菜單命令,顯示變量窗口,如下圖:全局變量選項卡局部變量選項卡二、步驟8、調(diào)試程序(4)顯示存儲器窗口(B)執(zhí)行ProcessorViews|Memory菜單命令,顯示存儲器窗口,在StartAddress后編輯框內(nèi)錄入0x40003000,然后回車。顯示以0x40003000為起始地址的存儲區(qū)如下圖:二、步驟8、調(diào)試程序(5)調(diào)試語句ClearMemory((unsignedchar*)0x40003000,256);(A)程序指針PC定位到語句ClearMemory((unsignedchar*)0x40003000,256);在語句ClearMemory((unsignedchar*)0x40003000,256)前設(shè)置一斷點鼠標(biāo)移到行號30前空白處,雙擊鼠標(biāo),則在語句
ClearMemory((unsignedchar*)0x40003000,256)前設(shè)置一斷點,如下圖:斷點要調(diào)試的語句二、步驟8、調(diào)試程序(5)調(diào)試語句ClearMemory((unsignedchar*)0x40003000,256);(B)程序指針PC定位到ClearMemory((unsignedchar*)0x40003000,256);運行程序,使程序指針PC指向本語句鼠標(biāo)點擊按鈕,執(zhí)行程序,程序指針PC指向
ClearMemory((unsignedchar*)0x40003000,256);程序指針PC、斷點要調(diào)試的語句二、步驟8、調(diào)試程序(5)調(diào)試語句ClearMemory((unsignedchar*)0x40003000,256);(C)語句ClearMemory((unsignedchar*)0x40003000,256)的功能
將以0x40003000為起始地址,連續(xù)256個字節(jié)存儲單元清0。(D)語句ClearMemory((unsignedchar*)0x40003000,256)執(zhí)行前,將查看0x40003000為起始地址,連續(xù)256個字節(jié)存儲單元內(nèi)容。
在存儲器窗口,StartAddress地址欄輸入0x40003000,然后回車,則0x40003000為起始地址,連續(xù)256個字節(jié)存儲單元內(nèi)如如下圖:二、步驟8、調(diào)試程序(5)調(diào)試語句ClearMemory((unsignedchar*)0x40003000,256);(F)單步執(zhí)行語句ClearMemory((unsignedchar*)0x40003000,256)鼠標(biāo)單擊按鈕,單步執(zhí)行語句ClearMemory((unsignedchar*)0x40003000,256),如下圖斷點程序指針PC要調(diào)試的指令二、步驟8、調(diào)試程序(5)調(diào)試語句ClearMemory((unsignedchar*)0x40003000,256);(G)語句ClearMemory((unsignedchar*)0x40003000,256)執(zhí)行結(jié)果查看以0x40003000為起始地址,連續(xù)256個字節(jié)存儲單元內(nèi)容,執(zhí)行結(jié)果與語句功能一致,如下圖2.1UART
一、目的(1)掌握嵌入式處理器LPC2290UART接口電路設(shè)計方法(2)掌握UART的編程方法。2.1UART
二、題目編程程序?qū)崿F(xiàn)通過Uart0向PC機串行發(fā)送數(shù)據(jù)要求UART0通信格式為:通訊波特率115200BPS,8位數(shù)據(jù)位,1位停止位,無奇偶校驗發(fā)送ASCII字符串“ARM7LPC2290!”UART0使用查詢方式發(fā)送數(shù)據(jù)2.1UART
三、UART接口電路(1)SP3232ERS232接口芯片(2)LPC2290UART0P0.0為UART0數(shù)據(jù)發(fā)送線TxD0,
P0.1為UART0數(shù)據(jù)接收線RxD0(3)連接插座2腳為基于RS232標(biāo)準(zhǔn)的TxD數(shù)據(jù)發(fā)送線連接插座3腳為基于RS232標(biāo)準(zhǔn)的RxD數(shù)據(jù)接收線2.1UART
四、UART數(shù)據(jù)發(fā)送相關(guān)(1)使用PINSEL0配置P0.0為UART0TxD0,
P0.1為UART0RxD0(2)使用U0LCR配置數(shù)據(jù)傳輸格式;使用U0DLL、U0DLM配置數(shù)據(jù)傳輸速率
(3)發(fā)送一字節(jié)數(shù)據(jù):將字節(jié)數(shù)據(jù)寫入寄存器U0THR
監(jiān)視U0LSR位6,當(dāng)位6=1發(fā)送完成
2.1UART
五、UART編程(1)UART0初始化(A)管腳功能配置
將管腳P0.0為UART0TxD0,將PINSEL0的位1位0配置為01即可;將管腳P0.1為UART0RxD0,將PINSEL0的位3位2配置為01即可;配置語句:
PINSEL0=
PINSEL0&0xFFFFFF00|0x05(B)UART0幀格式配置
依據(jù)實驗要求,配置U0LCR寄存器各位值,實現(xiàn)幀格式傳輸格式:8個數(shù)據(jù)位、1個停止位、無校驗8位數(shù)據(jù)D1D0=111個停止位D2=0
無校驗
D3=0配置語句:
U0LCR=0x03
2.1UART
五、UART編程(1)UART0初始化(C)波特率配置DLAB(U0LCR位7)=1時才能訪問寄存器U0DLM,U0DLL配置語句:U0LCR|=0x80依據(jù)公式BaudRate=Fpclk/([U0DLM,U0DLL]×16)計算U0DLM,U0DLL寄存器配置值其中BaudRate為波特率,比如115200BPS;U0DLM波特率16位配置值的高8位;U0DLL波特率16位配置值的低8位;Fpclk系統(tǒng)時鐘配置語句:U0DLL=(Fpclk/(BaudRate*16))&0xff//低8位
U0DLM=(Fpclk/(BaudRate*16))/256//高8位
=(Fpclk/(BaudRate*16))>>82.1UART
五、UART編程(2)UART0數(shù)據(jù)發(fā)送(A)發(fā)送數(shù)據(jù):將字節(jié)數(shù)據(jù)寫入寄存器U0THR即可.發(fā)送數(shù)據(jù)語句:U0THR=字節(jié)數(shù)據(jù)(B)監(jiān)測發(fā)送數(shù)據(jù)是否結(jié)束:當(dāng)U0LSR位6=1時,數(shù)據(jù)發(fā)送完成監(jiān)測發(fā)送結(jié)束語句:
while((U0LSR&0x40)==0);2.1UART
六、編程1、啟動IDE在WindowsXP系統(tǒng)窗口,執(zhí)行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜單命令,打開IDE2.1UART
六、編程1、創(chuàng)建工程:在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇工程模板:ARMExecutableImageForMagicARM2200(B)為工程起一個名字:Exp2201(C)配置工程存儲路徑:G:\Exp2201(D)擊【確定】按鈕,完成工程創(chuàng)建工程模板工程名工程存儲路徑2.1UART
六、編程工程管理窗口文件選項卡鏈接順序選項卡生成目標(biāo)2.1UART
六、編程工程管理存儲路徑內(nèi)容數(shù)據(jù)目錄工程文件輸出文件存儲路徑2.1UART
六、編程2、打開源程序編輯窗口(1)、在工程管理窗口中,展開User目錄;(2)、雙擊文件main.c,打開源程序main.c編程窗口,如下圖2.1UART
六、編程3、錄入源程序在源程序編輯窗口中,錄入程序代碼,然后執(zhí)行File|Save菜單命令,保存源程序。2.1UART
六、編程4、編譯、改錯單擊按鈕,編譯程序,如有錯誤,根據(jù)錯誤提示信息,修改程序。然后重復(fù)執(zhí)行編譯、改錯操作,直至編譯通過,生成輸出文件如下圖:編譯main.c生成的輸出文件2.1UART
六、編程5、鏈接程序單擊按鈕,鏈接程序,生成的可執(zhí)行鏡像文件如下圖:鏡像文件2.1UART
七、調(diào)試1、啟動調(diào)試器、調(diào)入要調(diào)試的鏡像文件單擊按鈕,啟動調(diào)試器AxDDebugger、調(diào)入要調(diào)試的鏡像文件Exp2201.axf,如下圖:2.1UART
七、調(diào)試2、計算機端運行SerialPort201.Exe程序,執(zhí)行“接收數(shù)據(jù)”菜單命令3、執(zhí)行程序單擊按鈕,執(zhí)行程序4、觀察分析觀察計算機端是否接收到數(shù)據(jù),如果接收到,調(diào)試結(jié)束;否則。按如下順序檢查:串行電纜連接是否牢固UART0初始化是否正確接收兩端幀格式、波特率是否一致
2.2UART
一、目的(1)掌握嵌入式處理器LPC2290UART接口電路設(shè)計方法(2)掌握UART的編程方法。2.2UART
二、題目使用UART0接收PC機數(shù)據(jù),在發(fā)送給PC機要求UART0通信格式為:通訊波特率115200BPS,8位數(shù)據(jù)位,1位停止位,無奇偶校驗發(fā)送ASCII字符串“ARM7LPC2290!”UART0使用查詢方式發(fā)送數(shù)據(jù)2.2UART
三、UART接口電路(1)SP3232ERS232接口芯片(2)LPC2290UART0P0.0為UART0數(shù)據(jù)發(fā)送線TxD0,
P0.1為UART0數(shù)據(jù)接收線RxD0(3)連接插座2腳為基于RS232標(biāo)準(zhǔn)的TxD數(shù)據(jù)發(fā)送線連接插座3腳為基于RS232標(biāo)準(zhǔn)的RxD數(shù)據(jù)接收線2.2UART
四、UART數(shù)據(jù)發(fā)送接收1、數(shù)據(jù)接收相關(guān)(1)使用PINSEL0配置P0.1為UART0RxD0(2)使用U0LCR配置數(shù)據(jù)傳輸格式;使用U0DLL、U0DLM配置數(shù)據(jù)傳輸速率
使用U0FCR配置FIFO可用(3)接收數(shù)據(jù):U0LSR位0=1時FIFO接收緩沖區(qū)有數(shù)據(jù),可通過讀取U0RBR接收一字節(jié)數(shù)據(jù)2.2UART
四、UART數(shù)據(jù)發(fā)送接收2、數(shù)據(jù)接收中斷相關(guān)(1)
U0FCR配置使用TxFIFO、RxFIFO,配置接收中斷出發(fā)級別(2)使用VICIntSelect配置RDA為IRQ類型或FIQ類型(3)使用VICVectCntl0、VICVectAddr0配置記錄與識別中斷服務(wù)程序(4)使用配置VICIntEnable使對RDA開中斷(5)中斷過程:UART0監(jiān)控RxFIFO接收數(shù)據(jù)狀況,當(dāng)達(dá)到觸發(fā)級別,向VIC申請中斷,VIC根據(jù)找到并調(diào)用針對RDA編寫的中斷服務(wù)程序.2.2UART四、UART數(shù)據(jù)發(fā)送接收3、數(shù)據(jù)發(fā)送相關(guān)(1)使用PINSEL0配置P0.0為UART0TxD0(2)使用U0LCR配置數(shù)據(jù)傳輸格式;使用U0DLL、U0DLM配置數(shù)據(jù)傳輸速率
(3)發(fā)送一字節(jié)數(shù)據(jù):將字節(jié)數(shù)據(jù)寫入寄存器U0THR
監(jiān)視U0LSR位6,當(dāng)位6=1發(fā)送完成
2.2UART
五、UART編程(1)UART0初始化(A)管腳功能配置
將管腳P0.0為UART0TxD0,將PINSEL0的位1位0配置為01即可;將管腳P0.1為UART0RxD0,將PINSEL0的位3位2配置為01即可;配置語句:
PINSEL0=
PINSEL0&0xFFFFFF00|0x05(B)UART0幀格式配置
依據(jù)實驗要求,配置U0LCR寄存器各位值,實現(xiàn)幀格式傳輸格式:8個數(shù)據(jù)位、1個停止位、無校驗8位數(shù)據(jù)D1D0=111個停止位D2=0
無校驗
D3=0配置語句:
U0LCR=0x03
2.2UART
五、UART編程(1)UART0初始化(C)波特率配置DLAB(U0LCR位7)=1時才能訪問寄存器U0DLM,U0DLL配置語句:U0LCR|=0x80依據(jù)公式BaudRate=Fpclk/([U0DLM,U0DLL]×16)計算U0DLM,U0DLL寄存器配置值其中BaudRate為波特率,比如115200BPS;U0DLM波特率16位配置值的高8位;U0DLL波特率16位配置值的低8位;Fpclk系統(tǒng)時鐘配置語句:U0DLL=(Fpclk/(BaudRate*16))&0xff//低8位
U0DLM=(Fpclk/(BaudRate*16))/256//高8位
=(Fpclk/(BaudRate*16))>>82.2UART
五、UART編程(1)UART0初始化(D)配置使用FIFO緩沖區(qū)、RDA接收中斷觸發(fā)級別為10配置U0FCR位0=1,使用FIFO緩沖區(qū)配置U0FCR位[7:6]=10,RxFIFO數(shù)據(jù)達(dá)到8字節(jié)出發(fā)接收中斷配置語句:
U0FCR=0x81;(E)配置RDA中斷類型為IRQRDA中斷源編號為6配置VICIntSelect寄存器位6=0即可配置語句:
VICIntSelect=
VICIntSelect&(~(1<<6))2.2UART
五、UART編程(1)UART0初始化(F)配置記錄、識別中斷服務(wù)程序配置VICVectCntl0的位[4:0]記錄RDA中斷源編號6配置VICVectCntl0的位[5]為1聲明VICVECTAddr0保存的是中斷源編號6的中斷源中斷服務(wù)程序配置語句:
VICVectCntl0=0x20|0x06;VICVECTAddr0=(uint32)IRQ_UART0;//IRQ_UART0為中斷服務(wù)程序(G)配置VICIntEnable的位[6]=1,開RDA中斷配置語句:
VICIntEnable&=1<<6;(H)配置RDA可申請中斷配置U0IER的位0=1,使RDA可申請中斷配置語句:
U0IER=0x01;2.2UART
五、UART編程(2)UART0編程(A)發(fā)送字節(jié)數(shù)據(jù)將字節(jié)數(shù)據(jù)寫入寄存器U0THR即完成數(shù)據(jù)發(fā)送,語句如下:
U0THR=Data;(B)中斷服務(wù)程序中斷服務(wù)程序聲明void__irq
中斷服務(wù)程序名(void)其中,__irq為中斷服務(wù)程序標(biāo)識中斷源識別:U0IIR的位[3:1]=010時為RDA中斷數(shù)據(jù)接收
從U0RBR讀取數(shù)據(jù)存入用戶接收緩沖區(qū)rcv_buf[255]中斷服務(wù)程序結(jié)束處理清除接收中斷
data=U0IIR清除正在服務(wù)的中斷服務(wù)程序地址
VICVectAddr=0x002.2UART
六、編程1、啟動IDE在WindowsXP系統(tǒng)窗口,執(zhí)行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜單命令,打開IDE2.2UART
六、編程1、創(chuàng)建工程:在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇工程模板:ARMExecutableImageForMagicARM2200(B)為工程起一個名字:Exp2202(C)配置工程存儲路徑:G:\Exp2202(D)擊【確定】按鈕,完成工程創(chuàng)建工程模板工程名工程存儲路徑2.2UART
六、編程工程管理窗口文件選項卡鏈接順序選項卡生成目標(biāo)2.2UART
六、編程工程管理存儲路徑內(nèi)容數(shù)據(jù)目錄工程文件輸出文件存儲路徑2.2UART
六、編程2、打開源程序編輯窗口(1)、在工程管理窗口中,展開User目錄;(2)、雙擊文件main.c,打開源程序main.c編程窗口,如下圖2.2UART
六、編程3、錄入源程序在源程序編輯窗口中,錄入程序代碼,然后執(zhí)行File|Save菜單命令,保存源程序。2.2UART
六、編程4、編譯、改錯單擊按鈕,編譯程序,如有錯誤,根據(jù)錯誤提示信息,修改程序。然后重復(fù)執(zhí)行編譯、改錯操作,直至編譯通過,生成輸出文件如下圖:編譯main.c生成的輸出文件2.2UART
六、編程5、鏈接程序單擊按鈕,鏈接程序,生成的可執(zhí)行鏡像文件如下圖:鏡像文件2.2UART
七、調(diào)試1、啟動調(diào)試器、調(diào)入要調(diào)試的鏡像文件單擊按鈕,啟動調(diào)試器AxDDebugger、調(diào)入要調(diào)試的鏡像文件Exp2201.axf,如下圖:2.2UART
七、調(diào)試2、計算機端運行SerialPort202.Exe程序,執(zhí)行“發(fā)送接收數(shù)據(jù)”菜單命令3、執(zhí)行程序單擊按鈕,執(zhí)行程序4、觀察分析計算機端錄入數(shù)據(jù),然后執(zhí)行”發(fā)送”菜單命令,觀察計算機端是否接收到數(shù)據(jù),如果接收到,調(diào)試結(jié)束;否則。按如下順序檢查:串行電纜連接是否牢固UART0初始化是否正確接收兩端幀格式、波特率是否一致
2.3.1蜂鳴器實驗一、目的(1)掌握蜂鳴器的工作原理。(2)掌握蜂鳴器接口電路的設(shè)計方法。(3)掌握蜂鳴器編程方法。2.3.1蜂鳴器實驗二、題目存儲器0x40003100字節(jié)單元保存嵌入式系統(tǒng)各部件的運行狀態(tài)數(shù)據(jù),數(shù)據(jù)位信息定義如下:
位
0=0存儲器無故障;
=1存儲器故障;
位1=0
串行通信無故障;
=1串行通信故障。依據(jù)內(nèi)存0x40003100單元的內(nèi)容,控制蜂鳴器報警。報警策略如下:存儲器故障,每隔一定時間蜂鳴器發(fā)出“嘟嘟”報警聲;串行通信故障,每隔一定時間蜂鳴器發(fā)出“嘟嘟嘟”報警聲。如果兩種錯誤都發(fā)生,則按以上策略交替報警。編寫程序,實現(xiàn)以上功能。2.3.1蜂鳴器實驗
三、蜂鳴器接口電路(1)Buzzer為蜂鳴器;8550為三極管;R88、R87、R86為電阻(2)p0.7為ARM處理器LPC2290P0口的第七引腳(3)P0.7為低電平時,三極段8550的ec級導(dǎo)通,電源正通過三極管ec作用于蜂鳴器,蜂鳴器響;P0.7為高電平時,三極段8550的ec級截止,蜂鳴器一端無電源,蜂鳴器不響;2.3.1蜂鳴器實驗
四、蜂鳴器編程1、配置P0.7引腳為GPIO功能
將PINSEL0的位[15:14]配置00,P0.7引腳即為GPIO功能配置語句:
PINSEL0&=(~(3<<14));
2、配置P0.7引腳為GPIO輸出
將IO0DIR的位7配置為1,P0.7引腳即為GPIO輸出功能配置語句:IO0DIR|=1<<7;
3、控制蜂鳴器響與不響
將IO0SET的位[7]配置1,P0.7引腳輸出高電平,蜂鳴器不響;配置語句:IO0SET|=1<<7;
將IO0CLR的位[7]配置1,P0.7引腳輸出低電平,蜂鳴器響;配置語句:IO0CLR|=1<<7;
2.3.1蜂鳴器實驗
五、編程1、啟動IDE在WindowsXP系統(tǒng)窗口,執(zhí)行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜單命令,打開IDE2.3.1蜂鳴器實驗五、編程1、創(chuàng)建工程:在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇工程模板:ARMExecutableImageForMagicARM2200(B)為工程起一個名字:Exp2301(C)配置工程存儲路徑:G:\Exp2301(D)擊【確定】按鈕,完成工程創(chuàng)建工程模板工程名工程存儲路徑2.3.1蜂鳴器實驗五、編程工程管理窗口文件選項卡鏈接順序選項卡生成目標(biāo)2.3.1蜂鳴器實驗五、編程工程管理存儲路徑內(nèi)容數(shù)據(jù)目錄工程文件輸出文件存儲路徑2.3.1蜂鳴器實驗五、編程2、打開源程序編輯窗口(1)、在工程管理窗口中,展開User目錄;(2)、雙擊文件main.c,打開源程序main.c編程窗口,如下圖2.3.1蜂鳴器實驗五、編程3、錄入源程序在源程序編輯窗口中,錄入程序代碼,然后執(zhí)行File|Save菜單命令,保存源程序。2.3.1蜂鳴器實驗五、編程4、編譯、改錯單擊按鈕,編譯程序,如有錯誤,根據(jù)錯誤提示信息,修改程序。然后重復(fù)執(zhí)行編譯、改錯操作,直至編譯通過,生成輸出文件如下圖:編譯main.c生成的輸出文件2.3.1蜂鳴器實驗五、編程5、鏈接程序單擊按鈕,鏈接程序,生成的可執(zhí)行鏡像文件如下圖:鏡像文件2.3.1蜂鳴器實驗六、編程1、啟動調(diào)試器、調(diào)入要調(diào)試的鏡像文件單擊按鈕,啟動調(diào)試器AxDDebugger、調(diào)入要調(diào)試的鏡像文件Exp2301.axf,如下圖:2.3.1蜂鳴器實驗六、編程2、調(diào)用變量窗口(1)單擊按鈕,進入用戶程序調(diào)試窗口(2)執(zhí)行菜單ProcessorViews|Variables菜單命令,打開變量窗口,如下圖:2.3.1蜂鳴器實驗六、編程3、調(diào)試控制蜂鳴器(1)、調(diào)試前準(zhǔn)備將鼠標(biāo)移動到行號38前的空白處,雙擊鼠標(biāo),去掉斷點將鼠標(biāo)移動到行號21前的空白處,雙擊鼠標(biāo),設(shè)置斷點,記錄為斷點1將鼠標(biāo)移動到行號23前的空白處,雙擊鼠標(biāo),設(shè)置斷點,記錄為斷點2點擊按鈕,執(zhí)行程序,程序停在斷點1處2.3.1蜂鳴器實驗六、編程3、調(diào)試控制蜂鳴器(2)、配置蜂鳴器控制數(shù)據(jù)執(zhí)行ProcessorViews|Memory菜單命令,打開存儲器窗口在StartAddress欄輸入0x40003100,回車確認(rèn)雙擊存儲單元0x40003100,錄入0x03,回車確認(rèn),如下圖:2.3.1蜂鳴器實驗六、編程3、調(diào)試控制蜂鳴器(3)、調(diào)試點擊按鈕,程序停在斷點2處。如果蜂蜜器響,正確;如果蜂鳴器不響。檢查P0.7初始化、蜂鳴器電路。點擊按鈕,程序停在斷點1處。蜂蜜器不響。去掉斷點1、斷點2,運行程序。4、思考題設(shè)計調(diào)試項,按照設(shè)計思路調(diào)試2.3.2
LED顯示與按鍵識別實驗
一、目的(1)進一步掌握GPIO接口電路設(shè)計方法。(2)了解LED、按鍵接口電路的工作原理。(3)掌握LED顯示控制、按鍵識別的編程方法。2.3.2
LED顯示與按鍵識別實驗
二、題目1、
8個LED按流水方式顯示,即LED1亮,其他LED滅;然后LED2亮,其他LED滅;以此類推。重復(fù)進行以上操作。2、
當(dāng)LED2、LED4、LED6、LED8亮?xí)r,蜂鳴器響;否則蜂鳴器不響。3、
檢測KEY1按鍵,如果KEY1按下,當(dāng)前LED、蜂鳴器操作狀態(tài)保持不變;否則,繼續(xù)執(zhí)行1、2控制策略。2.3.2
LED顯示與按鍵識別實驗
三、接口電路1、按鍵識別電路(1)、Key1為按鍵;(2)、R18電阻(3)、P0.20為嵌入式處理器LPC2290P0口的20引腳(4)、工作原理:Key1鍵處于按下狀態(tài),P0.20引腳為低電平;Key1鍵處于釋放狀態(tài),P0.20引腳為高電平.編寫程序測試P0.20引腳為低電平或高電平從而確認(rèn)KEY1鍵是按下或未按下。2.3.2
LED顯示與按鍵識別實驗
三、接口電路1、按鍵識別電路(1)、LED1、LED2、。。。、LED8為發(fā)光二極管;(2)、R89、R90、R91、R92、R93、R94、R95、R96為電阻(3)、P2.16、。。。P2.23為嵌入式處理器LPC2290P2口的引腳(4)、工作原理:8路發(fā)光二極管控制電路。以LED1發(fā)光二極管控制電路為例,說明發(fā)光二極管控制原理:P2.16引腳高電平,LED1滅;P2.16引腳低電平,LED1亮;編寫程序,控制P2.16引腳為高低電平,從而可控制LED1滅或亮。2.3.2
LED顯示與按鍵識別實驗
四、Key1編程1、配置P0.20引腳為GPIO功能
將PINSEL1的位[9:8]配置00,P0.20引腳即為GPIO功能配置語句:
PINSEL1&=(~(3<<8));
2、配置P0.20引腳為GPIO輸入
將IO0DIR的位20配置為0,P0.20引腳即為GPIO輸入功能配置語句:IO0DIR&=~(1<<20);
3、KEY1按鍵識別原理
IO0PIN寄存器位20=0P0.20引腳為低電平;
IO0PIN寄存器位20=1P0.20引腳為高電平;編寫程序,判斷IO0PIN位20為0或1來判斷KEY1按鍵是否按下2.3.2
LED顯示與按鍵識別實驗
五、LED編程1、配置P2.16、。。。、P2.23引腳為GPIO輸出
將IO2DIR的[23:16]配置為1,P2.16、。。。、P2.23引腳即為GPIO輸出功能配置語句:IO2DIR&=0xFF<<16;
2、控制LED(1)、僅控制LED1配置IO2SET的位[16]=1P2.16引腳為高電平,LED1滅,控制數(shù)據(jù)為0xFF01FFFF配置
IO2CLR的位[16]=1P2.16引腳為低電平,LED1亮,控制數(shù)據(jù)為0xFF01FFFFLED2、。。。、LED8控制原理與LED1相同,控制數(shù)據(jù)分別為0xFF02FFFF、0xFF04FFFF、
0xFF08FFFF、
0xFF10FFFF、
0xFF20FFFF、
0xFF40FFFF、
0xFF80FFFF(2)編寫程序,使LED1、。。。、LED8按照控制策略顯示。2.3.2
LED顯示與按鍵識別實驗
六、編程1、啟動IDE在WindowsXP系統(tǒng)窗口,執(zhí)行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜單命令,打開IDE2.3.2
LED顯示與按鍵識別實驗
六、編程1、創(chuàng)建工程:在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇工程模板:ARMExecutableImageForMagicARM2200(B)為工程起一個名字:Exp2302(C)配置工程存儲路徑:G:\Exp2302(D)擊【確定】按鈕,完成工程創(chuàng)建工程模板工程名工程存儲路徑2.3.2
LED顯示與按鍵識別實驗
六、編程工程管理窗口文件選項卡鏈接順序選項卡生成目標(biāo)2.3.2
LED顯示與按鍵識別實驗
六、編程工程管理存儲路徑內(nèi)容數(shù)據(jù)目錄工程文件輸出文件存儲路徑2.3.2
LED顯示與按鍵識別實驗
六、編程2、打開源程序編輯窗口(1)、在工程管理窗口中,展開User目錄;(2)、雙擊文件main.c,打開源程序main.c編程窗口,如下圖2.3.2
LED顯示與按鍵識別實驗
六、編程3、錄入源程序在源程序編輯窗口中,錄入程序代碼,然后執(zhí)行File|Save菜單命令,保存源程序。2.3.2
LED顯示與按鍵識別實驗
六、編程4、編譯、改錯單擊按鈕,編譯程序,如有錯誤,根據(jù)錯誤提示信息,修改程序。然后重復(fù)執(zhí)行編譯、改錯操作,直至編譯通過,生成輸出文件如下圖:編譯main.c生成的輸出文件2.3.2
LED顯示與按鍵識別實驗
六、編程5、鏈接程序單擊按鈕,鏈接程序,生成的可執(zhí)行鏡像文件如下圖:鏡像文件2.3.2
LED顯示與按鍵識別實驗
六、編程1、啟動調(diào)試器、調(diào)入要調(diào)試的鏡像文件單擊按鈕,啟動調(diào)試器AxDDebugger、調(diào)入要調(diào)試的鏡像文件Exp2301.axf,如下圖:2.3.2
LED顯示與按鍵識別實驗
六、編程2、調(diào)用變量窗口、存儲窗口(1)單擊按鈕,進入用戶程序調(diào)試窗口(2)執(zhí)行菜單ProcessorViews|Variables菜單命令,打開變量窗口,如下圖:(3)執(zhí)行菜單ProcessorViews|Memory菜單命令,打開存儲器窗口,如下圖:2.3.2
LED顯示與按鍵識別實驗
六、編程3、調(diào)試(1)、KEY1按鍵識別鼠標(biāo)移動到行號29前的空白處,雙擊鼠標(biāo),刪除斷點鼠標(biāo)移動到行號18前的空白處,雙擊鼠標(biāo),設(shè)置斷點,記錄為斷點1單擊按鈕,執(zhí)行程序,程序停在斷點1;單擊按鈕,執(zhí)行x=IO0PIN語句在Variable窗口,鼠標(biāo)移動到變量x值處,右擊鼠標(biāo),執(zhí)行Format|Binary菜單命令。鍵KEY1未按下,查看變量X位20的值,X[20]=0按下KEY1單擊按鈕,執(zhí)行程序,程序停在斷點1;單擊按鈕,執(zhí)行x=IO0PIN語句在Variable窗口,鼠標(biāo)移動到變量x值處,右擊鼠標(biāo),執(zhí)行Format|Binary菜單命令。鍵KEY1按下,查看變量X位20的值,如果X[20]=1,正確;否則,錯誤,錯誤檢查次序為:P0.20初始化KEY1電路如果以上都正確,KEY1損壞。2.3.2
LED顯示與按鍵識別實驗
六、編程3、調(diào)試(2)、調(diào)試LED鼠標(biāo)移動到行號18前的空白處,雙擊鼠標(biāo),刪除斷點鼠標(biāo)移動到行號41前的空白處,雙擊鼠標(biāo),設(shè)置斷點,記錄為斷點2單擊按鈕,執(zhí)行程序,程序停在斷點1處,如果有一個LED亮,依據(jù)DISP_TAB[nStep]查看顯示數(shù)據(jù),判別顯示數(shù)據(jù)是否對應(yīng)亮LED,如果不對應(yīng),修改顯示數(shù)據(jù)。如果沒有一個LED亮,依據(jù)以下順序排除錯誤:依據(jù)DISP_TAB[nStep]查看顯示數(shù)據(jù),如果錯,修改顯示數(shù)據(jù)查看P2.16、。。。、P2.23初始化,如有錯,修改錯誤查看電路,如果電路沒有問題,LED相應(yīng)電路損壞(3)、運行程序刪除所有斷點單擊按鈕,執(zhí)行程序。按照要求操作,觀察程序運行效果.2.3.2
LED顯示與按鍵識別實驗
六、編程3、調(diào)試控制蜂鳴器(2)、配置蜂鳴器控制數(shù)據(jù)執(zhí)行ProcessorViews|Memory菜單命令,打開存儲器窗口在StartAddress欄輸入0x40003100,回車確認(rèn)雙擊存儲單元0x40003100,錄入0x03,回車確認(rèn),如下圖:2.3.2
LED顯示與按鍵識別實驗
六、編程3、調(diào)試控制蜂鳴器(3)、調(diào)試點擊按鈕,程序停在斷點2處。如果蜂蜜器響,正確;如果蜂鳴器不響。檢查P0.7初始化、蜂鳴器電路。點擊按鈕,程序停在斷點1處。蜂蜜器不響。去掉斷點1、斷點2,運行程序。4、思考題設(shè)計調(diào)試項,按照設(shè)計思路調(diào)試2.4.1外部中斷一、目的(1)掌握蜂鳴器的工作原理。(2)掌握蜂鳴器接口電路的設(shè)計方法。(3)掌握蜂鳴器編程方法。2.4.1外部中斷二、題目1、內(nèi)容編寫程序,實現(xiàn)以下功能:如果按鍵以前蜂鳴器響,則按鍵后,蜂鳴器不響;如果按鍵以前蜂鳴器不響,則按鍵后,蜂鳴器響。2、
編程要求采用外部中斷技術(shù)識別KEY1按鍵。2.4.1外部中斷三、接口電路(1)、Key1為按鍵;(2)、R18電阻(3)、P0.20為嵌入式處理器LPC2290P0口的20引腳(4)、工作原理:Key1鍵處于按下狀態(tài),P0.20引腳為低電平;Key1鍵處于釋放狀態(tài),P0.20引腳為高電平.(5)按鍵操作:按KEY鍵,在P0.20引腳輸入信號為可通過P0.20高電平向電平跳變作為按鍵識別方法。編寫程序采用中斷方式識別KEY1按鍵操作。2.4.1外部中斷四、Key1編程1、配置P0.20引腳為GPIO功能
將PINSEL1的位[9:8]配置11,P0.20引腳為EINT3功能配置語句:
PINSEL1&=3<<8;
2、配置EINT3中斷類型為IRQ方式EINT3中斷編號為17,只要配置VICIntSelect位17為0即可,配置語句:VICIntSelect=VICIntSelect&(~(1<<17));3、配置中斷向量配置中斷識別,即設(shè)置VICVectCntl0位5為1;配置中斷識別號(即中斷編號),即設(shè)置VICVectCntl0位[4:0]為17配置VICVectAddr0中斷服務(wù)程序首地址配置語句:VICVectCntl0=0x20|17; VICVectAddr0=(int)IRQ_Eint3; 2.4.1外部中斷四、Key1編程4、配置中斷觸發(fā)模式EXTINT=1<<3;//清除EINT3中斷標(biāo)志EXTMODE=1<<3;//設(shè)置EINT3中斷為邊沿觸發(fā)模式
EXTPOLAR=0x00;//設(shè)置EINT3中斷為下降沿觸發(fā)5、配置EINT3開中斷
配置VICIntEnable位17=1,使EINT3開中斷配置語句:VICIntEnable=1<<17;6、中斷服務(wù)程序void__irqIRQ_Eint3(void){
中斷處理EXTINT=1<<3; //清除EINT3中斷標(biāo)志
VICVectAddr=0;}2.4.1外部中斷五、編程1、啟動IDE在WindowsXP系統(tǒng)窗口,執(zhí)行【所有程序】|ARMDeveloperSuiteV1.2|CodeWarriorForARMDeveloperSuite菜單命令,打開IDE2.4.1外部中斷五、編程1、創(chuàng)建工程:在IDE窗口中,執(zhí)行File|New菜單命令,打開New窗口(A)選擇工程模板:ARMExecutableImageForMagicARM2200(B)為工程起一個名字:Exp2401(C)配置工程存儲路徑:G:\Exp2401(D)擊【確定】按鈕,完成工程創(chuàng)建工程模板工程名工程存儲路徑2.4.1外部中斷五、編程工程管理窗口文件選項卡鏈接順序選項卡生成目標(biāo)2.4.1外部中斷五、編程工程管理存儲路徑內(nèi)容數(shù)據(jù)目錄工程文件輸出文件存儲路徑2.4.1外部中斷五、編程2、打開源程序編輯窗口(1)、在工程管理窗口中,展開User目錄;(2)、雙擊文件main.c,打開源程序main.c編程窗口,如下圖2.4.1外部中斷五、編程3、錄入源程序在源程序編輯窗口中,錄入程序代碼,然后執(zhí)行File|Save菜單命令,保存源程序。2.4.1外部中斷五、編程4、編譯、改錯單擊按鈕,編譯程序,如有錯誤,根據(jù)錯誤提示信息,修改程序。然后重復(fù)執(zhí)行編譯、改錯操作,直至編譯通過,生成輸出文件如下圖:編譯main.c生成的輸出文件2.4.1外部中斷五、編程5、鏈接程序單擊按鈕,鏈接程序,生成的可執(zhí)行鏡像文件如下圖:鏡像文件2.4.1外部中斷六、編程1、啟動調(diào)試器、調(diào)入要調(diào)試的鏡像文件單擊按鈕,啟動調(diào)試器AxDDebugger、調(diào)入要調(diào)試的鏡像文件Exp2301.axf,如下圖:2.4.1外部中斷六、編程2、調(diào)用變量窗口(1)單擊按鈕,進入用戶程序調(diào)試窗口(2)執(zhí)行菜單ProcessorViews|Variables菜單命令,打開變量窗口,如下圖:2.4.1外部中斷六、編程3、調(diào)試是否可調(diào)用中斷(1)、調(diào)試前準(zhǔn)備將鼠標(biāo)移動到行號44前的空白處,雙擊鼠標(biāo),去掉斷點將鼠標(biāo)移動到行號33前的空白處,雙擊鼠標(biāo),設(shè)置斷點,記錄為斷點1將鼠標(biāo)移動到行號36前的空白處,雙擊鼠標(biāo),設(shè)置斷點,記錄為斷點2點擊按鈕,執(zhí)行程序2.4.1外部中斷六、編程3、調(diào)試是否可調(diào)用中斷(2)、按KEY1鍵,進入中斷服務(wù)程序按下KEY1鍵如果進入中斷服務(wù)程序,則調(diào)試完畢;否則,俺下邊檢查順序檢查:調(diào)試KEY1按鍵是否損壞檢查初始化(P0.20、中斷初始化、中斷服務(wù)程序定義)2.4.1外部中斷六、編程3、調(diào)試是否可調(diào)用中斷(3)、測試去掉所有斷點點擊按鈕,運行程序。觀察蜂鳴器蜂鳴效果2.4.2
定時器實驗
一、目的(1)了解定時器的組成與工作原
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 3 The art of painting Extended reading (2) 教學(xué)設(shè)計-2024-2025學(xué)年高中英語譯林版(2020)選擇性必修第一冊
- 浙江工商職業(yè)技術(shù)學(xué)院《國際貿(mào)易理論與政策》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶文化藝術(shù)職業(yè)學(xué)院《建筑工程質(zhì)量控制》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西新能源科技職業(yè)學(xué)院《視頻特技與非線性編輯》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國石油大學(xué)(華東)《參展實務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧裝備制造職業(yè)技術(shù)學(xué)院《單片機原理課程設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 可克達(dá)拉職業(yè)技術(shù)學(xué)院《社會調(diào)查原理與方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 濰坊環(huán)境工程職業(yè)學(xué)院《物聯(lián)網(wǎng)通信技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南城市學(xué)院《MBA運營管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 永城職業(yè)學(xué)院《音樂教學(xué)與技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 柴油發(fā)電機基礎(chǔ)知識教案
- SHT 3005-2016 石油化工自動化儀表選型設(shè)計規(guī)范
- 2024年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 陽光分級閱讀 Letters for Mr James 課件
- 占道作業(yè)交通安全設(shè)施設(shè)置技術(shù)要求
- 《肝豆?fàn)詈俗冃浴氛n件
- 地鐵施工管線保護培訓(xùn)課件
- 農(nóng)村公路質(zhì)量監(jiān)督管理及措施
- 小學(xué)體積單位換算練習(xí)100道及答案
- 第7課《誰是最可愛的人》公開課一等獎創(chuàng)新教學(xué)設(shè)計-2
- 人音版四年級音樂下冊全冊教學(xué)設(shè)計教案表格式
評論
0/150
提交評論