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

正文內(nèi)容

基于單片機(jī)的鍵盤無線數(shù)據(jù)通信系統(tǒng)畢業(yè)設(shè)計(jì)-在線瀏覽

2024-08-02 20:43本頁面
  

【正文】 輸過來的數(shù)據(jù)接收,再經(jīng)過 USB 接口芯片轉(zhuǎn)換,將數(shù)據(jù)傳送給電腦,從而實(shí)現(xiàn)了無線數(shù)據(jù)傳輸。在本作品中使用的是六腳 mini-DIN 連接器,其實(shí)這兩種連接器都只有四個(gè)腳有意義,它們分別是 Clock(時(shí)鐘腳)、Data(數(shù)據(jù)腳)、+5V(電源腳)和 Ground(電源地)。在本設(shè)計(jì)中只需將+5V(電源腳)與單片機(jī)的 40 腳相連,Ground(電源地)與單片機(jī)的 20 腳相連,Clock(時(shí)鐘腳)與單片機(jī)的 12 腳外部中斷相連,Data(數(shù)據(jù)腳)與其它任一 I/O 口相連即可。第 9 頁 共 35 頁圖 3 PS/2 的 miniDIN 連接器PS/2 電氣特性PS/2 通訊協(xié)議是一種雙向同步串行通訊協(xié)議。任何一方如果想抑制另外一方通訊時(shí),只需要把 Clock(時(shí)鐘腳)拉到低電平。一般兩設(shè)備間傳輸數(shù)據(jù)的最大時(shí)鐘頻率是 33kHz,大多數(shù) PS/2 設(shè)備工作在 10~20kHz 。每一數(shù)據(jù)幀包含 11~12 個(gè)位,具體含義如表 2 所列。芯片能耗非常低,以5dBm 的功率發(fā)射時(shí),工作電流只有 ,接收時(shí)工作電流只有 18mA,多種低功率工作模式,節(jié)能設(shè)計(jì)更方便。第 10 頁 共 35 頁引腳分布圖其特點(diǎn)如下:●全球開放的 頻段多頻道 125 個(gè)滿足多頻及跳頻需要● 高速率 1Mbps 高于藍(lán)牙內(nèi)置硬件 CRC 電路及多點(diǎn)通信控制高數(shù)據(jù)吞吐量● 采用 先進(jìn)加工技術(shù)極具競爭力的成本● 低電壓低功耗滿足低功耗設(shè)計(jì)需要● 廣泛適用于手持終端 PDA 無線數(shù)字耳機(jī)數(shù)字視頻數(shù)碼相機(jī)以及其他短距離高速無線通信應(yīng)用● 集成度高所有高頻元件包括電感 濾波器振蕩器等已經(jīng)全部集成在芯片內(nèi)部使得產(chǎn)品一致性良好 成本低性能穩(wěn)定且不受外界影響● 內(nèi)部具有點(diǎn)對多點(diǎn)通信協(xié)議控制每個(gè)芯片可以通過軟件設(shè)置最多 40bit 地址只有收到本機(jī)地址時(shí)才會(huì)輸出數(shù)據(jù)提供一個(gè)中斷指示編程方便第 11 頁 共 35 頁點(diǎn)對多點(diǎn)通信示意圖● 嵌入 CRC 通信效驗(yàn)協(xié)議糾檢錯(cuò)是無線通信設(shè)計(jì)的難點(diǎn),nRF2401 內(nèi)置了 CRC 硬件電路和協(xié)議?!癜l(fā)射功率和工作頻率等所有工作參數(shù)可全部通過軟件設(shè)置?!裥酒瑑?nèi)部設(shè)置有專門的穩(wěn)壓電路,因此,使用任何電源(包括 DC/DC 開關(guān)電源)均有很好的通信效果?!癫捎?ShockBurstTM 模式時(shí),能適用極低的功率操作和不嚴(yán)格的 MCU 執(zhí)行?!駜?nèi)置看門狗?!窨?100%RF 檢驗(yàn)。置 CE 為低電平可激活 ShockBurstTM 發(fā)射.雙接收模式第 13 頁 共 35 頁  ShockBurstTM 接收主要使用 MCU 接口引腳 CE、 DR CLK1 和 DATA 和大小后,置 CE 為高電平可激活 nRF2401 監(jiān)測信息輸入 200μs,若收到有效數(shù)據(jù)包,則給 MCU 一個(gè)中斷并置 DR1 為高電平,以使 MCU 以時(shí)鐘形式輸出有效載荷數(shù)據(jù),待系統(tǒng)收到全部數(shù)據(jù)后,此時(shí) RF2401 再置 DR1 為低電平,此時(shí)如果 CE 保持高電平, CE 置低電平,則開始接收新的序列。  數(shù)字信道 2:CLK2,DOUT2,DR2。在直接發(fā)送時(shí)接口引腳為 CE、DATA。所有的射頻協(xié)議必須在微控制器程序中進(jìn)行處理(包括字頭、地址和 CRC 校驗(yàn)碼)。一旦 nRF2401 被配置為直接接收模式,DATA 引腳將根據(jù)天線接收到的信號開始高低變化(由于噪聲的存在), CLK1 引腳也開始工作,一旦接收到有效的字頭,CLK1 引腳和 DATA 引腳將協(xié)調(diào)工作,把射頻數(shù)據(jù)包以其被發(fā)射時(shí)的數(shù)據(jù)從 DATA 引腳送給微控制器,字頭必須是 8 位。數(shù)據(jù)接收模式應(yīng)用技術(shù)接收端單片機(jī)可以通過輸入C語言程序?qū)o線射頻芯片 NRF24L01 的參數(shù)進(jìn)行設(shè)置,設(shè)為接收模式,即可接受檢驗(yàn)信號。接收端的單片機(jī)在接收到中斷的同時(shí),要同發(fā)射端芯片進(jìn)行時(shí)間上的協(xié)同,以此來保證發(fā)送和接收的配合。MCU 硬件串行通信應(yīng)用技術(shù)RS232 是 現(xiàn) 在 主 流 的 串 行 通 信 接 口 之 一 。     ( 2) 傳 輸 速 率 較 低 , 在 異 步 傳 輸 時(shí) , 波 特 率 為 20Kbps; 因 此 在 “南 方 的 老 樹51CPLD 開 發(fā) 板 ”中 , 綜 合 程 序 波 特 率 只 能 采 用 19200, 也 是 這 個(gè) 原 因 。在 MAX232 與單片機(jī)進(jìn)行通信時(shí),串 行 口 的 SBUF 是 作 為 同 步 移 位 寄 存 器 使 用的 。 在 接 收 操 作 時(shí) ,它 又 相 當(dāng) 于 一 個(gè) 串 行 輸 入 、 輸 出 的 移 位 寄 存 器 。 口接 PS/2 數(shù)據(jù)線;(INT0)接 PS/2 時(shí)鐘線,即采用外部中斷 0 的方式來接受 PS/2 接口鍵盤的傳輸數(shù)據(jù)。如果是高電平,從設(shè)備就可以開始傳輸數(shù)據(jù);反之,從設(shè)備要等待獲得總線的控制權(quán),第 15 頁 共 35 頁才能開始傳輸數(shù)據(jù)。 圖 7 從設(shè)備到主設(shè)備的通信 每一幀數(shù)據(jù)中開始位總是為 0,數(shù)據(jù)校驗(yàn)采用奇校驗(yàn)方式,停止位始終為 1。② 主設(shè)備到從設(shè)備的通信 主設(shè)備與從設(shè)備進(jìn)行通信時(shí),主設(shè)備首先將時(shí)鐘線和數(shù)據(jù)線設(shè)置為“請求發(fā)送”狀態(tài),具體方式為:首先下拉時(shí)鐘線至少 100us 抑制通信 ,然后下拉數(shù)據(jù)線“請求發(fā)送”最后釋放時(shí)鐘線。此時(shí)數(shù)據(jù)傳輸?shù)拿恳粠?12 位構(gòu)成,其時(shí)序和每一位含義如圖 8 所示。這是從設(shè)備應(yīng)答接收到字節(jié)的應(yīng)答位,由從設(shè)備通過拉低數(shù)據(jù)線產(chǎn)生,應(yīng)答位 ACK 總是為 0。STC89S52PS/2鍵盤GND GND+5V VCCCLKDATA3第 16 頁 共 35 頁圖 9 硬件連接電路 單片機(jī)接收完數(shù)據(jù)后便要進(jìn)入 nRF24L01 的發(fā)射模塊。在 ShockBurstTM 發(fā)射流程中,接口引腳為 CE,CLK1,DATA,當(dāng)微控制器有數(shù)據(jù)要發(fā)送時(shí),其把 CE 置高,使 nRF24L01 工作。無線接收應(yīng)用技術(shù)在 nRF24L01 工作在 ShockBurstTM 接收流程中,接口引腳 CE、DR1 、CLK1 和DATA(接收通道 1),首先要配置本機(jī)地址和要接收的數(shù)據(jù)包大小。當(dāng)接收到正確的數(shù)據(jù)包(正確的地址和 CRC 校驗(yàn)碼),nRF2401 自動(dòng)把字頭、地址和 CRC 校驗(yàn)位移去,nRF2401 通過把 DR1(這個(gè)引腳一般引起微控制器中斷)置高通知微控制器,之后微控制器把數(shù)據(jù)從 nRF2401 移出,所有數(shù)據(jù)移完, nRF2401 把 DR1 置低,此時(shí),如果CE 為高,則等待下一個(gè)數(shù)據(jù)包,如果 CE 為低,開始其它工作流程。發(fā)送機(jī)初始化后,等待 PS/2 的數(shù)據(jù)信號,采集轉(zhuǎn)換給射頻模塊,無線送出數(shù)據(jù)。開始系統(tǒng)初始化外部中斷N發(fā)送數(shù)據(jù)Y圖 發(fā)送機(jī)主程序流程圖開始系統(tǒng)初始化外部中斷N接收數(shù)據(jù)傳給電腦Y接收機(jī)主程序流程圖子程序流程圖在有外部中斷發(fā)生時(shí),表示 PS/2 接口的鍵盤將向單片機(jī)發(fā)送數(shù)據(jù),待數(shù)據(jù)發(fā)送完成后,單片機(jī)保存數(shù)據(jù)并由無線發(fā)射模塊發(fā)射出去。第 20 頁 共 35 頁外部中斷產(chǎn)生鍵值數(shù)據(jù)?數(shù)據(jù)采集完?nRF24L01發(fā)射數(shù)據(jù)Y轉(zhuǎn)換NY返回N圖 發(fā)送端外部中斷子程序流程圖nRF24L01接收數(shù)據(jù)數(shù)據(jù)移位完畢?外部中斷Y返回送USB 轉(zhuǎn)換N第 21 頁 共 35 頁接收端外部中斷子程序流程圖發(fā)射主程序include include include define uchar unsigned char define uint unsigned intsbit KB_CLK=P3^3。uint n=0。x0。}void delay_nms(unsigned int t){ unsigned int i,j。it。j120。}void Send_Key(uchar dat){uint i。 Delay_NS(10)。 KB_CLK=1。 KB_DATA=0。 for(i=0。i++){while(KB_CLK) _nop_()。0x01。 while(!KB_CLK) _nop_()。 }switch(n){case 0:case 2:第 22 頁 共 35 頁case 4:case 6:KB_DATA =1。case 1:case 3:case 5:case 7:KB_DATA =0。default:break。 while(KB_CLK)_nop_()。 while(!KB_CLK) _nop_()。 while(!KB_CLK) _nop_()。 KB_CLK=1。 key_temp=0。 for(i=0。i++) { key_temp=1。 while(KB_CLK)。 if(KB_DATA) { key_temp|=0x80。 return key_temp。第 23 頁 共 35 頁 for(i=0。i++){ if(Key==kbdasciicode[i][0]) { temp= kbdasciicode[i][1]。 }}if(temp==0xff) { for(i=0。i++){ if(Key==kbdcontrolcode[i][0]) { temp= kbdcontrolcode[i][1]。 }} } if(temp==0xff) { for(i=0。i++){ if(Key==E0startedcode[i][0]) { temp= E0startedcode[i][1]。 }} } return temp。 Key_Code[0]=Key_Scan()。 Key_Code[2]=Key_Scan()。 if(temp!=0xff)nRF24L01_TxPacket(amp。 putchar(temp)。 return Key_Code[0]。 Delay_NS(10)。 Delay_NS(10)。LED_Indication()。Init_NRF24L01()。) { Key_Code=Get_Key()。 if((Key_Code==0x77)||(Key_Code==0x58)) { P1^=2。 }}接收主程序include include include include void SendReport(uint8 hid_code){ uint8 Buf[8]={0,0,0,0,0,0,0,0}。 if(hid_code==KeyLCtrl) { Buf[0]|=0x01。 } else if(hid_code==KeyLAlt) { Buf[0]|=0x04。 } }unsigned char asc_USB_code(unsigned char asc_code){ unsigned char
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1