打印

28027驱动LCD12864的问题

[复制链接]
1325|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
teabottle|  楼主 | 2013-10-31 00:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
teabottle|  楼主 | 2013-10-31 00:12 | 只看该作者
#include<DSP28x_Project.h>

#define CS GpioDataRegs.GPADAT.bit.GPIO5
#define SID GpioDataRegs.GPADAT.bit.GPIO6
#define CLK GpioDataRegs.GPADAT.bit.GPIO7

void Gpio_Init(void)
        {
                        EALLOW;
                        GpioCtrlRegs.GPAPUD.all=0xFF;
                        GpioCtrlRegs.GPAMUX1.all = 0x00000000;  // All GPIO
                        GpioCtrlRegs.GPAMUX2.all = 0x00000000;  // All GPIO
                        GpioCtrlRegs.GPBMUX1.all = 0x00000000;  // All GPIO
                        GpioCtrlRegs.GPADIR.all = 0xFFFFFFFF;   // All outputs
                        GpioCtrlRegs.GPBDIR.all = 0x0000000F;   // All outputs
                        EDIS;
        }

void delay(int n)
                {
                        while(n--);
                }

void Sendbyte(unsigned char bytes) //发送一个字节
        {
                 unsigned char i;
                 for(i=0;i<8;i++)
                         {
                                 CLK=1;
                                 SID=bytes&0x80; //取出最高位
                                 CLK=0;
                                 bytes<<=1; //左移
                         }
         }
void write_com(unsigned char com)
         {
                CS=1;
                Sendbyte(0xf8);
                Sendbyte(com&0xf0);
                Sendbyte((com&0x0f)<<4);
                CS=0;
                delay(0xff);
         }
void write_data(unsigned char dat)
         {
                CS=1;
                Sendbyte(0xfa);
                Sendbyte(dat&0xf0);
                Sendbyte((dat&0x0f)<<4);
                CS=0;
                delay(0xff);
         }
void LCD_Init(void)
         {
                  write_com(0x01);
                  write_com(0x30);
                  write_com(0x0c);
                  write_com(0x06);
                  write_com(0x02);
         }

void main(void)
                {
                        InitSysCtrl();                               //        In this function watchdog is disabled
                    DINT;                                                        //Disable interrupts,this has been done in the "InitPieCtrl();"function
                         InitPieCtrl();                                        //Initial PIE,in this function,interrupts are disabled,Clear all PIEIER registers,Clear all PIEIFR registers
                         IER = 0x0000;
                         IFR = 0x0000;
                         InitPieVectTable();                                //Initialize the PIEvectable,let the interrupts point to their own ISR


                         Gpio_Init();                                                //Gpio initial function
                        LCD_Init();
                        
                        
                        write_com(0x80);
                        write_data(0x02);
                        write_data(0x02);
                        write_data(0x02);
                        while(1);
                }

使用特权

评论回复
板凳
huangfeng33| | 2013-10-31 20:44 | 只看该作者
12864有串行和并行两种模式,接口不同,程序也不一样

使用特权

评论回复
地板
zhangmangui| | 2013-10-31 22:34 | 只看该作者
要不先用并行的控制试试   就是配置IO口和设置延时
先看看串行数据波形是否有输出  还有调节一下12864的背光

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

97

主题

1441

帖子

1

粉丝