亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 單片機下的USB鍵盤程序
?? C
字號:
/******************************************************************
   本程序只供學習使用,未經作者許可,不得用于其它任何用途
			
        歡迎訪問我的USB專區:http://group.ednchina.com/93/
        歡迎訪問我的blog:   http://www.ednchina.com/blog/computer00
                             http://computer00.21ic.org

        感謝PCB贊助商——電子園: http://bbs.cepark.com/

main.c file

作者:電腦圈圈
建立日期: 2008.06.27
修改日期: 2008.07.14
版本:V1.1
版權所有,盜版必究。
Copyright(C) 電腦圈圈 2008-2018
All rights reserved            
*******************************************************************/

#include <AT89X52.H>  //頭文件
#include "Key.h"
#include "Led.h"
#include "UART.h"
#include "pdiusbd12.h"
#include "UsbCore.h"
#include "config.h"

code uint8 HeadTable[][74]={
"********************************************************************\r\n",
"******             《圈圈教你玩USB》之 USB鍵盤                ******\r\n",
"******                      AT89S52 CPU                       ******\r\n",
"******                  建立日期:",__DATE__,"                 ******\r\n",
"******                   建立時間:",__TIME__,"                   ******\r\n",
"******                    作者:電腦圈圈                      ******\r\n",
"******                    歡迎訪問作者的                      ******\r\n",
"******           USB專區:http://group.ednchina.com/93/       ******\r\n",
"******      BLOG1:http://www.ednchina.com/blog/computer00    ******\r\n",
"******                BLOG2:http://computer00.21ic.org       ******\r\n",
"******                  請按K1-K8分別進行測試                 ******\r\n",
"******       K1:左Ctrl鍵  K2:左Shift鍵  K3:左Alt鍵  K4:1鍵    ******\r\n",
"******       K5:2鍵  K6:3鍵  K7:Caps Lock鍵 K8:Num Lock鍵     ******\r\n",
"******  注意:數字鍵是數字小鍵盤,必須打開Num Lock才是數字鍵  ******\r\n",
"********************************************************************\r\n",
};

/********************************************************************
函數功能:根據按鍵情況返回報告的函數。
入口參數:無。
返    回:無。
備    注:無。
********************************************************************/
void SendReport(void)
{
 //需要返回的8字節報告的緩沖
 //通過報告描述符的定義及HID用途表文檔,可知Buf[0]的D0是左Ctrl鍵,
 //D1是左Shift鍵,D2是左Alt鍵,D3是左GUI(即Window鍵),
 //D4是右Ctrl,D5是右Shift,D6是右Alt,D7是右GUI鍵。
 //Buf[1]保留,值為0。Buf[2]~Buf[7]為鍵值,最多可以有6個。
 //由于我們這里普通鍵最多只有5個,因此不會超過6個。
 //對于實際的鍵盤,如果按鍵數太多時,后面的6個字節都為0xFF,
 //表示按下的鍵太多,無法正確返回。
 
 uint8 Buf[8]={0,0,0,0,0,0,0,0};
 //由于需要返回多個按鍵,所以需要增加一個變量來保存當前的位置。
 uint8 i=2;
 
 //根據不同的按鍵設置輸入報告
 if(KeyPress & KEY1) //如果KEY1按住
 {
  Buf[0]|=0x01;  //KEY1為左Ctrl鍵。
 }
 if(KeyPress & KEY2) //如果KEY2按住
 {
  Buf[0]|=0x02;  //KEY2為左Shift鍵。
 }
 if(KeyPress & KEY3) //如果KEY3按住
 {
  Buf[0]|=0x04;  //KEY3為左Alt鍵
 }
 if(KeyPress & KEY4) //如果KEY4按住
 {
  Buf[i]=0x59;  //KEY4為數字小鍵盤1鍵。
  i++;  //切換到下個位置。
 }
 if(KeyPress & KEY5)  //如果KEY5按住
 {
  Buf[i]=0x5A;  //KEY5數字小鍵盤2鍵。
  i++;  //切換到下個位置。
 }
 if(KeyPress & KEY6)  //如果KEY6按住
 {
  Buf[i]=0x5B;  //KEY6為數字小鍵盤3鍵。
  i++;  //切換到下個位置。
 }
 if(KeyPress & KEY7)  //如果KEY7按住
 {
  Buf[i]=0x39;  //KEY7為大/小寫切換鍵。
  i++;  //切換到下個位置。
 }
 if(KeyPress & KEY8)  //如果KEY8按住
 {
  Buf[i]=0x53;  //KEY8為數字小鍵盤功能切換鍵。
 }
 //報告準備好了,通過端點1返回,長度為8字節。
 D12WriteEndpointBuffer(3,8,Buf);
 Ep1InIsBusy=1;  //設置端點忙標志。
 //記得清除KeyUp和KeyDown
 KeyUp=0;
 KeyDown=0;
}
////////////////////////End of function//////////////////////////////

/********************************************************************
函數功能:主函數。
入口參數:無。
返    回:無。
備    注:無。
********************************************************************/
void main(void)  //主函數
{
 uint8 i;
 uint16 id;
 uint8 InterruptSource;
 
 EA=1; //打開中斷
 InitKeyboard(); //初始化按鍵
 InitUART();  //初始化串口
 
 for(i=0;i<19;i++)	  //顯示信息
 {
  Prints(HeadTable[i]);
 }
 
 id=D12ReadID();

 Prints("Your D12 chip\'s ID is: ");
 PrintShortIntHex(id);

 if(id==0x1012)
 {
  Prints(". ID is correct! Congratulations!\r\n\r\n");
 }
 else
 {
  Prints(". ID is incorrect! What a pity!\r\n\r\n");
 }
 
 UsbDisconnect();  //先斷開USB連接
 UsbConnect();  //將USB連接上
 ConfigValue=0; //配置值初始化為0
 
 while(1)  //死循環
 {
  if(D12GetIntPin()==0) //如果有中斷發生
  {
   D12WriteCommand(READ_INTERRUPT_REGISTER);  //寫讀中斷寄存器的命令
   InterruptSource=D12ReadByte(); //讀回第一字節的中斷寄存器
   if(InterruptSource&0x80)UsbBusSuspend(); //總線掛起中斷處理
   if(InterruptSource&0x40)UsbBusReset();   //總線復位中斷處理
   if(InterruptSource&0x01)UsbEp0Out();     //端點0輸出中斷處理
   if(InterruptSource&0x02)UsbEp0In();      //端點0輸入中斷處理
   if(InterruptSource&0x04)UsbEp1Out();     //端點1輸出中斷處理
   if(InterruptSource&0x08)UsbEp1In();      //端點1輸入中斷處理
   if(InterruptSource&0x10)UsbEp2Out();     //端點2輸出中斷處理
   if(InterruptSource&0x20)UsbEp2In();      //端點2輸入中斷處理
  }
  if(ConfigValue!=0) //如果已經設置為非0的配置,則可以返回報告數據
  {
   if(!Ep1InIsBusy)  //如果端點1輸入沒有處于忙狀態,則可以發送數據
   {
    KeyCanChange=0;  //禁止按鍵掃描
    if(KeyUp||KeyDown) //如果有按鍵事件發生
    {
     SendReport();  //則返回報告
    }
    KeyCanChange=1;  //允許按鍵掃描
   }
  }
 }
}
////////////////////////End of function//////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香婷婷深情五月亚洲| 国产亚洲一二三区| 久久亚洲精精品中文字幕早川悠里| 久久伊人中文字幕| 亚洲成人一二三| 成人免费视频国产在线观看| 欧美精品九九99久久| 亚洲三级电影网站| 国产91高潮流白浆在线麻豆 | 亚洲午夜精品17c| 国产成人免费网站| 91精品国产欧美日韩| 亚洲成人三级小说| 91视频精品在这里| 中文字幕亚洲成人| 国产成人亚洲综合a∨婷婷图片| 欧美日韩激情一区二区| 悠悠色在线精品| 99国产欧美另类久久久精品 | 亚洲欧美成aⅴ人在线观看 | 国产精品区一区二区三| 国产乱妇无码大片在线观看| 日韩精品中文字幕在线一区| 日韩av不卡一区二区| 欧美天堂一区二区三区| 一区二区三区色| 在线观看日韩精品| 亚洲一区二区黄色| 欧美老女人第四色| 日本 国产 欧美色综合| 欧美高清视频不卡网| 亚洲国产视频网站| 欧美久久久久久蜜桃| 日韩国产欧美一区二区三区| 欧美一卡2卡三卡4卡5免费| 秋霞成人午夜伦在线观看| 8x8x8国产精品| 美国精品在线观看| 日韩精品一区二区三区四区| 九九精品一区二区| 国产欧美日韩另类一区| www.成人在线| 一区二区三区欧美视频| 欧美日韩精品系列| 久久福利资源站| 久久久不卡影院| 91在线你懂得| 日韩在线一区二区| 26uuu成人网一区二区三区| 国产精品18久久久久久久久 | 91天堂素人约啪| 亚洲永久免费av| 欧美一区二区三区免费在线看| 免费人成在线不卡| 国产亚洲欧美在线| 欧美性一级生活| 麻豆视频观看网址久久| 国产欧美一区二区精品忘忧草| 不卡一区在线观看| 亚洲高清免费视频| 久久久精品免费观看| 一本久道中文字幕精品亚洲嫩| 午夜久久电影网| 中文字幕成人在线观看| 欧美日韩在线一区二区| 黄网站免费久久| 一二三区精品福利视频| 久久久亚洲国产美女国产盗摄 | 7777女厕盗摄久久久| 韩国精品一区二区| 亚洲一区二区三区国产| 久久久精品tv| 3d成人h动漫网站入口| 国产丶欧美丶日本不卡视频| 一区二区三区国产精华| 久久久精品国产免大香伊| 欧美日韩一区二区三区在线| 国产99久久久国产精品免费看| 亚洲第一久久影院| 国产精品久久久久一区二区三区共| 在线观看不卡视频| 不卡一区二区三区四区| 麻豆精品视频在线观看免费| 一区二区三国产精华液| 亚洲国产精品传媒在线观看| 日韩欧美国产三级| 欧美天堂一区二区三区| 99re视频这里只有精品| 国产一区欧美二区| 麻豆精品视频在线观看视频| 亚洲国产美国国产综合一区二区| 国产精品久久久久久久久免费樱桃 | 久久蜜桃一区二区| 91精品国模一区二区三区| 白白色 亚洲乱淫| 国产99久久久国产精品潘金网站| 日韩高清欧美激情| 亚洲国产另类av| 亚洲最新在线观看| 亚洲伦理在线免费看| 亚洲人123区| 亚洲日本中文字幕区| 国产精品久久久久久久蜜臀 | 精品国免费一区二区三区| 欧美精品v国产精品v日韩精品 | 久久精品欧美日韩| 久久网这里都是精品| 日韩一级完整毛片| 日韩视频免费观看高清完整版在线观看 | 一区二区三区国产| 一区二区在线免费| 亚洲欧美日韩一区二区| 18成人在线观看| 亚洲欧美日韩人成在线播放| 亚洲精品久久久蜜桃| 成人免费在线视频| 亚洲女性喷水在线观看一区| 一级女性全黄久久生活片免费| 亚洲精品欧美专区| 亚洲国产精品久久艾草纯爱| 亚洲国产精品尤物yw在线观看| 亚洲成人动漫在线观看| 日本成人在线一区| 国产乱码精品一区二区三区忘忧草 | 欧美熟乱第一页| 欧美人动与zoxxxx乱| 日韩欧美资源站| 久久网这里都是精品| 国产精品乱人伦中文| 一区二区在线免费观看| 欧美aaaaa成人免费观看视频| 另类人妖一区二区av| 国产高清不卡一区| 91丨九色丨国产丨porny| 欧美日韩精品高清| 久久久影院官网| 一区二区三区日韩欧美精品 | 亚洲狠狠爱一区二区三区| 日本不卡一区二区三区高清视频| 精品夜夜嗨av一区二区三区| 成人激情动漫在线观看| 色婷婷亚洲精品| 日韩视频一区二区在线观看| 中文字幕乱码亚洲精品一区| 亚洲一区在线观看免费| 精品一区二区三区av| 99精品欧美一区| 日韩视频免费直播| 国产精品国产三级国产| 蜜臀av一区二区在线观看| 国产99久久久国产精品潘金网站| 欧美最猛黑人xxxxx猛交| 精品国产免费人成电影在线观看四季| 国产精品视频九色porn| 五月激情六月综合| 成人av综合在线| 日韩午夜在线影院| 亚洲精品第一国产综合野| 精品一区二区三区久久久| 在线观看一区日韩| 国产日韩欧美精品电影三级在线 | 欧美一区二区精品| 亚洲免费观看高清| 国产91精品久久久久久久网曝门 | 国产精品资源在线看| 欧美猛男超大videosgay| 中文字幕亚洲一区二区av在线| 另类小说视频一区二区| 欧美丝袜自拍制服另类| 国产精品久久久久aaaa樱花| 久久97超碰色| 91麻豆精品国产自产在线观看一区 | 久久影院视频免费| 日韩av中文字幕一区二区三区| 97久久超碰国产精品电影| 久久这里只有精品视频网| 美女一区二区在线观看| 欧洲人成人精品| 亚洲女同ⅹxx女同tv| 成人深夜福利app| 国产午夜亚洲精品羞羞网站| 日本欧美一区二区三区| 欧美日韩免费观看一区二区三区| 国产精品久久二区二区| 风间由美一区二区三区在线观看| 欧美一区二区三区在线视频| 亚洲va天堂va国产va久| 欧美专区亚洲专区| 一区二区三区四区不卡视频| 色综合视频在线观看| 亚洲欧美一区二区在线观看| 成人黄色av网站在线| 国产精品女主播av| 大陆成人av片| 一区在线中文字幕| 99精品视频在线播放观看| 亚洲色欲色欲www| 色噜噜偷拍精品综合在线| 亚洲另类在线一区| 欧美日韩视频在线观看一区二区三区|