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

正文內(nèi)容

大學(xué)學(xué)士學(xué)位論文基于dsp的交通燈控制系統(tǒng)的設(shè)計(jì)(已改無(wú)錯(cuò)字)

2022-07-25 23:10:56 本頁(yè)面
  

【正文】 (RTDX)功能使主機(jī)與DSP目標(biāo)系統(tǒng)之間能進(jìn)行雙向?qū)崟r(shí)通信,它在目標(biāo)DSP系統(tǒng)上運(yùn)行一個(gè)小的RTDX軟件庫(kù),而用戶(hù)的應(yīng)用程序在主機(jī)中運(yùn)行,它調(diào)用RTDX軟件庫(kù)的API 函數(shù),從而能夠在目標(biāo)DSP系統(tǒng)和主機(jī)之間接受和發(fā)送數(shù)據(jù),RTDX軟件庫(kù)使用DSP芯片內(nèi)部的仿真硬件模塊,通過(guò)增強(qiáng)的JTAG接口與主機(jī)通信,數(shù)據(jù)的傳輸是實(shí)時(shí)的,不影響目標(biāo)DSP系統(tǒng)的程序運(yùn)行。CCS集成開(kāi)發(fā)環(huán)境中包含軟件仿真器(Simulator)和硬件仿真器(Emulator)兩部分,它們使用的是同一個(gè)集成開(kāi)發(fā)環(huán)境,Simulator可以在不安裝DSP硬件仿真器的情況下使用戶(hù)的應(yīng)用程序在逐級(jí)上仿真運(yùn)行,而Emulator則必須安裝硬件仿真器。CCS集成開(kāi)發(fā)環(huán)境的主要特征有:1.強(qiáng)大的源代碼編輯器:CCS允許編輯C語(yǔ)言源代碼和匯編語(yǔ)言源代碼,能在C代碼之后顯示與之對(duì)應(yīng)的匯編指令。2.方便的應(yīng)用程序生成特性:CCS使用工程來(lái)管理整個(gè)應(yīng)用程序設(shè)計(jì)的所有文檔,工程中可以包含C語(yǔ)言源代碼、匯編源代碼、庫(kù)文件、鏈接命令文件、頭文件和目標(biāo)文件等。3.方便的應(yīng)用程序調(diào)試特性。 總體設(shè)計(jì)流程圖初始化:EMIF、CPU頻率、ICETEKCTR、定時(shí)器、中斷控制寄存器、工作變量開(kāi)始根據(jù)定時(shí)器計(jì)數(shù)確定當(dāng)前狀態(tài)根據(jù)當(dāng)前狀態(tài)設(shè)置指示燈狀態(tài)根據(jù)當(dāng)前狀態(tài)設(shè)置發(fā)光二極管顯示陣列狀態(tài)讀取鍵盤(pán)輸入結(jié)束?否是結(jié)束圖 51(a)主程序流圖定時(shí)器中斷服務(wù)程序入口計(jì)數(shù)工作變量值在原有基礎(chǔ)上加1退出定時(shí)器中斷服務(wù)程序鍵盤(pán)中斷服務(wù)程序入口設(shè)置突發(fā)事件標(biāo)志退出鍵盤(pán)中斷服務(wù)程序圖 51(b)中斷子程序 時(shí)鐘發(fā)生器 時(shí)鐘模式寄存器C55x片內(nèi)的時(shí)鐘發(fā)生器可以從CLK引腳接收輸入的時(shí)鐘,將其變換為CPU以及其外設(shè)所需要的工作時(shí)鐘,工作時(shí)鐘經(jīng)過(guò)分頻也能夠通過(guò)引腳CLKOUT輸出,供其他器件使用時(shí)鐘模式寄存器用于控制時(shí)鐘發(fā)生器[1]的工作狀態(tài):表 51 時(shí)鐘模式寄存器CLKMD位字段數(shù)值說(shuō)明15Rsvd保留14IAI01退去IDLE狀態(tài)后,決定PLL是否重新鎖定PLL將使用與進(jìn)入IDLE狀態(tài)之前相同的設(shè)置進(jìn)行鎖定PLL將重新鎖定過(guò)程13IOB01處理失鎖時(shí)鐘發(fā)生器不中斷PLL,PLL將繼續(xù)輸出時(shí)鐘時(shí)鐘發(fā)生器自動(dòng)切換到旁路模式,重新開(kāi)始跟蹤鎖定后,又自動(dòng)切換到鎖定模式12TEST0必須保持為0117PLL MULT031鎖定模式下的倍頻值。03165PLL DIV03鎖定模式下的分頻值。034PLL ENABLE01PLL使能:使能,為鎖定模式 禁止, 為旁路模式 32BYPASS DIV00011X旁路下的分頻值:1分頻 2分頻 4分頻1BREAKLN01錯(cuò)誤狀態(tài): PLL失鎖 鎖定狀態(tài)或有對(duì)CLKMD的寫(xiě)操作0LOCK01鎖定狀態(tài): PLL處于旁路模式 PLL處于旁路模式 時(shí)鐘工作模式在時(shí)鐘模式寄存器中的PLL ENABLE位控制PLL的兩個(gè)工作模式。1. 旁路模式(BYPASS)如果PLL ENABLE=0,PLL工作于旁路模式,PLL對(duì)輸入時(shí)鐘信號(hào)進(jìn)行分頻,分頻值由BYPASS DIV 確定: BYPASS DIV=00 輸出時(shí)鐘的頻率與輸入的頻率相同,即為一分頻。 BYPASS DIV=01 輸出時(shí)鐘的頻率為輸入的頻率一半,即為二分頻。 BYPASS DIV=00 輸出時(shí)鐘的頻率為輸入的頻率1/4, 即為四分頻。2. 鎖定模式(LOCK)如果PLL ENABLE=1,PLL工作于鎖定模式,輸出的時(shí)鐘頻率有下面的公式確定: 輸出頻率/輸入頻率=PLL MULT / PLL DIV 時(shí)鐘模式的初始化設(shè)定 本設(shè)計(jì)所采用的輸入時(shí)鐘頻率為12HZ,而輸出的時(shí)鐘應(yīng)該為16HZ,所采用的工作模式為鎖定模式,根據(jù)上面的資料應(yīng)該是PLL DIV=01,PLLMULT=00000, PLL ENABLE =1,但這些標(biāo)志位并不是獨(dú)立的,因此無(wú)法單獨(dú)賦值,只能通過(guò)CKLMD[2]進(jìn)行間接賦值 ,如若給PLL DIV賦值“01” ,只能通過(guò)*clkmd |=0x20 來(lái)實(shí)現(xiàn),本設(shè)計(jì)對(duì)clkmd的初始化設(shè)置如下:void PLL_Init(int freq){ int i。 DSPCLK dspclk。 ioport unsigned int *clkmd。 clkmd=(unsigned int *)0x1c00。 = DSP_CLKIN。 = (freq *2)/ 。 if(= 32)=31。 *clkmd amp。= ~0x10。 //pll enable = 0。 for(i=*clkmdamp。1。 i!= 0 。i=*clkmdamp。1)。 *clkmd amp。= ~0x4000。 // iai=0。 *clkmd |= 0x2000。 // iob=1。 *clkmd amp。= ~0xc。 *clkmd |= 4。 *clkmd amp。= ~0x60。 *clkmd |= 0x20。 *clkmd amp。= ~0x0f80。 *clkmd |= 7。 *clkmd|=0x10。 for(i=0。i10。i++)。 for(i=*clkmdamp。1。 i!= 1 。i=*clkmdamp。1)。} 信號(hào)燈的控制模塊本設(shè)計(jì)所用的信號(hào)燈有12個(gè),均采用發(fā)光二極管來(lái)模擬。,不過(guò)由于東西和南北的信號(hào)燈都是同一狀態(tài)的,因此可以只用6個(gè)燈來(lái)實(shí)現(xiàn),這在上面已做過(guò)分析就不再累述,顯示所用的發(fā)光二極管是連接在5509DSP擴(kuò)展地址接口上的寄存器EWR和SNR控制的,這兩個(gè)寄存器均為6位寄存器,其位定義見(jiàn)表52所示:表 52 (a) 寄存器EWRBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit000東紅東黃東綠西紅西黃西綠表 52 (b) 寄存器SNRBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit001南紅南黃南綠北紅北黃北綠兩個(gè)寄存器的地址均映射到5509DSP的擴(kuò)展空間,CLRLR地址為0x602803,DSP通過(guò)該地址的寫(xiě)操作來(lái)修改兩個(gè)寄存器上各位的狀態(tài),當(dāng)寄存器某位取值“1”時(shí),相應(yīng)指示燈被點(diǎn)亮,取“0”值時(shí)則熄滅。當(dāng)寫(xiě)入CTRLR的數(shù)據(jù)(8位有效值)的高兩位為“00”時(shí),數(shù)據(jù)的低六位將被寫(xiě)入EWR寄存器;當(dāng)兩位的值為“01”時(shí),寫(xiě)入SNR寄存器[3]。例如:需要點(diǎn)亮東西方向的紅燈和南北方向的綠燈,其他燈均熄滅時(shí),則需要EWR的值為00100100,SNR的值為01001001,我們可以通過(guò)下列語(yǔ)句來(lái)實(shí)現(xiàn):CTRLR=0x024 ; CTRLR=0x49本設(shè)計(jì)所用到信號(hào)燈狀態(tài)以及其所對(duì)應(yīng)的寄存器值見(jiàn)下表,由此我們可以根據(jù)當(dāng)前的狀態(tài)給出所要輸送的狀態(tài)值,信號(hào)燈控制部分所對(duì)應(yīng)的編程如下:switch ( nNowStatus ) { case statusNSGreenEWRed: uLightStatusEW=0x24。 uLightStatusSN=0x49。 SetLEDArray1(20)。 break。 case statusNSFlashEWRed: uLightStatusEW=0x24。 uLightStatusSN=0x49。 SetLEDArray1(0)。 break。 case statusNSYellowEWRed: uLightStatusEW=0x24。 uLightStatusSN=0x52。 SetLEDArray1(20)。 break。 case statusNSRedEWYellow: uLightStatusEW=0x12。 uLightStatusSN=0x64。 SetLEDArray1(20)。 break。 case statusNSRedEWGreen: uLightStatusEW=0x09。 uLightStatusSN=0x64。 SetLEDArray1(20)。 break。 case statusNSRedEWFlash: uLightStatusEW=0x09。 uLightStatusSN=0x64。 SetLEDArray1(0)。 break。 case statusHold: uLightStatusEW=0x24。 uLightStatusSN=0x64。 SetLEDArray1(20)。 break。 } } CTRLR=uLightStatusEW。 CTRLR=uLightStatusSN。//狀態(tài)機(jī)所對(duì)應(yīng)的與信號(hào)燈顯示有關(guān)的寄存器值如表53所示:表 53 顯示寄存器值狀態(tài)寄存器寄存器值所送16進(jìn)制值南北紅SNR01 1001000x 64南北黃SNR01 0100100x 52南北綠SNR01 0010010x 49東西紅EWR00 1001000x 24東西黃EWR00 0100100x 12東西綠EWR00 0010010x 09東西全滅EWR00 0000000x 00南北全滅SNR01 0000000x 40 顯示陣列的數(shù)字顯示 陣列數(shù)字顯示液晶屏數(shù)字顯示是由發(fā)光二極管顯示陣列來(lái)控制的,發(fā)光二級(jí)管顯示陣列是連接在DSP的I/O擴(kuò)展端口上的。為8*8的點(diǎn)陣,本設(shè)計(jì)采用8*4顯示一個(gè)數(shù)字共顯示兩位計(jì)數(shù),為倒計(jì)時(shí),每秒改變計(jì)數(shù)顯示。 發(fā)光二極管顯示陣列的控制 對(duì)于發(fā)光二極管顯示陣列的控制,DSP是將要顯示的圖形按列的順序存儲(chǔ)起來(lái)(8*8點(diǎn)陣,8個(gè)字節(jié),高位在下方,低位在上方),然后定時(shí)刷新控制顯示。具體方法是將以下控制字按照先后順序,每?jī)蓚€(gè)為一組發(fā)送到全局控制寄存器的第64位和端口STRLA,地址是0x602802發(fā)送完畢后,隔不太長(zhǎng)的時(shí)間(以人眼觀測(cè)不閃爍的時(shí)間為間隔)再發(fā)送一遍。由于是位置為“0”的被點(diǎn)亮,所以要將顯示的數(shù)據(jù)取反。000B, 第8列數(shù)據(jù)取反 ; 001B, 第7列數(shù)據(jù)取反;010B, 第6列數(shù)據(jù)取反 ; 011B, 第5列數(shù)據(jù)取反;100B, 第4列數(shù)據(jù)取反 ; 101B, 第3列數(shù)據(jù)取反;110B, 第2列數(shù)據(jù)取反 ; 111B, 第1列數(shù)據(jù)取反.。注意:在使用前必須在I/O端口CTRLR寫(xiě)入控制字0x0C1,以打開(kāi)此設(shè)備。關(guān)閉時(shí)寫(xiě)入0x0C0。 對(duì)應(yīng)部分編程1.顯示陣列的設(shè)置unsigned char led[40]={ 0x7E,0x81,0x81,0x7E,0x00,0x02,0xFF,0x00, 0xE2,0x91,0x91,0x8E,0x42,0x89,0x89,0x76, 0x38,0x24,0x22,0xFF,0x4F,0x89,0x89,0x71, 0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07, 0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E}。由于本設(shè)計(jì)采用8*4點(diǎn)陣為一個(gè)數(shù)字模塊,所以上面一行中有兩個(gè)數(shù)字以第一行為例,所顯示的字符為“0”和“1”,對(duì)應(yīng)的陣列值如表54所示:表 54 0和1陣列值0x7E0x810x810x7E0x000x020xFF0x000110001010010110100100101001001010010010100100101001001001100010數(shù)字 “0”數(shù)字 “1”由于是0被點(diǎn)亮,但是在程序中是將數(shù)值取反后再送入的,因此上表中的數(shù)字“1”是被點(diǎn)亮的,所形成的圖形就是“01”。其他幾行類(lèi)似分別是:0xE2,0x91,0x91,0x8E,(2) 0x42,0x89,0x89,0x76,(3)0x38,0x24,0x22,0xFF, (4) 0x4F,0x89,0x89,0x71,(5)0x7E,0x89,0x89,0x72, (6) 0x01,0xF1,0x09,0x07,(7)0x76,0x89,0x89,0x76, (8) 0x4E,0x91,0x91,0x7E(9)2.對(duì)應(yīng)子程序的設(shè)置首先要將需要顯示的數(shù)字值裝換為顯示所需要的寄存器值送入陣列,其所對(duì)應(yīng)的子程序如下:void SetLEDArray1(int nNumber){ int i,k,kk,kkk。 kkk=nNumber。 k=kkk/10*4。 kk=k
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1