/**************************文件所用资源1.端口:P22.调用delay_ms函数**************************/#include #include #define key_port P2//键盘接口定义sbitkey_port_0=key_port^0;sbitkey_port_1=key_port^1;sbi
/**************************文件所用资源1.端口:P0.2,P0.32.调用delay_ms函数**************************//************************端口定义************************/sbit i2c_dat =P0^2;sbit i2c_clk =P0^3;#de
/**************************文件所用资源1.端口:P0.4,P0.5,P0.6,P0.72.调用delay_ms函数**************************//************************* 模拟SPI接口I/O定义*************************/sbit spi_cs=P0^1;s
/********************************文件所用资源1.外部中断0、1 定时中断0、1 串口中断2.端口:P3.0,P3.1,P3.3,P3.4,P3.5********************************/sfr ISP_CONTR = 0xe7;/***************************外部中
模块内接口:使用如下标志符:asm汇编语句endasm注意:如果在程序中使用了,注意在Keil编译器中需要激活Properties中的“GenerateAssemblerFile”和“AssemblerFile”两个选项1、把"xx.c"加入工程中,右击"xx.c"选择
关于spi协议见:http://hi.baidu.com/gilbertjuly/blog/item/0be222eeac9abae5cf1b3e38.html ISD4002芯片资料参考:http://download.csdn.net/source/1208805 以下是单片机spi通信的通用程序,在不同晶振情况下
typedef struct PID{ double SetPoint; // Desired Value double Proportion; // Proportional Const double Integral; // Integral Const double Derivative; // Derivative Const double LastError; // Error[-1]
/*--------------------------24C01的IIC 读写的c51程序---------------------程序中很多NOP是冗余的,希望读者能进一步精简,但必须经过验证。 Atmel 24C01 比较特殊,为简约型. 51晶振为11.0592MHz --------------
void X5045SpiOpen(void);//打开X5045片选void X5045SpiClose(void);//关闭X5045片选 void X5045WriteEnable(void);//软件使能X5045写操作 void X5045WriteDisable(void);//软件禁止X5045写操作 unsigned char X5
/*------------------------------------------------------------------------------为了安全起见,程序中很多NOP是冗余的,希望读者能进一步精简,但必须经过验证。 Atmel 24C01 比较特殊,为简约型. 51晶振为11.059
/**************************文件所用资源1.外部中断02.端口:P3.3、P3.4**************************/sbit BT_REC =P3^3;//接收 P3.0sbit BT_SND =P3^4;//发送 P3.1#define MODE_QUICK#define F_TM F0#define TIMER0
关于PID比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。积分
#include #include //_nop_();延时函数用#define uchar unsigned char#define uint unsigned int//********************** DS18B20 指令********************* *********#define ds18B20_READ_ROM 0x33 // 读ROM指令
typedef struct PIDValue{ uint32 Ek_Uint32[3]; //差值保存,给定和反馈的差值 uint8 EkFlag_Uint8[3]; //符号,1则对应的Ek[i]为负数,0为对应的Ek[i]为正数 uint8 KP_Uint8;uint8 KI_Uint8;uint8 KD_Uint8;uint8
由于12232F这个显示器用得比较平常,但平常见到的是一些并口的汇编程序,并且也没有对应于12232F的并口程序,串口的C51程序极少见,为了方便大家使用,所以本站把它调试了一个出来,大家多多指教!由于12232F这个显示
本人初学C,曾为这个问题大伤脑筋^_^,就是一个单片机系统有两个以上的相同地址的I2C设备,无法用两个同一对SDA/SCL引脚#include "stc89c51.h" #include "iic.h"sbit scl0=P3^5; sbit sda0 = P3^4; sbit scl1= P3^3; sb
单片机IO驱动74LS165C51程序 //-------------------------------------库函数声明,管脚定义-------------- #include sbita7=ACC^7; sbitsimuseri_CLK=P1^6;//用P1^6模拟串口时钟 sbitsimuseri_DATA=P1^5;//用P
#include #include struct _pid { int pv; /*integer that contains the process value*/ int sp; /*integer that contains the set point*/ float integral; float pgain; float ig
没有中断时以流水灯显示,外中断0使左右4个LED交替闪烁,外中断1使LED闪亮,#includeunsigned char code design[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00};void Delay(unsigned int i){ unsigned int j;
这是从网上找来的一个比较典型的PID处理程序,在使用单片机作为控制cpu时,请稍作简化,具体的PID参数必须由具体对象通过实验确定。由于单片机的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用