freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

實(shí)驗(yàn)三-定時(shí)器及中斷實(shí)驗(yàn)(已修改)

2025-08-16 15:23 本頁面
 

【正文】 實(shí)驗(yàn)三 定時(shí)器及中斷實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?) 熟悉VC5402的定時(shí)器工作原理。2) 掌握VC5402定時(shí)器的編程控制方法。3) 學(xué)會(huì)使用定時(shí)器的中斷方式來控制程序執(zhí)行方法。4) 掌握外部中斷的控制方法,理解DSP對(duì)于中斷的響應(yīng)的過程。5) 學(xué)習(xí)并掌握混合編程的方法。 二、實(shí)驗(yàn)設(shè)備1)微機(jī)一臺(tái)、DSP硬件仿真器一臺(tái)、DSP實(shí)驗(yàn)箱一臺(tái)。2)程序及鏈接命令文件見:D:\ EXPER\ 、.cmd、.C 。三、開關(guān)設(shè)置將開關(guān)K9撥到右邊,即仿真器選擇連接右邊的CPU2。然后將實(shí)驗(yàn)箱上的SW2(不是CPU板上的)設(shè)置為ON ON OFF ON ,即單脈沖按鈕產(chǎn)生的中斷給CPU2的中斷INT2。撥碼開關(guān)SW2設(shè)置表SW2備 注1234碼位ONONOFFON單脈沖產(chǎn)生的中斷給CPU2的中斷INT2ONONOFFOFF單脈沖產(chǎn)生的中斷給CPU2的中斷INT0四、實(shí)驗(yàn)內(nèi)容1) 創(chuàng)建新的項(xiàng)目,添加源程序和鏈接命令文件,編譯鏈接后載入執(zhí)行程序。2) 連續(xù)運(yùn)行程序,觀察由發(fā)光管LED5~8所指示的變化,讀懂程序理解為何每秒變化1次。在中斷向量表中定時(shí)器中斷向量入口地址處設(shè)置斷點(diǎn),然后連續(xù)執(zhí)行程序,從斷點(diǎn)處再單步執(zhí)行程序,理解中斷向量程序的掛接方法,同時(shí)學(xué)會(huì)中斷向量地址的計(jì)算方法。3) 按幾下單脈沖按鈕,觀察發(fā)光管LED1~4所發(fā)生的相應(yīng)變化。與定時(shí)中斷類似設(shè)置斷點(diǎn)進(jìn)行程序跟蹤調(diào)試。4)分別在中斷向量表中定時(shí)器和外中斷2的向量入口地址處設(shè)置斷點(diǎn),然后連續(xù)執(zhí)行程序,從斷點(diǎn)處再單步執(zhí)行程序,理解中斷向量程序的設(shè)置方法。同時(shí)還要根據(jù)實(shí)驗(yàn)書后附錄3(中斷向量表)理解并掌握中斷向量的入口地址的計(jì)算方法。五、實(shí)驗(yàn)報(bào)告1)發(fā)光管LED5~8每秒鐘閃爍一次是如何算得的?2)查實(shí)驗(yàn)書后中斷屏蔽寄存器,說明中斷初始化的方法。3)若將定時(shí)周期改為2秒,應(yīng)如何修改程序?都有哪些方法?給出程序段4) 若將外部中斷2(INT2)改為外部中斷0時(shí)(INT0), 要求執(zhí)行按下單脈沖按鍵時(shí)led1~4發(fā)生變化,應(yīng)如何修改程序?注意:電路方面要調(diào)節(jié)SW2為 ON ON OFF OFF 。5) 思考題:如何用c語言調(diào)用匯編子程序?如何實(shí)現(xiàn)不同匯編程序之間相互調(diào)用?怎樣在c程序中嵌入?yún)R編語句?五、源程序及鏈接命令文件/************************************************* FileName: ** Description: 定時(shí)器中斷實(shí)驗(yàn) ** Write by: lanrunze ** Date: 2004210 ** Update: 2006310 **************************************************///因?yàn)槭褂昧嘶旌暇幊?,所以必須添? 到項(xiàng)目文件中//觀察程序時(shí)使用DEBUGGO MAIN來使程序跳轉(zhuǎn)到程序的執(zhí)行入口//使用外中斷2時(shí) SW2= on on off on//使用外中斷0時(shí) SW2= on on off off//本實(shí)驗(yàn)使用單按鈕產(chǎn)生外部中斷include interrupt void timer()。 //定義定時(shí)器中斷服務(wù)子程序interrupt void int2c()。 //定義外部中斷服務(wù)子程序extern void initial()。 //定義外部初始化子程序extern void porta()。 //定義外部端口操作子程序 extern void portb()。 extern void portc()。 extern void portd()。int flag1=0。 //端口輸出標(biāo)志,用于端口輸出控制int flag2=0。 //端口輸出標(biāo)志,用于端口輸出控制unsigned int Out_flag = 0。interrupt void timer() //定時(shí)器中斷子程序,數(shù)存單元作計(jì)數(shù)器例子{ *(int *)0x300=*(int *)0x300+1。 //時(shí)鐘中斷計(jì)數(shù),使用絕對(duì)尋址方式 if(*(int *)0x300 = 1000) //計(jì)數(shù)超過 1000次 { *(int *)0x300=0。 if(flag1==0) { flag1=1。 porta()。 //調(diào)用PORTC匯編子程序 } else { flag1=0。 portb()。 //調(diào)用PORTB匯編子程序 }//asm( intr 18)。//用于軟件仿真時(shí),產(chǎn)生軟件中斷,中斷序號(hào)18,中斷入口為外中斷2 } return。} interrupt void int2c() //外部中斷服務(wù)子程序,變量作計(jì)數(shù)器例子{ static int INT2_INT_NUM = 0。 //定義整形計(jì)數(shù)器 INT2_INT_NUM++。 //每次中斷則計(jì)數(shù)器加1 if(INT2_INT_NUM % 2 == 0 ) //每?jī)纱伟存IXF閃爍一次 Out_flag = 0。 else Out_flag = 1。 if( INT2_INT_NUM = 1000 ) INT2_INT_NUM = 0。 if(flag2==0) { flag2=1。 portc()。 //調(diào)用PORTC匯編子程序 } else { flag2=0。 portd()。 //調(diào)用PORTD匯
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1