5509寄存器地址问题----多谢帮忙啊

2019-03-26 16:17发布

这是我的LCD1602程序,请问这两个地址是怎么冒出来的
#define LCD_COM (*((unsigned int *)0x601000))
#define LCD_DAT (*((unsigned int *)0x601002))

#define command 0                        //写入指令
#define data  1                                //写入数据

void lcd_write(unsigned char dat_comm,unsigned char content)
{

        unsigned int i,j;
        for(i=0;i<10;i++)
                for(j=0;j<500;j++);
        if(dat_comm)//dat_comm==data
        {
                LCD_DAT=content;
        }
        else //dat_comm==command)
        {
                LCD_COM=content;
        }
}

我使用的TMS320C5509A
1602引脚连接如下:

//PIN1: VSS  [电源地]-------------------GND
//PIN2: VDD  [电源正极]-----------------5V
//PIN3: Vo   [LCD 偏压输入]-------------GND,为显示最深
//PIN4: RS   [数据/命令选择端输入]------A2
//PIN5: RW   [读写控制信号输入]---------R/W= !C0 & C2
//PIN6: E    [使能信号输入]-------------始终高电平
//PIN7: D0   [Data I/O]-----------------D0
//PIN8: D1   [Data I/O]-----------------D1
//PIN9: D2   [Data I/O]-----------------D2
//PIN10:D3   [Data I/O]-----------------D3
//PIN11:D4   [Data I/O]-----------------D4
//PIN12:D5   [Data I/O]-----------------D5
//PIN13:D6   [Data I/O]-----------------D6
//PIN14:D7   [Data I/O]-----------------D7
//PIN15:BLA  [背光源正极]---------------接10欧电阻到+5V.
//PIN16:BLK  [背光源负极]---------------VSS 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
littlebadbay
2019-03-27 00:36
#define LCD_COM (*((unsigned int *)0x601000))
#define LCD_DAT (*((unsigned int *)0x601002))
从这个定义上看 前面0x601000就是外部总线的基地址了,好像是CE1的地址,这个你没有用到,E直接拉高了,地址线有一根接到RS,是地址的低二位,但你后面的引脚是RS接A2,这个就搞不太懂了,可能是因为16位总线的原因?这个要看看手册的说明了

一周热门 更多>