• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      具有滾輪翻頁(yè)功能的PPT無(wú)線翻頁(yè)器設(shè)計(jì)

      2016-04-26 12:25:55李子祥
      科技視界 2016年9期
      關(guān)鍵詞:編碼器

      李子祥

      【摘 要】為了方便使用,設(shè)計(jì)了一種PPT翻頁(yè)器,系統(tǒng)分為發(fā)射電路和接收電路兩個(gè)模塊,每個(gè)模塊都包含一個(gè)STC8952單片機(jī)和藍(lán)牙模塊,發(fā)射電路還包括一個(gè)鼠標(biāo)滾輪編碼器和D觸發(fā)器構(gòu)成鑒相電路,當(dāng)發(fā)射電路的按鍵按下或滾輪滾動(dòng)時(shí),經(jīng)過(guò)藍(lán)牙主機(jī)發(fā)送,接收電路接收到指令后,經(jīng)USB通信模塊送入PC機(jī),PC機(jī)接收命令后模擬鍵盤(pán)按鍵事件和鼠標(biāo)滾輪滾動(dòng)事件,來(lái)控制PPT的翻頁(yè)。

      【關(guān)鍵詞】PPT無(wú)線翻頁(yè)器;STC8952;PDIUSB12;編碼器

      The Designs of PPT Wireless Pager with Wheel Flip Function

      LI Zi-xiang

      (Department of resources and civil engineering, Shandong University of Science and Technology, Taian Shandong 271019, China)

      【Abstract】In order to facilitate the use of a PPT, a PPT wireless pager was designed. The system was divided into two modules, The system is divided into two modules: transmitting circuit and receiving circuit, Each module contains a STC8952 MCU and Bluetooth module, The transmitting circuit also comprises a mouse encoder and a D trigger to form the phase detector circuit, When the button of the transmitting circuit is pressed or the rolling wheel is rolled, the data will be sent by the Bluetooth host, after receiving the instruction, the receiving circuit send it to the PC through the USB communication module, finally the pc simulate the keyboard and the roll event, to achieve the controlling of the PPT.

      【Key words】PPT wireless pager; STC8952; PDIUSB12; Encoder

      隨著計(jì)算機(jī)輔助教學(xué)的發(fā)展,PPT無(wú)線翻頁(yè)器應(yīng)運(yùn)而生。有時(shí)在PPT演講過(guò)程中,為了臨時(shí)跳到某一頁(yè)講解或回顧其他內(nèi)容,需要一下翻很多頁(yè),但現(xiàn)有的無(wú)線翻頁(yè)器只能按一下翻一頁(yè),造成了很多不便。針對(duì)這種情況,開(kāi)發(fā)了一種帶滾輪翻頁(yè)功能的PPT無(wú)線翻頁(yè)器,通過(guò)滾輪來(lái)實(shí)現(xiàn)翻頁(yè)功能,可以大大增加PPT翻頁(yè)的速度,解決上述問(wèn)題。

      1 系統(tǒng)方案設(shè)計(jì)

      整個(gè)硬件電路分為發(fā)射電路和接收電路兩個(gè)模塊,當(dāng)按下發(fā)射電路的按鍵或滾動(dòng)滾輪時(shí),由單片機(jī)控制無(wú)線模塊的信號(hào)收發(fā)。接收電路的無(wú)線模塊接收命令后,通過(guò)USB通信模塊把數(shù)據(jù)傳給PC機(jī),PC機(jī)根據(jù)不同的鍵值分別作出相應(yīng),通過(guò)模擬鍵盤(pán)的按鍵事件、鼠標(biāo)的滾輪滾動(dòng)事件等來(lái)實(shí)現(xiàn)對(duì)PPT的控制。系統(tǒng)總體框圖如圖1所示。

      圖1 系統(tǒng)總體功能框圖

      2 硬件電路設(shè)計(jì)

      2.1 發(fā)射電路

      發(fā)射電路共設(shè)置上翻、下翻、激光燈、全屏、退出播放5個(gè)按鍵外加一個(gè)滾輪翻頁(yè)模塊。單片機(jī)采用STC89C52。STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器,共具有P0,P1,P2,P3四個(gè)I/O口,這里通過(guò)I/O口來(lái)控制各部分電路及無(wú)線模塊的通信[1]。

      在設(shè)計(jì)滾輪翻頁(yè)模塊時(shí),將滾輪的編碼器的A相輸出端接入STC89C52的計(jì)數(shù)器0來(lái)采集計(jì)數(shù)脈沖,并將編碼器接入一個(gè)八D觸發(fā)器74LS379來(lái)構(gòu)成鑒相電路,判斷滾輪的滾動(dòng)方向,當(dāng)編碼器順時(shí)針?lè)较蛐D(zhuǎn)時(shí),A相信號(hào)在相位上超前B相信號(hào)1 /4周期(圖2)。經(jīng)過(guò)D觸發(fā)器后,Q1為高電平,Q1反為低電平,反之當(dāng)編碼器逆時(shí)針旋轉(zhuǎn)時(shí),Q1為低電平,Q1反為高電平[2],將Q1和Q1反接入單片機(jī)的I/O口,便可以據(jù)此判斷是上翻頁(yè)還是下翻頁(yè)。

      在設(shè)計(jì)無(wú)線通信模塊時(shí),采用了HC-05藍(lán)牙模塊。HC-05模塊是一款高性能的藍(lán)牙串口模塊,具有寬波特率范圍4800~1382400,模塊兼容單片機(jī)系統(tǒng)。波特率、藍(lán)牙名稱(chēng)、配對(duì)密碼等可通過(guò)AT命令修改。HC-05在購(gòu)買(mǎi)時(shí)默認(rèn)為從機(jī),在設(shè)計(jì)發(fā)射電路時(shí),通過(guò)AT命令將藍(lán)牙模塊設(shè)置為主機(jī)。藍(lán)牙主機(jī)模塊與單片機(jī)的連接如圖3所示。

      圖3 發(fā)射電路原理圖

      2.2 接收電路

      接收端采用STC89C52和HC-05藍(lán)牙從機(jī)模塊來(lái)接收數(shù)據(jù)。主從模塊配對(duì)后相當(dāng)于一根串口線使用,這時(shí)不分主從,進(jìn)入透?jìng)髂J?,?shí)現(xiàn)單片機(jī)雙機(jī)通信。

      單片機(jī)接收到數(shù)據(jù)后,通過(guò)USB通信模塊傳送給上位機(jī),完成翻頁(yè)操作。USB通信模塊采用飛利浦公司生產(chǎn)的PDIUSBD12接口芯片,芯片遵循USB1.1協(xié)議。PDIUSBD12使用八位并行數(shù)據(jù)口DATA[7:0]與STC8952的P[0.7:0.0]連接,STC8952既要對(duì)PDIUSBD12發(fā)送命令又要發(fā)送數(shù)據(jù),通過(guò)PDIUSBD12的地址選擇命令還是數(shù)據(jù)。STC8952和PDIUSBD12的連接有復(fù)用的數(shù)據(jù)地址總線和獨(dú)立的數(shù)據(jù)地址總線兩種方式,在這里使用的獨(dú)立地址線,A0表示地址位,A0為1表示命令,A0為0表示寫(xiě)數(shù)據(jù),可以使用I/O口模擬,將A0接到單片機(jī)的T1腳上(T1是復(fù)用引腳,這里使用的普通I/O口),發(fā)送命令前對(duì)A0置1,發(fā)送數(shù)據(jù)時(shí)置0,把命令或數(shù)據(jù)發(fā)送到USB總線上[3]。

      圖4 接收電路原理圖

      3 軟件設(shè)計(jì)

      3.1 上位機(jī)程序

      對(duì)于普通按鍵,要加入一個(gè)按鍵去抖程序,以上翻頁(yè)按鍵KEY1為例,代碼如下:

      void delay(uint8 xms )

      {

      uint8 i,j;

      for(i=xms;i>0;i++)

      for(j=110;j>0;j--);

      }

      while(1) //死循環(huán)

      {

      if(KEY1= =0) //KEY1按下,發(fā)送上翻頁(yè)命令

      {

      delay(10);

      if(KEY1= =0)

      {

      UartPutChar(0x01);

      }

      while(!KEY1);

      對(duì)于滾輪模塊,將單片機(jī)的計(jì)數(shù)器模式打開(kāi)以采集來(lái)自編碼器的計(jì)數(shù)脈沖。有時(shí)只根據(jù)相位來(lái)判斷翻頁(yè)的方向可能會(huì)出現(xiàn)錯(cuò)誤,所以在這里,通過(guò)比較上翻頁(yè)和下翻頁(yè)的次數(shù),來(lái)決定真正的翻頁(yè)方向,代碼如下:

      void main(void) //主函數(shù)

      {

      uint8 tl,th1,th2;

      uint16 val;

      uint8 Count=0,Up_count=0,Down_count=0; //滾輪采集數(shù)據(jù)標(biāo)志

      InitTIMER(); //初始化定時(shí)器

      InitUART(); //初始化串口

      LIGHT=1; //關(guān)閉激光燈

      while(1) //讀計(jì)數(shù)器值

      {

      th1=TH0;

      tl=TL0;

      th2=TH0;

      if(th1==th2)break; //若沒(méi)有進(jìn)位打斷while(1)循環(huán)

      }

      if((tl!=0)||(th1!=0))

      {

      delay(50); //延時(shí)待滾輪穩(wěn)定

      Count++; //計(jì)數(shù)滾輪采集值

      if(WHEEL_A==1) //向下滾動(dòng)滾輪

      {

      Down_count++;

      }

      else if(WHEEL_A==0) //向上滾動(dòng)滾輪

      {

      Up_count++;

      }

      if(Count>5)

      {

      if(Up_count>Down_count)UartPutChar(0x01); //發(fā)送上翻頁(yè)命令

      if(Up_count

      Count=0;

      Up_count=0;

      Down_count=0;

      }

      TH0=0;

      TL0=0;

      }

      }

      }

      3.2 下位機(jī)程序

      USB HID設(shè)備是通過(guò)報(bào)告來(lái)返回?cái)?shù)據(jù)的,輸入報(bào)告通過(guò)中斷輸入端點(diǎn)返回,在這里通過(guò)端點(diǎn)1來(lái)返回報(bào)告,判斷是否需要發(fā)送報(bào)告的代碼如下[4]:

      if(ConfigValue!=0) //如果已經(jīng)設(shè)置為非0的配置,則可以返回報(bào)告數(shù)據(jù)

      {

      if(!Ep1InIsBusy) //如果端點(diǎn)1輸入沒(méi)有處于忙狀態(tài),則可以發(fā)送數(shù)據(jù)

      {

      if(Command!=0) //如果有按鍵事件發(fā)生

      {

      SendReport(); //則返回報(bào)告,發(fā)送結(jié)束會(huì)清零數(shù)據(jù)

      SendReport(); //則返回報(bào)告,發(fā)送一則空數(shù)據(jù),證明鍵盤(pán)動(dòng)作清零

      }

      }

      }

      SendReport()負(fù)責(zé)發(fā)送具體的報(bào)告。在輸入報(bào)告中定義一個(gè)數(shù)組,可以同時(shí)返回多個(gè)按鍵值。輸入報(bào)告共8字節(jié),第一字節(jié)的8位表示是否有數(shù)據(jù)按下,第二字節(jié)為保留值,第3到8字節(jié)是一個(gè)普通鍵鍵值的數(shù)組,在PPT中,上翻頁(yè)鍵對(duì)應(yīng)鍵盤(pán)上的PageUp,下翻頁(yè)為PageDown,全屏放映為F5,退出全屏為Esc,具體的鍵值可以查HID用途文檔表獲得[4]。這里只給出上翻頁(yè)的情況,其余按鍵依次類(lèi)推。

      extern uint8 Command;

      void SendReport(void)

      {

      /***************************************************

      根據(jù)HID用途表文檔 F5--3E ESC--29 PageUp--4B PageDown --4E

      ***************************************************/

      uint8 Buf[8]={0,0,0,0,0,0,0,0};

      uint8 i=2;

      if(Command==0x01) //接收到0x01

      {

      Buf[i]=0x4B; //播放命令。

      i++; //切換到下個(gè)位置。

      Prints("發(fā)送4B\r\n");

      }

      //報(bào)告準(zhǔn)備好了,通過(guò)端點(diǎn)1返回,長(zhǎng)度為8字節(jié)。

      D12WriteEndpointBuffer(3,8,Buf);

      Ep1InIsBusy=1; //設(shè)置端點(diǎn)忙標(biāo)志。

      Command=0;

      }

      4 結(jié)束語(yǔ)

      按照設(shè)計(jì)原理完成制作后,經(jīng)測(cè)試可以實(shí)現(xiàn)設(shè)計(jì)的功能要求,可以正常完成按鍵翻頁(yè)及滾輪翻頁(yè)的功能,當(dāng)使用滾輪翻頁(yè)可以大大加快翻頁(yè)速度,滿(mǎn)足某些場(chǎng)合下需要快速多次翻頁(yè)的需要,具有很好的應(yīng)用前景。

      【參考文獻(xiàn)】

      [1]胡聰,何勁,郭金龍.基于nFR24L01的無(wú)線電子教鞭[J].科技信息,2012(9):97.

      [2]高偉,李玄曾.光電編碼器的信號(hào)處理電路研究[J].陜西師范大學(xué)繼續(xù)教育學(xué)院學(xué)報(bào)(西安),2007,24(2):117.

      [3]萬(wàn)利峰,徐曉潔,胡慧鋪,張嘩暉.基于PDIUSB12的USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì) [J].微計(jì)算機(jī)信息,2006,22(5-1):110-111.

      [4]劉榮.圈圈教你玩USB[J].北京航空航天大學(xué)出版社,2009(1).

      [責(zé)任編輯:楊玉潔]

      猜你喜歡
      編碼器
      融合CNN和Transformer編碼器的變聲語(yǔ)音鑒別與還原
      基于FPGA的同步機(jī)軸角編碼器
      基于雙增量碼道的絕對(duì)式編碼器設(shè)計(jì)
      基于磁編碼器的永磁同步電機(jī)驅(qū)動(dòng)控制系統(tǒng)
      基于PRBS檢測(cè)的8B/IOB編碼器設(shè)計(jì)
      應(yīng)用旋轉(zhuǎn)磁場(chǎng)編碼器實(shí)現(xiàn)角度測(cè)量
      旋轉(zhuǎn)編碼器與可編程控制器實(shí)現(xiàn)脈沖計(jì)數(shù)功能
      電子制作(2016年15期)2017-01-15 13:39:07
      JESD204B接口協(xié)議中的8B10B編碼器設(shè)計(jì)
      電子器件(2015年5期)2015-12-29 08:42:24
      基于數(shù)字信號(hào)處理的脈沖編碼器
      光電編碼器故障診斷技術(shù)研究現(xiàn)狀與展望
      方城县| 延边| 勐海县| 蛟河市| 淮北市| 瑞昌市| 彭州市| 保定市| 修文县| 皮山县| 耿马| 墨脱县| 五莲县| 江西省| 柏乡县| 珲春市| 青神县| 偃师市| 常熟市| 兴隆县| 榕江县| 都兰县| 麻江县| 专栏| 射洪县| 会昌县| 彰化市| 茂名市| 玉屏| 资阳市| 平果县| 宜丰县| 曲周县| 宜宾市| 吴江市| 新源县| 壶关县| 天全县| 墨竹工卡县| 丹阳市| 遂平县|