单片机什么代码能88点阵动态显示

单片机什么代码能88点阵动态显示,第1张

龙之吻6iinxl8c >《单片机及控制系统》

阅464转62018.09.06关注

88点阵动态显示

硬件组成:单片机最小系统+88点阵+按键

图形移动模式 切换 1 跳动 2 上移 3 下移 4 左移 5 右移

显示内容汉字 一 二 三 四。四个字

仿真图:

打开APP查看高清大图

程序:

打开APP查看高清大图

源代码

#include

#define uchar unsigned char

#define uint unsigned int

// 左右移动 取码方式 阴码逐列

uchar code TAB[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空屏

0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00,/*'一',0*/

0x00,0x40,0x44,0x44,0x44,0x44,0x40,0x00,/*'二',1*/

0x00,0x40,0x54,0x54,0x54,0x54,0x42,0x00,/*'三',2*/

0x00,0x7E,0x52,0x5E,0x42,0x5E,0x52,0x7E,/*'四',3*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空屏, //空屏

}

// 上下移动及翻页 取模方式 阳码逐行

uchar code TAB1[]={

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //空屏

0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFF,0xFF,/*'一',0*/

0xFF,0xFF,0xC3,0xFF,0xFF,0xFF,0x81,0xFF,/*'二',1*/

0xFF,0xBF,0xC3,0xFF,0xC3,0xFF,0x81,0xFF,/*'三',2*/

0xFF,0x81,0xA9,0xA9,0xA9,0x9D,0xBD,0x81,/*'四',3*/

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //空屏

}

uchar idata Buffer[48]={0}//缓存显示单元

sbit key1=P3^2//外部中断

uchar num=0//用于图形移动切换

char i,t

void delay(uchar t)

LED点阵的核心原理跟4位LED数码管一样,都是需要行列扫描的。仔细查一下点阵的管脚,不是顺序排列,把字体做成数组,直接把数组一个一个字节的发送到端口上(你没有说明P0和P2那个是行,那个是列,其中一个直接发,一个是按位发)。不断的发送会导致点阵刷新,速度够快的话,效果就出来了

你按你的程序去看就知道了,你写完一屏就delay(500)再写下一字。这样肯定不行。

点阵要显示字符的话,要不停的去刷新它,不能只写一屏的啊。

void main()

{

uchar i,j

while(1)

{

for(j=0j<8j++){

for(i=0i<8i++){

P2=table1[i]

P0=table2[i]

delay(20)

}

}

for(j=0j<8j++){

for(i=0i<8i++){

P0=table3[i]

P2=table4[i]

delay(20)

}

}

for(j=0j<8j++){

for(i=0i<8i++){

P2=table5[i]

P0=table6[i]

delay(20)

}

}

}

}

你自己去调一下j的值就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11111710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存