找回密码
 立即注册

QQ登录

只需一步,快速开始

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

问下版主,这个程序我想改为第1个灯亮该怎么做

[复制链接]
跳转到指定楼层
楼主
ID:23261 发表于 2010-4-22 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


#include"AT89x52.h"
#include"intrins.h"
  
#define uint unsigned int
#define uchar unsigned char

sbit WEI=P2^7;      //U2 74HC573的LE端    数码管的位选端
sbit SJ=P1^4;       //LED发光管的使能端

void main(void)
{
   SJ=0;    //开LED总使能
   WEI=1;   //让位选的U2 74hc573处于直通状态
   P0=0xff; //让所有数码管不显示,防止数码管干扰
   WEI=0;   //锁存,让位选的74hc573保持现在的状态不变,也就是一直不显示,如果不写这3行,数码管上就会有干扰  
    P0=0xef; //P0口送2进制 11101111 8个二进制对应8个led灯,也就是让为0的数码管亮,为1的不亮
   while(1); //死循环,也就是让程序停止在这里一直做死循环
}
这个是第四个灯亮,我想改为第1个灯亮怎么做.

[此贴子已经被作者于2010-4-22 17:38:38编辑过]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2010-4-22 17:47 | 只看该作者

修改倒数第二行  
 P0=0x7f;  //0x7f 化为2进制 01111111
上面的代码已经说明了为0的这一位才会亮,所以你把0移动到第一个就行了.这是个极其简单的问题咯

 

 


  简单的分析一下:你打开看51hei开发板8个led部分的电路图 ,led发光管的正极是通过一个三极管接到vcc的,在p1.4为0的情况下这个三极管就会导通,所以这时我们可以认为 led发光管的正极 是直接接到vcc的,而8个led的负极是分别直接接到P0口的,所以当P0的某一位为0时,相应的led就会有电流通过就会发光.

[此贴子已经被作者于2010-7-3 20:35:16编辑过]
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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