第一章USB概述及协议基础11.1USB是什么11.2USB的特点11.3USB的拓扑结构21.4USB的电气特性51.5USB的线缆以及插头、插座51.6USB的插入检测机制71.7USB的描述符及其之间的关系91.8USB设备的枚举过程101.9USB的包结构及传输过程111.9.1USB包的结构及包的分类111.9.2令牌包131.9.3数据包141.9.4握手包141.9.5特殊包151.9.6如何处理数据包151.10USB的四种传输类型161.10.1USB事务161.10.2批量传输161.10.3中断传输181.10.4等时传输(同步传输)191.10.5控制传输201.10.6端点类型与传输类型的关系211.10.7传输类型与端点支持的最大包长211.11本章小结21第二章硬件系统设计12.1方案以及芯片的选定12.2D12引脚功能说明22.3D12与89S52的连接42.4串口部分电路62.5按键部分72.6指示灯部分72.7IDE接口部分82.8单片机部分82.9元件安装82.10电路调试112.11测试程序的编写和调试122.11.1建立一个工程122.11.2为工程添加源文件142.11.3KEIL工具栏及仿真介绍152.11.4按键驱动的编写182.11.5串口驱动的编写242.11.6PDIUSBD12读写函数及读ID的实现282.12本章小结33第三章USB鼠标的实现13.1USB鼠标工程的建立13.2USB的断开与连接13.3USB中断的处理43.4读取从主机发送到端点0的数据63.5USB标准请求123.5.1USB标准设备请求的结构133.5.2GET_DESCRIPTOR请求153.5.3SET_ADDRESS请求163.5.6SET_CONFIGURATION请求163.6设备描述符的实现173.7设备描述符的返回203.8设置地址请求的处理303.9配置描述符集合的结构323.9.1配置描述符的结构323.9.2接口描述符的结构333.9.3端点描述符的结构333.9.4HID描述符的结构343.10配置描述符集合的实现以及返回353.11字符串及语言ID请求的实现393.12设置配置请求的实现453.13报告描述符的结构及实现483.14报告的返回543.15BusHound工具的简介573.16本章小结59第四章USB键盘的实现14.1USB键盘工程的建立14.2设备描述符的实现14.4配置描述符集合的实现24.4.1配置描述符34.4.2接口描述符34.4.3HID描述符34.4.4端点描述34.5字符串描述符64.6报告描述符64.7输入和输出报告的实现104.8USB键盘实例的测试134.9再谈USBHID的报告描述符144.10带鼠标功能的USB键盘(方法一)164.11带鼠标功能的键盘(方法二)224.12多媒体USB键盘294.13本章小结34第五章用户自定义的USBHID设备15.1MyUsbHid工程的建立15.2描述符的修改15.3报告的实现35.4对用户自定义的USBHID设备的访问55.5访问HID设备时所用到的相关函数55.5.1获取HID设备的接口类GUID的函数
2024/3/16 16:12:34 19.65MB 圈圈教你玩USB 全书 151-313页
1
串口记录仪中的SD卡工作原理代码 一次记录一半,刷存储表//SD中断用来返回记完标志位//按键中断用来刷新存储表。
2024/3/16 15:21:44 4.21MB stm32f103 sd卡
1
清华大学电子系微机原理课程设计题目。
4人合作完成。
包含CPU的VHDL、Verilog源代码、仿真文件、波形结果、系统框图、实验报告、以及一个简易汇编器的源代码和可执行文件。
Quartus仿真实现了32位RISC微处理器,支持数据处理(包括乘除法),数据传送,子程序调用,中断及跳转。
时序仿真主频可达70MHz。
采用Tomasulo算法处理指令流水中的数据相关,并提出了一种对Tomasulo就够的改进。
设计了Cache结构提高访存效率。
2024/3/13 17:01:33 3.42MB Cache
1
1. 8088地址线有位,外部数据线有位。
2. 虚拟存储器采用层结构。
虚拟存储空间为3. 最小模式是指,最大模式是指。
4. 中断向量是指,若中断类型码为18H,则它对应的中断向量存放在从地址开始的4个地址中,若这4个字节单元内容从低字节到高字节依次为10H、20H、30H、40H,则相应的中断向量是_________。
5.复位后,CS=_________,IP=_________,因此程序从_________地址处开始执行。
6.若采用异步发送,1个起始位,7个数据位,1个偶校验,1个停止位,每秒发送60个字符,则它的波特率是_________。
7.在8255A的三个端口中,_________口既可以当普通的I/O口使用,又可以为其他端口提供联络信号。
1
浙江大学生仪考研复试用书。
本书以MCS-51系列单片机为基本内容,介绍了微型机的基本概念,阐明了8051机的内核结构、工作原理、面向用户的特性、指令系统、程序设计以及常用外围芯片;
叙述了单片机存储器系统设计、输入输出接口设计、A/D、D/A转换技术和中断系统的设计与应用;
讨论了用户系统软硬件的设计方法;
C51高级语言程序设计等;
最后还介绍了最新的MCS-51系列中独具特色的新型兼容机及其新增特性。
各章均附有习题与思考题。
2024/3/13 5:06:27 33.94MB 51 单片机
1
包括串口、键盘、中断等28个常用的51单片机的设计实例,包括汇编代码和proteus仿真图
2024/3/7 5:01:18 952KB 51单片机实例
1
#include#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineLED_DATP0sbitLED_SEG0=P2^7;sbitLED_SEG1=P2^6;sbitLED_SEG2=P2^5;sbitLED_SEG3=P2^4;#defineTIME_CYLC100//12M晶振,定时器10ms中断一次我们1秒计算一次转速//1000ms/10ms=100#definePLUS_PER10//码盘的齿数,这里假定码盘上有10个齿,即传感器检测到10个脉冲,认为1圈#defineK1.65//校准系数unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchardataDisbuf[4];//显示缓冲区uintTcounter=0;//时间计数器bitFlag_Fresh=0;//刷新标志bitFlag_clac=0;//计算转速标志bitFlag_Err=0;//超量程标志voidDisplayFresh();//在数码管上显示一个四位数voidClacSpeed();//计算转速,并把结果放入数码管缓冲区voidinit_timer();//初始化定时器T0\T1voidDelay(uintms);//延时函数voidit_timer0()interrupt1/*interruptaddressis0x000b*/{TF0=0;//定时器T0用于数码管的动态刷新TH0=0xC0;TL0=0x00;Flag_Fresh=1;Tcounter++;if(Tcounter>TIME_CYLC){Flag_clac=1;//周期到,该重新计算转速了}}voidit_timer1()interrupt3/*interruptaddressis0x001b*/{TF1=0;//定时器T1用于单位时间内收到的脉冲数//要速度不是很快,T1永远不会益处Flag_Err=1;//如果速度很高,我们应考虑另外一种测速方法:T测速法}voidmain(void){Disbuf[0]=0;//开机时,初始化为0000Disbuf[1]=0;Disbuf[2]=0;Disbuf[3]=0;init_timer();while(1){if(Flag_Fresh){Flag_Fresh=0;DisplayFresh();//定时刷新数码管显示}if(Flag_clac){Flag_clac=0;ClacSpeed();//计算转速,并把结果放入数码管缓冲区Tcounter=0;//周期定时清零TH1=TL1=0x00;//脉冲计数清零}if(Flag_Err)//超量程处理{Disbuf[0]=0x9e;//开机时,初始化为0000Disbuf[1]=0x9e;Disbuf[2]=0x9e;Disbuf[3]=0x9e;while(1){DisplayFresh();//不再测速等待复位i}}}}//在数码管上显示一个四位数voidDisplayFresh(){P2|=0xF0;LED_SEG0=0;LED_DAT=table[Disbuf[0]];Delay(1);P2|=0xF0;LED_SEG1=0;LED_DAT=table[Disbuf[1]];Delay(1);P2|=0xF0;LED_SEG2=0;LED_DAT=table[Disbuf[2]];Delay(1);P2|=0xF0;LED_SEG3=0;LED_DAT=table[Disbuf[3]];Delay(1);P2|=0xF0;}//计算转速,并
2024/3/2 19:19:54 400KB 光电传感器、测速、protus、pcb
1
89C51/52单片机头文件内容详解sfrP0=0x80;//P0口sfrP1=0x90;//P1口sfrP2=0xA0;//P2口sfrP3=0xB0;//P3口sfrPSW=0xD0;//程序状态字,具体位意义见位定义sfrACC=0xE0;//累加器,程序员最常用的sfrB=0xF0;//寄存器,主要用于乘除sfrSP=0x81;//堆栈指针,初始化为07;
先加1后压栈,先出栈再减1,sfrDPL=0x82;sfrDPH=0x83;//数据指针,用途大sfrPCON=0x87;//电源控制sfrTCON=0x88;//Timer/Counter控制sfrTMOD=0x89;//Timer/Counter方式控制sfrTL0=0x8A;sfrTL1=0x8B;//sfrTH0=0x8C;//存着当前的计数值sfrTH1=0x8D;//我就想不明白,当时设计的时候,为什么不把TH0,TL0放在连续的地址!sfrIE=0xA8;//好东西,中断控制sfrIP=0xB8;//中断优先级控制,没有设计过要求时间严格的系统,所以至今没有用过sfrSCON=0x98;//哇,熟悉,串口控制寄存器sfrSBUF=0x99;//哇,更熟悉,串口缓冲寄存器/*BITRegister*//*PSW*/sbitCY=0xD7;//进位或借位,有就是1,没有就是0sbitAC=0xD6;//辅助进借位,(麻烦b)sbitF0=0xD5;//没有具体用途,可以由用户决定
2024/3/2 6:23:53 90KB 头文件详解
1
用STM8S003最小系统的PC3、PC4引脚模拟串口接收发送,接收数据用中断实现,通道检测接收引脚下降沿来开始接收数据,避免了用查询方式接收时漏掉数据的情况。
2024/2/29 9:51:17 50KB STM8 模拟 串口 中断
1
共 503 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡