Re: 用開關控制矩陣在LCD顯示之問題
|
||||
---|---|---|---|---|
版主
|
jghn 寫著:
動作說明: 先在矩陣中存入要的數字或字母 , 然後按開關在LCD會依序出現 2 4 6 8 , 但打出來卻亂碼在跳 ,不知哪寫錯了,請各位大大指教~
putcLCD(z); <=g是這句語法錯誤嗎? 因為z為變數
發表於: 2008/8/5 9:15
|
|||
|
Re: 用開關控制矩陣在LCD顯示之問題
|
||||
---|---|---|---|---|
資深會員
|
程式並未細看,但這行顯然有問題
z=array[2][y]; 請修改!! 另外,你變數宣告的習慣有點不好ㄛ OpenLCD( ); unsigned char array[2][4]={{'1','3','5','7'},{'2','4','6','8'}}; int y=0; unsigned char z; while(1) { 區域變數一般習慣是在函式一開始就先宣告了 不是程式寫了數行 中間又插入變數宣告 然後又繼續寫後面程式 雖然沒什麼不可以,但總是違反一般慣例 避免這樣寫較好
發表於: 2008/8/4 23:24
|
|||
|
Re: 用開關控制矩陣在LCD顯示之問題
|
||||
---|---|---|---|---|
新會員
|
還是亂碼的說~
putcLCD(z); <=g是這句語法錯誤嗎? 因為z為變數 //////////////////////////////////////// #include <p30F4011.h> #include "C30EVM_LCD.h" int main( void ) { LATE=0xffff; ADPCFG=0Xffff; TRISE=0xffc0; OpenLCD( ); unsigned char array[2][4]={{'1','3','5','7'},{'2','4','6','8'}}; int y=0; unsigned char z; while(1) { if( PORTEbits.RE8==0 ) { y=y+1; z=array[2][y]; setcurLCD(0,1); putcLCD(z); } while(PORTEbits.RE8==0); } }
發表於: 2008/8/4 21:42
|
|||
|
Re: 用開關控制矩陣在LCD顯示之問題
|
||||
---|---|---|---|---|
版主
|
你的arrey[]存的是10進制數字,當然無法在 LCD 上顯示,請將 Data 改為客可以顯示的 ASCII Code。
unsigned char array[]={'1','2','....','a']; 或把z加上0x30後顯示。
發表於: 2008/8/4 7:47
|
|||
|
用開關控制矩陣在LCD顯示之問題
|
||||
---|---|---|---|---|
新會員
|
動作說明: 先在矩陣中存入要的數字 , 然後按開關在LCD會依序出現 2 4 6 8 , 但打出來卻亂碼在跳 ,不知哪寫錯了,請各位大大指教~
///////////////////////////////////////////// #include <p30F4011.h> #include "C30EVM_LCD.h" int main( void ) { LATE=0xffff; ADPCFG=0Xffff; TRISE=0xffc0; OpenLCD( ); int array[2][4]={{1,3,5,7},{2,4,6,8}}; int a=4; int y=0; int z; while(1) { if( PORTEbits.RE8==0 ) { y=y+1; z=array[2][y]; setcurLCD(0,1); putrsLCD(z); while(PORTEbits.RE8==0); } } }
發表於: 2008/8/3 23:44
|
|||
|