藍橋杯STC基礎代碼-EEPROM和數模轉換

上一章-藍橋杯STC基礎代碼-溫度傳感器

文章地址

EEPROM和數模轉換

簡介

因爲EEPROM跟數模轉換都是通過 iic控制的,所以我把這兩個放到一起。
利用好賽方給的 iic.c ,iic.h,基本問題不大。

void IIC_Start(void); 
void IIC_Stop(void);  
bit IIC_WaitAck(void);  
void IIC_SendAck(bit ackbit); 
void IIC_SendByte(unsigned char byt); 
unsigned char IIC_RecByte(void); 

iic控制的過程都是有規律的,我把他分爲讀跟寫。
:

等待響應
等待響應
等待響應
等待響應
iic 開始
發送芯片地址
發送數據
iic 停止

:

等待響應
等待響應
等待響應
等待響應
等待響應
答覆1
iic 開始
發送芯片地址
iic 開始
發送讀取命令
接收數據
iic 停止

EEPROM

EEPROM芯片地址

EEPROM是我們是用AT24C02芯片控制的,可以儲存數據,這個在比賽中經常會用到。操作起來不麻煩,分爲寫跟讀操作。
我們首先要知道芯片的地址,忘記了可以查芯片手冊。

這裏是引用

我們開發板上面的芯片是2K的 ,所以芯片地址是0xa0

EEPROM操作流程

:

等待響應
等待響應
等待響應
iic 開始
發送芯片地址-0x0a0
發送數據
iic 停止
延時200ms

:

等待響應
等待響應
等待響應
等待響應
等待響應
答覆1
iic 開始
發送芯片地址-0xa0
發送讀取地址
iic 開始
發送讀取命令 0xa1
接收數據
iic 停止

EEPROM操作代碼

void Write_EERROM(u8 add ,u8  dat)
{
	IIC_Start();
	
	IIC_SendByte(0xa0);
	IIC_WaitAck();

	IIC_SendByte(add);
	IIC_WaitAck();	

	IIC_SendByte(dat);
	IIC_WaitAck();	

	IIC_Stop();
	
	Delay_OneWire(200);
}



u8 Read_EEPROM(u8 add)
{
	u8 temp;
	
	IIC_Start();
	
	IIC_SendByte(0xa0);
	IIC_WaitAck();

	IIC_SendByte(add);
	IIC_WaitAck();	
	
	IIC_Start();
	
	IIC_SendByte(0xa1);
	IIC_WaitAck();
		
	temp  =IIC_RecByte ();
	IIC_SendAck(1);	
	IIC_Stop();	

	return temp;
}

數模轉換

簡介

數模轉換在比賽中也是很常見,比如說ADC讀取電壓,DAC控制電壓。
我們開發板上面用的是PCF8591芯片。

這裏是引用

可以看到芯片的地址是0x90

這裏是引用

這是pcf芯片控制命令的說明
由於比賽板子,我們一般是單通道3
所以我們的控制命令一般都是 0x43

PCF8591操作流程

DAC:

等待響應
等待響應
等待響應
等待響應
iic 開始
發送芯片地址-0x090
發送命令-0x43
發送DAC數據
iic 停止

ADC:

等待響應
等待響應
等待響應
等待響應
等待響應
答覆1
iic 開始
發送芯片地址-0x90
發送命令 0x43
iic 開始
發送讀取數據命令-0x91
接收數據
iic 停止

PCF8591代碼

void Set_DAC(u8 dac)
{
	IIC_Start();
	
	IIC_SendByte(0x90);
	IIC_WaitAck();
	
	IIC_SendByte(0x43);
	IIC_WaitAck();
	
	IIC_SendByte(dac);
	IIC_WaitAck();
	
	IIC_Stop();

}


u8 pcf_adc;

u8 Read_ADC(void)
{
	u8 temp;
	IIC_Start();
	
	IIC_SendByte(0x90);
	IIC_WaitAck();
	
	IIC_SendByte(0x43);
	IIC_WaitAck();
	
	IIC_Start();
	IIC_SendByte(0x91);
	IIC_WaitAck();
	
	temp = IIC_RecByte();
	IIC_SendAck(1);
	
	IIC_Stop();	
	pcf_adc = temp;
	return temp;
}

下一章-藍橋杯STC基礎代碼-超聲波和頻率測量

文章地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章