| 那要看你用什么单片机,一般将你与LED连接的脚注1 |
| 可以首先设置I0通过IO控制LED |
| 可以位定义setb P1.2 |
| 将P1口全部置低电平,然后P0口将哪个引脚置高对应的那个灯就会亮 |
| 谢谢以上各位朋友的热心帮助,我用你们的程序实操了一下。实现了我想要的效果! |
| 你应该看看驱动怎么使用 |
| 你那个电路图,也看不出led具体接在74hc573的那个脚。 |
|
void main() { P1 = 0x04; } |
| 直接把sbit led=p1^3,把P1=0xfd去掉就行了 |
本帖最后由 dzbj 于 2017-4-10 19:12 编辑 yxf20170329 发表于 2017-4-10 16:33 干嘛弄这么复杂啊 看都看晕了 刚才回的不算 程序里你把led指定到P1.1上了 你操作led等于只操作P1.1啊 两个方法 1. 分别定义8个led sbit led0=P1.1; ....... sibt led7=P1.7; void main() { led0=0; ... led7=0; while(1) { led(0~7之一)=1; led(0~7之一)=1; led(0~7之一)=1; } } 就是三个亮 另外一个方法是 sibt led=P1; //直接写P1=xxxx不就行了 干嘛非弄个led名呢 void main() { led=0x00; //全关 while(1) { led=0x07; //高位在左低位在右 用win的计算器 程序员模式 2禁止到16禁止自己转换 } } |
yxf20170329 发表于 2017-4-10 16:33 你是用单片机推led 对吧 看你画的图 P0.0对 LED-BLUE 对么 如果让上面3个亮 最高位在左 最低位在右 就是1110 0000=0xe0 如果让下面3个亮 最高位在左 最低位在右 就是0000 0111=0x07 你想让水亮 按上面的例子给P0口赋值就可以了 比如 1010 1000=0xa8 也是3个亮 你这图画的 看着是真费劲啊。。。。。。。。 ![]() |
| 不懂你那个573芯片是干嘛用的,本来可以很简单的一个电路,为啥要搞那么复杂,直接上拉电阻,p1.2=0,反正我是那么接的 |
| 0xdf你试一下 |
| 第二个灯应该是 0xFD吧 |
| 灯亮 灯灭 |
| 不行呀还是第一灯亮呀。 |
| 好的我试一下。 |
| 16进制发 0xfb |