教学课件单片机创新开发教程ch14 使用比较器.pptx
-
资源ID:76412637
资源大小:2.31MB
全文页数:19页
- 资源格式: PPTX
下载积分:10金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
教学课件单片机创新开发教程ch14 使用比较器.pptx
教材配套PPT正版可修改课件教学课件单片机创新开发教程ch14 使用比较器单片机创新开发教程-基于STC8吴险峰第14章 使用比较器比较器用于比较两个输入端的电压的大小,可以作为简单的模数转换单元。单片机的比较器主要用于检测输入电压的异常情况。本章讲述了如何使用比较器。1.情境导入2.学习目标3.相关知识4.项目设计5.项目实现6.知识拓展7.强化练习14.1情境导入小白:“传感器发生异常情况怎么办?虽然可以用定时器进行周期性检测,但是感觉效率很低。”小牛:“这种情况我们可以用比较器进行触发。将传感器的值转换成数字,然后和基准值比较,如果出现异常情况就紧急处理,不用通过定时器来触发。这样的处理逻辑效率更高,而且更有针对性。另外虽然STC8只有一个比较器,但是可以分时复用,不用担心比较器数量不够的情况。”小白:“这么神奇,我要学!”。14.2 学习目标【知识目标】1.学习比较器的理论知识。2.掌握比较器的控制寄存器。3.了解低电压检测方式。【能力目标】1.能理解比较器含义。2.能进行比较器设置。3.能进行比较器编程。14.3 相关知识l14.3.1.比较器l14.3.2.STC8系列的比较器结构l14.3.3.使用LVD功能检测工作电压(电池电压)14.3 相关知识14.3.1.比较器一般来说,对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系及排列顺序称为比较。能够实现这种比较功能的电路或装置称为比较器。在单片机里,比较器一般的作用就是比较信号电压和基准电压两个电压的大小。单片机的比较器可以看作1位的ADC。信号电压跟参考电压比较,当大小发生变化时,就可以输出逻辑0、1,单片机检测这个电平就可以进行相应的处理。14.3 相关知识14.3.2.STC8系列的比较器结构STC8H系列单片机内部集成了一个比较器。比较器的正极可以是P3.7端口或者ADC的模拟输入通道,而负极可以P3.6端口或者是内部固定比较电压(STC8的参考比较电压为1.19V)。通过多路选择器和分时复用可实现多个比较器的应用。主要寄存器包括比较器控制寄存器1(CMPCR1)和比较器控制寄存器2(CMPCR2)。此外比较器也会调用外设端口切换控制寄存器2(P_SW2)。相关寄存器配置如下。14.3 相关知识14.3.2.STC8系列的比较器结构1.比较器控制寄存器比较器控制寄存器1(CMPCR1)CMPCR1主要包含比较器的基本设置,包括使能、中断和端口设置,如表14-1所示。符号地址B7B6B5B4B3B2B1B0CMPCR1E6HCMPENCMPIFPIENIEPISNISCMPOECMPRES(1)CMPEN:比较器模块使能位。0:关闭比较功能。1:使能比较功能。(2)CMPIF:比较器中断标志位。当PIE或NIE被使能后,若产生相应的中断信号,硬件自动将CMPIF置1,并向CPU提出中断请求。此标志位必须用户软件清零。注意:没有使能比较器中断时,硬件不会设置此中断标志,即使用查询方式访问比较器时,不能查询此中断标志。(3)PIE:比较器上升沿中断使能位。0:禁止比较器上升沿中断。1:使能比较器上升沿中断。使能比较器的比较结果由0变成1时产生中断请求。(4)NIE:比较器下降沿中断使能位。0:禁止比较器下降沿中断。1:使能比较器下降沿中断。使能比较器的比较结果由1变成0时产生中断请求。14.3 相关知识14.3.2.STC8系列的比较器结构1.比较器控制寄存器比较器控制寄存器1(CMPCR1)CMPCR1主要包含比较器的基本设置,包括使能、中断和端口设置,如表14-1所示。符号地址B7B6B5B4B3B2B1B0CMPCR1E6HCMPENCMPIFPIENIEPISNISCMPOECMPRES(5)PIS:比较器的正极选择位。0:选择外部端口P3.7为比较器正极输入源。1:通过ADC_CONTR中的ADC_CHS位选择ADC的模拟输入端作为比较器正极输入源。注意:当比较器正极选择ADC输入通道时,请务必要打开ADC_CONTR寄存器中的ADC电源控制位ADC_POWER和ADC通道选择位ADC_CHS。当需要使用比较器中断唤醒掉电模式/时钟停振模式时,比较器正极必须选择P3.7,不能使用ADC输入通道。(6)NIS:比较器的负极选择位。0:选择内部参考电压REFV作为比较器负极输入源(芯片在出厂时,内部参考信号源调整为1.19V)。1:选择外部端口P3.6为比较器负极输入源。(7)CMPOE:比较器结果输出控制位。0:禁止比较器结果输出。1:使能比较器结果输出。比较器结果输出到P3.4或者P4.1(由P_SW2中的CMPO_S进行设定)。(8)CMPRES:比较器的比较结果。此位为只读。0:表示CMP+的电平低于CMP-的电平。1:表示CMP+的电平高于CMP-的电平。(9)CMPRES是经过数字滤波后的输出信号,而不是比较器的直接输出结果。14.3 相关知识14.3.2.STC8系列的比较器结构2.比较器控制寄存器比较器控制寄存器2(CMPCR2)比较器控制寄存器2主要用于滤波控制,如表14-2所示。符号地址B7B6B5B4B3B2B1B0CMPCR2E7HINVCMPODISFLTLCDTY5:0(1)INVCMPO:比较器结果输出控制。0:比较器结果正向输出。若CMPRES为0,则P3.4/P4.1输出低电平,反之输出高电平。1:比较器结果反向输出。若CMPRES为0,则P3.4/P4.1输出高电平,反之输出低电平。(2)DISFLT:模拟滤波功能控制。0:使能0.1s模拟滤波功能。1:关闭0.1s模拟滤波功能,可略微提高比较器的比较速度。(3)LCDTY5:0:数字滤波功能控制。注意:当使能数字滤波功能后,芯片内部实际的等待时钟需额外增加两个状态机切换时间,即若LCDTY设置为0时,为关闭数字滤波功能;若LCDTY设置为非0值n(n=163)时,则实际的数字滤波时间为(n+2)个系统时钟。14.3 相关知识14.3.2.STC8系列的比较器结构3.3.外设端口切换控制寄存器外设端口切换控制寄存器2 2(P_SW2P_SW2)比较器输出位选择需要用到外设端口切换控制寄存器2(P_SW2),该寄存器如表14-3所示。符号地址B7B6B5B4B3B2B1B0P_SW2BAHEAXFR-I2C_S1:0CMPO_SS4_SS3_S(1)EAXFR:扩展RAM区特殊功能寄存器(XFR)访问控制寄存器。0:禁止访问XFR。1:使能访问XFR。当需要访问XFR时,必须先将EAXFR置1,才能对XFR进行正常的读写。(2)I2C_S1:0:I2C功能脚选择位。(3)CMPO_S:比较器输出脚选择位。0:P3.4。1:P4.1。(4)S4_S:串口4功能脚选择位。(5)S3_S:串口3功能脚选择位。(6)S2_S:串口2功能脚选择位。注意:P_SW2还可以对串口2/3/4和I2C的功能脚进行选择。我们前面讲串口时,因为图形化指令已经把该寄存器功能封装了,所以不需要单独设置。但比较器功能相对单一,没有封装图形化指令。即使是图形化编程,还是采用类似字符编程的方式,直接对寄存器进行读写。14.3 相关知识14.3.3.使用LVD功能检测工作电压(电池电压)由于STC8单片机包含有针对自身低压检测功能(LVD),比较器更多的是用于外设电路部分电压检测。若需要使用LVD功能检测电池电压,则在ISP下载时需要将低压复位功能去掉,如下图14-1所示。“允许低压复位(禁止低压中断)”的硬件选项的勾选项需要去掉。电源控制寄存器PCON(见表12-3)的第5位LVDF就是设置低压检测标志位。当系统检测到低压事件时,硬件自动将此位置1,并向CPU提出中断请求。此位需要用户软件清零。具体可以参考STC8编程手册。比较器暂时还没有将寄存器进行图形化封装,需要直接使用寄存器进行编程。14.4 项目设计STC8自带比较器功能,不需要硬件设计。14.4 项目设计任务比较器测试程序voidsetup()twen_board_init();/天问51初始化CMPCR2=0 xE0;/11100000ADC_CONTR=0 x8D;P_SW2=(P_SW2|0 x08);CMPCR1=0 x8A;/10001010(1)CMPCR2=0 xE0;/1110 0000比较器结果反向输出。若CMPRES为0,则P4.1输出高电平。关闭0.1us模拟滤波功能。数字滤波时间为(32+16+2=50)个系统时钟。(2)ADC_CONTR=0 x8D;选择ADC的13(16进制D)引脚输入,对应STC8编程手册或者开发板电路图可以发现,ADC13对应的功能脚是P05,连接的是电位器。(3)P_SW2=(P_SW2|0 x08);设定比较器输出脚选择位P4.1。(4)CMPCR1=0 x8A;/1000 1010使能比较功能;通过ADC_CONTR中的ADC_CHS位选择ADC13作为比较器正极输入源;选择内部参考电压作为负极输入源;使能比较器结果输出。比较器结果输出到P4.1。所以本代码功能就是检测电位器的电压值变化,如果电压低于临界值,则比较器指示灯亮。本任务演示比较器测试程序,对电位器输出电压进行检测。14.5 项目实现开发板任务演示步骤的和前章基本类似,为避免重复略去。具体操作请扫描二维码观看。本项目无法用Proteus仿真,理由主要还是因为用了STC8的ADC功能,此ADC功能无法在STC15上调用。14.6.知识拓展【科普】掉电检测l单片机比较器的一个非常重要的功能就是系统的掉电检测。单片机系统在使用或者调试中,会经常遇到系统电源突然掉电的情况,这种突发情况会导致系统丢失重要的数据且不能恢复。还有系统在运行中突然中断,会对存储器造成损坏,这种情况往往会影响产品的可靠性,为了尽量避免这种不稳定性情况的出现,产品需要增加掉电检测和保护电路。l掉电检测和保护电路就是对系统电压进行监测,当系统电压值下降到低压警戒值时,电路会发现并做出反应,发出一个警告信号,处理器接收到警告信号之后马上进行数据保存等操作,防止系统数据丢失。通过内置比较器功能,单片机可以很容易实现掉电检测功能。此外,电容也是保护电路的重要部件之一,其可以延缓电压清零的状态,为保存数据赢得时间。l【思考与启示】l1.为工程问题提供现实的解决方案,培养未来工程师的社会责任感。l2.为什么要在单片机中添加比较器功能。14.7强化练习1.使用比较器中断,为任务1增加蜂鸣器报警功能。2.编写使用LVD功能检测单片机电池电压程序。谢谢观看