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

正文內(nèi)容

基于無(wú)線模塊數(shù)據(jù)傳輸?shù)某绦蛟O(shè)計(jì)畢業(yè)論文-文庫(kù)吧資料

2025-06-29 05:09本頁(yè)面
  

【正文】 ext bit to MSB NRF_SCK=1。0x80)。bit_ctr8。}/***************************************************************///SPI收發(fā)函數(shù)/*******************************************************************/uchar SPI_RW(uchar byte){ uchar bit_ctr。k200。}void delay(uint t){ uchar k。i150。}void delay_150us()//延遲150us{ uint i。inum。 //發(fā)送地址//延遲函數(shù)void delay_us(uchar num){ uchar i。const uchar TX_ADDRESS[TX_ADR_WIDTH]={0xFF,0xFF,0xFF,0xFF,0xFF}。unsigned char DataLine1[16]=0000000000 。unsigned long InitTimes。void CopeStr(unsigned char *TgPrt,unsigned char Point,unsigned char *SoPtr,unsigned char Length)。void SetCurser(unsigned char XPoint,unsigned char YPoint)。void LCD_Prints(unsigned char *dat,unsigned char add)。void LCD_Write(unsigned char dat,unsigned char type)。sbit LCD_EN=P1^0。//外部中斷初始化define LCD_DATA 1//定義LCD端口define LCD_COMMAND 0define LCD_PORT P0sbit LCD_RS=P1^2。void SEND_BUF(uchar *buf)。uchar NRF24L01_Check(void)。uchar NRF24L01_RxPacket(uchar *rxbuf)。uchar NRF24L01_Read_Buf(uchar reg,uchar *pBuf,uchar len)。uchar NRF24L01_Write_Reg(uchar reg,uchar value)。void delay(uint t)。//無(wú)線發(fā)射函數(shù)void delay_us(uchar num)。sbit NRF_SCK = P2^4。sbit NRF_MISO = P2^3。*/sbit NRF_CE = P2^5。sbit NRF_SCK = P0^2。sbit NRF_MISO = P0^4。開(kāi)始初始化無(wú)線模塊收到無(wú)線數(shù)據(jù)? Y存儲(chǔ)接收的數(shù)據(jù) N無(wú)線信號(hào)超時(shí)? Y清楚接收緩沖器 N結(jié)束 無(wú)線數(shù)據(jù)接收流程圖 程序設(shè)計(jì)include include define uchar unsigned chardefine uint unsigned int/********** NRF24L01寄存器操作命令 ***********/define READ_REG 0x00 //讀配置寄存器,低5位為寄存器地址define WRITE_REG 0x20 //寫(xiě)配置寄存器,低5位為寄存器地址define RD_RX_PLOAD 0x61 //讀RX有效數(shù)據(jù),1~32字節(jié)define WR_TX_PLOAD 0xA0 //寫(xiě)TX有效數(shù)據(jù),1~32字節(jié)define FLUSH_TX 0xE1 //清除TX define FLUSH_RX 0xE2 //清除RX define REUSE_TX_PL 0xE3 //重新使用上一包數(shù)據(jù),CE為高,數(shù)據(jù)包被不斷發(fā)送.define NOP 0xFF //空操作,可以用來(lái)讀狀態(tài)寄存器 /********** NRF24L01寄存器地址 *************/define CONFIG 0x00 //配置寄存器地址 define EN_AA 0x01 //使能自動(dòng)應(yīng)答功能 define EN_RXADDR 0x02 //接收地址允許define SETUP_AW 0x03 //設(shè)置地址寬度(所有數(shù)據(jù)通道)define SETUP_RETR 0x04 //建立自動(dòng)重發(fā)define RF_CH 0x05 //RF通道define RF_SETUP 0x06 //RF寄存器define STATUS 0x07 //狀態(tài)寄存器define OBSERVE_TX 0x08 // 發(fā)送檢測(cè)寄存器define CD 0x09 // 載波檢測(cè)寄存器define RX_ADDR_P0 0x0A // 數(shù)據(jù)通道0接收地址define RX_ADDR_P1 0x0B // 數(shù)據(jù)通道1接收地址define RX_ADDR_P2 0x0C // 數(shù)據(jù)通道2接收地址define RX_ADDR_P3 0x0D // 數(shù)據(jù)通道3接收地址define RX_ADDR_P4 0x0E // 數(shù)據(jù)通道4接收地址define RX_ADDR_P5 0x0F // 數(shù)據(jù)通道5接收地址define TX_ADDR 0x10 // 發(fā)送地址寄存器define RX_PW_P0 0x11 // 接收數(shù)據(jù)通道0有效數(shù)據(jù)寬度(1~32字節(jié)) define RX_PW_P1 0x12 // 接收數(shù)據(jù)通道1有效數(shù)據(jù)寬度(1~32字節(jié)) define RX_PW_P2 0x13 // 接收數(shù)據(jù)通道2有效數(shù)據(jù)寬度(1~32字節(jié)) define RX_PW_P3 0x14 // 接收數(shù)據(jù)通道3有效數(shù)據(jù)寬度(1~32字節(jié)) define RX_PW_P4 0x15 // 接收數(shù)據(jù)通道4有效數(shù)據(jù)寬度(1~32字節(jié))define RX_PW_P5 0x16 // 接收數(shù)據(jù)通道5有效數(shù)據(jù)寬度(1~32字節(jié))define FIFO_STATUS 0x17 // FIFO狀態(tài)寄存器/*————————————————————————————————————————————————————————————————————*//****** STATUS寄存器bit位定義 *******/define MAX_TX 0x10 //達(dá)到最大發(fā)送次數(shù)中斷define TX_OK 0x20 //TX發(fā)送完成中斷define RX_OK 0x40 //接收到數(shù)據(jù)中斷/*——————————————————————————————————————————————————*//********* 24L01發(fā)送接收數(shù)據(jù)寬度定義 ***********/define TX_ADR_WIDTH 5 //5字節(jié)地址寬度define RX_ADR_WIDTH 5 //5字節(jié)地址寬度define TX_PLOAD_WIDTH 32 //32字節(jié)有效數(shù)據(jù)寬度define RX_PLOAD_WIDTH 32 //32字節(jié)有效數(shù)據(jù)寬度/*sbit NRF_CE = P0^0。 無(wú)線數(shù)據(jù)收發(fā)電路機(jī)器主要是通過(guò)無(wú)線來(lái)和其他控制器通信,當(dāng)收到無(wú)線數(shù)據(jù)以后,控制器首先將數(shù)據(jù)保存到本地,然后處理數(shù)據(jù)。因此本次設(shè)計(jì)也沒(méi)有采用C1101無(wú)線模塊。C1101無(wú)線模塊雖然功耗比較低,但是使用時(shí)操作難道大,不容易通過(guò)軟件實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸,而且沒(méi)有在市面上大規(guī)模使用。雖然傳輸?shù)木嚯x遠(yuǎn),但是功耗十分巨大,不能夠滿足本設(shè)計(jì)的要求。在功耗方面,無(wú)線藍(lán)牙模塊也是功耗最大的,因此本次設(shè)計(jì)沒(méi)有考慮使用藍(lán)牙無(wú)線模塊。 顯示屏控制流程圖 無(wú)線數(shù)據(jù)收發(fā)電路與程序設(shè)計(jì)無(wú)線收發(fā)模塊市面上有很多種類,如藍(lán)牙無(wú)線模塊、無(wú)線串口、C1101無(wú)線模塊以及24L01無(wú)線模塊等。 顯示電路顯示程序主要是講用戶設(shè)置的參數(shù)顯示到顯示屏上,同時(shí)也會(huì)將單片機(jī)通過(guò)傳感器檢測(cè)到的信號(hào)顯示到顯示屏上。如果在單片機(jī)引腳個(gè)數(shù)不夠的情況下,也可以通過(guò)最少7個(gè)引腳完成對(duì)顯示屏的控制住。該顯示的可擴(kuò)展性非常好,如果需要顯示額外的內(nèi)容,僅僅需要另起一行就可以顯示更多的內(nèi)容。該屏幕可以實(shí)現(xiàn)2*16個(gè)字符顯示,能偶顯示的信息很多。綜合考慮本次畢業(yè)設(shè)計(jì)的要求,暫時(shí)不考慮彩屏顯示器[17]。對(duì)于本次的畢業(yè)設(shè)計(jì),暫時(shí)不用彩屏進(jìn)行顯示。普通的51單片機(jī)很難實(shí)現(xiàn)彩屏的顯示。因此本次畢業(yè)設(shè)計(jì)暫時(shí)不考慮使用數(shù)碼管電路。如果為了讓程序能夠正常顯示,那么就需要更改顯示的硬件,這樣會(huì)增加硬件的成本,得不償失。用戶在識(shí)別參數(shù)的時(shí)候有時(shí)候回混淆,同時(shí)數(shù)碼管每次僅僅能夠顯示一個(gè)參數(shù),如果想讓數(shù)碼管同時(shí)顯示更多的參數(shù),則需要大量的數(shù)碼管,這在硬件設(shè)計(jì)上具有很大的難度。4 程序設(shè)計(jì)與無(wú)線傳輸能夠?qū)崿F(xiàn)參數(shù)和實(shí)時(shí)狀態(tài)顯示功能的顯示屏有很多,如簡(jiǎn)單的數(shù)碼管顯示、LCD顯示、彩屏顯示等。無(wú)論是定時(shí)還是計(jì)數(shù)工作方式在定時(shí)器T0或定時(shí)器T1對(duì)內(nèi)部或外部時(shí)鐘計(jì)數(shù)時(shí),不會(huì)占用任何CPU的時(shí)間,除了當(dāng)定時(shí)器及計(jì)數(shù)器溢出時(shí),才會(huì)有可能會(huì)中斷CPU當(dāng)前操作,所以可以說(shuō)定時(shí)器是單片機(jī)效率比較高的一個(gè)部件。當(dāng)在每個(gè)機(jī)器周期S5P2期間采樣T1和T0引腳的輸入電平,假如前一個(gè)機(jī)器周期采樣值為1,下一個(gè)機(jī)器周期采樣值為0,計(jì)數(shù)器會(huì)被裝入新的數(shù)值,因此如果要檢測(cè)一個(gè)1至0的跳變需要2個(gè)機(jī)器周期,所以最高震蕩頻率是計(jì)數(shù)頻率的24倍。當(dāng)89C51單片機(jī)設(shè)置為計(jì)數(shù)工作方式時(shí),外部信號(hào)脈沖是通過(guò)T0和T1引腳計(jì)數(shù)。設(shè)置為定時(shí)工作方式時(shí),89C51單片機(jī)定時(shí)計(jì)數(shù)振蕩器輸出的經(jīng)12分頻后的脈沖,這就是說(shuō)一個(gè)機(jī)器周期定時(shí)器T0或T1的數(shù)值加1直至計(jì)數(shù)滿溢出。其中,T0是由兩個(gè)8位特殊功能寄存器TH0和TL0構(gòu)成,T1是由TH1和TL1構(gòu)成。如果用12MHZ晶體的單片機(jī),則每微秒計(jì)數(shù)器加1,即計(jì)數(shù)頻率為1HZ,即可以計(jì)算出計(jì)時(shí)計(jì)數(shù)地址,你可以根據(jù)轉(zhuǎn)用時(shí)間計(jì)算定時(shí)器預(yù)設(shè)值。② 定時(shí)定時(shí)是由計(jì)數(shù)器實(shí)現(xiàn)的,但脈沖來(lái)自單片機(jī)內(nèi)部,機(jī)器周期每循環(huán)一次,就會(huì)有一個(gè)計(jì)數(shù)脈沖,即每一次機(jī)器周期計(jì)數(shù)器遞增1。51單片機(jī)有T0和T1的兩個(gè)信號(hào)引腳,分別是這兩個(gè)計(jì)數(shù)器的計(jì)數(shù)輸入端。89C51單片機(jī)的定時(shí)器都有定時(shí)和計(jì)數(shù)的功能,可以對(duì)定時(shí)的的控制以及延時(shí)、對(duì)外部事件計(jì)數(shù)和檢測(cè)等場(chǎng)合都有著極大的應(yīng)用。在S5P2機(jī)器周期期間,IE0以及IE1標(biāo)志位會(huì)鎖存相應(yīng)的引腳的電平,這些值會(huì)在下一個(gè)周期被CPU查詢,中斷請(qǐng)求開(kāi)始算起一直到中斷程序被執(zhí)行完畢,中斷響應(yīng)時(shí)間要花費(fèi)3個(gè)機(jī)器周期,這也是中斷響應(yīng)最短時(shí)間。然后可以在中斷返回之前再把中斷開(kāi)放。累加器相關(guān)數(shù)據(jù)的丟失無(wú)法繼續(xù)處理主程序。RETI指令在單片機(jī)中亦有著重要作用,我們知道矢量地址是中斷程序開(kāi)始執(zhí)行的地方,RETI指令則是程序結(jié)束的地方,這個(gè)指令會(huì)告訴相應(yīng)的中斷系統(tǒng)程序已經(jīng)被處理完畢,然后則會(huì)從棧頂中彈出被保護(hù)的斷點(diǎn)地址,將數(shù)據(jù)輸入到PC計(jì)數(shù)器中,CPU會(huì)從中斷的地方繼續(xù)處理主程序。用上述辦法放入指令后,就會(huì)與64KB可用區(qū)域。單片機(jī)中的堆棧會(huì)把斷點(diǎn)地址保存起來(lái),在中斷源向CPU發(fā)送中斷請(qǐng)求,CPU還沒(méi)有處理發(fā)送過(guò)來(lái)的數(shù)據(jù)時(shí),但像PSW這樣的狀態(tài)寄存器內(nèi)容,或者累加器A數(shù)據(jù)并不會(huì)被保存,這時(shí)PC程序計(jì)數(shù)器會(huì)輸入相關(guān)的中斷矢量,這時(shí)在中斷矢量地址單元中就會(huì)有程序轉(zhuǎn)入,然后中斷服務(wù)程序則會(huì)被處理。像TF0和TF1這樣的定時(shí)器溢出標(biāo)志,或者IE0或IE1這樣的外部中斷標(biāo)志并且觸發(fā)方式是邊沿類型的中斷源,在這些中斷源發(fā)送的請(qǐng)求得到CPU響應(yīng)后,中斷標(biāo)志會(huì)被CPU自動(dòng)的除掉。而后者則也可以阻斷中斷請(qǐng)求,但不能夠阻止到高優(yōu)先級(jí)的中斷請(qǐng)求,也可以進(jìn)行低優(yōu)先級(jí)中斷操作。高優(yōu)先級(jí)生效觸發(fā)器以及低優(yōu)先級(jí)生效觸發(fā)器在89C51單片機(jī)中斷系統(tǒng)中兩個(gè)特殊的觸發(fā)器,因?yàn)樗鼈兪遣粫?huì)被編程的。中斷響應(yīng)的自主操作過(guò)程:?jiǎn)纹瑱C(jī)在每個(gè)機(jī)器周期S5P2中間CPU會(huì)按照順序的方法進(jìn)行中斷源的采樣,則中斷的標(biāo)志或者狀態(tài)會(huì)在下一機(jī)器周期S6會(huì)被CPU按照優(yōu)先級(jí)的方法進(jìn)行查詢。中斷響應(yīng):中斷響應(yīng)是有條件的,作為單片機(jī)中最重要的部件CPU要實(shí)現(xiàn)響應(yīng)中斷需要滿足幾個(gè)條件:第一無(wú)論在那個(gè)系列單片機(jī)必須要中斷源發(fā)送數(shù)據(jù)請(qǐng)求,然后中斷還不能夠被屏蔽掉這樣中斷才能夠正常工作,然后EA=1也就是說(shuō)CPU必需開(kāi)中斷,而且在這個(gè)時(shí)候不能有更高級(jí)或者同級(jí)的中斷正在被CPU響應(yīng),最后當(dāng)前的指令周期必需已經(jīng)結(jié)束。在處理中斷過(guò)程中,若要使RE
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1