编程通过只是说明你的程序没有语法错误,至于你的功能是什么,能不能实现,编译器是管不了的。编译器所保证的就是正确的解释你的代码,把你的代码解释成单片机使用的机器码,然后生成烧写文件,至于你想要的功能却达不到,那肯定是你的问题。
首先检查硬件,驱动方式有没有问题,电流够不够大,延时合不合理?如果硬件不确定的的话,试一试用软件仿真,你是直接驱动IO口,功能还是很简单的,keil的软件仿真能够隔开你的硬件,程序单步执行,看端口输出能不能达到设计要求,如果能,还是硬件的问题;不能,那就找程序的错误。
② 51单片机LED点阵屏有灯不亮怎么办
可进入调试模式,在执行22句后,检查595数据,看看其输出是不是 0xaa,在执行23句后,检查P0口数据,看看是不是 0x7f;
③ 单片机Led灯不亮
看你的板子,P1^0引脚上并没有LED灯,那8个LED灯应该在P0口上吧,把程序的定义改一下。
sbitD1=P0^0;
另外写主程序,要加一行while(1); 见下图,两个画红圈处的改法。
最后补充一点,普中的实验板,用的是STC单片机,去STC官网下载正宗的烧录软件:STC-ISP。别用普中的烧录软件,不可靠,经常不能正常烧录程序。
④ 51单片机学习板led灯不亮
首先从你给出的条件来说:你用sbit 声明led1来代表P1^0口,但是在主函数中却使用led来点亮,很明显这个是不行的,而且编译时会报错。
再一个你要确定LED是连在P1口。
最后,你要清楚是共阴还是共阳接法,这样决定是写1亮还是写0亮。
不懂的地方随时回复我交流。
希望我的回答能帮助到你。
⑤ 单片机LED灯不亮问题!(初学者)
P0如果不等于0,默认就是高电平。看电路,P0为高时,LED负极是高电平时,不导通LED肯定不会亮 。