8x8点阵实现在程序代码中画出你想要的图形!
(2011-12-01 09:01:30)
标签:
单片机at89s528x8点阵程序keilledio函数锁存器16进制2进制10进制 |
分类: 单片机 |
比如让接在P1口的一排LED灯第一个亮其他不亮只需要用keil编写代码P1=0x01(00000001)或者P1=1(转换成十进制的数的1)即可,
又比如让第二和第七个亮则P1=0x42(01000010)或者P1=66(转换成十进制的数66),这样就可以让给我么想要的灯亮了,但是这样写很麻烦,即使自己已经很熟悉了还是觉得不舒服,那怎么办呢?
我们又可以用sbit将指定的I/O定义为我们想要的字符,比如sbit
P11=P1^1,这样呢我们就能直接操作P11的值来控制P1的一号口的电平了,但是这个对于操作点阵还是没什么实质性的作用。
然后我确实不想每次都去打十六进制的代码来操作图像,所以就想把8x8点阵的图像存在一个8x8的数组里面
数组画成什么样子,则显示成什么样子
0代表不显示,1代表显示,则我们可以直接通过数组画出自己想的图形,然后图形的移动变换什么的,也可以通过直接增加数组的维数实现移动,这个我想我不说大家也知道了吧!
然后有一段关键的代码就是(我用了锁存器,所以只用了8个I\O口)
unsigned int ncifang(unsigned int n)
{
for(i=1;i<=n;i++)
return a;
}(这是下面代码所要用到的函数,把存在xy[]数组里的图形变成十进制数存进xx[],然后就可以显示啦)
大概的就介绍到这里,可能写的不够清楚,有什么我写的不清楚或者大家有问题的地方欢迎询问啊
PS:本人刚学单片机不久,水平不咋的,希望指教!