樓主整理的資源,大家可以來看看哈
模擬USB鍵盤的USB接口芯片開發使用說明書
1. UI017簡要介紹
UI017 通過模擬 USB 鍵盤,將 UART 接收來的數據轉換為鍵盤格式的數據發給PC/安卓手機平板,從而在 PC/安卓手機平板上顯示出來。
UI017 適用于需要將數據傳給 PC/安卓手機平板顯示的應用,如條碼槍、電子秤、RFID讀卡器、身份證讀卡器等。UI017 還支持多個多媒體鍵。
0.png (55.97 KB, 下載次數: 90)
下載附件
2018-10-21 02:39 上傳
UI017引腳圖:
0.png (170.43 KB, 下載次數: 83)
下載附件
2018-10-21 02:40 上傳
UI017管腳功能定義:
0.png (127.45 KB, 下載次數: 89)
下載附件
2018-10-21 02:40 上傳
0.png (103.04 KB, 下載次數: 96)
下載附件
2018-10-21 02:41 上傳
UI017電路圖:
0.png (222.17 KB, 下載次數: 84)
下載附件
2018-10-21 02:41 上傳
2. UI017功能、性能
您可以將希望在 PC 上顯示的字符(ASCII)發給 UI017,由 UI017 轉換為
USB 鍵盤的數據格式發給PC,在 PC的記事本、寫字板或 WORD 等軟件中就可
以顯示出您想要的字符。發給PC 的數據相當于您在鍵盤上輸入的數據。
全速/低速USB HID接口,無需安裝驅動、應用軟件,即插即用
支持5V 或 3.3V、9600N81 UART接口
支持windows2000/Xp/Vista/win7/8/10;支持 Linux;
支持安卓平板、手機OTG 連接(部分安卓平板、手機 OTG不支持全速,只支持低速)
支持全鍵盤、組合鍵操作(不能完整支持任意組合鍵)
使用 HID Usage ID
支持讀取 NumLock、CapsLock、ScrollLock LED 的狀態
支持輸入0x01~0x7F 的ASCII
在 0x01~0x7F之外的字符將不予轉換
ASCII 輸入支持多國語言(2017 年6 月以后發貨的芯片有此功能)
除了標準美式鍵盤外,還支持德語、英國英語、法語、西班牙語、葡萄牙語(國際、巴西)、意大利語
同時支持ASCII、HID Usage ID兩種輸入方式,可隨意切換。
支持21 個多媒體按鍵
電源控制3 個:關閉電源、休眠、喚醒
快捷鍵4 個:打開郵件軟件、打開計算器、打開資源管理器、打開資
源管理器查找界面
播放器控制 8 個:打開播放器、播放/暫停、停止、音量升高、音量降低、靜音、上一個文件、下一個文件
網頁瀏覽控制 6 個:打開瀏覽器/回到主頁、后退、前進、停止、刷新、打開收藏夾
支持自動或不自動釋放按鍵,更加靈活
全速芯片支持每秒256 個字符的輸入速度, 相當于不到4ms 就可以在PC上顯示1 個字符
低速芯片支持每秒50 個字符
簡單的外圍電路設計
不需要外圍晶體、復位電路,只需兩顆電容
SOP14/SOP18封裝
注意:以下說明中,0x 表示后面的數據是十六進制。如0x80,表示十六進
制的 80。
4.開發使用指南
UI017 在正常工作時,外圍電路只需要兩顆電容,電腦/平板/手機上不需要裝任何驅動,連接上USB 接口就可以使用。
4.1.引腳定義
UI017 有兩種封裝,請優先選擇SOP14封裝。
4.3.UART數據幀格式
UART的數據幀格式為:9600bps 波特率,8 位數據位,無校驗位,1~2位停止位。上電后,UI017 的UART_RDY引腳輸出低,表明 UI017正在等待上位機初始化,此時,UART_RX引腳不接收任何數據。UI017的 UART_RDY 引腳輸出高后,UI017的 UART_RX 引腳就處于監聽狀態,一旦接收到數據,立即轉換發送給上位機。
4.4.1.ASCII 輸入方式
ASCII輸入方式下,MCU 只需要將需要在 PC 上顯示的ASCII值發給UI017就可以。ASCII表格請參考附錄1。
ASCII輸入方式下,MCU 輸入1 個字節1 個字符,該方式下不能實現組合按鍵。
ASCII輸入方式下,如果 MODE0=低時,MCU 只需發 0x00 就可以釋放當前所有正常按鍵。
如果要在電腦上用串口調試工具發送命令,請參考“串口調試工具設置說明”。如果使用單片機發命令,請參考“單片機發命令 C 語言示例”。
單片機源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- typedef unsigned int uint;
- typedef unsigned char uchar ;
- uchar R_data;
- bit R_flag=0;
- uchar page_up[] = {0x80,0x4b};
- uchar page_down[] = {0x80,0x4e};
- uchar f5[] = {0x80,0x3e};
- uchar esc[] = {0x80,0x29};
- /********************************************************************
- * 名稱 : Uart_Init()
- * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中斷
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void Uart_Init(void)
- {
- TMOD = 0x20; //定時器工作在定時器1的方式2
- PCON = 0x00; //不倍頻
- SCON = 0x50; //串口工作在方式1,并且啟動串行接收
- TH1 = 0xFd; //設置波特率 9600
- TL1 = 0xFd;
- TR1 = 1; //啟動定時器1
- ES = 1; //開串口中斷
- EA = 1; //開總中斷
- }
- /********************************************************************
- * 名稱 : Uart_SendByte(uchar Byte)
- * 功能 : 串口發送1字節數據
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void Uart_SendByte(uchar Byte)
- {
- SBUF = Byte;
- while(!TI) //如果發送完畢,硬件會置位TI
- {
- _nop_();
- }
- TI = 0;
- }
- /********************************************************************
- * 名稱 : Main()
- * 功能 : 主函數
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void main()
- {
- uchar i;
- Uart_Init();
- while(1)
- {
- if(R_flag==1)
- {
- switch(R_data)
- {
- case 1:{for(i=0;i<2;i++) Uart_SendByte(page_up[i]);break;}
- case 2:{for(i=0;i<2;i++) Uart_SendByte(page_down[i]);break;}
- case 3:{for(i=0;i<2;i++) Uart_SendByte(f5[i]);break;}
- case 4:{for(i=0;i<2;i++) Uart_SendByte(esc[i]);break;}
- }
- //P1 = R_data;
- //Uart_SendByte(R_data);
- R_flag=0;
- }
- }
- }
- /********************************************************************
- * 名稱 : Uart_Int()
- * 功能 : 串口中斷子函數
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void Uart_Int(void) interrupt 4
- {
- // static uchar i = 7; //定義為靜態變量,當重新進入這個子函數時 i 的值不會發生改變
- EA = 0;
- if(RI == 1) //當硬件接收到一個數據時,RI會置位
- {
- R_data= SBUF; //這里減去48是因為從電腦中發送過來的數據是ASCII碼。
- RI = 0;
- R_flag=1;
- }
- EA = 1;
- }
復制代碼
0.png (40.36 KB, 下載次數: 77)
下載附件
2018-10-21 02:52 上傳
所有資料51hei提供下載:
PPT翻頁筆.rar
(854.49 KB, 下載次數: 61)
2018-10-21 00:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|