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