原创 使用Freescale 56F8346 数字信号控制器(DSC)的SPI控制LED显示(2)

2012-10-20 11:54 1538 18 18 分类: 处理器与DSP

二 显示方法及程序设计

 

  2.1 显示方法

  从表1和图3可以看出,最先从U400进入的1byte数据最后移位到U404,当传输6byte数据的时候,最后1byte数据传输到U404,因此U404驱动显示图3中的LED405,以使显示方向不会颠倒。

 

  从图1可以看出,8LED各段的驱动位如下图所示。

  20121020112037323001.jpg

4

  因此我们可以根据不同需要显示的数字或字符,设计对应的byte8位数据,如下表所示。

20121020115301492.jpg

 

2.2 程序设计

  程序设计中使用一个定时器每隔100ms通过SPI定时发送一组6位字符,锁存信号使用一个IO口豆输出控制。 

  2.2.1 SPI  

20121020112420967001.jpg    5 SPI豆配置

如图5所示为SPI豆配置。

  使能发送器空和接收器满中断,输入和输出缓存大小值设为6

  数据宽度为8bits,设相应管脚,移位周期,时钟边沿,并在初始化代码中使能该SPI模块。

  SPI工作情况如下。

1.  在定时器中断中向发送buffer写入数据。

• 写入数据的程序模块中,对发送的字节长度计数,如果计数值等于buffer长度,返回buffer已满错误。

• 在向发送buffer写入数据之前禁止全局中断。

• 向发送buffer写入数据,如果‘发送写’指针指到buffer顶部,重新将buffer首地址赋给‘发送写’指针。

• 使能发送寄存器器空中断使能。

• 使能全局中断

2.  在步骤1中,我们使能了发送寄存器空中断。因此当发送寄存器空的时候,会产生一个中断,在中断处理程序中,将buffer的数据写入发送寄存器。

   • 设置onTXChar标志

   • 将发送缓存的数据送入发送寄存器,如果移送完成后指针已指到发送缓存顶部,则重新将缓存首地址赋给指针。

    • 数据发送完之后,清发送寄存器空中断标识。

    • 设置其他标识,以便于触发其他程序。  

    定时器豆

20121020112803136001.jpg

6 定时器豆

定时器100ms产生一次中断。  

   

文章评论0条评论)

登录后参与讨论
我要评论
0
18
关闭 站长推荐上一条 /2 下一条