在线时间145 小时
UID3256146
注册时间2016-3-29
NXP金币27
TA的每日心情 | 衰 2022-6-3 10:27 |
---|
签到天数: 131 天 连续签到: 1 天 [LV.7]常住居民III
金牌会员
 
- 积分
- 1611
- 最后登录
- 2022-6-26
|
板子到手好久了
额本来想弄个血氧传感来的
那个fifo的读取老是搞不通 只能先放放啦 有大神懂得求指教啊
今天点个led点阵玩玩
目标是搞个贪吃蛇小游戏玩耍玩耍
- #include "mbed.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define count 4
- DigitalOut Max7219_pinCLK(P0_17);
- DigitalOut Max7219_pinCS(P0_16);
- DigitalOut Max7219_pinDIN(P0_28);
- //--------------------------------------------
- void Write_Max7219_byte(uchar DATA)
- {
- uchar i;
- Max7219_pinCS=0;
- for(i=8;i>=1;i--)
- {
- Max7219_pinCLK=0;
- Max7219_pinDIN=DATA&0x80;
- DATA=DATA<<1;
- Max7219_pinCLK=1;
- }
- }
- //-------------------------------------------
- void Write_Max7219(uchar address,uchar dat)
- { uchar i;
- wait_ms(10);
- Max7219_pinCS=0;
- for(i=0;i<count;i++)
- {
- Write_Max7219_byte(address);
- Write_Max7219_byte(dat);
- wait_ms(10);
- }
- Max7219_pinCS=1;
- wait_ms(10);
- }
- void Init_MAX7219(void)
- {
-
- Write_Max7219(0x09, 0x00);
- Write_Max7219(0x0a, 0x01);
- Write_Max7219(0x0b, 0x07);
- Write_Max7219(0x0c, 0x01);
- Write_Max7219(0x0f, 0x00);
- }
- void clean(void)
- {
- uchar i;
- for(i=1;i<9;i++)
- Write_Max7219(i,0x00);
- }
- //µãµãÊä³öx0~31,y?0~8??
- void Dsp(uchar x,uchar y)
- {
- uchar dsp[4][8]={0};
- uchar i,j,k;
- k=x/8,x%=8;
- dsp[3-k][y]=(0x80>>x)|dsp[3-k][y-1];
- for(i=1;i<9;i++)
- {
- Max7219_pinCS=0;
- for(j=0;j<count;j++)
- {
- Write_Max7219_byte(i);
- Write_Max7219_byte(dsp[count-1-j][i-1]);
- wait_ms(1);
- }
- Max7219_pinCS=1;
-
- }
- }
- int main(void)
- {
- // uchar i,j;
- wait_ms(50);
- Init_MAX7219();
- while(1)
- {
- uchar i,j;
- for(j=0;j<31;j++)
- for(i=0;i<8;i++)
- {Dsp(j,i);
- wait_ms(100);}
- //clean();
- wait_ms(1000);
- }
- }
复制代码
用mbed写的
毕竟简单嘛
额注释都变成乱码了我先不改了有不懂的直接回帖就行
最后附上相关数据手册
MAX7219点阵原理图.pdf
(55.38 KB, 下载次数: 9)
|
|