Re: 有沒有人也是用CC5X 的ㄚ

作者 layws 於 2004年07月02日 14:16:29
您好:謝謝回應
我的LCD副程式參考手冊使用4BITS控制,全部自己重新寫的,最早使用組合語言,可以讀取LCD游標位置、字元、翻頁、方向鍵與刪除鍵等功能
後來為了能夠快速轉到其他型號IC,因此才會使用CCS最先
使用16F877開發也成功可以運作,可是目前轉到使用16F873,程式一步步除錯以後才發現後面這段程式傳回值似乎有問題
還是我的程式盲點?畢竟控制資料埠不一樣

原先使用16F877 使用D0∼D3控制線
因此要讀回忙碌旗標或游標位址時的作法
void lcd_nibble(){
output_low(LCD_RS);
output_high(LCD_RW);
output_high(LCD_E);
delay_us(1);
output_low(LCD_E);
}
.....主程式略
char lcd_cursor_read() {
char high_byte,low_byte;
lcd_nibble();
high_byte=input_d() & 0x0F; //讀取第一筆資料
delay_cycles(5);
lcd_nibble();
low_byte=input_d() & 0x0F; //讀取第二筆資料
return( (high_byte << 4) | low_byte);
}
改用16F873 使用C2∼C5控制線
因此要讀回忙碌旗標或游標位址時的作法

.....副程式同以上

.....主程式略

char lcd_cursor_read() {
char high_byte,low_byte;
lcd_nibble();
high_byte=input_c() & 0b00111100; //讀取第一筆資料
delay_cycles(5);
lcd_nibble();
low_byte=input_d() & 0b00111100; //讀取第二筆資料
return( (high_byte << 2) | low_byte >>2);
}


來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=78&post_id=362