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

Define

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

    include<reg52.h> #Define uint unsigned int #Define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #Define uint unsigned int #Define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; } include<reg52.h> #Define uint unsigned int #Define uchar unsigned char uint temp,aa,wang,qian,bai,shi,ge; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void display( uint wang,uint qian,uint bai,uint shi,uint ge); void delay(uint z); void init(); void main() { init();//初始化子程序 while(1) { if(aa==20)   { aa=0; temp++; if(temp==99999)    { temp=0;    } wang=temp/10000; qian=(temp-wang*10000)/1000; bai=(temp-wang*10000-qian*1000)/100; shi=(temp-wang*10000-qian*1000-bai*100)/10; ge=temp%10;   } display(wang,qian, bai,shi,ge); } }   void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }   void display(uint wang,uint qian,uint bai,uint shi,uint ge) {         dula=1; P0=table[wang]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1);   dula=1; P0=table[qian]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1);           dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1);   dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1);   dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(1); }   void init() { wela=0; dula=0; temp=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }   void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; }

    标签: 矩阵式键盘

    上传时间: 2021-12-18

    上传用户:2590813506

  • stm32g030xx_hal, 通过hal库读写stm32g0内部flash

     通过hal库读写stm32g0内部flash,一次写入数量默认最大2K,更大可以修改#Define STM_SECTOR_SIZE2048。代码包含读写函数。

    标签: stm32g flash

    上传时间: 2022-02-08

    上传用户:默默

  • ABB机器人编程手册.pdf

    ABB机器人编程手册.pdfAliasIO is used to Define a signal of any type with an alias name or to use signals in builtin task modules. Signals with alias names can be used for preDefined generic programs, without any modification of the program before running in different robot installations. The instruction AliasIO must be run before any use of the actual signal. See Basic examples on page 21 for loaded modules, and More examples on page 22 for installed modules.

    标签: abb 机器人 编程

    上传时间: 2022-03-28

    上传用户:kingwide

  • 宏晶 STC15F2K60S2开发板配套软件源码 基础例程30例

    宏晶 STC15F2K60S2开发板配套软件源码 基础例程30例/**********************基于STC15F2K60S2系列单片机C语言编程实现使用如下头文件,不用另外再包含"REG51.H"#include <STC15F2K60S2.h>***********************/#include "STC15F2K60S2.H"//#include "REG51.H" //sfr P4   = 0xC0;#Define  uint unsigned int  #Define  uchar unsigned char  /**********************引脚别名定义***********************/sbit SEL=P4^3; // LED和数码管选择引脚 高:LED有效 低:数码管有效 // SEL连接的单片机引脚必须为带有上拉电阻的引脚 或将其直接连接VCC#Define data P2 // 数据输入定义  /**********************函数名称:Delay_1ms功能描述:延时入口参数:unsigned int t 表示要延时t个1ms 出口参数:无备注:通过参数t,控制延时的时间长短***********************/void Delay_1ms(uint t){ uchar j;   for(;t>0;t--)       for(j=110;j>0;j--)     ;}/**********************函数名称:Led_test功能描述:对8个二极管进行测试,依次轮流点亮8个二极管入口参数:无出口参数:无备注:  ***********************/void Led_test(){    uchar G_value=0x01; // 给变量赋初值 SEL=1;    //高电平LED有效   while(1) { data=G_value; Delay_1ms(10000); G_value=G_value<<1; if(G_value==0x00) { data=G_value; Delay_1ms(10000); G_value=0x01;      } }}/***********************主函数************************/void main(){ ///////////////////////////////////////////////// //注意: STC15W4K32S4系列的芯片,上电后所有与PWM相关的IO口均为 //      高阻态,需将这些口设置为准双向口或强推挽模式方可正常使用 //相关IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2 //        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5 ///////////////////////////////////////////////// P4M1=0x00; P4M0=0x00; P2M0=0xff; P2M1=0x00; //将P2设为推挽 Led_test();  }

    标签: STC15F2K60S2

    上传时间: 2022-05-03

    上传用户:

  • FreeModbus 英文资料

    If register should be written or read.This value is passed to the calback functions which support either reading or writing register values. Writing means that the application registers should be updated and reading means that the modbus protocol stack needs to know the current register values.See also: eMBRegHoldingCB(), eMBRegCoilsCB(), eMBRegDiscreteCB() and eMBReglnputCB().Enumeration values: MB_REG_READ Read register values and pass to protocol stack.MB_REG_WRITE Update register values.Note: Note all ports implement this function.A port which wants to get an callback must Define the macro MB_PORT_HAS_CLOSE to 1.Returns: If the resources where released it return eMBErrorCode:: MB_ENOERR. If the protocol stack is not in the disabled state it returns eMBErrorCode:: MB_EILLSTATE.Examples: LINUX/demo.c, MCF5235TCP/demo.c, STR71XTCP/demo.c, WIN32/demo. cpp, and WIN32TCP/demo. cpp.his function disables processing of Modbus frames.Returns: If the protocol stack has been disabled

    标签: FreeModbus

    上传时间: 2022-05-31

    上传用户:

  • PID-小车类-两轮自平衡小车资料

    #Define PI (3.14159265)// 度数表示的角速度*1000#Define MDPS (70)// 弧度表示的角速度#Define RADPS ((float)MDPS*PI/180000)// 每个查询周期改变的角度#Define RADPT (RADPS/(-100))// 平衡的角度范围;+-60度(由于角度计算采用一阶展开,实际值约为46度)#Define ANGLE_RANGE_MAX (60*PI/180)#Define ANGLE_RANGE_MIN (-60*PI/180)// 全局变量pid_s sPID; // PID控制参数结构体float radian_filted=0; // 滤波后的弧度accelerometer_s acc; // 加速度结构体,包含3维变量gyroscope_s gyr; // 角速度结构体,包含3维变量int speed=0, distance=0; // 小车移动的速度,距离int tick_flag = 0; // 定时中断标志int pwm_speed = 0; // 电机pwm控制的偏置值,两个电机的大小、正负相同,使小车以一定的速度前进int pwm_turn = 0; // 电机pwm控制的差异值,两个电机的大小相同,正负相反,使小车左、右转向float angle_balance = 0; // 小车的平衡角度。由于小车重心的偏移,小车的平衡角度不一定是radian_filted为零的时候

    标签: pid 自平衡小车

    上传时间: 2022-06-01

    上传用户:

  • LWIP的底层结构

    Lwip协议栈的实现目的,无非是要上层用来实现app的socket编程。好,我们就从socket开始。为了兼容性,lwip的socket应该也是提供标准的socket接口函数,恩,没错,在src\inc lude\lwip\socket.h文件中可以看到下面的宏定义:#if LWIP COMPAT SOCKETS#Define accept(a,b,c)Iwip accept(a,b,c)#Define bind(a,b,c)Iwip bind(a,b,c)#Define shutdown(a,b)Iwip shutdown(a,b)#Define closesocket(s)Iwip close(s)好,这个结构先不管它,接着看下get socket函数的实现【也是在src\api\socket.c文件中】,在这里我们看到这样一条语句sock =&sockets[s];很明显,返回值也是这个sock它是根据传进来的序列号在sockets数组中找到对应的元素并返回该元素的地址。好了,那么这个sockets数组是在哪里被赋值了这些元素的呢?进行到这里似乎应该从标准的socket编程的开始,也就是socket函数讲起,那我们就顺便看一下。它对应的实际实现是下面这个函数Int Iwip socket(int domain,int type,int protocol)【src\api\socket.c】这个函数根据不同的协议类型,也就是函数中的type参数,创建了一个netconn结构体的指针,接着就是用这个指针作为参数调用了alloc socket函数,下面具体看下这个函数的实现

    标签: lwip 底层结构

    上传时间: 2022-06-19

    上传用户:aben

  • STM32F103驱动W5500网络程序

    #include "W5500.h"/***************----- 网络参数变量定义-----***************/unsigned char Gateway_IP[4];// 网关IP 地址unsigned char Sub_Mask[4]; // 子网掩码unsigned char Phy_Addr[6]; // 物理地址(MAC)unsigned char IP_Addr[4]; // 本机IP 地址unsigned char S0_Port[2]; // 端口0 的端口号(5000)unsigned char S0_DIP[4]; // 端口0 目的IP 地址unsigned char S0_DPort[2]; // 端口0 目的端口号(6000)unsigned char UDP_DIPR[4]; //UDP( 广播)模式,目的主机IP 地址unsigned char UDP_DPORT[2]; //UDP( 广播)模式,目的主机端口号/***************----- 端口的运行模式-----***************/unsigned char S0_Mode =3; // 端口0 的运行模式,0:TCP 服务器模式,1:TCP 客户端模式,2:UDP(广播)模式#Define TCP_SERVER 0x00 / /TCP服务器模式#Define TCP_CLIENT 0x01 / /TCP客户端模式#Define UDP_MODE 0x02 / /UDP(广播)模式

    标签: stm32f103 驱动 w5500

    上传时间: 2022-06-23

    上传用户:

  • VCS简明使用教程

    仿真的过程编译Compile VCS对源文件进行编译,生成中间文件和可执行文件仿真Simulate运行可执行文件,对设计进行仿真调试通过观察波形、设置断点、追踪信号、查看schematic等来发现错误,并进行纠正覆盖率测试通过在编译时,加入覆盖率测试的选项、仿真后,生成包含覆盖率信息的中间文件来显示测试平台的正确性和完备性。一个常见的编译命令如下:vcs f-y+libext+-V\-P-Mupdate-o-I +V2k-R-RI-s\-debug_all+vcsd +Define++timopt+<>-line\+incdir+++memopt[+2]-sverilog-mhdl +ad\-full64-comp64+nospecify +notimingcheck-ntb +race\-ova_file +vpdfile++vpdfilesize+\+vpdupdate +cli++vcs+initmem+011lxlz\+vcs+initreg+0|1lx|z +Vc-cm lineltgllcondlfsmlpathlbranch-cm_dir\-vlib-file是Verilog文件,包含了引用的module的定义,可以是绝对路径,也可以是相对路劲。-y1ibdir是参考库的目录,vcs从该目录下寻找包含引用的module的Verilog文件,这些文件的文件名必须和引用的module的名一样+libextt++..vcs在参考库目录下寻找以.v和.vhd为扩展名的文件。多个扩展名之间用“+”连接。

    标签: vcs

    上传时间: 2022-07-01

    上传用户:

  • 在STM32F429I-Discovery上移植FATFS 0.13 最新版

    1、下载FATFS R0.13a的源码2、将下载到的源码全部替代工程里面旧版FATFS, 四个源代码文件,其中 diskio.c 不要加入工程,因为其核心函数被加入了 usbh_msc_fatfs.c3、根据实际使用情况修改ffconf.h 里面的宏开关选项,与旧版不同的部分列出如下:#Define FF_CODE_PAGE        936   // 简体中文#Define FF_USE_LFN                3      // 允许长文件名,工作缓冲放在 HEAP,因此我在工程选项中把HEAP size 设为了0x1000#Define FF_FS_EXFAT                1      // 允许支持 exFAT 文件系统#Define FF_LFN_UNICODE        1      // 长文件名支持 Unicode in UTF-16 (TCHAR = WCHAR)4、基本上到此可以编译了,编译过程中会出现各种错误,主要新版没有完全向下兼容的原因引起,根据不同情况针对性解决后,编译OK     比如, f_mount 调用,等等    if ( f_mount( &fatfs, "", 0 ) != FR_OK )   { 。。。}        // Fatfs0.09升级到0.13后,形参变化了

    标签: stm32f429i fatfs

    上传时间: 2022-07-03

    上传用户: