找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2665|回复: 3
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
下面程序如何理解?好像和初值没有关系?
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 (30.59 KB, 下载次数: 58)

1.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 单片机教程网

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