ST7920的12864液晶spi 串行方式原理

ST7920主控的液晶支持SPI通讯。利用面包板连接DSP与液晶,主要管脚的连接如下所示:

     F2812                          液晶
     E(SCLK)                       SPICLK
     RW(SID)                       SPIMOSI
     RS(CS)                         SPISTE

     另外,很重要的一点,液晶的PSB管脚必须连接GND,才能使液晶工作在SPI模式。SPI模式中的液晶只能接受数据,无法发送数据,故没有办法像并口控制那样依靠判断CF来确定指令的执行情况,故必须保证指令执行的时间必须充足。

照片-1799

     然后初始化F2812的SPI模块。

void InitSpia(void)
{
    // Initialize SPI-A:
    SpiaRegs.SPICCR.bit.SPISWRESET = 0;        // Reset SPI module
    SpiaRegs.SPICCR.all = 0x07;                // Reset on, rising edge, 8-bit char
    SpiaRegs.SPICTL.all = 0x0E;                // Enable master mode,  phase (with delay), enable talk,
                                               // and SPI int enabled
    SpiaRegs.SPIBRR = 35;                      //
    SpiaRegs.SPISTS.all = 0x00;
    SpiaRegs.SPIPRI.all = 0x10;                // Free
    SpiaRegs.SPICCR.all = 0x87;                // Enable SPI
}

     按照液晶模块要求的SPI数据格式写指令或数据,根据时序图和我的实验,液晶模块应该是上升沿保存数据。“從一個完整的串列傳輸流程來看,一開始先傳輸啟始位元組,它需先接收到五個連續的〝1〞(同步位元字串)在啟始位元組,此時傳輸計數將被重置並且串列傳輸將被同步,再跟隨的兩個位元字串分別指定傳輸方向位元(RW)及暫存器選擇位元(RS),最後第八的位元則為〝0〞。在接收到同步位元及RW和RS資料的啟始位元組後,每㆒個八位元的指令將被分為兩個位元組接收到:較高4位元(DB7~DB4)的指令資料將會被放在第一個位元組的LSB部分,而較低4位元(DB3~DB0)的指令資料則會被放在第二個位元組的LSB部分,至於相關的另四位元則都為0。”

imageimage    

     由于ST7920的指令执行周期较长,利用SPI中断方式发送数据,并不能提高数据传输效率,采用延时的方式,暂时实现对液晶的操作。 初始化代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值