温度传感器数码管显示程序

做~自己de王妃 提交于 2019-12-02 14:37:39

I2C((Inter-Integrated Circuit(集成电路总线)))

它是一种串行总线,使用多主从架构,由飞利浦公司为了让主板、嵌入式系统或手机用以低速周边设备而发展

 

硬件结构:I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上

 

总线运行(数据传输)由主机控制,所谓的主机是指启动数据的传送(发出启动信号)、发出时钟信号以及发送停止信号的设备,通常I2C的主机都是微处理器,被主机寻访的设备称为从设备,为了方便通讯,每个连接在I2C总线的设备都有一个唯一标识地址,便于主机的寻访

 

数据的传输方向可以是主机<===>从机,也可以是从机<==>主机

在I2C总线上发送信息的设备称为发送器,接收信息的设备称为接收器

 

I2C总线上允许连接多个微处理器以及各种外围设备,如存储器、LED以及LCD驱动器、A/D以及D/A转换器

为了保证数据可靠的传送,任意时刻总线只能由某一个主机控制总线,各个微处理器应当在总线空闲的时候发送启动数据,为了解决多个微处理器发送启动数据的传送冲突(总线控制权),I2C允许连接不同传输速率的设备

 

I2C连接的多台设备之间的时钟信号同步过程称为同步化

 

总线特点:I2C总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。因此,使用I2C总线设计计算机系统十分方便灵活,体积也小,因而在各类实际应用中得到广泛应用

 

温度传感器:温度传感器(temperature transducer)是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类

 

 

在使用温度传感器数码管显示程序之前,必须使如下跳线短接

 

I2C总线使用原理图如下

 

温度传感器的硬件接口示意图

 

工程文件的相关关系

 

I2C相关常用函数

 

 

程序主函数内容如下

int main (void){//主程序
	u8 buffer[3];
	u8 c=0x01;
	RCC_Configuration(); //系统时钟初始化 

	I2C_Configuration();//I2C初始化

	TM1640_Init(); //TM1640初始化
	TM1640_display(0,20); //初始显示内容
	TM1640_display(1,20);
	TM1640_display(2,20);
	TM1640_display(3,20);
	TM1640_display(4,20);
	TM1640_display(5,20);
	TM1640_display(6,20);
	TM1640_display(7,20);

	while(1){
		LM75A_GetTemp(buffer); //读取LM75A的温度数据
			
		TM1640_display(0,buffer[1]/10); //显示数值
		TM1640_display(1,buffer[1]%10+10);
		TM1640_display(2,buffer[2]/10);
		TM1640_display(3,buffer[2]%10);

		TM1640_led(c); //与TM1640连接的8个LED全亮
		c<<=1; //数据左移 流水灯
		if(c==0x00)c=0x01; //8个灯显示完后重新开始
		delay_ms(150); //延时
	}
}

 

由程序可知,主函数关闭了数码管编号为2~7的数码管显示,在主循环中使用LM75A_GetTemp( )检测LM75A温度传感器的温度值,并将温度值显示

 

关于LM75A的相关驱动知识,将在LM75A温度传感器驱动程序笔记中详细解析

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!