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

正文內(nèi)容

基于nrf905無線收發(fā)電路的設計之無線收發(fā)系統(tǒng)發(fā)送控制設計(編輯修改稿)

2025-07-24 18:19 本頁面
 

【文章內(nèi)容簡介】 配置編程:上電以后PC首先配置高頻頭模塊。先將PWR、TXEN、TRX_CE設為配置模式,PC通過SPI將配置數(shù)據(jù)移入高頻頭模塊;在掉電和待機模式工作后,配置內(nèi)容仍然有效。配置數(shù)據(jù)只有當電源撤除后才會丟失。根據(jù)無線收發(fā)模塊的四個SPI口(SCK,CSN,MOSI,TRX_CE)存在時鐘、使能控制,需要同步進行傳輸數(shù)據(jù)的特點,我們不能再用傳統(tǒng)常見的串口通訊進行控制,考慮到并口八根數(shù)據(jù)線傳輸數(shù)據(jù)同步的特點,我選用了并口通訊來控制此無線收發(fā)模塊。根據(jù)以上兩節(jié)關于基于NRF905無線收發(fā)模塊的工作流程的介紹,本次畢業(yè)設計決定采用VC軟件來進行編程,通過并口來模擬SPI通訊。根據(jù)并口的特性,本次畢設中決定選用pin2,pin3,pin4這3根數(shù)據(jù)線與SPI接口的CSN(使能端),SCK(時鐘,對應圖(210)中CLK端口),MOSI(數(shù)據(jù)輸入,對應圖(210)的DIN端口)三個相連,而pin5與TRX_CE相連,pin6代表TXEN與高電平相連,芯片的PWR端口接穩(wěn)壓電源,這四對對應端口不能直接相連,其間還需加如圖(210)[7]所示的電平轉換電路和整形電容。如圖(29)所示為數(shù)字輸入腳和數(shù)字輸出腳所要求的電壓值,其中VDD為芯片電源電壓3V。這個電路中當pin2(與pin3,pin4相連的接口情況與此相同)為低電平時,考慮到接口內(nèi)部的CMOS電路[9],根據(jù)兩個電阻560和4700的比值,可以得到此時SCK時鐘接口的電平為低,但此低電平值比pin2處低電平值略高,當pin2處為高電平時,SCK接口的電平為高,且值介于V+與pin2處電壓值之間。圖(29)數(shù)字輸入輸出要求電壓值圖圖(210)電平轉換電路圖在編程前,我們需要了解自己PC機上并口寄存器的存儲地址,我們可以通過以下方法查看寄存器地址:右鍵“我的電腦”,進入“屬性”性選項,選擇“硬件”中“設備管理器”選項,此時會出現(xiàn)一個關于設備的樹狀圖,找到“Ports(Com1 amp。 LPT)”選項,雙擊“LPT1”,此時你能得到LPT1端口的細節(jié)。確定“使用這個設備(啟用)”被選擇。然后進入“資源”這一欄,你可以看到端口的地址范圍[8]。本畢業(yè)設計中建立一個對話框形式的控制界面,其中DATA復選框有八個,分別對應著并口的2到9腳這8個數(shù)據(jù)口,STATUS狀態(tài)復選框5個,分別對應著并口的相應端口,CONTROL控制復選框4個,分別對應著并口的相應端口,但在本次畢設中,只用到pin2,pin3,pin4,pin5,pin6五個端口即可實現(xiàn)并口控制無線收發(fā)模塊進行發(fā)送操作。下面介紹VC并口控制發(fā)送模塊的具體編程步驟:首先,我們打開VC,新建一個“MFC AppWizard (exe)”的工程,取名為ParallelPort,然后選擇“基本對話框”模式,然后進入所建的工程,往對話框上添加17復選框和3個SET按鈕以及一個start發(fā)送按鈕,如圖(211)所示圖(211)發(fā)送對話框圖然后在每個復選框和按鈕的屬性選項中,給它們設置好相應的標題和ID,如pin2復選框的ID就叫IDC_Pin2,標題叫pin2,然后在“建立類向?qū)А敝袨槊總€ID設置好對應的一個BOOL型的變量,如pin2的變量名叫m_pin2,然后在CparallelPortDlg類中添加成員函數(shù)和代碼,現(xiàn)添加一個void UpdatePins()的函數(shù)具體代碼如下:void CParallelPortDlg::UpdatePins(){int reg。 reg=_inp(STATUS)。 if((reg amp。 0x40)==0) m_pin10=0。 else m_pin10=1。 if((reg amp。 0x80)==0) m_pin11=0。 else m_pin11=1。 if((reg amp。 0x20)==0) m_pin12=0。 else m_pin12=1。 if((reg amp。 0x10)==0) m_pin13=0。 else m_pin13=1。 if((reg amp。 0x08)==0) m_pin15=0。 else m_pin15=1。 ////////// reg=_inp(DATA)。 if((reg amp。 0x01)==0) m_pin2=0。 else m_pin2=1。 if((reg amp。 0x02)==0) m_pin3=0。 else m_pin3=1。 if((reg amp。 0x04)==0) m_pin4=0。 else m_pin4=1。 if((reg amp。 0x08)==0) m_pin5=0。 else m_pin5=1。 if((reg amp。 0x10)==0) m_pin6=0。 else m_pin6=1。 if((reg amp。 0x20)==0) m_pin7=0。 else m_pin7=2。 if((reg amp。 0x40)==0) m_pin8=0。 else m_pin8=1。 if((reg amp。 0x80)==0) m_pin9=0。 else m_pin9=1。 reg = _inp(CONTROL)。 if((reg amp。 0x01)==0) m_pin1=0。 else m_pin1=1。 if((reg amp。 0x02)==0) m_pin14=0。 else m_pin14=1。 if((reg amp。 0x04)==0) m_pin16=0。 else m_pin16=1。 if((reg amp。 0x08)==0) m_pin17=0。 else m_pin17=1。 UpdateData(FALSE)。}并在CparallelPortDlg類定義的頂部添加LPT端口地址的宏定義,代碼如下:define DATA 0x378define STATUS 0x379define CONTROL 0x37a其中函數(shù)_inp(PORT)的作用是返回參數(shù)所代表的端口處當前的數(shù)據(jù),相反地,_outp(PORT, DATA)函數(shù)的作用事把數(shù)據(jù)DATA發(fā)送到相應的PORT端口上。函數(shù)void UpdatePins()的作用是把并口上的數(shù)據(jù)傳給相應變量m_pin等,并在對話框顯示數(shù)據(jù)。接下來,我們做的是初始化對話框的工作,在BOOL C ParallelPortDlg:OnInitDialog()函數(shù)中,我們可以根據(jù)要求把相應的變量賦初值。如初始化要傳輸?shù)臄?shù)據(jù)m_pin4(即 數(shù)據(jù)輸入端)為0,初始化m_pin2(即CLK端)為0,初始化m_pin3(CS使能端)為1,并調(diào)用_outp(CONTROL, _inp(CONTROL) amp。 0xDF)。UpdatePins()。使控制端的低4位的值與對應寄存器低4位的值相同
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1