关于8位并口lcd写数据

Doris_lx 2012-12-05 06:08:05
我现在用的是8位并口LCD,而颜色定义的都是十六位,现在想把颜色写进去,该怎么写,
我现在是这样写的,但是好像不对

GPIOB->ODR&=0x0;
GPIOB->ODR|=DATA<<8;
LCD_WR_CLR;
LCD_WR_SET;
GPIOB->ODR&=0X0;
GPIOB->0DR|=DATA;
望高手指点
...全文
725 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
net_friends 2012-12-13
  • 打赏
  • 举报
回复
那时不是还要看总线的大小端呢
Doris_lx 2012-12-11
  • 打赏
  • 举报
回复
引用 2 楼 woshi_ziyu 的回复:
可以看手册的时序图 一般来讲都是先传高八位 然后传输低八位
根据DATASHEET,如果将数据定义为两个8位,高八位和低八位分边传入是真确的,用16为数据通过移位就写不进去,清屏都清不了
Doris_lx 2012-12-11
  • 打赏
  • 举报
回复
引用 3 楼 net_friends 的回复:
参考芯片的datasheet
就是参考了DATASHEET,如果将数据定义为两个8位,高八位和低八位分边传入是真确的,用16为数据通过移位就写不进去,清屏都清不了
net_friends 2012-12-06
  • 打赏
  • 举报
回复
参考芯片的datasheet
woshi_ziyu 2012-12-05
  • 打赏
  • 举报
回复
可以看手册的时序图 一般来讲都是先传高八位 然后传输低八位
Doris_lx 2012-12-05
  • 打赏
  • 举报
回复
那个是右移8位,写成
引用 楼主 fishingtd 的回复:
我现在用的是8位并口LCD,而颜色定义的都是十六位,现在想把颜色写进去,该怎么写, 我现在是这样写的,但是好像不对 GPIOB->ODR&=0x0; GPIOB->ODR|=DATA>>8; LCD_WR_CLR; LCD_WR_SET; GPIOB->ODR&=0X0; GPIOB->0DR|=DATA; 望高手指点 ……
LCD12864 哆啦A梦图片显示STC8A8K单片机KEIL工程文件源码: /*******************************************************************/ /* */ /* LCD初始化设定 */ /* */ /*******************************************************************/ void lcd_init() { // LCD_PSB = 1; //并口方式 LCD_RST = 0; //液晶复位 delay(3); LCD_RST = 1; delay(3); lcd_wcmd(0x34); //扩充指令操作 delay(5); lcd_wcmd(0x30); //基本指令操作 delay(5); lcd_wcmd(0x0C); //显示开,关光标 delay(5); lcd_wcmd(0x01); //清除LCD的显示内容 delay(5); } /********************************************************* * * * 图形显示 * * * *********************************************************/ void photodisplay(uchar *bmp) { uchar i,j; lcd_wcmd(0x34); //数据时,关闭图形显示 for(i=0;i<32;i++) { lcd_wcmd(0x80+i); //先入水平坐标值 lcd_wcmd(0x80); //入垂直坐标值 for(j=0;j<16;j++) //再入两个8位元的数据 lcd_wdat(*bmp++); delay1(3); } for(i=0;i<32;i++) { lcd_wcmd(0x80+i); lcd_wcmd(0x88); for(j=0;j<16;j++) lcd_wdat(*bmp++); delay1(3); } lcd_wcmd(0x36); //数据,开图形显示 } /********************************************************* * * * 主函数 * * * *********************************************************/ void main() { delay(100); //上电,等待稳定 lcd_init(); //初始化LCD photodisplay(Photo1); //显示图片1 delay(20000); while(1); } /*************************

2,426

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 其他硬件开发
社区管理员
  • 其他硬件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧