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

正文內(nèi)容

學(xué)院計(jì)算機(jī)綜合實(shí)踐9002-資料下載頁

2025-06-23 22:03本頁面
  

【正文】 。 PINSEL0=0x00000005。 //設(shè)置I/O連接到UART0 PINSEL1=0x00000000。 IODIR=LED1CON。 //設(shè)置LED1控制口為輸出,其它I/O為輸入 =8。 //8位數(shù)據(jù)位 =1。 //1位停止位 =0。 //無奇偶校驗(yàn)位 UART0_Ini(9600,uart0_set)。 //初始化串口模式 U0FCR=0x01。 //使能FIFO RTCIni()。 //初始化RTC while(1) { IOSET=LED1CON。 //熄滅LED while(0==(ILRamp。0x01))。 //等待RTC增量中斷標(biāo)志位 ILR=0x01。 //清除中斷標(biāo)志位 SendTimeRtc()。 //讀取時(shí)鐘值,并向UART0發(fā)送 IOCLR=LED1CON。 //點(diǎn)亮LED while(0==(ILRamp。0x01))。 ILR=0x01。 SendTimeRtc()。 } return(0)。}3實(shí)驗(yàn)電路圖4體會(huì)學(xué)習(xí)rtc的時(shí)間并不長(zhǎng),而且又是第一次接觸,因此有很多東西還是不太了解,雖然說時(shí)間不長(zhǎng),但是還是很有收獲的,這次畢竟使自己有機(jī)會(huì)去學(xué)習(xí)一些貼近硬件的知識(shí),如果將來有機(jī)會(huì)再學(xué)習(xí),我還是很樂意的。畢竟一個(gè)真正學(xué)習(xí)計(jì)算機(jī)的人不能只知道軟件的知識(shí)。五、8255并行接口鍵盤實(shí)驗(yàn)1實(shí)驗(yàn)?zāi)康摹?的實(shí)現(xiàn),以及傳輸數(shù)據(jù)的工作原理及編程方法。2準(zhǔn)備知識(shí) 8255的工作方式一片8255內(nèi)部有3個(gè)端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。方式0是基本型輸入/輸出。這種方式和外設(shè)交換數(shù)據(jù)時(shí),8255端口與外設(shè)之間不使用聯(lián)絡(luò)線。方式1為選通型輸入/輸出。用這種方式和外界交換數(shù)據(jù)時(shí),端口和外設(shè)之間要有聯(lián)絡(luò)信號(hào)。方式2是雙向數(shù)據(jù)傳送,僅A口有這項(xiàng)功能。當(dāng)A口工作在方式2時(shí),B口仍可以工作在方式0或方式1,但此時(shí)B口方式1只能用查詢方式與CPU交換信息。 工作方式選擇字8255工作方式選擇字共8位,存放在8255控制寄存器中。最高位D7為標(biāo)志位,D7=1表示控制寄存器中存放的是工作方式選擇字,D7=0表示控制寄存器中存放的是C口置位/復(fù)位控制字。 C口置/復(fù)位控制字8255的C口可進(jìn)行位操作,即:可對(duì)8255C口的每一位進(jìn)行置位或清零操作,該操作是通過設(shè)置C口置/復(fù)位字實(shí)現(xiàn)的(圖810)。C口置/復(fù)位字共8位,各位含義如下: 命令字與初始化編程8255有兩個(gè)命令字,即方式選擇控制字和C口置0/置1控制字,初始化編程的步驟是: ① 向8255控制寄存器寫入“方式選擇控制字”,從而預(yù)置端口的工作方式。 ②當(dāng)端口預(yù)置為方式1或方式2時(shí),再向控制寄存器寫入“C口置0/置1控制字”。這一操作的主要目的是使相應(yīng)端口的中斷允許觸發(fā)器置0,從而禁止中斷,或者使相應(yīng)端口的中斷允許觸發(fā)器置1,從而允許端口提出中斷請(qǐng)求。 注意:“C口置0/置1控制字”雖然是對(duì)C口進(jìn)行操作,但是該控制字是命令字,所以要寫入控制寄存器,而不是寫入C口控制寄存器。 ③ 向8255數(shù)據(jù)寄存器寫入“數(shù)據(jù)”或從8255數(shù)據(jù)寄存器讀出“數(shù)據(jù)”。3實(shí)驗(yàn)過程鍵盤驅(qū)動(dòng)的主要作用就是實(shí)時(shí)監(jiān)測(cè)外部按鍵中斷,一旦發(fā)現(xiàn)外部有鍵按下就向內(nèi)核發(fā)送鍵盤消息實(shí)現(xiàn)鍵盤輸入功能。鍵盤驅(qū)動(dòng)創(chuàng)建了中斷服務(wù)線程和4個(gè)鍵盤中斷事件,每行按鍵對(duì)應(yīng)一個(gè)鍵盤中斷事件。有鍵被按下時(shí),中斷服務(wù)例程得到對(duì)應(yīng)的中斷標(biāo)識(shí)符并報(bào)告給系統(tǒng)任務(wù)調(diào)度進(jìn)程,同時(shí)產(chǎn)生鍵盤中斷事件,鍵盤中斷服務(wù)線程響應(yīng)鍵盤中斷事件,開始掃描矩陣鍵盤。根據(jù)產(chǎn)生的中斷事件類型不同,可以首先確定被按下鍵的行位置。由于鍵盤被按下后,該鍵對(duì)應(yīng)的行和列被連通,因此根據(jù)判斷各列對(duì)應(yīng)的I/O口的電平,可以得到被按下鍵的列位置;得到按鍵的準(zhǔn)確位置后,通過向操作系統(tǒng)發(fā)送鍵盤消息KEYBD_EVENT,實(shí)現(xiàn)一次鍵盤輸入。循環(huán)掃描鍵盤,直到按鍵被彈起則發(fā)送KEYEVENTF_KEYUP事件。響應(yīng)鍵盤中斷輸入的整個(gè)流程如圖。 在OAL層加入中斷源矩陣鍵盤采用4路I/O口中斷,每路中斷對(duì)應(yīng)1個(gè)中斷源。矩陣鍵盤驅(qū)動(dòng)首先要在OAL層加入這些中斷源。以其中一路中斷為例:define SYSINTR_KEYONE(SYSINTR_FIRMWARE+0) 中斷服務(wù)例程(ISR)設(shè)計(jì)本鍵盤驅(qū)動(dòng)將GPIO_GPIO_GPIO_1GPIO_17四個(gè)I/O口作為中斷I/O口。有鍵被按下時(shí)將產(chǎn)生一個(gè)I/O中斷,內(nèi)核首先進(jìn)入異常中斷處理程序,由它屏蔽所有中斷,再調(diào)用中斷服務(wù)例程ISR得到該中斷的邏輯中斷標(biāo)識(shí)。鑒于ISR的任務(wù)比較單一,ISR通常都要求越短、越快越好。矩陣鍵盤驅(qū)動(dòng)的ISR設(shè)計(jì)如下:if(v_pGPIOReg﹥GEDR_x amp。 GPIO_6) {//中斷觸發(fā)   v_pGPIOReg﹥GEDR_x = GPIO_6。//清除中斷   return SYSINTR_KEYONE。//返回中斷標(biāo)識(shí)}  其他三路中斷的ISR設(shè)計(jì)與此類似。 中斷服務(wù)線程(IST)設(shè)計(jì)中斷服務(wù)例程以鍵盤中斷的邏輯中斷標(biāo)識(shí)符形式返回給系統(tǒng)任務(wù)調(diào)度進(jìn)程,中斷服務(wù)線程則在矩陣鍵盤驅(qū)動(dòng)中負(fù)責(zé)具體中斷處理。因?yàn)橹袛喾?wù)例程較小,并且只做很少的處理工作,中斷服務(wù)線程就必須完成大多數(shù)中斷處理工作,功能主要包括響應(yīng)中斷、掃描按鍵位置、發(fā)送鍵盤消息等。  矩陣鍵盤驅(qū)動(dòng)的IST設(shè)計(jì)如下:矩陣鍵盤驅(qū)動(dòng)設(shè)計(jì)了4個(gè)中斷事件HANDLE hKEYEvents,分別對(duì)應(yīng)矩陣鍵盤4行產(chǎn)生的中斷。在矩陣鍵盤驅(qū)動(dòng)的IST中,調(diào)用CreateEvent函數(shù)創(chuàng)建4個(gè)事件對(duì)象,接著調(diào)用系統(tǒng)函數(shù)InterruptInitialize完成中斷和事件的關(guān)聯(lián)并使能中斷。完成這些初始化工作后,就可以調(diào)用WaitForMultipleObjects (hKEYEvents)函數(shù)進(jìn)入鍵盤事件的等待隊(duì)列中。當(dāng)有事件被捕獲后,根據(jù)不同的事件類型進(jìn)入不同的鍵盤掃描處理程序以其中一路中斷為例進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)程序如下:  switch (dwEvent WAIT_OBJECT_0){//事件類型  case 0://第1行鍵盤有鍵按下  v_pGPIOReg﹥GPDR_x amp。= ~ (GPIO_13)。//設(shè)為輸入  v_pGPIOReg﹥GPDR_x |= (GPIO_6)。//中斷I/O輸出  v_pGPIOReg﹥GPCR_x |= (GPIO_6)。//輸出低電平  while(!(v_pGPIOReg﹥GPLR_x amp。 GPIO_13)) {//掃描矩陣鍵盤,判斷按鍵列位置    if(num==1)//第1次連發(fā)延時(shí)400 ms      Sleep(400)。    else      Sleep(100);//按鍵延時(shí)去抖    if(!(v_pGPIOReg﹥GPLR_x amp。 GPIO_13)){//列位置      keybd_event(39。039。 ,0x71, 0, 0)。//發(fā)鍵盤消息      num++。//連發(fā)計(jì)數(shù)    }    else{      if((v_pGPIORegGPLR_x amp。 GPIO_13)amp。amp。num0){        num=0。//按鍵彈起        keybd_event(39。039。,0x71, KEYEVENTF_KEYUP, 0)。}    }  }  中斷處理完成后恢復(fù)I/O口的初始電平,調(diào)用InterruptDone函數(shù)恢復(fù)中斷,使其能響應(yīng)下一次同樣的中斷。4體會(huì)通過8255并行鍵盤接口實(shí)驗(yàn),對(duì)課本上的知識(shí)有了更深刻的理解,掌握8255A的功能及方式0、1的實(shí)現(xiàn),熟悉8255A與CPU的接口,以及傳輸數(shù)據(jù)的工作原理及編程方法。通過現(xiàn)實(shí)中的操作,讓我對(duì)現(xiàn)在所學(xué)的知識(shí)產(chǎn)生了更大的興趣,為以后的進(jìn)一步學(xué)習(xí)定下了良好的基礎(chǔ)。37 /
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1