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

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

?? hard_i2c._c

?? meg16 的所有功能實例
?? _C
字號:
/****************************************Copyright (c)**************************************************
**                               ADEmbed Development Co.,LTD.                                    
**                                 http://www.adembed.com
**--------------File Info-------------------------------------------------------------------------------
** File name:			24c02.c
** Last modified Date:  2008-12-13
** Last Version:		1.0
** Descriptions:		24c02 Test.
** 
**------------------------------------------------------------------------------------------------------
** Created by:			junbolu
** Created date:		2008-12-13
** Version:				1.0
** Descriptions:		
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
**ICC-AVR application builder : 2008-12-13
**Target : M16
**Crystal: 7.3728Mhz
**PC0--->SCL		PC1--->SDA			  PD6--->Write_EN
**
**描述:按鍵K0被按下一次,數碼管的最低位會加一,并存儲在24C02中,下一次系統啟動時,會讀取此數據并顯示。
**      此程序采用的硬件I2C方式完成的24C02的讀寫。
**
**涉及知識點:
**           硬件I2C
**           
**			
*******************************************************************************************************/

#include<iom16v.h>
#include<macros.h>
#include"Define.h"

#define		fose	                        7372800

#define     SCL                                 0
#define     SDA                                 1
 
#define 	i2c_ddr                         DDRC
#define 	i2c_port                        PORTC
#define 	i2c_pin                         PINC      

#define 	AT24C02_ADDR					0xA0  //EEPROM設備地址
//定義I2C的延遲參數
#define    DelayX	100			//7.3M=>1;	8.4M=>2.建議5,因為將來的ClockCPU可以是16M


#define    SCL_1    {i2c_port|=1<<SCL;Delay_us(DelayX);}
#define    SCL_0    {i2c_port&=~(1<<SCL);Delay_us(DelayX);}
#define    SDA_1    {i2c_port|=1<<SDA;Delay_us(DelayX);}
#define    SDA_0    {i2c_port&=~(1<<SDA);Delay_us(DelayX);}

#define	   Write_EN_DO        DDRD |= (1<<6);
#define	   Write_EN_1         PORTD|= (1<<6);
#define	   Write_EN_0         PORTD&=~(1<<6);

#define rd_device_add                  0xa1
#define wr_device_add                  0xa0

//TWI狀態定義
//MT 主方式傳輸  MR 主方式接收 
#define START 0x08  
#define RE_START 0x10
#define MT_SLA_ACK 0x18
#define MT_SLA_NOACK 0x20
#define MT_DATA_ACK  0x28
#define MT_DATA_NOACK 0x30
#define MR_SLA_ACK  0x40
#define MR_SLA_NOACK 0x48
#define MR_DATA_ACK 0x50
#define MR_DATA_NOACK 0x58
//常用TWI操作(主模式寫和主模式讀)
#define Start()    	  (TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN))
#define Stop()     	  (TWCR=(1<<TWINT)|(1<<TWSTO)|(1<<TWEN))
#define Wait()	   	  {while(!(TWCR&(1<<TWINT)));}     
#define TestAck() 	  (TWSR&0xf8)
#define SetAck()	  (TWCR|=(1<<TWEA))
#define SetNoAck()    (TWCR&=~(1<<TWEA))
#define Twi()	  	  (TWCR=(1<<TWINT)|(1<<TWEN))
#define Write8Bit(x)  {TWDR=(x);TWCR=(1<<TWINT)|(1<<TWEN);} 
unsigned char DISP_NUM;							//顯示的位數
unsigned char BitTab[]={0xFE,0xFD,0xFB,0xF7};	//三位位選碼
unsigned char DispTab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //LED字形碼
unsigned char DISP_DATA[4]={0,0,0,0};		    //顯示的數字

void I2C_Ini(void);
unsigned char i2c_Write(unsigned char RomAddress,unsigned char Wdata);
unsigned char i2c_Read(unsigned char RomAddress);


void Delay_us(unsigned int time)
{
while(time--);
}

void Delay_ms(unsigned int time)
{
while(time--)
	{
	Delay_us(1000);
	}
}
void INT0_Init()
{
 GIFR |=0X40;              //清楚標志位
 //MCUCR|=0X03; 			   //上升沿觸發中斷	
 MCUCR|=0X02;MCUCR&=~0X01; //下降沿觸發中斷	
 GICR |=0X40;  			   //使能外部中斷0
}

#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
 DISP_DATA[3]++;
 if(DISP_DATA[3]>9)
     {
	 DISP_DATA[3]=0;
	 }
 Write_EN_0;
 i2c_Write(0x02,DISP_DATA[3]);
 Write_EN_1;
}
//顯示函數,DISP_NUM決定顯示哪個LED
//采用共陰LED動態顯示方法,定時中斷函數里面調用
void Display(void)		
{
 PORTA=0x00;					   			//清除顯示再位選
 PORTB=BitTab[DISP_NUM];					//PB口接位選
 PORTA=DispTab[DISP_DATA[DISP_NUM]];		//PA口接LED的段碼

 
 DISP_NUM++;			//先顯示高位,再顯示低位
 if(DISP_NUM==4)
    DISP_NUM=0;
}

#pragma interrupt_handler timer0comp:20
void timer0comp (void)
{
 Display();
} 

void main(void)
{
 
 DDRA=0XFF;
 PORTA=0X00;
 DDRB=0X0F;
 PORTB=0X00;
 
 //按鍵0端口初始化
 DDRD &=~0x04;	   	//設置PD2為輸入   	   						
 PORTD|=0x04;		//設置PD2為上拉
 
 INT0_Init();                 //TART初始化
 
 //t/c0初始化(10ms)
 TCCR0=0X0d;
 TCNT0=0X00;
 OCR0=0X48;
 TIMSK=0X02;

 //asm("sei");
 SEI();                       //全局中斷使能
 
 //I2C_Ini();
 TWSR = 0X03;							/* TWI clock prescaler (TWPS) value = 0 */	
 TWBR = 0X10;	

 TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
 
 Write_EN_DO;
 Write_EN_1;
 DISP_DATA[3]=i2c_Read(0x02);

 for(;;)
	{ 
	
	}
}


//=======================================================================
//初始化端口
void I2C_Ini(void)
{
	i2c_ddr|=(1<<SCL);			//SCK為輸出
	i2c_ddr|=(1<<SDA);		    //SDA為雙向的,先設置為輸出


}

/******************************************
                I2C總線寫一個字節
			    返回1:寫成功
				返回非1:寫失敗
*******************************************/
unsigned char i2c_Write(unsigned char RomAddress,unsigned char Wdata) 
{unsigned char number=10;
 while(number--)
	  {
	  Start();//I2C啟動
	  Wait();
	  if(TestAck()!=START) continue;//ACK
	  Write8Bit(wr_device_add);//寫I2C從器件地址和寫方式
	  Wait();
	  
	  if(TestAck()!=MT_SLA_ACK)
	  {putchar(0);
	   continue;//ACK
	  }
	  Write8Bit(RomAddress);//寫24C02的ROM地址
	  Wait();
	  if(TestAck()!=MT_DATA_ACK) continue;//ACK
	  Write8Bit(Wdata);//寫數據到24C02的ROM
	  Wait();
	  if(TestAck()!=MT_DATA_ACK) continue;//ACK
	  break;
	  }
	  Stop();//I2C停止
 	  Delay_ms(10);//延時10ms等EEPROM寫完
	  return 1;
}
/******************************************
               I2C總線讀一個字節
			   
*******************************************/
unsigned char i2c_Read(unsigned char RomAddress) 
 {char a=0x00;
  unsigned char temp=0;
  unsigned char number=10;
  
  while(number--)
	   {
	   Start();//I2C啟動
	   Wait();
	   a=TestAck();
	  
	   if (a!=START) continue;//ACK	 
	   
	   Write8Bit(wr_device_add);//寫I2C從器件地址和寫方式
	   Wait(); 
   	   
	   if (TestAck()!=MT_SLA_ACK) continue;//ACK
	  

	   Write8Bit(RomAddress);//寫STA013的ROM地址
	   Wait();
	   
	   if (TestAck()!=MT_DATA_ACK) continue;
	   Start();//I2C重新啟動
	   Wait();
	   if (TestAck()!=RE_START)  continue;
	   
	   Write8Bit(rd_device_add);//寫I2C從器件地址和讀方式
	   Wait();
	   
	   if(TestAck()!=MR_SLA_ACK)  continue;//ACK
	   Twi();//啟動主I2C讀方式
	   
	   Wait();
	   
	   if(TestAck()!=MR_DATA_NOACK) continue;//ACK	
	   temp=TWDR;//讀取I2C接收數據
	   
	   break;
	   }
       Stop();//I2C停止
	   
	   return temp;
	   
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品久久久午夜一区二区三区| 国产成都精品91一区二区三| 日韩久久一区二区| 国产亚洲一区二区三区四区| 国产成人夜色高潮福利影视| 另类综合日韩欧美亚洲| 天堂在线亚洲视频| 精品处破学生在线二十三| 日韩一区二区在线观看视频播放 | 日韩一级免费观看| 亚洲人亚洲人成电影网站色| 久久夜色精品国产欧美乱极品| 国产在线观看一区二区| 国产一区 二区 三区一级| 韩国一区二区三区| 国产成人精品一区二区三区四区 | 91福利社在线观看| 91国内精品野花午夜精品 | 国产午夜精品一区二区三区视频| 国产午夜精品久久久久久免费视| 国产欧美精品一区| 欧美中文字幕一二三区视频| 欧美日韩国产大片| 精品免费日韩av| 国产丝袜美腿一区二区三区| 中文字幕一区二区三| 一区二区三区鲁丝不卡| 天天免费综合色| 久久精品久久99精品久久| 99久久精品免费| 在线亚洲人成电影网站色www| 欧美日韩亚洲综合一区二区三区 | 国产精品久久二区二区| 亚洲欧美日本韩国| 天堂影院一区二区| 高清成人在线观看| 色老综合老女人久久久| 日韩一本二本av| 欧美国产一区二区在线观看| 亚洲国产成人av网| 亚洲国产成人av网| 国产在线精品一区二区三区不卡| 亚洲一区二区偷拍精品| 中文字幕成人av| 性感美女久久精品| 国产一区二区免费视频| 色八戒一区二区三区| 日韩精品中文字幕一区| 中文字幕在线不卡一区二区三区| 亚洲成人激情社区| 日韩精品专区在线影院重磅| 国产主播一区二区三区| 色哦色哦哦色天天综合| 欧美成人国产一区二区| 国产精品久久久久婷婷二区次| 亚洲成人久久影院| 成人a免费在线看| 91麻豆精品国产91久久久| 中文字幕不卡一区| 麻豆精品一区二区av白丝在线| 96av麻豆蜜桃一区二区| 国产成+人+日韩+欧美+亚洲| 欧美日韩大陆一区二区| 中文字幕的久久| 精品一区二区在线观看| 在线观看免费视频综合| 日本一区二区三区电影| 久久久99精品久久| 婷婷一区二区三区| 不卡av免费在线观看| 精品乱人伦小说| 性欧美疯狂xxxxbbbb| 欧美精品一区二区三区久久久| 欧美男生操女生| 国产成人综合在线| 成人夜色视频网站在线观看| 日韩三级在线免费观看| 亚洲制服欧美中文字幕中文字幕| 成人免费视频网站在线观看| 日韩欧美国产一区在线观看| 亚洲国产美女搞黄色| 91亚洲精华国产精华精华液| 国产午夜精品在线观看| 国产一区啦啦啦在线观看| 在线播放日韩导航| 亚洲成年人影院| 欧洲国内综合视频| 亚洲日本青草视频在线怡红院| 国产91丝袜在线播放0| 精品卡一卡二卡三卡四在线| 日产国产高清一区二区三区| 欧美性猛交xxxxxxxx| 欧美日韩视频在线观看一区二区三区 | 激情综合五月天| 欧美一区二区三区爱爱| 欧美日本韩国一区二区三区视频| 欧美一区二区三区免费| 天堂在线一区二区| 欧美久久久影院| 天天免费综合色| 69av一区二区三区| 日韩一区精品视频| 欧美二区在线观看| 日韩电影在线观看一区| 久久久久久久网| 亚洲最大的成人av| 欧洲精品一区二区三区在线观看| 一区二区欧美视频| 欧美日韩专区在线| 亚洲va天堂va国产va久| 精品亚洲成a人| 2024国产精品视频| 国产精品1区二区.| 91官网在线免费观看| 亚洲综合色丁香婷婷六月图片| 欧美性视频一区二区三区| 午夜在线电影亚洲一区| 777久久久精品| 九色综合狠狠综合久久| 久久久亚洲欧洲日产国码αv| 国产传媒欧美日韩成人| 国产成人一区在线| 91.com视频| 精品一区二区免费在线观看| 精品久久人人做人人爽| 国产精品一区二区在线播放| 国产婷婷色一区二区三区在线| 不卡的av中国片| 亚洲午夜精品网| 制服丝袜国产精品| 国产综合久久久久久鬼色| 国产精品女主播av| 一本一道综合狠狠老| 午夜精品福利一区二区三区av | 欧美成人一区二区三区在线观看| 激情伊人五月天久久综合| 色婷婷激情综合| 丝瓜av网站精品一区二区| 亚欧色一区w666天堂| 懂色av一区二区三区蜜臀| 亚洲精品欧美在线| 欧美一级在线免费| 国产精品 欧美精品| 日韩美女精品在线| 欧美日韩色一区| 欧美欧美午夜aⅴ在线观看| 视频一区二区不卡| 欧美极品另类videosde| 欧美主播一区二区三区美女| 精品一区二区精品| 亚洲免费三区一区二区| 日韩三级伦理片妻子的秘密按摩| 成人黄色电影在线| 亚洲成人7777| 中文字幕高清不卡| 欧美一区二区视频在线观看2020 | 国产尤物一区二区在线| 亚洲欧美日韩国产中文在线| 精品对白一区国产伦| 欧美天堂一区二区三区| 国产精品久线在线观看| 538prom精品视频线放| 成人毛片在线观看| 日韩1区2区日韩1区2区| 亚洲欧洲国产日本综合| 日韩欧美一区中文| 日本韩国视频一区二区| 国产盗摄精品一区二区三区在线| 天天av天天翘天天综合网色鬼国产 | 中文字幕一区二区三区色视频| 69久久夜色精品国产69蝌蚪网| www.久久久久久久久| 美腿丝袜亚洲综合| 天天操天天色综合| 久久久另类综合| 51精品秘密在线观看| 色综合色综合色综合| 国产盗摄一区二区| 精品一区二区三区视频| 天使萌一区二区三区免费观看| 亚洲欧美二区三区| 国产免费观看久久| 精品日韩99亚洲| 6080午夜不卡| 在线免费观看日本欧美| av亚洲精华国产精华精| 国产精品一区二区在线观看不卡 | 精品视频一区三区九区| 99国产精品国产精品毛片| 亚洲人精品午夜| 国产精品区一区二区三区| 国产一区二区三区最好精华液| 久久久久久久久久久黄色| 欧美一区二区国产| 欧美激情一区在线观看| 欧美日韩国产首页在线观看| 色综合天天综合给合国产| 成人精品视频一区| 国产99久久久国产精品潘金网站| 国内不卡的二区三区中文字幕 |