4394|8

662

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【Nucleo心得】+ 8x8点阵驱动 (EX02) [复制链接]

上一个实验是在8x8点阵上静态显示了一组数据,这一次实验是将表格上多组数据依序显示出来,做一个动态显示的演示。

Nucleo板上有一个蓝颜色的使用者按键B1,依原理图上来看按键是安排在PC13接脚,按键松开时是高电平,按下时是低电平。MBED已经将这一只脚命名成 USER_BUTTON,因此程序上直接使用就可以了。







DigitalIn mybutton(USER_BUTTON);

本实验是当按键松开时在8x8点阵上显示一种花样,按下后显示另一种花样,程序码如下:

  1. #include "mbed.h"

  2. const char sprite1[][8] = {
  3.     { 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
  4.     ,
  5.     { 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
  6.     ,
  7.     { 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }
  8.     ,
  9.     { 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00 }
  10.     ,
  11.     { 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00 }
  12.     ,
  13.     { 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00 }
  14.     ,
  15.     { 0x00, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00 }
  16.     ,
  17.     { 0x00, 0x00, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18 }
  18.     ,
  19.     { 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x7e, 0x3c }
  20.     ,
  21.     { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x7e }
  22.     ,
  23.     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18 }
  24.     ,
  25.     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18 }
  26.     ,
  27.     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18 }
  28.     ,
  29.     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
  30. };

  31. const char sprite2[][8] = {
  32.     { 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00 }
  33.     ,
  34.     { 0x00, 0x00, 0x3C, 0x24, 0x24, 0x3C, 0x00, 0x00 }
  35.     ,
  36.     { 0x00, 0x7E, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x00 }
  37.     ,
  38.     { 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF }
  39. };

  40. SPI spimax(SPI_MOSI, SPI_MISO, SPI_SCK);
  41. DigitalOut CS(PB_6);
  42. DigitalIn mybutton(USER_BUTTON);

  43. void max7219(char reg,char dta)
  44. {
  45.     CS = 0;
  46.     spimax.write(reg);
  47.     spimax.write(dta);
  48.     CS = 1;
  49. }

  50. void init_max7219(void)
  51. {
  52.     max7219(0x09,0);
  53.     max7219(0x0a,8);
  54.     max7219(0x0b,7);
  55.     max7219(0x0c,1);
  56.     max7219(0x0f,0);

  57.     for(char i=0; i<8; i++) {
  58.         max7219(i+1,0);
  59.     }
  60. }

  61. int main()
  62. {
  63.     char j;

  64.     init_max7219();

  65.     j=0;
  66.     while(1) {
  67.         if(mybutton) {
  68.             if(j>=14) {
  69.                 j=0;
  70.             }
  71.             for (char i=0; i<8; i++) {
  72.                 max7219 (i + 1, sprite1[j][i]);
  73.             }
  74.         }

  75.         else {
  76.             if(j>=4) {
  77.                 j=0;
  78.             }
  79.             for (char i=0; i<8; i++) {
  80.                 max7219 (i + 1, sprite2[j][i]);
  81.             }
  82.         }
  83.         j++;
  84.         wait_ms(100);
  85.     }
  86. }
复制代码

视频如下:
http://v.youku.com/v_show/id_XNzk4NTU2NjQ0.html



【Nucleo心得】+ 8x8点阵驱动 (EX01)
https://bbs.eeworld.com.cn/thread-448651-1-1.html


此帖出自stm32/stm8论坛

最新回复

感谢分享  详情 回复 发表于 2015-3-21 02:32

赞赏

2

查看全部赞赏

点赞 关注
 

回复
举报

1632

帖子

4

TA的资源

纯净的硅(高级)

沙发
 
非常不错,这个点阵用作电梯面板显示不错
此帖出自stm32/stm8论坛

点评

是啊!  详情 回复 发表于 2014-10-8 19:18
 
个人签名科技改变生活
 

回复

662

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
眼大5子 发表于 2014-10-8 10:15
非常不错,这个点阵用作电梯面板显示不错

是啊!
此帖出自stm32/stm8论坛
 
 

回复

2886

帖子

0

TA的资源

五彩晶圆(初级)

4
 
感谢分享
此帖出自stm32/stm8论坛
 
 
 

回复

3025

帖子

0

TA的资源

五彩晶圆(初级)

5
 
是啊 谢谢楼主来分享啊
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

6
 
void init_max7219(void)
{
    max7219(0x09,0);
    max7219(0x0a,8);
    max7219(0x0b,7);
    max7219(0x0c,1);
    max7219(0x0f,0);

    for(char i=0; i<8; i++) {
        max7219(i+1,0);
    }
楼主,能帮我解答下这段代码是做什么用的嘛?谢谢max7219(0x09,0);看了你发的好多段代码都有这个
此帖出自stm32/stm8论坛

点评

要使用 MAX7219 之前需要先对它做些初始设定  详情 回复 发表于 2015-2-27 16:15
 
 
 

回复

662

帖子

0

TA的资源

纯净的硅(初级)

7
 
nunulong 发表于 2015-2-27 11:06
void init_max7219(void)
{
    max7219(0x09,0);
    max7219(0x0a,8);
    max7219(0x0b,7);
    max7219(0x0c,1);
    max7219(0x0f,0);

    for(char i=0; i



要使用 MAX7219 之前需要先对它做些初始设定
此帖出自stm32/stm8论坛

点评

谢谢,这些设定是指对点阵亮度等参数的设定吗?为什么有的命令后是0,有的是8,有的又是7呢?再有我应该看哪些说明书或者教程才能明白其中的含义啊,请高手给予指点,呵呵 多谢!~  详情 回复 发表于 2015-3-1 20:47
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

8
 
slotg 发表于 2015-2-27 16:15
要使用 MAX7219 之前需要先对它做些初始设定



谢谢,这些设定是指对点阵亮度等参数的设定吗?为什么有的命令后是0,有的是8,有的又是7呢?再有我应该看哪些说明书或者教程才能明白其中的含义啊,请高手给予指点,呵呵 多谢!~
此帖出自stm32/stm8论坛
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(初级)

9
 
感谢分享
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表