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

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

一些整理


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)

0a2653c851af460fa595bd959398a8f1.png

2.数码管的对应图


3.NE555是Rb3,短接SIGNAL和P34


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


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

相关文章
|
3月前
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
103 3
|
3月前
|
人工智能 开发者 芯片
【51单片机】单片机开发者的福音: 让AI看电路图帮你编写程序(使用ChatGPT 中训练好的单片机工程师模型)
使用AI大语言模型编写 单片机程序. 使用的是 OpenAI公司发布的 ChatGPT .在ChatGPT上有别人训练好的 单片机工程师 with Keil uVision 5 - C Code Explainer模型, 可以上传电路图改模型可以通过这个用户所给的电路图进行编程.
243 0
【51单片机】单片机开发者的福音: 让AI看电路图帮你编写程序(使用ChatGPT 中训练好的单片机工程师模型)
|
4月前
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
蓝桥杯之单片机学习(终)——关于之前文章的错误及更正(附:第十四届蓝桥杯单片机赛题)
|
5月前
|
物联网 Linux 芯片
学习嵌入式是选择单片机还是Linux?
单片机通常指的是一种集成了处理器、存储器和各种外设接口的微控制器芯片,常见的有STC、51系列、AVR、ARM Cortex-M等。单片机具有低成本、低功耗、实时性强等特点,适用于对资源要求较低、功耗要求较低、实时性要求较高的嵌入式系统。学习单片机开发可以让您深入了解嵌入式系统的底层原理和硬件编程,对于对嵌入式系统底层开发感兴趣的人来说,是一个很好的选择。
135 4
|
5月前
技术心得记录:单片机开发过程中使用结构体简化程序
技术心得记录:单片机开发过程中使用结构体简化程序
31 0
|
6月前
基于51单片机的简单交通灯程序
基于51单片机的简单交通灯程序
80 2
【单片机】延迟程序&延迟子程序的设计(入门)
【单片机】延迟程序&延迟子程序的设计(入门)
|
6月前
|
存储 搜索推荐 IDE
新手如何快速上手学习单片机?
新手如何快速上手学习单片机?
121 0
|
6月前
|
存储 编译器 C语言
单片机学习之路一些常见的疑问也是我的个人学习总结
单片机学习之路一些常见的疑问也是我的个人学习总结
129 0
|
6月前
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
107 0