




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前文已对单片机的基本功能有所阐述,接下来将介绍几种单片机常用的接口技术。接口技术指的是与单片机核心处理单元相连接的附加硬件技术,它们能够增强和扩展单片机的功能及应用范围。通过接口技术,单片机可以与传感器、执行器、显示器、通信设备等进行连接和通信。本教学情境分为3个任务,对单片机常用接口技术的相关知识、技能要求进行详细讲解,包括A/D转换、I2C总线技术和三总线技术。学生将通过这些任务掌握单片机常用接口技术的编程技巧和使用方法。问题引入QuestionIntroduction目录导航任务6-1光照强度采集系统设计任务6-2用AT24C02记录开机次数任务6-3DS1302的时钟系统设计任务6-1光照强度采集系统设计在众多单片机应用中,光照强度采集系统是一种非常重要的系统,其应用广泛,包括工业控制、环境监测等领域。光照强度采集系统通过光敏传感器采集光照强度,并将这些信号转换为数字信号,传输到单片机中进行处理,实现光照强度的显示、控制等操作。本任务以IAP15L2K61S2为主控芯片,通过光敏传感器对环境的光照强度进行监测,并将光照强度对应的电压显示到数码管上。工作任务一、光敏电阻及其模块相关知识(1)光敏电阻。光敏电阻是用硫化镉或硒化镉等半导体材料制成的特殊电阻,其工作原理基于内光电效应。光照越强,光敏电阻的阻值就越低,随着光照强度的增大,光敏电阻的阻值迅速降低,亮电阻可小至1kΩ以下。光敏电阻对光线十分敏感,其在无光照时,呈高阻状态,暗电阻一般可达1.5MΩ。光敏电阻因其特殊的性能而得到了极其广泛的应用。简而言之,光敏电阻是一种阻值会随着光照强度变化的电阻。光照强度越大,阻值越小;光照强度越小,阻值越大。一、光敏电阻及其模块相关知识(2)光敏电阻模块。光敏电阻模块是一个电阻串联电路模块,其原理图如图6-1所示。普通电阻R1和光敏电阻R2组成串联电路,电路一端接VCC,另一端接GND,S端为R2两端电压的输出端。光照越弱,R2的阻值越大,S端的电压越大,趋近于VCC的值;光照越强,R2的阻值越小,S端的电压越小,趋近于0V。因此,在光照强度变化的情况下,S端的电压应该在0V~VCC之间变化。光敏电阻模块的实物图如图6-2所示。在实际应用中,光敏电阻模块的VCC接与单片机相同的供电电压,GND端接地,S引脚为电压采集引脚,接到单片机具有ADC功能的GPIO口上即可。二、ADC的结构相关知识(1)ADC的结构。IAP15L2K61S2的ADC输入通道与P1口复用,上电复位后P1口为弱上拉型I/О口,用户可以通过程序设置P1口模拟输入通道功能控制寄存器P1ASF,将8路通道中的任何一路设置为ADC功能,不为ADC功能的仍可作为普通I/O口使用。IAP15L2K61S2中ADC的结构如图6-3所示。二、ADC的结构相关知识(2)ADC的参考电压源。在IAP15L2K61S2单片机中,若ADC的参考电压源(Vref)直接由输入工作电压VCC提供,并且在某些应用场合下VCC不够稳定(例如电池供电系统),这确实可能会影响到ADC的转换精度。为了解决这个问题,可以采用在ADC的任一通道上外接一个稳定的基准参考电压源。选择一个稳定且精度高的基准电压源,如1.25V或2.5V的基准电压。首先,将基准电压源连接到ADC的任一空闲通道上,通过ADC读取这个基准电压的值,由于ADC的读数是与Vref(即VCC)成比例的,通过读取基准电压通道的ADC值,并结合已知的基准电压值,可得到当前的VCC电压。具体计算公式可以表示为:VCC=(ADC_Value_of_Ref*Vref_Nominal)/ADC_Max_Value
其中,ADC_Value_of_Ref是基准电压通道的ADC读数,Vref_Nominal是基准电压的标称值(如1.25V或2.5V),ADC_Max_Value是ADC的最大可能读数。通过当前的VCC电压,就可以使用它来校正其他ADC模拟通道的读数。对于其他通道的模拟输入电压,可以使用类似的公式进行计算,此时要用到的是该通道的ADC读数和已知的VCC电压进行计算。三、ADC的控制相关知识IAP15L2K61S2中的ADC主要由P1ASF、ADC_CONTR、ADC_RES和ADC_RESL4个特殊功能寄存器进行控制与管理。(1)P1ASF。P1ASF的8个控制位与P1口的8个口线是一一对应的。若将P1ASF的相应位置为l,则P1口对应的口线为ADC功能,可作为当前A/D转换通道;若将相应位置为0,则P1口对应的口线为普通I/О功能。单片机硬件复位后,P1口默认是普通I/О功能。三、ADC的控制相关知识(2)ADC_CONTRADC_CONTR主要用于控制ADC电源的打开或关闭、A/D转换的启动,设置A/D转换速度、A/D转换结束标志等。三、ADC的控制相关知识CHS2、CHS1、CHS0:模拟输入通道选择控制位。模拟输入通道选择设置如表6-5所示。三、ADC的控制相关知识(3)ADC_RES和ADC_RESLADC_RES、ADC_RESL用于保存A/D转换结果,A/D转换结果的存储格式由寄存器CLK_DIV的D5位ADRJ控制。执行C语言语句“CLK_DIV|=0x20”即可设置ADRJ为1,单片机硬件复位后默认ADRJ为0。三、ADC的控制相关知识(3)与A/D转换中断有关的寄存器。IE中的D7位EA是CPU总中断控制位,D5位EADC是ADC使能控制位。当EA=1、EADC=1时,A/D转换结束中断允许。ADC_CONTR中的D4位ADC_FLAG既是A/D转换结束标志位,又是A/D转换结束的中断请求标志位。在中断服务程序中,要使用软件将ADC_FLAG清0。当EADC=0时,A/D转换结束中断禁止,ADC可以采用查询方式工作。IAP15L2K61S2单片机的中断有2个优先级,由中断优先级寄存器IP设置,A/D转换结束中断的中断号为5。三、ADC的控制相关知识(3)与A/D转换中断有关的寄存器。IE中的D7位EA是CPU总中断控制位,D5位EADC是ADC使能控制位。当EA=1、EADC=1时,A/D转换结束中断允许。ADC_CONTR中的D4位ADC_FLAG既是A/D转换结束标志位,又是A/D转换结束的中断请求标志位。在中断服务程序中,要使用软件将ADC_FLAG清0。当EADC=0时,A/D转换结束中断禁止,ADC可以采用查询方式工作。IAP15L2K61S2单片机的中断有2个优先级,由中断优先级寄存器IP设置,A/D转换结束中断的中断号为5。四、单片机内部ADC的应用相关知识下面以ADC不采用中断方式为例,给出A/D转换的流程。(1)设置ADC_CONTR中的ADC_POWER为1,打开ADC电源。(2)一般延时1ms左右,等ADC内部模拟电路稳定。(3)设置P1ASF,选择P1口中的相应口线作为A/D转换模拟输入通道。(4)设置ADC_CONTR中的CHS2~CHS0,选择A/D转换模拟输入通道。(5)根据需要设置CLK_DIV中的ADRJ,选择A/D转换结果的存储格式,ADRJ的默认值为0。(6)查询A/D转换结束标志位ADC_FLAG,判断A/D转换是否完成,若完成,则读出A/D转换结果(结果保存在ADC_RES和ADC_RESL中),并进行数据处理。若采用中断方式,则还需进行中断设置(将EADC置1、EA置1,设置中断优先级),在中断服务程序中读取A/D转换结果,并将ADC_FLAG清0。任务6-1光照强度采集系统设计任务实施在单片机I/O口上外接光敏电阻模块,使用单片机内部ADC读取光敏电阻模块输出引脚上的电压,并将电压显示在数码管上,数码管显示数据的格式为“-X.XX”。任务6-1光照强度采集系统设计1.原理图设计可使用STC15单片机内部的ADC对光敏电阻模块的S端电压进行转换。将光敏电阻模块的VCC端接在3.3V电源端,GND端接在地端,S端接至P1口的P10引脚。人为改变光敏电阻模块上的光照强度,则S端的电压会在0~3.3V之间变化。用户可编写程序,使用STC15单片机内部的ADC将这个电压实时读取出来,并显示在数码管上。在A/D转换过程中,可采用中断方式,也可不采用中断方式。数码管部分使用两片74HC595驱动,电路设计原理图与任务4-3-1相同。任务6-1光照强度采集系统设计2.程序设计具体程序和分析见教材课后拓展利用IAP15L2K61S2中的ADC设计4个按键组成的键盘,分别对4只LED的亮灭进行控制。任务6-1光照强度采集系统设计任务6-2用AT24C02记录开机次数I2C总线是各种总线中使用信号线比较少,且通信比较可靠的总线之一。使用具有I2C功能的芯片可以使系统方便、灵活,减少PCB的占用空间,降低系统成本。本任务要介绍的AT24C02属于EEPROM,采用I2C总线进行通信。在实际应用中,它的主要作用是在单片机掉电时使数据不丢失。例如家用全自动洗衣机,第一次设定好洗衣、脱水等时间以后,等下次上电,还是默认前面设定过的数值。本任务以IAP15L2K61S2为主控芯片,利用I2C总线与AT24C02通信,实现保存和读取数据,记录单片机的开机次数,并通过数码管显示。工作任务一、I2C总线的工作原理相关知识I2C总线是Philips公司推出的串行总线。I2C总线的应用非常广泛,在很多器件上都配有I2C总线接口,使用这些器件时,必须按照I2C总线通信协议的时序进行访问、读写数据。下面简要介绍I2C总线的工作原理及相关程序设计。I2C总线在各种总线中使用的信号线最少,只有两根信号线:数据线SDA和时钟线SCL。数据线SDA和时钟线SCL都是双向传输线,平时均处于高电平备用状态。I2C总线通信协议的时序如图6-5所示。一、I2C总线的工作原理相关知识I2C总线是Philips公司推出的串行总线。I2C总线的应用非常广泛,在很多器件上都配有I2C总线接口,使用这些器件时,必须按照I2C总线通信协议的时序进行访问、读写数据。下面简要介绍I2C总线的工作原理及相关程序设计。I2C总线在各种总线中使用的信号线最少,只有两根信号线:数据线SDA和时钟线SCL。数据线SDA和时钟线SCL都是双向传输线,平时均处于高电平备用状态。I2C总线通信协议的时序如图6-5所示。一、I2C总线的工作原理相关知识SDA上的数据传送均以起始信号(S)开始,停止信号(P)结束。当SCL为高电平状态时,SDA上发生一个由高电平到低电平变化的过程,即为起始信号,如图6-6所示;SDA上发生一个由低电平到高电平变化的过程,即为停止信号,如图6-7所示。起始信号和停止信号均由作为主控制器的单片机发出。一、I2C总线的工作原理相关知识I2C总线都是以8个数据位方式进行数据传送的,发送器发送完一个字节之后(包括地址和数据),在时钟的第9个脉冲期间,由接收器发送应答信号ACK(把SDA的电平拉低)来表示数据接收成功。接收器在SDA上输出低电平为应答信号(ACK),输出高电平为非应答信号(
),非应答信号用于表示接收器未成功接收数据或通知对方结束数据发送并释放I2C总线,时序如图所示。一、I2C总线的工作原理相关知识I2C总线上的所有外围从器件都有规范的地址。它由4个固定的位(称为器件地址)和3个可编程的地址位(称为引脚地址)构成。4个固定的位用于区分不同类型的从器件,3个可编程的地址位用于区分相同类型的从器件。从器件地址的格式如图6-9所示。一、I2C总线的工作原理相关知识在I2C总线上进行数据传输时,必须遵循规定的数据传输格式,图6-10所示为I2C总线一次完整的数据传输格式。二、I2C总线软件分析相关知识本任务通过调用_nop_()函数来实现的短延时函数。经过测试可知,在晶振频率为12MHz时,Delay5US()函数的延时大概为5μs,所以以后可以直接用,注意要加入intrins.h头文件。源代码如下:二、I2C总线软件分析相关知识假设有了这样的位定义:“#defineSCLP26;#defineSDAP27;”,调用Delay5US()延时函数,根据I2C总线起始时序写出起始函数,代码如下:二、I2C总线软件分析相关知识在时钟线SCL为高电平的情况下,给数据线SDA一个下降沿,此时表明主器件要开始对从器件进行操作。根据I2C总线停止时序写出停止函数,代码如下:二、I2C总线软件分析相关知识在SCL为高电平的情况下,给SDA一个上升沿,表明所有的操作结束。下面是应答信号与非应答信号的产生,若在SCL为高电平期间,SDA=0,则表示从器件应答;若在SCL为高电平期间,SDA=1,则表示从器件没有应答。应答信号的产生函数代码如下:二、I2C总线软件分析相关知识非应答信号的产生过程与应答信号类似,只是过程刚好相反,这里不再赘述。非应答信号的产生函数代码如下:二、I2C总线软件分析相关知识读应答信号即主器件判断从器件是否产生了应答信号。若从器件正常产生了应答信号,则只需读取即可;若从器件由于某种特殊原因一直没有产生应答信号,这时主器件等待某段时间(255个机器周期)之后,默认从器件已经收到了数据而不再等待应答信号。读应答信号的代码如下:二、I2C总线软件分析相关知识向从器件写入一个字节的代码如下:二、I2C总线软件分析相关知识从器件中读取一个字节的代码如下:二、I2C总线软件分析相关知识结合时序图,可以有以下写从器件地址和写数据地址子函数。二、I2C总线软件分析相关知识向一台设备的某个地址写数据的代码如下:二、I2C总线软件分析相关知识uDevID为I2C器件的ID(例如AT24C02的ID为0xa0);IIC_WRITE为写命令后缀符。ucLenVal为连续写入的数据长度,需要注意的是,数据长度是有范围的(AT24C02的范围为1~8);*p为写入的数据,以指针来表示。写入一个数据之后需应答一下。最后发送一个停止信号,整个过程完成。从特定的首地址读取数据的代码如下:任务6-2用AT24C02记录开机次数任务实施设计一个单片机开机次数计数器,每次设备开机或者重启后计数值加1,并通过数码管显示;当计数值不足4位时,高位数码管熄灭,通过AT24C02存储计数值,计数范围为0~9999。任务6-2用AT24C02记录开机次数1.原理图设计用AT24C02记录单片机开机次数的原理图如图6-11所示。AT24C02的WP端直接接地,意味着不写保护;SCL端、SDA端分别接至单片机的P26引脚、P27引脚;由于AT24C02内部总线是漏极开路形式,所以必须要接上拉电阻(阻值取4.7Ω~10kΩ)。任务6-2用AT24C02记录开机次数2.程序设计详细程序见教材任务6-2用AT24C02记录开机次数课后拓展设计一个计数器,每次按下ASW1按键,计数值加1,并通过数码管显示;当计数值不足4位时,高位数码管熄灭。通过AT24C02存储计数值,计数范围为0~9999。设计要求:单片机晶振频率设置为12MHz,单片机每次重新上电后,能够从AT24C02中载入上次的计数结果。任务6-3DS1302的时钟系统设计数字时钟的设计方法有很多,如可以直接用单片机定时器来实现(可参考教学情境四),也可以用时钟芯片来实现。时钟芯片的种类也很多,如DS1302、DS1307、DS12C887、PCF8485、SB2068、PCF8563等。本任务以IAP15L2K61S2为主控芯片,通过三总线接口读取DS1302内部时间寄存器数据,通过转换和处理,在数码管上显示实时时间。工作任务一、时钟芯片DS1302简介相关知识DS1302是由DALLAS公司推出的一种高性能、低功耗、带静态RAM的实时时钟电路。它可以对年、月、周、日、小时、分钟、秒进行计时,且具有闰年补偿功能,工作电压为2.5~5.5V。DS1302内部有一个31字节的用于临时存放数据的静态RAM。DS1302采用串行形式传输数据,需要外接32.768kHz的晶振频率,利用DS1302可以方便地设计并制作一个万年历。一、时钟芯片DS1302简介相关知识DS1302的引脚描述二、DS1302读写时序相关知识(1)DS1302读操作。二、DS1302读写时序相关知识(1)DS1302读操作。二、DS1302读写时序相关知识(2)DS1302写操作。图6-14所示为DS1302单字节写时序。由图6-14可知,在SCLK的前8个上升沿,I/O数据线上写入的是控制字,在之后的8个上升沿,I/O数据线上写入的是数据。二、DS1302读写时序相关知识控制字的定义二、DS1302读写时序相关知识用单片机向DS1302写入一字节数据的的代码如下:二、DS1302读写时序相关知识(3)DS1302日历时钟寄存器的操作二、DS1302读写时序相关知识日历时钟寄存器的内容任务6-3DS1302的时钟系统设计任务实施通过三总线读取DS1302内部时钟,并在数码管上显示小时和分钟,比如12.38表示12点38分。任务6-3DS1302的时钟系统设计1.原理图设计DS1302的X1和X2引脚需要接至频率为32.768kHz的晶振,用于秒计时,VCC2为电源引脚,VCC1为备用电源引脚,当外部VCC2断电时,由VCC1提供电源,使得DS1302能够继续保持计时。另外,DS130
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安达市2025-2026学年七年级下学期语文月考测试试卷
- 2025 年小升初温州市初一新生分班考试语文试卷(带答案解析)-(部编版)
- Python大模型基础与智能应用(微课版)课件第9章 云服务器微调训练大模型应用案例
- 2025年小学美术教师的教学总结3篇
- 2025数学个人教学任务总结范文
- 陕西省咸阳市三原县2024-2025学年八年级(下)期末物理试卷(含答案)
- 第十三章 三角形 单元试卷(含答案) 2025-2026学年人教版数学八年级上册
- 买卖介绍居间合同范本
- 购买养殖围网合同范本
- 房房出租合同范本
- 2025晋中辅警考试真题
- 邮政快递服务质量评价指标体系构建-洞察阐释
- 呼吸衰竭个案查房
- 2025年云南省中考历史试卷真题(含答案解析)
- 教育事业“十五五”发展规划实施方案
- 2025年初级文秘职业技能鉴定理论考试题库(共500题)
- 内墙腻子劳务分包协议
- T/CI 312-2024风力发电机组塔架主体用高强钢焊接性评价方法
- 不锈钢焊工技能培训课件
- 水利安全风险防控“六项机制”与安全生产培训
- 基于遥感生态指数的柴达木盆地生态环境质量时空演变分析
评论
0/150
提交评论