单片机基础(第3版)——第12章1.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 单片机应用 12.1 单片机简单控制应用 12.2 单片机应用的发展 12.3 单片机开发系统 12.1 单片机简单控制应用 自动化、数字化和智能化是现代科技发展的潮流,而凡是需要自动化、数字化和智能化的产品和设备等都离不开单片机。 时钟计时 1. 时钟计时设置 使用80C51的定时器/计数器来实现时钟计时,是一个很好的应用课题。 说明如下: ① 要计算计数初值。 ② 采用中断方式,即通过中断服务程序进行计数器溢出次数的累计,计满8次即得到秒计时。 ③ 通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时。 ④ 设置时钟显示缓冲区。 2. 程序流程 (1)主程序MAIN 主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125 ms定时中断的出现。流程图如下: (2)中断服务程序PIT0 中断服务程序的主要功能是进行计时操作。程序开始先判断计数溢出是否满了8次,若不满8次表明还没有达到最小计时单位秒,则中断返回;若满8次表明已达到最小计时单位秒,则程序继续向下执行,进行分和时的计时。中断服务程序流程如图所示。 (3)加1子程序DAAD1 加1子程序用于完成对秒、分、时的加1操作,中断服务程序中在秒、分、时加1时共有3处调用此子程序。程序流程如图。加1操作共包括以下3项内容: ① 合数。由于每位LED显示器对应一个8位缓冲单元,因此,由两位BCD码表示的时间值各占用一个缓冲单元,且只占其低4位。所以在加1运算之前需把两个缓冲单元中存放的数值合并起来,构成一个字节,然后才能进行加1运算。所以也称为“合字”。 ② 十进制调整。加1后须进行十进制调整。 ③ 分数。把加1后的时间值再拆分成两个字节,送回各自的缓冲单元中。 3. 程序清单(略) 数字式热敏电阻温度计 1. 热敏电阻温度转换原理 热敏电阻与普通热电阻不同,它具有负电阻温度特性,当温度升高时,电阻值减小。其特性曲线如下图所示 。常在要求不高的一般应用中,作出在一定的温度范围内温度与阻值成线性关系的假定,以简化计算。 热敏电阻的应用是为了感知温度,为此给热敏电阻通以恒定的电流,测量电阻两端得到一个电压,然后就可以通过下列公式求得温度: t=t0-KVT式中: t为被测温度。 t0为与热敏电阻特性有关的温度参数。 K为与热敏电阻特性有关的系数。 VT为热敏电阻两端的电压。 2. 基本电路 假定使用ADC0809进行A/D转换。其电路连接如下图所示 数字式热敏电阻温度计 3. 程序设计 (1)温度计算程序 在温度计算公式中,系数值K是一个很小的数,为计算方便,取扩大256倍后的K值与VT做乘法运算,即256×K×VT。相乘后如果对乘积只取其高8位而舍弃其低8位,就可以抵消K的256倍扩大,得到正确的结果。 另外,从热敏电阻的阻值-温度特性图中可以看出,在+10~+150℃的温度范围内,阻值与温度的关系线性度比较好。通常就把这个温度范围作为有效温度范围。当温度超出此范围时以数码管全部显示F作为标志。 假定6位数码管显示缓冲区的存储单元为内部RAM 27H~2CH 对应LED0~LED5)。输入的A/D转换电压VT在累加器A中,扩大256倍后的K值为0XXH,T0值为0YYH。温度计算程序如下: COMP: MOV B, #0XXH ;扩大256倍的K值送B MUL AB;256×K×VT MOV A, #0YYH ;t0值送A,舍弃乘积低8位 CLR C ;清进位位 SUBB A, B;t0-K×VT CJNE A, #0AH, COMP1 COMP1:JNC COMP4 ;温度低于10℃,显示F CJNE A, #97H, COMP2 COMP2:JC COMP3 ;温度低于151℃,则转移 COMP4:MOV 27H, #0FH ;超出有效温度范围,则显示F MOV 28H, #0FH MOV 29H, #0FH MOV 2AH, #0FH MOV 2BH, #0FH MOV 2CH, #0FH ACALL DISP ;调用显示子程序 COMP3:RET (2)温度值转换为十进制数程序 计算得到的温度值在A中,但以十六进制数的形式存在,为满足LED显示需要应转换为十进制数。由于有效温度不超过150℃,所以温度显示用3位数码管,其显示格式为: AD×××(其中×××为温度值 参考程序如下: MOV R1, #00H MOV R2, #00H CLR C CHAN: SUBB A, #64H ;减100 JC CHAN1 ;不够减,则转 INC R1 ;够减,有效位

文档评论(0)

书屋 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档