新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機的模擬usb 鍵盤制作例程

        基于51單片機的模擬usb 鍵盤制作例程

        作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
        終于搞了一回USB HID設(shè)備,做了一個USB鍵盤來玩玩~~~~其中的報告描述符讓我暈了幾天~~~~~幾份HID相關(guān)的協(xié)議還是蠻長的~~~~~~明天再弄個USB鼠標(biāo)設(shè)備玩玩~~~~~~~有空的話再搞個紅外遙控器玩玩~~~
        這回是拿以前做的Mass storage來改的,所以比較快,修改了一下描述符以及端點處理等,就行了。用了一個4*4的小鍵盤,有0-9十個數(shù)字鍵,Num Lock鍵,Caps Lock鍵,Shift鍵,Ctrl鍵,Alt鍵,回車鍵等。
        最多可以有三個鍵同時按下,如果相交的話,最多只能兩個鍵按下。
        以下是通過串口返回的調(diào)試信息:
         
        系統(tǒng)啟動................................
        斷開USB連接........................
        USBD12芯片初始化
        設(shè)置地址.....................
        地址為: 0
        連接USB...............
        USB總線復(fù)位................................
        USB總線掛起................................
        USB總線復(fù)位................................
        USB總線掛起................................
        USB總線復(fù)位................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取設(shè)備描述符................................
        USB總線復(fù)位................................
        USB標(biāo)準(zhǔn)請求................................
        設(shè)置地址.....................
        地址為: 2
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取設(shè)備描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取配置描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取字符串描述符................................
        獲取語言ID................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取字符串描述符................................
        獲取設(shè)備序列號................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取配置描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取字符串描述符................................
        獲取語言ID................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取字符串描述符................................
        獲取產(chǎn)品字符串................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取字符串描述符................................
        獲取語言ID................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取字符串描述符................................
        獲取產(chǎn)品字符串................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取設(shè)備描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取配置描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        獲取配置描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符................................
        USB標(biāo)準(zhǔn)請求................................
        設(shè)置配置................................
        USB類請求................................
        設(shè)置空閑................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        獲取報告描述符................................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        USB標(biāo)準(zhǔn)請求................................
        獲取描述符(從接口)..............................
        端點2輸出................................
        端點2的數(shù)據(jù)是 0x01
        端點2輸出................................
        端點2的數(shù)據(jù)是 0x03
        端點2輸出................................
        端點2的數(shù)據(jù)是 0x01
        端點2輸出................................
        端點2的數(shù)據(jù)是 0x00
        端點2輸出................................
        端點2的數(shù)據(jù)是 0x02
        端點2輸出................................
        端點2的數(shù)據(jù)是 0x03
         
        在設(shè)備管理器里看到的圖:

        本文引用地址:http://www.104case.com/article/201611/320917.htm

        原理圖
        (用的是以前做IDE轉(zhuǎn)USB的板,所以上面還有個IDE接口和573鎖存器,可以不用理會它們):
        (注意:原理圖上所標(biāo)的晶體值是以前的,這個程序中使用的是22.1184M的晶體.它關(guān)系到串口波特率,如果你不使用串口,那么可以不用理會它.)
         
         
        注意:圖中串口電平轉(zhuǎn)換部分的C8和C10接反了,C11負(fù)端應(yīng)接VDD。D12的SUSPEND(12腳)應(yīng)該接地。USB接頭的D+和D-跟芯的D+和D-之間應(yīng)該串聯(lián)22歐姆的匹配電阻。片由于圖得比較匆忙,所以沒留意。右擊選擇圖片另存為可以看到完整圖片了.



        關(guān)鍵詞: 51單片機模擬usb制作例

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 长宁区| 沙雅县| 资溪县| 平安县| 贵阳市| 怀远县| 临高县| 温宿县| 海淀区| 池州市| 聂拉木县| 金门县| 德江县| 平江县| 富顺县| 张家界市| 长宁县| 南澳县| 安溪县| 林口县| 涿鹿县| 皋兰县| 威远县| 万安县| 达拉特旗| 天全县| 新巴尔虎左旗| 肥东县| 威远县| 牙克石市| 松滋市| 宁城县| 固始县| 互助| 故城县| 龙海市| 德兴市| 新蔡县| 齐河县| 施秉县| 德格县|