/******发送数据*********/void send_message(unchar date){unchar temp,i; temp=date;SCL=0;NOP();for (i=0;i<8;++i){temp=temp<<1;SDA=CY;NOP();SCL=1;NOP();SCL=0;NOP();}SDA=1;NOP(); }/***** 接收数据 *****/unchar rece_message(void){unchar date,temp,i;SCL=0;CY=0;NOP();for(i=0;i<8;++i){SCL=1;NOP();temp=SDA;date=date<<1;date=date|temp;SCL=0;NOP(); }SDA=1;NOP();return date;}/***** 应答接收 ********/unchar ack_back(void){unchar ack;SCL=0;NOP();SCL=1;NOP();ack=SDA;NOP();SCL=0;return ack;}/****完整接收数据*******/unchar get(unchar add){ unchar date;delay(50);start(); send_message(0xa0); ack_back();send_message(add); ack_back();start();send_message(0xa1); ack_back();date=rece_message(); stop();delay(50);return date ;}/******完整写入数据*******/void write(unchar date,unchar add){init();start();send_message(0xa0); //发送地址码ack_back();send_message(add); //存储的内容首地址ack_back(); send_message(date);ack_back();stop(); }/*****写入数据串 并分配指针地址*******/void write_s (unchar date){if(date!=#)write(date,ac);if (date==#){ac=ac+0x10;write(ac,0xff);}}void main(){ init();//ac=get(0xff);while(1){while(!RI);RI=0;// write_s(SBUF);LCD_date(SBUF);}}本文引用地址:https://www.eepw.com.cn/article/201611/323236.htm不以程序长短论英雄,成败完全取决于细节的把握。一步登天难,十天学会单片机更难。扎实的基础,刻苦的精神是成功的必备。谨以此句,哀悼我三个失败的项目。EPROM莫名的错误已让我发疯。高强度的脑力,低质量的四小时睡眠,我已经精疲力竭了。我真以为我能一步登天,我太急躁了。
评论