单片机LED点阵如何显示数字和图形,C语言代码,实验做不出来了,谢谢各位
如果你认真的阅读了书本,那么点亮第一个LED的代码将会是这样:
#include<reg52.h>
sbit LED=P1^0;
void main(){
LED=0;
while(1);
}
当你认认真真搞完了代码,编译,烧录后,你发现单片机根本不理你。试了很多次,然而一点办法也没有。你可能觉得使单片机坏了,而事实并不是这样。
书本在前文已经讲了发光二极管的原理,单片机通过改变引脚电平来控制发光二极管两端的电位,因此我们可以首先考虑是否是引脚的问题。
拿到开发板,首先查看技术文档是一个好习惯,技术文档描述了手中开发板的性能和特点。而网络上的意见未必适用与你的情况
如图所示,这是8个共阳极发光二极管。这里可能会有同学被单片机的标识误导。如下方图片所示,在区域5中同时标有LED模块和88点阵,而实际上88点阵是区域4。
另外 ,在LED模块示意图中,我们知道LED模块阴极实际上连接着单片机P2引脚群而不是P1引脚群。(假设忽略锁存器RP9和RP10,因为锁存器在使用时都是可以看作导通的)
锁存器可以看成是一种大型的RS触发器(基本触发器),它也具有保持态。书本P27举例了关于锁存器74HC573的例子,这里不再赘述。
为了解决LED无法点亮的问题,我们只需要将所控制的引脚代码修改一下即可。
#include<reg52.h>
sbit LED=P2^0;
void main(){
LED=0;
while(1);
}
P2^0就是指P2引脚群的第一个引脚,我们只需更改一个引脚名称,就可以是程序正确起来。