`
java-mans
  • 浏览: 11341933 次
文章分类
社区版块
存档分类
最新评论

漫谈LCD调试(二)

 
阅读更多
//========================================================================

//TITLE:

// 漫谈LCD调试(二)

//AUTHOR:

// norains

//DATE:

// Friday 23-July-2008

//Environment:

// NONE

//========================================================================

在硬件设计时,如果不够谨慎,经常会犯一些小错误。最常见的一个错误就是LCDCPU的数据线接反。

比如,CPU输出8 BIT RGB信号,正确的硬件连接应该是这样:

CPU_D0 --> LCD_D0

CPU_D1 --> LCD_D1

CPU_D2 --> LCD_D2

CPU_D3 --> LCD_D3

CPU_D4 --> LCD_D4

CPU_D5 --> LCD_D5

CPU_D6 --> LCD_D6

CPU_D7 --> LCD_D7

可能错的序列如下:

CPU_D0 --> LCD_D7

CPU_D1 --> LCD_D6

CPU_D2 --> LCD_D5

CPU_D3 --> LCD_D4

CPU_D4 --> LCD_D3

CPU_D5 --> LCD_D2

CPU_D6 --> LCD_D1

CPU_D7 --> LCD_D0

这种电路接错的最明显的一个特点就是,某些颜色能够正常显示,比如纯红,纯绿等;但大多数颜色都无法正常。特别是如果让代码显示渐变色的话,颜色会有跳变,感觉很不舒服。

其实,如果从二进制角度来看,也就不难理解。

比如,我们需要输出这么一个红色序列,是从255渐变到250,则:

十进制 CPU输出的二进制 LCD接收的二进制 对应的十进制

255 11111111 11111111 255

254 11111110 01111111 127

253 11111101 10111111 191

252 11111100 00111111 63

251 11111011 11011111 223

250 11111010 01011111 95

LCD接收的颜色序列为:2551271916322395。所以本应该输出渐变颜色的序列,现在只能无奈变成突变了。

而之所以纯红可以正常显示,是因为纯红的表示为255,对应的二进制为11111111,无论怎么颠倒得到的结果都是相同。也就是说,只要二进制排列能够对称的颜色都可以正常显示。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics