8x8点阵滚动c语言程序,8x8点阵显示滚动广告 单片机源程序

这是一个使用C语言编写的8x8点阵显示滚动广告的程序,适用于STC89C52单片机。程序中包含了点阵列选择、字模左移和点阵扫描的实现,通过不断更新字模位置来实现滚动效果。
摘要由CSDN通过智能技术生成

/*=======================================================================

程序名        :        8x8点阵显示滚动广告

编写人        :        李镇

编写时间:        2015年5月22日

硬件支持:        STC89C52(QFC51开发板联系旺旺ID:qq763187758)

系统时钟:        12MHZ

程序目的:        在试验开发板的点阵上显示滚动广告.

试验工具:        QFC51开发板,记得把显示切换到点阵显示4的位置

程序说明:        本程序的取模方式是纵向取模,0电平点亮,所以用软件取的模还要反白,

点阵扫描原理是:先选通第最左边的一列,再发送取模数据,一直扫描到最后一列

点阵扫描每次只扫描前8列,滚动的效果的原理是,每隔一定时间,就把所有取模向前移一位,就达到滚动效果.

当然也可以向后移一位,或者多位.

==========================

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的单片机 8x8 点阵滚动显示的代码示例,使用了移位寄存器和定时器/计数器实现: ```c #include <reg52.h> #define LED_ROW P0 // 设置点阵屏的行(P0口) #define LED_COL P1 // 设置点阵屏的列(P1口) unsigned char code LED_TABLE[10][8] = { {0x3C, 0x42, 0x81, 0x81, 0x81, 0x42, 0x3C, 0x00}, // 0 {0x00, 0x21, 0x21, 0xFF, 0x01, 0x01, 0x00, 0x00}, // 1 {0x21, 0x43, 0x85, 0x89, 0x91, 0x61, 0x41, 0x00}, // 2 {0x42, 0x81, 0x89, 0x89, 0x89, 0x76, 0x00, 0x00}, // 3 {0x0F, 0x10, 0x20, 0x40, 0xFF, 0x00, 0x00, 0x00}, // 4 {0xF1, 0x89, 0x89, 0x89, 0x89, 0x8F, 0x00, 0x00}, // 5 {0x7E, 0x89, 0x89, 0x89, 0x89, 0x72, 0x00, 0x00}, // 6 {0x01, 0x01, 0x81, 0x89, 0x25, 0x13, 0x01, 0x00}, // 7 {0x76, 0x89, 0x89, 0x89, 0x89, 0x76, 0x00, 0x00}, // 8 {0x06, 0x89, 0x89, 0x89, 0x49, 0x3E, 0x00, 0x00} // 9 }; void delay(unsigned int ms) { unsigned int i, j; for(i = 0; i < ms; i++) for(j = 0; j < 120; j++); } void display(unsigned char *p) { unsigned char i, j; for(i = 0; i < 8; i++) { LED_ROW = 0x00; // 先将行输出设置为0 LED_COL = ~p[i]; // 将列输出设置为该行应该显示的数据 for(j = 0; j < 8; j++) { LED_ROW = (LED_ROW << 1) | 0x01; // 移位并设置最低位为1 delay(1); } } } void main() { unsigned char i, j; while(1) { for(i = 0; i < 10; i++) { for(j = 0; j < 8; j++) { display(&LED_TABLE[i][j]); // 显示当前数字 delay(50); // 延时一定时间 } delay(100); // 停留一定时间再进行下一个数字的显示 } } } ``` 该代码的思路是循环显示数字 0~9,在每个数字的显示过程中,先将该数字的每一行数据按列依次输出,然后每隔一定时间(50ms)左移一位,实现滚动效果。在每个数字显示完毕后,停留一定时间(100ms)再进行下一个数字的显示。需要注意的是,该代码只是一个简单的示例,实际使用中需要根据具体的硬件和需求进行适当的修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值