二 显示方法及程序设计
2.1 显示方法
从表1和图3可以看出,最先从U400进入的1byte数据最后移位到U404,当传输6byte数据的时候,最后1byte数据传输到U404,因此U404驱动显示图3中的LED405,以使显示方向不会颠倒。
从图1可以看出,8段LED各段的驱动位如下图所示。
图 4
因此我们可以根据不同需要显示的数字或字符,设计对应的byte型8位数据,如下表所示。
2.2 程序设计
程序设计中使用一个定时器每隔100ms通过SPI定时发送一组6位字符,锁存信号使用一个IO口豆输出控制。
2.2.1 SPI豆
图 5 SPI豆配置
如图5所示为SPI豆配置。
使能发送器空和接收器满中断,输入和输出缓存大小值设为6。
数据宽度为8bits,设相应管脚,移位周期,时钟边沿,并在初始化代码中使能该SPI模块。
SPI工作情况如下。
1. 在定时器中断中向发送buffer写入数据。
• 写入数据的程序模块中,对发送的字节长度计数,如果计数值等于buffer长度,返回buffer已满错误。
• 在向发送buffer写入数据之前禁止全局中断。
• 向发送buffer写入数据,如果‘发送写’指针指到buffer顶部,重新将buffer首地址赋给‘发送写’指针。
• 使能发送寄存器器空中断使能。
• 使能全局中断
2. 在步骤1中,我们使能了发送寄存器空中断。因此当发送寄存器空的时候,会产生一个中断,在中断处理程序中,将buffer的数据写入发送寄存器。
• 设置onTXChar标志
• 将发送缓存的数据送入发送寄存器,如果移送完成后指针已指到发送缓存顶部,则重新将缓存首地址赋给指针。
• 数据发送完之后,清发送寄存器空中断标识。
• 设置其他标识,以便于触发其他程序。
定时器豆
图 6 定时器豆
定时器100ms产生一次中断。
文章评论(0条评论)
登录后参与讨论