會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客



« 1 (2)


Re: 有沒有人也是用CC5X 的ㄚ
新會員
註冊日期:
2004/07/02 02:12
所屬群組:
註冊會員
文章: 20
等級: 3; EXP: 20
HP : 0 / 55
MP : 6 / 2503
離線
您好:謝謝回應
我的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);
}


2004/07/02 14:16
轉換PDF檔 列印


Re: 有沒有人也是用CC5X 的ㄚ
初級會員
註冊日期:
2004/07/02 16:44
所屬群組:
註冊會員
文章: 27
等級: 3; EXP: 93
HP : 0 / 73
MP : 9 / 3333
離線
16F873 使用C1∼C4控制線
應該是以下寫法

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


2004/07/02 16:49
轉換PDF檔 列印


Re: 有沒有人也是用CC5X 的ㄚ
新會員
註冊日期:
2004/07/02 02:12
所屬群組:
註冊會員
文章: 20
等級: 3; EXP: 20
HP : 0 / 55
MP : 6 / 2503
離線
抱歉打錯了 應該是 使用C2∼C5控制線
謝謝指正

問題已經解決,因為RC DELAY的關係 硬體關係跟軟體無關 ^^


2004/07/02 19:50
轉換PDF檔 列印



« 1 (2)



無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project