蓝桥杯之单片机学习(二十三)——对于官方驱动的函数调用,包装程序

一些整理

IIC

1. PCF8591

1.1 通道一:光敏电阻

//Light_read(0X01)

uchar Light_read(uchar add)
{
	uchar temp;
	IIC_Start();
	IIC_SendByte(0X90);
	IIC_WaitAck();
	IIC_SendByte(add);
	IIC_WaitAck();
	IIC_Stop();
	
	IIC_Start();
	IIC_SendByte(0X91);
	IIC_WaitAck();
	temp = IIC_RecByte();
	IIC_Stop();
	return temp;
}

1.2 通道三:A/D转换(Rb2)

//Light_read(0X03)

uchar AD_read(uchar add)
{
	uchar temp;
	IIC_Start();
	IIC_SendByte(0X90);
	IIC_WaitAck();
	IIC_SendByte(add);
	IIC_WaitAck();
	IIC_Stop();
	
	IIC_Start();
	IIC_SendByte(0X91);
	IIC_WaitAck();
	temp = IIC_RecByte();
	IIC_Stop();
	return temp;
}

2. AT24C02

EEPROM(寄存器)

/*
EEPROM_write(0X01, 126);
delayms(5) //延时5ms
EEPROM_read(0X01)
*/

//读取
uchar EEPROM_read(uchar add)
{
	uchar temp;
	IIC_Start();
	IIC_SendByte(0XA0);
	IIC_WaitAck();
	IIC_SendByte(add);
	IIC_WaitAck();
	IIC_Stop();
	
	IIC_Start();
	IIC_SendByte(0XA1);
	IIC_WaitAck();
	temp = IIC_RecByte();
	IIC_Stop();
	return temp;
}


//写入
void EEPROM_write(uchar add, uchar dat)
{
	unsigned char temp;
	IIC_Start();
	IIC_SendByte(0XA0);
	IIC_WaitAck();
	IIC_SendByte(add);
	IIC_WaitAck();
	IIC_SendByte(dat);
	IIC_WaitAck();
	IIC_Stop();
}

DS1302(时钟)

//Init_DS1302()就是初始化
//uchar shijian[] = {0, 30, 8, 0, 0, 0, 0};
//Read_DS1302()while里写

void Init_DS1302()
{
	uchar i, add;
	add = 0X80;  //写
	Write_Ds1302(0X8e, 0X00);
	for(i = 0; i < 7; i++)
	{
		Write_Ds1302(add, shijian[i]);
		add = add + 2;
	}
	Write_Ds1302(0X8e, 0X80);
}

void Read_DS1302()
{
	uchar i, add;
	add = 0X81;  //读
	Write_Ds1302(0X8e, 0X00);
	for(i = 0; i < 7; i++)
	{
		shijian[i] = Read_Ds1302(add);
		add = add + 2;
	}
	Write_Ds1302(0X8e, 0X80);
}

onewire

以后更新

杂记

  1. 蜂鸣器和继电器的P0对应 (蜂鸣器:0X40,继电器:0X10,全关0X00)

  2. 数码管的对应图在这里插入图片描述

  3. NE555是Rb3,短接SIGNAL和P34

  4. 通道一(0X01)和通道三(0X03)是写入决定的

  5. DS1302的驱动,不用翻8-12倍

posted @   周末不下雨  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示