找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机DS18B20采集温度,使用74HC573锁存器和138译码器数码管显示

查看数: 3993 | 评论数: 1 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-4-28 13:05

正文摘要:

-55~125℃温度显示 精度0.1℃ 功能: (1)使用单片机对DS18B20温度传感器进行读取得到温度值 (2)使用74hc573锁存器驱动数码管的断码显示 (3)使用74hc138译码器选择数码管 (4)增加了传感器状态监测,如 ...

回复

ID:496636 发表于 2022-6-11 08:35
118句的变量a如果是从0开始到7,那么SMG_Channel函数就可以用几条语句来替换掉冗长的switch语句。因为a的值就等于输给三八译码器三位二进制的值。如a=0时,LSA = 0;LSB = 0;LSC = 0;a=1时,LSA = 1;LSB = 0;LSC =0;


unsigned char tmp;
tmp=P2;
tmp&=0xf8;//与二进制数11111000按位与,把低三位清零。
tmp|=a;//通过按位或把a加到后三位上。
P2=tmp;//再把值赋给P2。


当然118行的循环语句也可以改成另一种风格书写,最好是在定时中断中调用,把a定义为静态变量。
a++;
a&=0x07;//a的与二进制数00000111按位与,如果小于7,不变,如果变成1000,高位被清零。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表