单片机学习小组
登录
直播中
李皓圳
7年用户
1074经验值
私信
关注
***点阵滚动程序已经超过设定的界限为什么还能够正常运行
开启该帖子的消息推送
单片机
8x8点阵
接口
8*8点阵滚动程序已经超过设定的一维数组的界限为什么还是能够正常运行?
回帖
(1)
张倩
2022-2-23 11:33:02
【函数功能】: 8*8点阵动态显示,箭头左移。
【使用说明】: 兼容1602接口,使用时请把点阵1脚至6脚对应接到1602 1脚至6脚,
使用QX-MCS51开发板可以直接烧写此程序,无需修改接口。
**********************************************************************************/
#include “main.h”
//定义变量
unsigned char temp = 0xfe;
unsigned char KEY_NUM = 0;
unsigned char Display_word[24] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10, //箭头
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
//****************************************************
//主函数
//****************************************************
void main()
{
unsigned int i;
unsigned char j,k;
while(1)
{
for(j = 0 ; j < 16 ; j++)
{
for(i = 0 ; i < 50 ; i++)
{
temp = 0x7f;
for(k = 0 ; k < 16 ; k++) //一个字母4BYTE
{
Send_Byte(temp); //列选择
Send_Byte(Display_word[j+k]); //数据
LEDARRAY_LAT = 1; //锁存数据
nop
();
LEDARRAY_LAT = 0;
_nop_();
temp = (temp>>1)|0x80;
}
}
}
}
}
//****************************************************
//发送一个字节数据
//****************************************************
void Send_Byte( unsigned char dat)
{
unsigned char i;
LEDARRAY_CLK = 0;
nop
();
LEDARRAY_LAT = 0;
nop
();
for( i = 0 ; i < 8 ; i++ )
{
if( dat&0x01 )
{
LEDARRAY_DI = 1;
}
else
{
LEDARRAY_DI = 0;
}
LEDARRAY_CLK = 1; //上升沿发送数据
// _nop_();
LEDARRAY_CLK = 0;
// _nop_();
dat >>= 1;
}
}
【函数功能】: 8*8点阵动态显示,箭头左移。
【使用说明】: 兼容1602接口,使用时请把点阵1脚至6脚对应接到1602 1脚至6脚,
使用QX-MCS51开发板可以直接烧写此程序,无需修改接口。
**********************************************************************************/
#include “main.h”
//定义变量
unsigned char temp = 0xfe;
unsigned char KEY_NUM = 0;
unsigned char Display_word[24] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10, //箭头
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
//****************************************************
//主函数
//****************************************************
void main()
{
unsigned int i;
unsigned char j,k;
while(1)
{
for(j = 0 ; j < 16 ; j++)
{
for(i = 0 ; i < 50 ; i++)
{
temp = 0x7f;
for(k = 0 ; k < 16 ; k++) //一个字母4BYTE
{
Send_Byte(temp); //列选择
Send_Byte(Display_word[j+k]); //数据
LEDARRAY_LAT = 1; //锁存数据
nop
();
LEDARRAY_LAT = 0;
_nop_();
temp = (temp>>1)|0x80;
}
}
}
}
}
//****************************************************
//发送一个字节数据
//****************************************************
void Send_Byte( unsigned char dat)
{
unsigned char i;
LEDARRAY_CLK = 0;
nop
();
LEDARRAY_LAT = 0;
nop
();
for( i = 0 ; i < 8 ; i++ )
{
if( dat&0x01 )
{
LEDARRAY_DI = 1;
}
else
{
LEDARRAY_DI = 0;
}
LEDARRAY_CLK = 1; //上升沿发送数据
// _nop_();
LEDARRAY_CLK = 0;
// _nop_();
dat >>= 1;
}
}
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
8x8点阵
接口
p10led 16*32单色
点阵
汉字
滚动
显示
程序
怎么写。
2018-10-26
4008
怎样去设计16×16LED汉字
点阵
滚动
显示屏?
2021-05-31
3549
***
点阵
滚动
显示
2012-08-10
6366
点阵
怎么 让它静态、闪动、
滚动
显示
2013-04-06
2916
8x8
点阵
怎样实现纵向
滚动
上下
滚动
?
2023-10-17
292
请高手帮忙给我一个51单片机16x64的
点阵
pcb图和
滚动
c
程序
2011-03-14
3245
新手求助如何利用LED
点阵
屏去实现文字
滚动
呢
2022-01-21
792
请问
点阵
如何
滚动
显示?
2020-05-11
2647
新人求助!!需要用MSP430设计16*16
点阵
。。。
2015-05-12
5844
变频器具有限制电流的功能,为什么电机
运行
时,
还能
过载?
2023-12-25
934
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分