亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? at03.c

?? 基于AT24C02的LCD顯示
?? C
字號:
/* 這里舉出一個實例(讀寫串行EEPROM芯片at2402) */ 
/************************************************************************/ 
/* Name:AT24C02存儲器的讀寫程序,用到I2C總線,含相對獨立的I2C總線讀寫函數 */ 
/************************************************************************/ 
#include<string.h> 
#include<reg52.h> 
#include<intrins.h> 
#define uchar unsigned char
#define uint unsigned int
//#define DELAY_TIME 60 /*經實驗,不要小于50!否則可能造成時序混亂*/ 
//#define TRUE 1 
//#define FALSE 0 
sbit SCL=P2^6;/*假設由P3.4和P3.5控制*/ 
sbit SDA=P2^7;
 
sbit LCD_RS=P3^5;
sbit LCD_RW=P3^6;
sbit LCD_E=P3^7;

/********** Function Definition 函數定義 ************/ 
void DELAY(unsigned int t) /*延時函數*/ 
{ 
while(t!=0) 
t--; 
} 
void I2C_Start(void) 
{ 
/*啟動I2C總線的函數,當SCL為高電平時使SDA產生一個負跳變*/ 
SDA=1; 
SCL=1; 
DELAY(60); 
SDA=0; 
DELAY(60); 
SCL=0; 
DELAY(60); 
} 
void I2C_Stop(void) 
{ 
/*終止I2C總線,當SCL為高電平時使SDA產生一個正跳變*/ 
SDA=0; 
SCL=1; 
DELAY(60); 
SDA=1; 
DELAY(60); 
SCL=0; 
DELAY(60); 
} 
void SEND_0(void) /* SEND ACK */ 
{ 
/*發送0,在SCL為高電平時使SDA信號為低*/ 
SDA=0; 
SCL=1; 
DELAY(60); 
SCL=0; 
DELAY(60); 
} 
void SEND_1(void) 
{ 
/*發送1,在SCL為高電平時使SDA信號為高*/ 
SDA=1; 
SCL=1; 
DELAY(60); 
SCL=0; 
DELAY(60); 
} 
bit Check_Acknowledge(void) 
{ 
/*發送完一個字節后檢驗設備的應答信號*/ 
SDA=1; 
SCL=1; 
DELAY(30); 
F0=SDA; 
DELAY(30); 
SCL=0; 
DELAY(60); 
if(F0==1) 
return 0; 
return 1; 
} 
void WriteI2CByte(char b)reentrant 
{ 
/*向I2C總線寫一個字節*/ 
char i; 
for(i=0;i<8;i++) 
if((b<<i)&0x80) 
SEND_1(); 
else 
SEND_0(); 
} 
char ReadI2CByte(void)reentrant 
{ 
/*從I2C總線讀一個字節*/ 
char b=0,i; 
for(i=0;i<8;i++) 
{ 
SDA=1; /*釋放總線*/ 
SCL=1; /*接受數據*/ 
DELAY(10); 
F0=SDA; 
DELAY(10); 
SCL=0; 
if(F0==1) 
{ 
b=b<<1; 
b=b|0x01; 
} 
else 
b=b<<1; 
} 
return b; 
} 
/**********以下為讀寫24c02的函數**********/ 
void Write_One_Byte(char addr,char thedata) 
{ 
bit acktemp=1; 
/*write a byte to mem*/ 
I2C_Start(); 
WriteI2CByte(0xa0); 
acktemp=Check_Acknowledge(); 
WriteI2CByte(addr); /*address*/ 
acktemp=Check_Acknowledge(); 
WriteI2CByte(thedata); /*thedata*/ 
acktemp=Check_Acknowledge(); 
I2C_Stop();
 DELAY(60); 
} 

void Write_A_Page(char addr,char *buffer,char num) 
{ 
bit acktemp=1; 
//bit wrtmp; 
int i; 
/*write a page to at24c02*/ 
I2C_Start(); 
WriteI2CByte(0xa0); 
acktemp=Check_Acknowledge(); 
WriteI2CByte(addr);/*address*/ 
acktemp=Check_Acknowledge(); 
for(i=0;i<num;i++) 
{ 
WriteI2CByte(buffer[i]); 
if(!Check_Acknowledge()) 
{ 
I2C_Stop(); 
} 
} 
I2C_Stop(); 
DELAY(60); 

} 

char Read_One_Byte(char addr) 
{ 
bit acktemp=1; 
char mydata; 
/*read a byte from mem*/ 
I2C_Start(); 
WriteI2CByte(0xa0); 
acktemp=Check_Acknowledge(); 
WriteI2CByte(addr);/*address*/ 
acktemp=Check_Acknowledge(); 
I2C_Start(); 
WriteI2CByte(0xa1); 
acktemp=Check_Acknowledge(); 
mydata=ReadI2CByte(); 
acktemp=Check_Acknowledge(); 
return mydata; 
I2C_Stop(); 
} 

void Read_N_Bytes(char addr,char *buffer,char n) 
{ 
bit acktemp=1; 
int i=0; 
/*read 8 bytes from mem*/ 
I2C_Start(); 
WriteI2CByte(0xa0); 
acktemp=Check_Acknowledge(); 
WriteI2CByte(addr);/*address*/ 
acktemp=Check_Acknowledge(); 
I2C_Start(); 
WriteI2CByte(0xa1); 
acktemp=Check_Acknowledge(); 
for(i=0;i<n;i++) 
{ 
buffer[i]=ReadI2CByte(); 
if(i!=n-1) 
SEND_0(); /*發送應答*/ 
else 
SEND_1(); /*發送非應答*/ 
} 
I2C_Stop(); 
} 
/***********************************/

/*-------------------------------------- 
;模塊名稱:delay_n10us(); 
;功    能:延時函數,延時約n個10us
;-------------------------------------*/
void delay_n10us(uint n)  //延時n個10us@12M晶振
{       
        uint i;           
        for(i=n;i>0;i--)    
        {
        _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); 
		}
} 

/*-------------------------------------- 
;模塊名稱:LCD_write_command(); 
;功    能:LCD1602寫指令函數 
;-------------------------------------*/ 
void LCD_write_command(uchar dat)
{
delay_n10us(10);
LCD_RS=0;         //指令
LCD_RW=0;         //寫入
LCD_E=1;          //允許
P0=dat;
delay_n10us(10);  //實踐證明,我的LCD1602上,用for循環1次就能完成普通寫指令。
LCD_E=0;
delay_n10us(10);  //實踐證明,我的LCD1602上,用for循環1次就能完成普通寫指令。
}

/*-------------------------------------- 
;模塊名稱:LCD_init(); 
;功    能:初始化LCD1602 
;-------------------------------------*/ 
void LCD_init(void)
{
delay_n10us(10);
LCD_write_command(0x38);//設置8位格式,2行,5x7
delay_n10us(10);
LCD_write_command(0x0c);//整體顯示,關光標,不閃爍
delay_n10us(10);
LCD_write_command(0x06);//設定輸入方式,增量不移位
delay_n10us(10);
LCD_write_command(0x01);//清除屏幕顯示
delay_n10us(100);       //延時清屏,延時函數,延時約n個10us
LCD_write_command(0x0d);////開顯示,并顯示光標
delay_n10us(100);       //延時清屏,延時函數,延時約n個10us
}


/*-------------------------------------- 
;模塊名稱:LCD_write_data(); 
;功    能:LCD1602寫數據函數 
;-------------------------------------*/
void LCD_write_data(uchar dat)
{
delay_n10us(10);
LCD_RS=1;          //數據
LCD_RW=0;          //寫入
LCD_E=1;           //允許
P0=dat;
delay_n10us(10);
LCD_E=0;
delay_n10us(10);
}

/*-------------------------------------- 
;模塊名稱:LCD_disp_char(); 
;功    能:LCD1602顯示一個字符函數,在某個屏幕位置上顯示一個字符,X(0-15),y(1-2)。
;-------------------------------------*/
void LCD_disp_char(uchar x,uchar y,uchar dat)
{
  uchar address;
  if(y==1)
         address=0x80+x;
  else
         address=0xc0+x;
  LCD_write_command(address);
  LCD_write_data(dat);
}

/*-------------------------------------- 
;模塊名稱:LCD_disp_str(); 
;功    能:LCD1602顯示字符串函數,在某個屏幕起始位置{X(0-15),y(1-2)}上顯示一個字符串。
;-------------------------------------*/
void LCD_disp_str(uchar x,uchar y,uchar *str)
{
  uchar address;
  if(y==1)
         address=0x80+x;
  else
         address=0xc0+x;
  LCD_write_command(address);
  while(*str!='\0')
  { 
    LCD_write_data(*str);   
    str++;
  }
}

void main() 
{ 
//int i;

char mybyte; 
char code myarray[15]={0x46,0x4C,0x59,0x3A,0x31,0x33,0x36,0x34,0x30,0x33,0x30,0x38,0x30,0x34,0x31}; 
char code myarray2[9]={0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49};
char rdarray[20]; 

//Write_One_Byte(0x20,0x34); 
Write_A_Page(0x00,myarray2,9); 
//Write_A_Page(0x18,myarray2,9); 
mybyte=Read_One_Byte(0x00); 
Read_N_Bytes(0x00,rdarray,9); 
P1=rdarray[8];
LCD_init();
LCD_disp_str(0,1,myarray2);
LCD_disp_str(0,2,rdarray);

} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清视频的网址| 亚洲天天做日日做天天谢日日欢 | 91精品国产91综合久久蜜臀| 99这里都是精品| 91福利区一区二区三区| 欧美最猛黑人xxxxx猛交| 欧美在线短视频| 日韩欧美国产电影| 国产女同互慰高潮91漫画| 国产精品你懂的在线欣赏| 亚洲欧美日韩中文播放| 三级欧美韩日大片在线看| 蜜臀91精品一区二区三区| 国产一区二区三区蝌蚪| 色老综合老女人久久久| 精品三级在线看| 亚洲天堂网中文字| 捆绑紧缚一区二区三区视频 | 久久蜜桃香蕉精品一区二区三区| 国产精品短视频| 麻豆一区二区在线| 在线观看视频欧美| 国产精品久久久久久亚洲伦| 亚洲成人动漫av| 成人免费毛片片v| 精品国产乱码久久| 亚洲二区在线视频| 99久久99久久精品免费观看| 精品国产电影一区二区 | 欧美三级三级三级爽爽爽| 国产片一区二区三区| 久久99最新地址| 精品免费国产二区三区| 免费一级片91| 日韩欧美国产一区在线观看| 污片在线观看一区二区| 91成人在线免费观看| 亚洲精品五月天| 一本到一区二区三区| 亚洲欧美一区二区三区久本道91| 国产 欧美在线| 日韩毛片精品高清免费| 99国产精品99久久久久久| 亚洲人成精品久久久久久| 99riav久久精品riav| 亚洲六月丁香色婷婷综合久久| 99在线精品免费| 一二三区精品视频| 在线播放亚洲一区| 精品亚洲porn| 一区二区中文视频| 欧美日韩一区二区三区视频| 日韩电影网1区2区| 久久综合九色综合97婷婷女人| 国产精品一区专区| 亚洲综合免费观看高清在线观看| 51精品久久久久久久蜜臀| 狂野欧美性猛交blacked| 中文在线资源观看网站视频免费不卡| 国产在线看一区| 亚洲欧洲av色图| 欧美videos中文字幕| 日本道免费精品一区二区三区| 午夜精品久久一牛影视| 国产精品久久久久久久久动漫 | 成人中文字幕电影| 日韩成人伦理电影在线观看| 国产精品免费看片| 91精品国产品国语在线不卡| av中文一区二区三区| 狠狠色丁香婷综合久久| 天天免费综合色| 亚洲欧洲三级电影| 久久免费电影网| 久久蜜桃一区二区| 欧美成人女星排行榜| 欧美日韩免费观看一区三区| 本田岬高潮一区二区三区| 久久激情五月激情| 久久99精品国产.久久久久| 亚洲国产精品一区二区www在线| 中文子幕无线码一区tr| 中文字幕乱码亚洲精品一区| 久久久精品日韩欧美| 欧美国产日韩a欧美在线观看| 久久免费看少妇高潮| 久久麻豆一区二区| 国产精品福利一区二区三区| 中文字幕国产一区二区| 中文字幕一区三区| 夜夜亚洲天天久久| 日本亚洲电影天堂| 国产成人亚洲综合a∨婷婷 | 国产午夜精品福利| 成人欧美一区二区三区白人 | 欧美三级资源在线| 精品久久久网站| 中文字幕久久午夜不卡| 一区二区三区日韩在线观看| 日韩影院精彩在线| 高清不卡一区二区在线| 欧美亚洲综合网| 精品少妇一区二区三区日产乱码| 国产日本欧美一区二区| 亚洲精品ww久久久久久p站 | 777奇米成人网| 国产精品久久免费看| 日本视频免费一区| 99精品国产热久久91蜜凸| 欧美日韩成人综合天天影院| 日本一区二区三区四区在线视频 | 精品日韩一区二区三区免费视频| 中文字幕在线一区二区三区| 日韩国产成人精品| 欧美亚洲一区二区在线观看| 国产日韩欧美a| 久久电影网站中文字幕 | 亚洲激情中文1区| 国产另类ts人妖一区二区| 91麻豆精品久久久久蜜臀| 亚洲另类色综合网站| 波多野结衣91| 亚洲日本青草视频在线怡红院| 国产成人av影院| 久久免费国产精品| 国产精品资源网站| 国产欧美视频一区二区| 激情久久五月天| 精品国产凹凸成av人网站| 免费成人小视频| 久久久久久久国产精品影院| 国产一区激情在线| 国产精品久久一级| 91福利国产精品| 日韩精品免费专区| 欧美一区二区久久久| 黄页视频在线91| 国产日韩精品一区二区三区在线| 国产精品夜夜爽| 亚洲女同女同女同女同女同69| 色网综合在线观看| 免费高清在线一区| 久久综合九色综合欧美就去吻| 国产成人av自拍| 亚洲精品日韩综合观看成人91| 欧美亚洲国产一区二区三区| 天天综合天天做天天综合| 欧美第一区第二区| 色婷婷综合视频在线观看| 美女免费视频一区| 久久久www成人免费无遮挡大片| 国产精品99久久久久久久vr | 丝袜美腿成人在线| 国产精品一区二区在线播放 | 91精品国产综合久久香蕉的特点| 亚洲狠狠爱一区二区三区| 久久综合资源网| 欧美日韩日本视频| 成人aa视频在线观看| 人人狠狠综合久久亚洲| 亚洲区小说区图片区qvod| 日韩欧美不卡一区| 欧美高清视频不卡网| 91麻豆国产福利在线观看| 国产高清精品在线| 日本一区二区动态图| 成人白浆超碰人人人人| 久久99精品久久久久| 日韩精品午夜视频| 天堂在线亚洲视频| 一片黄亚洲嫩模| 亚洲日本va午夜在线电影| 国产精品三级电影| 国产女人18毛片水真多成人如厕 | 久久97超碰国产精品超碰| 日韩黄色片在线观看| 美女视频免费一区| 久久精品99国产精品日本| 久久国产精品99久久久久久老狼| 午夜精品久久久久久久| 日本欧洲一区二区| 麻豆成人在线观看| 国产福利一区二区三区视频在线| 国产在线精品视频| 成人黄色777网| 91年精品国产| 91精品在线免费| 精品入口麻豆88视频| 国产精品狼人久久影院观看方式| 国产精品国产三级国产aⅴ入口| 樱桃视频在线观看一区| 免费高清在线视频一区·| 国产精品亚洲午夜一区二区三区| 成人99免费视频| 欧美一区二区日韩一区二区| 国产亚洲午夜高清国产拍精品| 久久久高清一区二区三区| 一区二区三区免费看视频| 久久99国产精品免费| 91玉足脚交白嫩脚丫在线播放|