该系统的程序设计主要包括两大部分,分别是USB接口部分固件程序和计算机端的CH372驱动程序。前者主要包括了单片机和CH372的初始化、读写接口程序和中断服务程序;后者包括了USB设备的驱动程序和相关
uIP其主要是为8位和16位系统设计的,程序在编写时就考虑到了移植问题。uIP的主要文件包括uip.c和uip_arp.c。 (1)移植的基本过程。 针对所用编译器的类型更改定义数据类型,底层RTL80
volatile的意思是易变的、可变的,作用是限制编译器优化某些变量。首先看一段C51程序: Keil在优化级别是为8时得到如下汇编代码(部分未列出): 可以看到,变量d的值赋给x,y,z时,只有x中
Keil C51编译器是一个完全支持ANSI标准的C语言编译器,除少数关键地方外,KEILC和标准ANSI C语言是基本类似的;但是由于51单片机结构的特殊性,KEIL C进行了一些扩展。 KEIL C51的扩展类型如
USB固件分为通用枚举配置部分和类协议部分。以利用CH375主机端协议与大容量存储设备(例如U盘等)通信为例,介绍固件编程中重要的函数及其实现方法。 主机要想识别USB设备,必须获得设备的各
FFT算法是计算离散傅里叶变换的方法,它大大地减少了运算量,缩短了运算时间,使实时分析成为可能。 按时间抽取的FFT算法通常将原始的数据倒位序存储,最后按照正常顺序输出结果X 下面是128点
单片机的一个浮点数一般在KeilC51中是以4字节形式存储的,格式严格遵循IEEE-754标准。在单片机二进制数据中,浮点数用两个部分来表示,基C为2,E为阶码,M为尾数,E的保存形式是一个0~255的8位值,
为了更好的与实际衔接,有三个方面要考虑:发送FSK信号的形式和参数,解调器的抗干扰性能,即差错率与输入信号比的关系,技术的可行性及设备成本等。从抗干扰性能上考虑我们采用相干解调法最好,但
我们可以用数字滤波方法的C语言程序代码子函数,来完成软件滤波功能。我们假定,从8位AD中读取数据,如果是更高位的AD可以定义数据类型为int,子程序定义为get_ad()。 (1)算术平均滤波程序,
串行A/D转换器转换后的结果是以串行方式输出,数字量以串行方式输出可简化系统的连线,缩小电路板的面积,节省系统的资源。下面以TLC2543为例,介绍串行A/D驱动程序的设计。 89C51单片机与T
AVR单片机问世以来,获得广泛关注。它是一种采用精简指令集、以时钟周期为机器周期的高速单片机。它采用快速寄存器文件(共有32个寄存器 R0~R31,其中R16~R31具有较强通用功能)、快速单周期指令。另外
1.带进位位(C)的寄存器f内容左移循环指令 格式: RLF f.d 其中d=1,结果→f;d→0,结果→w,功能如下图所示。 2.带进位位(C)的寄存器f内容右移循环指令 格式:RRFf.dd的取值
假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();1、限副滤波/* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */#defin
/*==============================================================1ms时标 混合式调度器(一个抢占式任务,多个合作式任务)作者:shadow.hu======================================================