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

正文內(nèi)容

基于nrf905無線收發(fā)電路的設(shè)計之無線收發(fā)系統(tǒng)發(fā)送控制設(shè)計(參考版)

2025-06-30 18:19本頁面
  

【正文】 VLSI從實用性角度考慮,可以運用在遙控、遙測、無線抄表、門禁系統(tǒng)、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集系統(tǒng)、無線標簽、身份識別、非接觸RF、智能卡、小型無線數(shù)據(jù)終端、安全防火系統(tǒng)、無線遙控系統(tǒng)、生物信號采集、水文氣象監(jiān)控、機器人控制、信息家電等實際工作環(huán)境中。此無線收發(fā)模塊能夠?qū)崿F(xiàn)遠距離無線通信,PC機與PC機之間、PC與單片機之間、單片機與單片機之間的遠距離點對點和點對多點的異步串行通信。本文采用了挪威Nordic 結(jié) 論隨著信息技術(shù)和計算機科學的變革和發(fā)展,無線通訊技術(shù)已經(jīng)成為一種發(fā)展趨勢在各個領(lǐng)域當中逐步得到應(yīng)用。接收模塊的具體程序?qū)崿F(xiàn)在本論文不詳細敘述了。其他接口的相連方法發(fā)送接收沒有區(qū)別。注意發(fā)送接收兩端的CLK時鐘頻率可以不一致,關(guān)鍵軟件編程時CLK與自己PC機上程序所設(shè)置的定時器周期一致即可,這樣也就用并口控制的方法實現(xiàn)了異步串行通信。當我點SET3時,我們需要輸入的初始化DIN數(shù)據(jù)時“00100010”,這代表寫TX地址的命令,后面跟著4個字節(jié)的代表發(fā)送模塊本身地址的數(shù)據(jù)。然后讓無線發(fā)送模塊處于待機模式,令CSN為低,根據(jù)本論文第三部分第一節(jié)關(guān)于無線模塊工作以及SPI口命令的介紹,當我點SET1時,我們需要初始化的DIN輸入的數(shù)據(jù)是“0x00”這代表寫配置寄存器命令,并從第0字節(jié)開始,接著是“0x6C0E440101E7E7E7E7DE”這段數(shù)據(jù)的意思是:,輸出功率為10DB,不重發(fā),節(jié)電為正常模式,地址寬度設(shè)置為4字節(jié),接收發(fā)送有效數(shù)據(jù)長度為1字節(jié),接收地址為E7E7E7E7,CRC被允許,16位CRC校驗,外部時鐘信號使能,16M晶振[10]。這樣此發(fā)送模塊控制軟件即可在XP系統(tǒng)下運行了。void _stdcall Out32(short portaddr, short datum)。到此軟件編寫基本完成。其中SET1代表寫配置寄存器的命令,SET2代表寫TX地址的命令,SET3代表寫TX有效數(shù)據(jù)的命令。把CSN的值置低,因為當CSN為低時,SPI接口開始等待一條指令,任何一條新指令均由CSN的由高到低的轉(zhuǎn)換開始。然后初始化DIN即要傳輸數(shù)據(jù)的值。int i=0。 }UpdateData(TRUE)和UpdateData(FALSE)是兩個重要的函數(shù),前者把復選框中的打勾賦值給對應(yīng)的變量,后者把變量的值顯示為復選框上的打勾或沒打勾。 else new_register |= 0x08。= 0xF7。 else new_register |= 0x04。= 0xFB。 else new_register |= 0x02。= 0xFD。 else new_register |= 0x01。= 0xFE。new_register = control_register。UpdateData(TRUE)。_outp(DATA, new_register)。if( m_pin8==TRUE ) new_register |= 0x40。if( m_pin6==TRUE ) new_register |= 0x10。if( m_pin4==TRUE ) new_register |= 0x04。if( m_pin2==TRUE ) new_register |= 0x01。data_register=_inp( DATA )。 //Code added by me till here END_MESSAGE_MAP()}在上面的相應(yīng)函數(shù)代碼中我調(diào)用了ChangeControl和 ChangePin,于是我在類CparallelPortDlg中添加兩個成員函數(shù)void ChangePin() 和 void ChangeControl()編寫代碼如下void CParallelPortDlg::ChangePin(int pin){ int data_register, new_register。 ON_COMMAND(IDC_Pin1, ChangeControl) ON_COMMAND(IDC_Pin17, ChangeControl) ON_COMMAND(IDC_Pin16, ChangeControl) ON_COMMAND(IDC_Pin14, ChangeControl) ON_COMMAND_RANGE(IDC_Pin2, IDC_Pin9, ChangePin) //Code added by me from here. //}}AFX_MSG_MAP ON_WM_TIMER() ON_WM_QUERYDRAGICON() ON_WM_PAINT() ON_WM_SYSCOMMAND()}DIN數(shù)據(jù)8bit56473210i=0時將DIN右移7位后和0x1進行與運算,可將此bit傳給m_pin4i=4時將DIN右移3位后和0x1進行與運算,可將此bit傳給m_pin4i=7時不用移位直接和0x1進行與運算,可將此bit傳給m_pin4圖(212)DIN發(fā)送循環(huán)原理圖為了讓復選框中的打勾打叉能與相應(yīng)的變量的值10變化對應(yīng)起來,我們在函數(shù)中添加代碼如下:BEGIN_MESSAGE_MAP(CParallelPortDlg, CDialog){ //{{AFX_MSG_MAP(CParallelPortDlg)}UpdateData(FALSE)。Delete_Timer(1)。0x1)。}//同理break。i++;}//i是在SET按鈕的按鍵響應(yīng)函數(shù)中設(shè)置,其值為從0到DIN_length1,即每個周期送DIN一位bit,發(fā)送的順序是從左到右發(fā),但是不同的SET函數(shù)中,賦給DIN的值和DIN_LENGTH的值不同if(i==DIN_length1) {m_pin3=1。case’2’: if(m_pin2==1){m_pin4=(DIN(31i)amp。Delete_Timer(1)。0x1)。//時鐘是一個TIMER翻轉(zhuǎn)一次,兩個TIMER一個周期,一個周期發(fā)送一個bit的數(shù)據(jù)switch(grade)//grade為全局變量,代表按下了哪一個SET按鈕,如點擊SET1則grade為1{Case’1’: else m_pin15=1。 0x08)==0) m_pin15=0。 if((status_reg amp。 else m_pin12=1。 0x20)==0) m_pin12=0。 if((status_reg amp。 else m_pin10=2。if((status_reg amp。 // TODO: Add your message handler code here and/or call default使控制端的低4位的值與對應(yīng)寄存器低4位的值相同,把并口上的數(shù)據(jù)傳給相應(yīng)變量m_pin由于我們要不斷更新端口的值,所以需要添加WM_TIMER時鐘,設(shè)置時鐘的函數(shù)為SetTimer(1,1,NULL),第一個參數(shù)是選擇標號為1的時鐘,第二個參量設(shè)置的是更新周期,此處我們設(shè)置的是1毫秒。 0xDF)。接下來,我們做的是初始化對話框的工作,在BOOL C ParallelPortDlg:OnInitDialog()函數(shù)中,我們可以根據(jù)要求把相應(yīng)的變量賦初值。}并在CparallelPortDlg類定義的頂部添加LPT端口地址的宏定義,代碼如下:define DATA 0x378define STATUS 0x379define CONTROL 0x37a其中函數(shù)_inp(PORT)的作用是返回參數(shù)所代表的端口處當前的數(shù)據(jù),相反地,_outp(PORT, DATA)函數(shù)的作用事把數(shù)據(jù)DATA發(fā)送到相應(yīng)的PORT端口上。 else m_pin17=1。 if((r
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1