国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

具有滾輪翻頁功能的PPT無線翻頁器設(shè)計

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

李子祥

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

【關(guān)鍵詞】PPT無線翻頁器;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

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

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

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

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

2 硬件電路設(shè)計

2.1 發(fā)射電路

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

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

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

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

2.2 接收電路

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

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

圖4 接收電路原理圖

3 軟件設(shè)計

3.1 上位機程序

對于普通按鍵,要加入一個按鍵去抖程序,以上翻頁按鍵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ā)送上翻頁命令

{

delay(10);

if(KEY1= =0)

{

UartPutChar(0x01);

}

while(!KEY1);

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

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

{

uint8 tl,th1,th2;

uint16 val;

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

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

InitUART(); //初始化串口

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

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

{

th1=TH0;

tl=TL0;

th2=TH0;

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

}

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

{

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

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

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

{

Down_count++;

}

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

{

Up_count++;

}

if(Count>5)

{

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

if(Up_count

Count=0;

Up_count=0;

Down_count=0;

}

TH0=0;

TL0=0;

}

}

}

3.2 下位機程序

USB HID設(shè)備是通過報告來返回數(shù)據(jù)的,輸入報告通過中斷輸入端點返回,在這里通過端點1來返回報告,判斷是否需要發(fā)送報告的代碼如下[4]:

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

{

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

{

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

{

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

SendReport(); //則返回報告,發(fā)送一則空數(shù)據(jù),證明鍵盤動作清零

}

}

}

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

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++; //切換到下個位置。

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

}

//報告準(zhǔn)備好了,通過端點1返回,長度為8字節(jié)。

D12WriteEndpointBuffer(3,8,Buf);

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

Command=0;

}

4 結(jié)束語

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

【參考文獻(xiàn)】

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

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

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

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

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

猜你喜歡
編碼器
融合CNN和Transformer編碼器的變聲語音鑒別與還原
基于FPGA的同步機軸角編碼器
基于雙增量碼道的絕對式編碼器設(shè)計
基于磁編碼器的永磁同步電機驅(qū)動控制系統(tǒng)
基于PRBS檢測的8B/IOB編碼器設(shè)計
應(yīng)用旋轉(zhuǎn)磁場編碼器實現(xiàn)角度測量
旋轉(zhuǎn)編碼器與可編程控制器實現(xiàn)脈沖計數(shù)功能
電子制作(2016年15期)2017-01-15 13:39:07
JESD204B接口協(xié)議中的8B10B編碼器設(shè)計
電子器件(2015年5期)2015-12-29 08:42:24
基于數(shù)字信號處理的脈沖編碼器
光電編碼器故障診斷技術(shù)研究現(xiàn)狀與展望
浙江省| 广河县| 海阳市| 吕梁市| 金阳县| 饶阳县| 肃宁县| 军事| 志丹县| 井研县| 淮南市| 临洮县| 建宁县| 瑞金市| 岐山县| 吉林市| 岳阳市| 出国| 虞城县| 和平区| 乌海市| 通化市| 吉安县| 九台市| 衡水市| 平山县| 夏河县| 武威市| 阿拉善左旗| 花垣县| 连云港市| 无锡市| 青龙| 正阳县| 阿拉善右旗| 滦平县| 得荣县| 寿阳县| 成都市| 阜新| 赞皇县|