历史上的今天
今天是:2025年03月06日(星期四)
2020年03月06日 | 51单片机-点阵模块-横向移动-i love u
2020-03-06 来源:eefocus
1.视频
bilibili视频地址:
https://www.bilibili.com/video/av90119282
51单片机-点阵模块-横向移动-i love u
2.文件
代码下载地址:
https://download.csdn.net/download/weixin_43130546/12171545
3.提示
8*8点阵模块原理图:

说明:
一块8*8点阵,可以和两块74HC595芯片,组成一个点阵模块。
一个模块最少占用三个单片机引脚:IO串口数据发送引脚,发送时钟,显示时钟。
高位595的/Q7,和低位595的SER(DIO)相连,数据从高位595挤到低位595。
595送数据的顺序是:数据从最高位进,挤到最低位,然后挤到下一个595的最高位,以此类推。
点阵高低位顺序是:逆时针从9脚(最高位)到5脚,从16脚到13脚(最低位)。
4.代码
#include sbit DIO = P3^4; sbit S_CLK = P3^5; sbit R_CLK = P3^6; unsigned char code MatrixBuff[40] = //阴码给1点亮,列, { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xC3,0xC3,0xFF,0xFF,0xC3,0xC3,0x00, 0x38,0x7C,0x7E,0x3F,0x3F,0x7E,0x7C,0x38, 0x00,0xFE,0xFF,0x03,0x03,0xFF,0xFE,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; bit flag = 0; unsigned char index = 0; void ConfigTimer0(void); void MatrixShow(void); void main(void) { ConfigTimer0(); while(1) { MatrixShow(); if(1==flag) { flag = 0; index++; if(index>=33) { index = 0; } } } } void ConfigTimer0(void) { TH0 = 0xFC; TL0 = 0x67; EA = 1; ET0 = 1; TMOD &= 0xF0; TMOD |= 0x01; TF0 = 0; TR0 = 1; } void SendType(unsigned char type) { unsigned char i; S_CLK = 0; for(i=0;i<8;i++) { if(type&0x01) { DIO = 1; } else { DIO = 0; } type >>= 1; S_CLK = 1; S_CLK = 0; } } void MatrixShow(void) { unsigned char i; unsigned char row = ~0x01; R_CLK = 0; for(i=0;i<8;i++) { SendType(row); SendType(MatrixBuff[index+i]); row = ~(~row<<1); R_CLK = 1; R_CLK = 0; } } void InterruptTimer0(void) interrupt 1 { static unsigned int cnt = 0; //static unsigned int Cnt1s = 0; TH0 = 0xFC; TL0 = 0x67; cnt++; if(cnt>=250) { cnt = 0; flag = 1; } }
史海拾趣
|
摘要:移动Ad hoc网络是由一组自主的无线节点或终端相互合作而形成的网络,由于其动态拓扑、无线通信的特点,容易遭受各种安全威胁。从传输信道、移动节点、动态拓扑、安全机制、路由协议几方面,分析了移动Ad Hoc网络的安全弱点,然后结合其安全策 ...… 查看全部问答> |
|
这是我的工程文件. ###################################################################### # Automatically generated by qmake (2.01a) Tue Dec 1 21:51:35 2009 #################################################################### ...… 查看全部问答> |
|
我写了个今日插件,用CWnd::Create创建的窗体,回调函数用AfxWndProc 在wm5下好用,换到wm6下有问题,有些机器上Create失败,有些机器上虽然成功了 窗体被覆盖后收不到WM_PAINT消息,谁遇到过类似问题吗;后来也改用APIC创建窗体, 但是还要在上 ...… 查看全部问答> |
|
看来基础实在太差,到了时钟,学习进度开始放慢。输入输出的设定的确简单,只需要这通过P1DIR来设定,将相应的BIT设定成0或1就行。随LaunchPad带来的G2231只有P1,所以单片机只有8个输入/输出脚。至今还不理解的是,8个输出脚如何能进行10 Bit的AD ...… 查看全部问答> |
|
这是我心血来潮弄下555的仿真,发现根本就不行。。以前也有出现过这样的问题,不过都找出了电路的连接问题,不过这次我真心无语了,在multisim中仿真就是很正常,为毛这里就不行啊。。555长的不都一样吗,help中的555内部结构我都看了,没觉得有 ...… 查看全部问答> |
|
我在DSP开发过程遇到问题,如下: 开发平台:TI DM6446 (ARM+DSP)双核系统 DSP程序运行后用fopen(“opt/motionDetect1227/test.map”,”rb”)函数打开读取二进制文件内容,但fopen()打开失败,不知如何解决?目前猜测是文件路径不对,这个路径是AR ...… 查看全部问答> |




