虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

define

define,宏定义,C语言中预处理命令一种。分为无参宏定义和带参宏定义。无参宏定义的一般形式为:#define宏名字符串;带参宏定义的一般形式为:#define宏名(参数表)字符串;
  • Protocol Engineering

    Communication protocols – for short protocols – form the basis for the opera- tion of computer networks and telecommunication systems. They are behavior conventions which describe how communication systems interact with each other in computer networks. Protocols define the temporal order of the interactions and the formats of the data units exchanged. Communication protocols comprise a wide range of different functions and mechanisms, such as the sending and receiv- ing of data units, their coding/decoding, error control mechanisms, timer control, flow control, and many others. 

    标签: Engineering Protocol

    上传时间: 2020-05-31

    上传用户:shancjb

  • VoIP+and+Unified+Communications

    This book intends to prepare you to define Unified Communications (UC) for yourself and then get it to work for you. Each vendor pulls together from its available products a package of features related to voice, data, messaging, and image communications. That’s UC for one vendor, but it’s unlikely to match exactly the UC from another vendor. You need a detailed specification to know what you’ll see installed.

    标签: Communications Unified VoIP and

    上传时间: 2020-06-01

    上传用户:shancjb

  • Autonomous+Robots+Modeling,+Path+Planning

    A kinematically redundant manipulator is a serial robotic arm that has more independently driven joints than are necessary to define the desired pose (position and orientation) of its end-effector. With this definition, any planar manipulator (a manipulator whose end-effector motion is restrained in a plane) with more than three joints is a redundant manipulator. Also, a manipulator whose end-effector can accept aspatialposeisaredundant manipulator ifithas morethan sixindependently driven joints. For example, the manipulator shown in Fig. 1.1 has two 7-DOF arms mounted on a torso with three degrees of freedom (DOFs). This provides 10 DOFs for each arm. Since the end-effector of each arm can have a spatial motion with six DOFs, the arms are redundant.

    标签: Autonomous Modeling Planning Robots Path

    上传时间: 2020-06-10

    上传用户:shancjb

  • Deep_Learning_for_Computer_Architects

    This book is intended to be a general introduction to neural networks for those with a computer architecture, circuits, or systems background. In the introduction (Chapter 1), we define key vo- cabulary, recap the history and evolution of the techniques, and for make the case for additional hardware support in the field.

    标签: Deep_Learning_for_Computer_Archit ects

    上传时间: 2020-06-10

    上传用户:shancjb

  • 二叉树子系统

    #include<stdio.h> #define TREEMAX 100 typedef struct  BT { char data; BT *lchild; BT *rchild; }BT; BT *CreateTree(); void Preorder(BT *T); void Postorder(BT *T); void Inorder(BT *T); void Leafnum(BT *T); void Nodenum(BT *T); int TreeDepth(BT *T); int count=0; void main() { BT *T=NULL; char ch1,ch2,a; ch1='y'; while(ch1=='y'||ch1=='y') { printf("\n"); printf("\n\t\t             二叉树子系统"); printf("\n\t\t*****************************************"); printf("\n\t\t           1---------建二叉树            "); printf("\n\t\t           2---------先序遍历            "); printf("\n\t\t           3---------中序遍历            "); printf("\n\t\t           4---------后序遍历            "); printf("\n\t\t           5---------求叶子数            "); printf("\n\t\t           6---------求结点数            "); printf("\n\t\t           7---------求树深度            "); printf("\n\t\t           0---------返    回            "); printf("\n\t\t*****************************************"); printf("\n\t\t      请选择菜单号 (0--7)"); scanf("%c",&ch2); getchar(); printf("\n"); switch(ch2) { case'1': printf("\n\t\t请按先序序列输入二叉树的结点:\n"); printf("\n\t\t说明:输入结点(‘0’代表后继结点为空)后按回车。\n"); printf("\n\t\t请输入根结点:"); T=CreateTree(); printf("\n\t\t二叉树成功建立!\n");break; case'2': printf("\n\t\t该二叉树的先序遍历序列为:"); Preorder(T);break; case'3': printf("\n\t\t该二叉树的中序遍历序列为:"); Inorder(T);break; case'4': printf("\n\t\t该二叉树的后序遍历序列为:"); Postorder(T);break; case'5': count=0;Leafnum(T); printf("\n\t\t该二叉树有%d个叶子。\n",count);break; case'6': count=0;Nodenum(T); printf("\n\t\t该二叉树总共有%d个结点。\n",count);break; case'7': printf("\n\t\t该树的深度为:%d",TreeDepth(T)); break; case'0': ch1='n';break; default: printf("\n\t\t***请注意:输入有误!***"); } if(ch2!='0') { printf("\n\n\t\t按【Enter】键继续,按任意键返回主菜单!\n"); a=getchar(); if(a!='\xA') { getchar(); ch1='n'; } } } } BT *CreateTree() { BT *t; char x; scanf("%c",&x); getchar(); if(x=='0') t=NULL; else { t=new BT; t->data=x; printf("\n\t\t请输入%c结点的左子结点:",t->data);         t->lchild=CreateTree(); printf("\n\t\t请输入%c结点的右子结点:",t->data);         t->rchild=CreateTree();     } return t; } void Preorder(BT *T) { if(T) { printf("%3c",T->data); Preorder(T->lchild); Preorder(T->rchild); } } void Inorder(BT *T) { if(T) { Inorder(T->lchild); printf("%3c",T->data); Inorder(T->rchild); } } void Postorder(BT *T) { if(T) { Postorder(T->lchild); Postorder(T->rchild); printf("%3c",T->data); } } void Leafnum(BT *T) { if(T) { if(T->lchild==NULL&&T->rchild==NULL) count++; Leafnum(T->lchild); Leafnum(T->rchild); } } void Nodenum(BT *T) { if(T) { count++; Nodenum(T->lchild); Nodenum(T->rchild); } } int TreeDepth(BT *T) { int ldep,rdep; if(T==NULL) return 0; else { ldep=TreeDepth(T->lchild); rdep=TreeDepth(T->rchild); if(ldep>rdep) return ldep+1; else return rdep+1; } }

    标签: 二叉树 子系统

    上传时间: 2020-06-11

    上传用户:ccccy

  • 数组子系统

    #include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t请输入稀疏矩阵的行数,列数和非零元素个数(用逗号隔开):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t输入非零元素值(格式:行号,列号,值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t对角线元素的和::%d\n",p->v); else printf("\n\t\t对角线元素的和为::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t      稀疏矩阵的三元组系统       "); printf("\n\t\t*********************************"); printf("\n\t\t      1------------创建          "); printf("\n\t\t      2------------显示          "); printf("\n\t\t      3------------求对角线元素和"); printf("\n\t\t      4------------返回          "); printf("\n\t\t*********************************"); printf("\n\t\t请选择菜单号(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t输入错误!请重新输入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }

    标签: 数组 子系统

    上传时间: 2020-06-11

    上传用户:ccccy

  • 基于51单片机的RS485从机系统设计

    题目:基于51单片机的RS485从机系统设计   单片机接口资源配置: 1.   上电复位电路; 2.   晶振电路采用11.0592Mhz晶振; 3.   485接口电路(P3.7用于485芯片的收发控制,收发管脚接单片机的rxd和txd); 4.   P2口通过外部跳线接相应的高低电平,配置从机地址为组号; 5.   P3.6外接一发光二极管(注意串联电阻进行限流); 6.   P3.2外接一按键,断开高电平,按下低电平; 7.   按键检测采用外部中断方式,下跳沿触发; 8.   单片机定时器0以模式1(16位模式)工作,产生50ms的定时中断,并在此基础上设计一单片机内部时钟(24小时制,能计数时、分、秒、50ms值); 9.   单片机串行通信采用模式1非多机通信方式,采用9600波特率以串行中断方式进行数据的收发通信,主机地址为0xF0,广播地址为0xFF。   系统功能需求: 1.   系统配置和自检功能: l  从机上电后进行初始化,通过读取P2口进行从机地址配置; l  发光二极管以每秒一次的频率闪烁(亮0.5秒,灭0.5秒); l  检测到一次按键按下操作后,熄灭发光二极管。   2.   数据接收和按键计时功能: l  从机接收主机程序(PC机上的串口调试程序)的按键允许命令帧并进行校验; l  校验正确并且目的地址是广播地址或者本从机的地址,通过发光二极管长亮指示,并允许按键操作; l  按键按下后,尽可能准确记录按键的动作时点(定时器的低8位、定时器的高8位、50ms值、秒、分、小时); l  按键操作只能响应一次,重复按键操作不响应; l  按键的动作时点记录后,发光二极管以每秒一次的频率闪烁(亮0.5秒,灭0.5秒)。   3.   数据发送功能: l  从机接收主机程序发来的时钟数据搜索命令帧并进行校验; l  如果校验正确并且数据帧的目的地址是本从机的地址,从机将前面记录的按键动作时点数据(定时器的低8位、定时器的高8位、50ms值、秒、分、小时)按附录中的时钟数据返回帧的帧格式回传给主机; l  时钟数据返回帧回传结束后,熄灭发光二极管。   4.   校验和生成和检测功能: l  发送数据帧时能自动生成数据帧校验和; l  每帧数据在发送帧尾前,发送一字节的当前帧数据的校验和; l  接收数据帧时能检测校验和并判断接收数据是否正确。 附录:帧定义   校验和的计算:除去帧头和帧尾后将帧中的其他数据求和并取低8位; 帧长:不计帧头、帧尾和校验和字节。   按键允许命令帧: 帧头 帧长 目的地址 源地址 命令字 校验和 帧尾 AA 04 FF F0 01 F4 66   时钟数据搜索命令帧: 帧头 帧长 目的地址 源地址 命令字  保留字 校验和 帧尾 AA 05 01 F0 03 00 F9 66   时钟数据返回帧: 帧头 帧长 目的地址 源地址 命令字 TL0 TH0 50ms 秒 分 时 校验和 帧尾 AA 0A F0 01 07 01 B6 09 03 00 00 C5 66     帧结构头文件frame.h(内容如下) //帧格式定义 #define FRAME_HEAD 0xAA    //帧头 #define FRAME_FOOT 0x66    //帧尾 #define FRAME_LEN  0x00    //帧长 #define FRAME_DST_ADR 0x01  //目的地址 #define FRAME_SRC_ADR 0x02 //源地址 #define FRAME_CMD  0x03    //命令字 #define FRAME_DATA 0x04    //帧数据起始 //帧命令定义 #define READY 0x01         //按键允许命令 #define TIME_SERCH 0x03    //时钟数据轮询命令 #define TIME_BACK  0x07    //时钟数据返回命令 //地址定义 #define BROAD_ADR  0xFF    //广播地址 #define MASTER_ADR 0xF0    //主机地址        

    标签: 51单片机 从机通信

    上传时间: 2020-06-18

    上传用户:umuo

  • lm75A温度数字转换器 FPGA读写实验Verilog逻辑源码Quartus工程文件+文档资料

    lm75A温度数字转换器 FPGA读写实验Verilog逻辑源码Quartus工程文件+文档资料,FPGA为CYCLONE4系列中的EP4CE6E22C8. 完整的工程文件,可以做为你的学习设计参考。LM75A 是一个使用了内置带隙温度传感器和模数转换技术的温度数字转换器。它也是一个温度检测器,可提供一个过热检测输出。LM75A 包含许多数据寄存器:配置寄存器用来存储器件的某些配置,如器件的工作模式、OS 工作模式、OS 极性和OS 故障队列等(在功能描述一节中有详细描述);温度寄存器(Temp),用来存储读取的数字温度;设定点寄存器(Tos & Thyst),用来存储可编程的过热关断和滞后限制,器件通过2 线的串行I2C 总线接口与控制器通信。LM75A 还包含一个开漏输出(OS),当温度超过编程限制的值时该输出有效。LM75A 有3 个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。LM75A 可配置成不同的工作条件。它可设置成在正常工作模式下周期性地对环境温度进行监控或进入关断模式来将器件功耗降至最低。OS 输出有2 种可选的工作模式:OS 比较器模式和OS 中断模式。OS 输出可选择高电平或低电平有效。故障队列和设定点限制可编程,为了激活OS 输出,故障队列定义了许多连续的故障。温度寄存器通常存放着一个11 位的二进制数的补码,用来实现0.125℃的精度。这个高精度在需要精确地测量温度偏移或超出限制范围的应用中非常有用。正常工作模式下,当器件上电时,OS 工作在比较器模式,温度阈值为80℃,滞后75℃,这时,LM75A就可用作一个具有以上预定义温度设定点的独立的温度控制器。module LM75_SEG_LED ( //input input                   sys_clk           ,input                   sys_rst_n         ,inout                   sda_port          ,//output output wire              seg_c1         ,output wire              seg_c2         ,output wire              seg_c3         ,output wire              seg_c4         ,output reg               seg_a          ,output reg               seg_b          ,output reg               seg_c          ,output reg               seg_e          ,output reg               seg_d          ,output reg               seg_f          ,output reg               seg_g          ,output reg               seg_h          ,      output reg              clk_sclk                        );//parameter define parameter WIDTH = 8;parameter SIZE  = 8;//reg define reg    [WIDTH-1:0]       counter             ;reg    [9:0]             counter_div         ;reg                      clk_50k             ;reg                      clk_200k            ;reg                      sda                 ;reg                      enable              ;

    标签: lm75a 数字转换器 fpga verilog

    上传时间: 2021-10-27

    上传用户:

  • IIC接口E2PROM(AT24C64) 读写VERILOG 驱动源码+仿真激励文件: module

    IIC接口E2PROM(AT24C64) 读写VERILOG 驱动源码+仿真激励文件:module i2c_dri    #(      parameter   SLAVE_ADDR = 7'b1010000   ,  //EEPROM从机地址      parameter   CLK_FREQ   = 26'd50_000_000, //模块输入的时钟频率      parameter   I2C_FREQ   = 18'd250_000     //IIC_SCL的时钟频率    )   (                                                                input                clk        ,        input                rst_n      ,                                                //i2c interface                          input                i2c_exec   ,  //I2C触发执行信号    input                bit_ctrl   ,  //字地址位控制(16b/8b)    input                i2c_rh_wl  ,  //I2C读写控制信号    input        [15:0]  i2c_addr   ,  //I2C器件内地址    input        [ 7:0]  i2c_data_w ,  //I2C要写的数据    output  reg  [ 7:0]  i2c_data_r ,  //I2C读出的数据    output  reg          i2c_done   ,  //I2C一次操作完成    output  reg          i2c_ack    ,  //I2C应答标志 0:应答 1:未应答    output  reg          scl        ,  //I2C的SCL时钟信号    inout                sda        ,  //I2C的SDA信号                                           //user interface                       output  reg          dri_clk       //驱动I2C操作的驱动时钟     );//localparam definelocalparam  st_idle     = 8'b0000_0001; //空闲状态localparam  st_sladdr   = 8'b0000_0010; //发送器件地址(slave address)localparam  st_addr16   = 8'b0000_0100; //发送16位字地址localparam  st_addr8    = 8'b0000_1000; //发送8位字地址localparam  st_data_wr  = 8'b0001_0000; //写数据(8 bit)localparam  st_addr_rd  = 8'b0010_0000; //发送器件地址读localparam  st_data_rd  = 8'b0100_0000; //读数据(8 bit)localparam  st_stop     = 8'b1000_0000; //结束I2C操作//reg definereg            sda_dir   ; //I2C数据(SDA)方向控制reg            sda_out   ; //SDA输出信号reg            st_done   ; //状态结束reg            wr_flag   ; //写标志reg    [ 6:0]  cnt       ; //计数reg    [ 7:0]  cur_state ; //状态机当前状态reg    [ 7:0]  next_state; //状态机下一状态reg    [15:0]  addr_t    ; //地址reg    [ 7:0]  data_r    ; //读取的数据reg    [ 7:0]  data_wr_t ; //I2C需写的数据的临时寄存reg    [ 9:0]  clk_cnt   ; //分频时

    标签: iic 接口 e2prom at24c64 verilog 驱动 仿真

    上传时间: 2021-11-05

    上传用户:

  • C语言各知识点详细总结

    C语言各知识点详细总结27页C 语言知识要点复习资料 总体上必须清楚的: 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 2)读程序都要从 main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有 且只有一个 main 函数。 3)计算机的数据在电脑中保存是以 二进制的形式. 数据存放的位置就是 他的地址. 4)bit 是位 是指为 0 或者 1。 byte 是指字节, 一个字节 = 八个位. 概念常考到的: 1、编译预处理不是 C 语言的一部分,不占运行时间,不要加分号。C 语言编译的程序称为源程 序,它以 ASCII 数值存放在文本文件中。 2、define PI 3.1415926; 这个写法是错误的,一定不能出现分号。 3、每个 C 语言程序中 main 函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break 可用于循环结构和 switch 语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C 语言的基础知识 第一节、对 C 语言的基础认识 1、C 语言编写的程序称为源程序,又称为编

    标签: C语言

    上传时间: 2021-11-06

    上传用户:kent