for(i=0;i<8;i++) { led=~(0x01<<i); 这段有问题,删除后直接用_cror_或者_crol_移动 |
赵杰 发表于 2018-10-15 16:55 我把发光二极管全部移到了P2口旁边,距离很近,但还是不行 |
wulin 发表于 2018-10-15 09:59 谢谢你,大神啊,你这种方法流水灯果然会走,但是为什么,它只往右循环,不往左循环啊,这是什么情况啊! |
面包板的电路(如:晶振、单片机)与开发板一样吗? |
换另外一个阻值相对较小的开发板 如果调试OK的话 就是阻值问题 有什么不懂的就回我 我给你解答 |
tanghao8887 发表于 2018-10-15 11:30 我看应该,是的 |
这个问题,比对一下面包板和开发板的LED输出的不同。 |
检验面包板电路与开发板是否相同,如果没问题,就换到面包板的其他地方试试 |
我在想是不是引线太长,导致电阻太大了! |
调整一下循环顺序就好了 #include "reg52.h" #include<intrins.h> typedef unsigned int u16; typedef unsigned char u8; #define led P2 void delay(u16 i) { while(i--); } void main() { u8 i; led=0xfe; delay(50000); //大约延时450ms while(1) { for(i=0;i<8;i++) { led=~(0x01<<i); delay(50000); } for(i=0;i<7;i++) //将led右移一位 { led=_cror_(led,1); delay(50000); } for(i=0;i<7;i++) //将led左移一位 { led=_crol_(led,1); delay(50000); //大约延时450ms } } } |
面包板就是这样的,已经遇到多次了 估计是拉出来的引线太长,干扰太多了 |
参考这个,把TEMP的值赋给PO口 |