1.将电路板送上电,发现焊接的三个大的滤波电容方向错了,注意这种方形的黄色的1808规格贴片电容应当是钽电容,方向是有横杠的一端是正极。<br />2.由于我是用的T6963的液晶屏,电压5V,所以使用电阻与S64连接。S64需要这样设置<br />//关闭上拉电阻<br />AT91F_PIO_CfgPullup(AT91C_BASE_PIOA,LCD_MASK|LCD_data);<br />//输出开漏<br />AT91F_PIO_MultiDriverEnable(AT91C_BASE_PIOA,LCD_MASK|LCD_data);<br />这样就可以产生5V的电平了,但是很不行,我原来的C51上的程序还是不能移植过来。<br />这是T6963.C的一部分。<br />#include "T6963.h"<br /><br />void wait ( void )<br />{<br /> unsigned char i; <br /> for(i=50;i>0;i--) {}<br />}<br />void RWCheck(void)<br />{<br /> unsigned char i; <br /> for(i=50;i>0;i--) {}<br />}<br />void AutoWCheck(void)<br />{ <br /> unsigned char i;<br /> for(i=50;i>0;i--) {}<br />}<br />/* 控制指令 */<br />void ctrl(unsigned char command)<br />{<br /> unsigned int k;<br /> //AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, 0x7F800000) ; <br /> RWCheck(); <br /> k= command<<23;//完成移位的操作<br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, CD ) ; <br /> wait ();<br /> AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, WD) ; wait ();<br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, k ) ; wait (); <br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, WD ) ; wait ();<br />}<br />/* 写数据 */<br />void write(unsigned char dat ) <br />{ unsigned int k;<br /> RWCheck();<br /> k= dat<<23;//完成移位的操作<br /> AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, CD ) ; wait (); <br /> AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, WD) ; wait ();<br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, k ) ; wait ();<br /> <br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, WD ) ; wait ();<br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, CD ) ; wait ();<br />}<br />/* 自动写 */<br />void autowrite(unsigned char dat)<br />{ unsigned int k;<br /> AutoWCheck();<br /> k= dat<<23;//完成移位的操作<br /> AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, CD ) ; wait (); <br /> AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, WD) ; wait ();<br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, k ) ; wait ();<br /> <br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, WD ) ; wait ();<br /> AT91F_PIO_SetOutput( AT91C_BASE_PIOA, CD ) ; wait ();<br />}<br /> |
|