/**************************文件所用資源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;//發(fā)送 P3.1#define MODE_QUICK#define F_TM F0#define TIMER0
關于PID比例調節(jié)作用:是按比例反應系統的偏差,系統一旦出現了偏差,比例調節(jié)立即產生調節(jié)作用用以減少偏差。比例作用大,可以加快調節(jié),減少誤差,但是過大的比例,使系統的穩(wěn)定性下降,甚至造成系統的不穩(wěn)定。積分
#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資源的限制,一般不采用浮點數運算,而將所有參數全部用