
各位大大您好,
請教各位高手,如何用51的組語寫一個程式來讀寫24cxx的eeprom?
感謝您。
|
![]() |
『帖子主題』[求助]如何用51組語來讀寫24CXX... |
![]() 哇ㄌ ~~ 在這裡要這東西... 你想太多啦.... 這裡只會敗家.. 組語會不會太落伍了點, KEIL C 超多人用的呀. C的 source 範例: #include "reg51.h" #include "intrins.h" sbit SCL= P1^5; sbit SDA= P1^4; delay() { unsigned int i=1200; while(i--); } void write_8bit(unsigned char ch) { unsigned char i=8; SCL=0; _nop_();_nop_();_nop_();_nop_();_nop_(); while (i--) { SDA=(bit)(ch&0x80); _nop_();_nop_();_nop_();_nop_();_nop_(); ch<<=1; SCL=1; _nop_();_nop_();_nop_();_nop_();_nop_(); SCL=0; _nop_();_nop_();_nop_();_nop_();_nop_(); } _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); } void ACK(void) { unsigned char time_1; SDA=1; SCL=0; _nop_();_nop_();_nop_();_nop_();_nop_(); SCL=1; time_1=5; while(SDA) {if (!time_1) break;} //ACK SCL=0; _nop_();_nop_();_nop_();_nop_();_nop_(); } unsigned char ReadIIC_24C01(unsigned char address) { unsigned char ddata=0; unsigned char i=8; SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //Tsu:STA SDA=0; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA SCL=0; //START write_8bit( (address<<1) | 0x01); //Address Opt ACK(); while (i--) { SDA=1; ddata<<=1; SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=1; if (SDA) ddata|=0x01; } SCL=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); SDA=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); SDA=1; //STOP delay(); return ddata; } void WriteIIC_24C01(unsigned char address,unsigned char ddata) { SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //Tsu:STA SDA=0; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA SCL=0; //START write_8bit( (address<<1) & 0xfe); ACK(); write_8bit(ddata); // send data ACK(); SDA=0; _nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); SDA=1; //STOP delay(); } 以後要這種東西 請多加利用 google , 太多了!!!!! 「該帖子被 wpjwpj 在 2008/1/25 下午 05:16:10 編輯過」 | ||
|
![]() 該內容引用 wpjwpj 在 2008/1/25 下午 05:14:56 發表的內容: 哇ㄌ ~~ 在這裡要這東西... 你想太多啦.... 這裡只會敗家.. 組語會不會太落伍了點, KEIL C 超多人用的呀. 以後要這種東西 請多加利用 google , 太多了!!!!! 感謝大大囉,真是高手喔。 ![]() 小弟是c癡,所以……還是謝謝大大的熱心幫忙,感激再感激。 | ||
|
![]() 該內容引用 wing 在 2008/1/25 下午 05:16:57 發表的內容: 舍麼碗糕???? ![]() wing 大大您好 ![]() 小弟是在寫程式,測試玩玩,這是單晶片的程式,將來也可應用在遙控方面喔。 | ||
|
|