找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2899|回复: 3
收起左侧

开关控制灯的单片机程序如何理解?

[复制链接]
ID:237797 发表于 2018-7-17 20:17 | 显示全部楼层 |阅读模式
下面程序如何理解?好像和初值没有关系?
SW1控制D1,SW2控制D2,SW3控制D3,SW4控制D4,当SW1按下时,也就是P1.4为低电平,灯D1发光点亮,也就是P1.0为低电平。C语言程序如何理解?,程序如下:
         #include <AT89X51.H>
                unsigned char temp;
                void main(void)
                {
                while(1)
                {
                temp=P1>>4;
                temp=temp | 0xf0;
                P1=temp;
                }
                }

1.png
回复

使用道具 举报

ID:237797 发表于 2018-7-18 08:14 | 显示全部楼层
我的理解是这样的:
P1口的初值是:1111 1111,右移四位后变为:0000 1111,再和F0相|(或),结果为:1111 1111,把这个结果赋值给P1口。不明白这个结果是如何实现开关控制灯的。
回复

使用道具 举报

ID:367369 发表于 2018-7-18 08:42 | 显示全部楼层
按下开关为低电平,如SW4按下P1=0111 1111.  右移4位0000 0111与F0 相或位1111 0111对应第四个灯亮
回复

使用道具 举报

ID:237797 发表于 2018-7-18 16:45 | 显示全部楼层
谢谢game灬boy解答!明白意思了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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