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

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

?? 2402test.c

?? 《愛上單片機》配書光盤
?? C
?? 第 1 頁 / 共 3 頁
字號:
void Init_DS18B20(void)//初始化ds1820
{
	unsigned char x=0;
	DQ = 1;    //DQ復位
	Delay(8);  //稍做延時
	DQ = 0;    //單片機將DQ拉低
	Delay(80); //精確延時 大于 480us
	DQ = 1;    //拉高總線
	Delay(14);
	x=DQ;      //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
	Delay(20);
}
/******************************************************************************/
unsigned char ReadOneChar(void)//讀一個字節(jié)
{
	unsigned char i=0;
	unsigned char dat = 0;
	for (i=8;i>0;i--)
	{
		DQ = 0; // 給脈沖信號
		dat>>=1;
		DQ = 1; // 給脈沖信號
		if(DQ)
		dat|=0x80;
		Delay(4);
	}
	return(dat);
}

/******************************************************************************/
void WriteOneChar(unsigned char dat)//寫一個字節(jié)
{
	unsigned char i=0;
	for (i=8; i>0; i--)
	{
		DQ = 0;
		DQ = dat&0x01;
		Delay(5);
		DQ = 1;
		dat>>=1;
	}
}
/******************************************************************************/
unsigned int ReadTemperature(void)//讀取溫度
{
	unsigned char a=0;
	unsigned char b=0;
	unsigned int t=0;
	float tt=0;
	Init_DS18B20();
	WriteOneChar(0xCC); // 跳過讀序號列號的操作
	WriteOneChar(0x44); // 啟動溫度轉換
	Init_DS18B20();
	WriteOneChar(0xCC); //跳過讀序號列號的操作
	WriteOneChar(0xBE); //讀取溫度寄存器
	a=ReadOneChar();  //讀低8位
	b=ReadOneChar(); //讀高8位
	t=b;
	t<<=8;
	t=t|a;
	tt=t*0.0625;
	t= tt*10+0.5; //放大10倍輸出并四舍五入
	return(t);
}
/******************************************************************************/
void printTemperature(void){//寫一個字節(jié)
	unsigned int i=0;
	unsigned char a=0,b=0,c=0;
	i=ReadTemperature();//讀溫度并送顯
	a=i/100;
	if(a > 0x06){
		print(0xc1,"--.-");
	}else{	
		print2(0xc1,a+0x30);	//顯示溫度十位
		b=i/10-a*10;
		print2(0xc2,b+0x30);	//個位
		print(0xc3,".");	 //"."
		c=i-a*100-b*10;
		print2(0xc4,c+0x30); //小位1位
	}		
	print2(0xc5,0x00);	//度C		
}

//=================================DS1302時鐘驅動===========================================//

/*****************************************************************************/
//注釋DS1302寄存器
// DS1302內部RAM分址:00 = 0xc0(寫) = 0xc1(讀)  奇數是讀,偶數是寫

/*****************************************************************************/
//定義DS1302時鐘接口
sbit clock_clk = P3 ^ 5;//ds1302_clk(時鐘線)
sbit clock_dat = P3 ^ 6;//ds1302_dat(數據線)
sbit clock_Rst = P3 ^ 7;//ds1302_Rst(復位線)
/*****************************************************************************/
//定義累加器A中的各位
sbit a0   = ACC ^ 0;
sbit a1   = ACC ^ 1;
sbit a2   = ACC ^ 2;
sbit a3   = ACC ^ 3;
sbit a4   = ACC ^ 4;
sbit a5   = ACC ^ 5;
sbit a6   = ACC ^ 6;
sbit a7   = ACC ^ 7;
/****************************************************************************/
//定義全局變量
//unsigned char yy,mo,dd,xq,hh,mm,ss;//定義時間映射全局變量(專用寄存器)

bit w = 0; //調時標志位
/*****************************************************************************/
//1302驅動程序(底層協(xié)議)
void clock_out(unsigned char dd){
	ACC=dd;
	clock_dat=a0; clock_clk=1; clock_clk=0;
	clock_dat=a1; clock_clk=1; clock_clk=0;
	clock_dat=a2; clock_clk=1; clock_clk=0;
	clock_dat=a3; clock_clk=1; clock_clk=0;
	clock_dat=a4; clock_clk=1; clock_clk=0;
	clock_dat=a5; clock_clk=1; clock_clk=0;
	clock_dat=a6; clock_clk=1; clock_clk=0;
	clock_dat=a7; clock_clk=1; clock_clk=0;
}
/*****************************************************************************/
//DS1302寫入字節(jié)(底層協(xié)議)
unsigned char clock_in(void){
	clock_dat=1;
	a0=clock_dat;
	clock_clk=1; clock_clk=0; a1=clock_dat;
	clock_clk=1; clock_clk=0; a2=clock_dat;
	clock_clk=1; clock_clk=0; a3=clock_dat;
	clock_clk=1; clock_clk=0; a4=clock_dat;
	clock_clk=1; clock_clk=0; a5=clock_dat;
	clock_clk=1; clock_clk=0; a6=clock_dat;
	clock_clk=1; clock_clk=0; a7=clock_dat;
	return(ACC);
}
/*****************************************************************************/
//DS1302寫數據(底層協(xié)議)
void write_clock(unsigned char ord, unsigned char dd){
	clock_clk=0;
	clock_Rst=0;
	clock_Rst=1;
	clock_out(ord);
	clock_out(dd);
	clock_Rst=0;
	clock_clk=1;
}
/*****************************************************************************/
//DS1302讀數據(底層協(xié)議)
unsigned char read_clock(unsigned char ord){
	unsigned char dd=0;
	clock_clk=0;
	clock_Rst=0;
	clock_Rst=1;
	clock_out(ord);
	dd=clock_in();
	clock_Rst=0;
	clock_clk=1;
	return(dd);
}
/*****************************************************************************/
//調時程序
void Set_time(unsigned char sel,bit a){ //根據選擇調整的相應項目加1并寫入DS1302
  signed char address,item,item2;
  signed char max,mini;
  write_clock(0x8e,0x00);//允許寫操作
  if(sel==7)  {address=0x80; max=59;mini=0;}     //秒7
  if(sel==6)  {address=0x82; max=59;mini=0;}    //分鐘6
  if(sel==5)  {address=0x84; max=23;mini=0;}    //小時5
  if(sel==4)  {address=0x8a; max=7;mini=1;}    //星期4  
  if(sel==3)  {address=0x86; max=31;mini=0;}    //日3
  if(sel==2)  {address=0x88; max=12;mini=0;}    //月2
  if(sel==1)  {address=0x8c; max=99; mini=0;}    //年1
  if (a == 0){//如果a是0則表示現在鍵入的是 十位 數據
  	write_clock(address,0x00);//將 個位 的數據清0 防止數值范圍計算有錯
    item = DT;//鍵值數給 十位
	item2 = 0;// 個位 填入 0
  }
  else{//否則是 個位數據
  	item = (read_clock(address+1))/16;//先讀出 十位 數據
    item2 = DT;//鍵值放入 個位
  }  
  item=(item)*10 + (item2);//將 十位 和 個位 數據合成	 
  if(item>max) item=mini;//查看數值有效范圍   
  if(item<mini) item=max;           
  write_clock(address,(item/10)*16+item%10);//轉換成16進制寫入1302
  write_clock(0x8e,0x80);//寫保護,禁止寫操作
}
/*****************************************************************************/
//檢測時鐘芯片是否未被初始化,如是則設置1302的初始時間
void Init_1302(void){//(2007年1月1日00時00分00秒星期一)
	menu = 0;//
	if(read_clock(0xc1) != 0xaa){
		write_clock(0x8e,0x00);//允許寫操作
		write_clock(0x8c,0x07);//年
		write_clock(0x8a,0x01);//星期
		write_clock(0x88,0x01);//月
		write_clock(0x86,0x01);//日
		write_clock(0x84,0x00);//小時
		write_clock(0x82,0x00);//分鐘
		write_clock(0x80,0x00);//秒
		write_clock(0x90,0xa5);//充電	
		write_clock(0xc0,0xaa);//寫入初始化標志RAM(第00個RAM位置)
		write_clock(0x8e,0x80);//禁止寫操作
		AT24C02_Write1Byte(0x03,0x00);//初始化24C00中的報警開關選擇寄存器
		menu = 1;//如果初始化則直接提示調時
	}
}
/********************************************************************************************/
// 定義小漢字 // 
uint8 code Xword[]={
    0x18,0x18,0x07,0x08,0x08,0x08,0x07,0x00,        //C,代碼 0x03
    0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,        //一,代碼 0x04
    0x00,0x00,0x00,0x0e,0x00,0xff,0x00,0x00,        //二,代碼 0x05
    0x00,0x00,0xff,0x00,0x0e,0x00,0xff,0x00,        //三,代碼 0x06
    0x00,0x00,0xff,0xf5,0xfb,0xf1,0xff,0x00,        //四,代碼 0x07
    0x00,0xfe,0x08,0xfe,0x0a,0x0a,0xff,0x00,        //五,代碼 0x08
    0x00,0x04,0x00,0xff,0x00,0x0a,0x11,0x00,        //六,代碼 0x09
    0x00,0x1f,0x11,0x1f,0x11,0x11,0x1f,0x00,        //日,代碼 0x0a
};
void CgramWrite(void) {// 裝入cgram
    uint8 i;
	LCM2402_WriteCMD(0x06);        // CGRAM地址自動加1
	LCM2402_WriteCMD(0x40);        // CGRAM地址設為00處
    for(i=0;i<64;i++) {
    		LCM2402_WriteData(Xword[i]);
    }
}
//=================================紅外遙控接收===========================================//

sbit	KBS	=	P3 ^ 2;

/********************************************************************************************
* 函數名稱:keyboard_int
* 功    能:中斷 紅外遙控器數據接收初始化
*********************************************************************************************/
void keyboard_int (void){	//INT0中斷0 P3.2引腳,不能更改
	TMOD 	= 0x01; 		//定時器0方式1
	EA 		= 1; 			//允許CPU中斷
	IT0 	= 1; 			//INT0下降沿有效
	EX0 	= 1; 			//開INT0中斷;
	DT		= 0xff;
}
/********************************************************************************************
* 函數名稱:keyboard
* 功    能:中斷 紅外遙控器數據接收
* 入口參數:無
* 出口參數:無
*********************************************************************************************/
void timeint(void) interrupt 1 using 2 {	//定時器0中斷處理
	TH0=0xFC;	TL0=0xE0; //設定時值為800us
	if (IRCON<3){
		if (IRCON2<8){ //每中斷一次讀一次遙控接收頭的狀態(tài),每二次為遙控編碼中的一個位
			IRCON2++;
			IRCode[IRCON]=IRCode[IRCON]<<1; //每讀一次放入變量中的二進制的一個位,每次左移一位
			IRCode[IRCON]=IRCode[IRCON] | KBS; //每八次填滿一個字節(jié),一個字節(jié)存放遙控編碼4個位
			//LED1 = ~LED1;
		}
		else{
			IRCON++; //填滿一個字節(jié),指向下一個變量
			IRCON2=0; //計數清零
		}
	}
	else{
		TR0 = 0; //關閉定時器
		ET0 = 0; //定時器0中斷關閉
		if ((IRCode[1]!=0xff) && (IRCode[2]!=0xff)){
			if (IRCode[1] == 0x55){
				LED1 = 0;
				switch (IRCode[2]){
					case 0xD2: DT = 0X4C;break;	//POWER	//ON			
					case 0xD3: DT = 0X2F;break;	//MUTE //OFF
					case 0xAB: DT = 0x01;break;	//0-9鍵控制
					case 0xAC: DT = 0x02;break;	//
					case 0xAD: DT = 0x03;break;					
					case 0xB2: DT = 0x04;break;
					case 0xB3: DT = 0x05;break;
					case 0xB4: DT = 0x06;break;
					case 0xB5: DT = 0x07;break;
					case 0xCA: DT = 0x08;break;
					case 0xCB: DT = 0x09;break;
					case 0xAA: DT = 0x00;break;	// 0
					case 0xCC: DT = 0X11;break;	// -/--
					case 0x54: DT = 0X12;break;	// SEARCH
					case 0x2A: DT = 0X17;break;	// vol+
					case 0x2B: DT = 0X1A;break; // vol-
					case 0xD5: DT = 0X19;break;	// RECALL
					case 0xD4: DT = 0X1B;break;	// PP
				}
			}
			if (IRCode[1] == 0x56){
				LED1 = 0;
				switch (IRCode[2]){
					case 0xAA: DT = 0x13;break;//PR+
					case 0xAB: DT = 0x14;break;//PR-
					case 0xCD: DT = 0x15;break;//FT+
					case 0xD2: DT = 0x16;break;//FT-
					case 0xCB: DT = 0x18;break;//STORE
					case 0xB4: DT = 0x1C;break;//SLEEP
					case 0x4A: DT = 0X1D;break;	// AV
				}
			}
		}
		EX0 	= 1; 			//開INT0中斷;
	}
} 
void INT0Fun(void) interrupt 0 using 3 {	//INT0中斷
	EX0 = 0; //外部中斷0關閉		
	ET0 = 1; //定時器0中斷打開	
	TH0=0xFC;	TL0=0xE0; //設定時值為800us	
	for (IRCON=0; IRCON<3; IRCON++){	
		IRCode[IRCON] = 0;	
	}	
	IRCON = 0;	
	IRCON2 = 0; //計數清零	
	TR0 = 1;//開始計數	
}
/********************************************************************************************/


//=================================BEEP驅動===========================================//

sbit	Bell_Out	=	P3 ^ 0;//元件是動圈式揚聲器(并非有源蜂鳴器),需要MCU驅動發(fā)聲

/********************************************************************************************/
void beep (	unsigned char a,unsigned char b,
			unsigned char c,unsigned char d){
	for(;a>0;a--){//第一個聲音的長度
		Bell_Out = ~Bell_Out;//取反揚聲器驅動口,以產生音頻
		Delay(b);//音調設置延時
	}
	for(;c>0;c--){//同上
		Bell_Out = ~Bell_Out;
		Delay(d);//
	}
	Bell_Out = 1;
}
/********************************************************************************************/
//--------------------------------------------揚聲器--按鍵音
void beep_k(void){beep(10,60,5,250); }
//--------------------------------------------揚聲器--鬧鐘報警
void beep_a(void){beep(250,16,150,40); }//BELL 
//--------------------------------------------揚聲器--成功音
void beep_y(void){beep(50,30,100,50); }//BELL 
//--------------------------------------------揚聲器--無效音
void beep_n(void){beep(50,80,100,100); }//BELL 
/********************************************************************************************/


//================================純軟件部分=========================================//

/********************************************************************************************
//顯示項目 時間部分 在第一行全行顯示時間
*********************************************************************************************/    
void RealTime_Display(void){
	    print(0x80,"20");
	    print2(0x82,(read_clock(0x8d)/16)+0x30);
	    print2(0x83,(read_clock(0x8d)%16)+0x30);
		print(0x84,"/");            // 顯示年
		//
	    print2(0x85,(read_clock(0x89)/16)+0x30);
	    print2(0x86,(read_clock(0x89)%16)+0x30);
		print(0x87,"/");            // 顯示月
		//
	    print2(0x88,(read_clock(0x87)/16)+0x30);
	    print2(0x89,(read_clock(0x87)%16)+0x30);

		print(0x8b,"[");            // 顯示[
		print2(0x8c,read_clock(0x8b)%16); //星期
		print(0x8d,"]");            // 顯示]

	    print2(0x8f,(read_clock(0x85)/16)+0x30);//小時
	    print2(0x90,(read_clock(0x85)%16)+0x30);
		print(0x91,":");            // 顯示cgram第一個字模":"
		//
	    print2(0x92,(read_clock(0x83)/16)+0x30);//分鐘
	    print2(0x93,(read_clock(0x83)%16)+0x30);
		print(0x94,".");            // 顯示cgram第一個字模"."

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美亚洲国产另类| 日韩欧美亚洲一区二区| 丝袜美腿亚洲色图| 一区二区三区免费观看| 日韩一区中文字幕| 最新久久zyz资源站| 国产精品女上位| 中文字幕av资源一区| 国产精品日韩成人| 国产精品免费视频观看| 国产精品理伦片| 中文字幕一区二区日韩精品绯色| 国产精品久久久久aaaa| 亚洲色欲色欲www| 亚洲男人的天堂在线aⅴ视频| 亚洲三级视频在线观看| 亚洲精品久久久蜜桃| 亚洲图片一区二区| 丝袜美腿高跟呻吟高潮一区| 免费在线观看视频一区| 国产毛片一区二区| 成人午夜电影久久影院| 99国产欧美久久久精品| 91福利国产成人精品照片| 91国产免费观看| 欧美日韩国产精品成人| 欧美日产国产精品| 精品少妇一区二区| 中文成人综合网| 亚洲尤物在线视频观看| 美女诱惑一区二区| 国产成人av在线影院| 97精品国产97久久久久久久久久久久 | 综合久久久久久| 亚洲夂夂婷婷色拍ww47| 蜜桃av噜噜一区二区三区小说| 久久99在线观看| 成人av电影在线观看| 91国偷自产一区二区开放时间| 欧美另类z0zxhd电影| 26uuu亚洲| 亚洲啪啪综合av一区二区三区| 日韩福利视频导航| 国产·精品毛片| 欧美日韩一区二区不卡| 久久久久久一二三区| 亚洲欧美精品午睡沙发| 麻豆精品在线看| 一本大道久久a久久综合| 欧美一区二区在线观看| 中文久久乱码一区二区| 日韩成人一级片| 99久久er热在这里只有精品66| 欧美日韩在线三区| 国产欧美视频一区二区三区| 亚洲成a人v欧美综合天堂| 国产传媒欧美日韩成人| 欧美日韩一区二区三区视频| 中文字幕成人av| 蜜桃视频一区二区三区 | 欧美一区二区免费观在线| 国产欧美一区二区精品久导航| 亚洲成av人片在www色猫咪| 国产成人av电影在线| 91精品国产欧美一区二区18| 中文字幕中文字幕在线一区 | 国产91丝袜在线18| 91麻豆精品国产91久久久久久 | 久久精品国产**网站演员| 91性感美女视频| 久久色在线观看| 亚洲成人av中文| 91网站在线观看视频| xnxx国产精品| 日本欧美在线看| 在线亚洲+欧美+日本专区| 亚洲国产精品国自产拍av| 九九视频精品免费| 欧美日韩中文字幕精品| 自拍偷拍亚洲综合| 成人天堂资源www在线| 久久综合久久综合久久| 日韩精品欧美成人高清一区二区| 91小视频在线| 国产精品久久三区| 国产成人精品亚洲日本在线桃色 | 91欧美激情一区二区三区成人| 欧美精品一区二区三区很污很色的| 午夜影院久久久| 色老综合老女人久久久| 国产精品污www在线观看| 麻豆国产精品官网| 欧美日本高清视频在线观看| 国产盗摄一区二区| 日韩欧美的一区二区| 亚洲成人在线网站| 欧美日韩视频在线一区二区| 一级精品视频在线观看宜春院| www.亚洲色图| 国产精品乱码人人做人人爱| 国产盗摄一区二区| 久久久久国产成人精品亚洲午夜| 精品一区二区久久| 欧美电视剧免费观看| 精品在线免费视频| 欧美大片在线观看一区二区| 美女视频网站黄色亚洲| 日韩欧美123| 国产在线精品国自产拍免费| 精品日本一线二线三线不卡| 久久国产精品99精品国产| 欧美不卡视频一区| 精品亚洲国内自在自线福利| 精品剧情在线观看| 狠狠色丁香婷综合久久| 久久久久9999亚洲精品| 成人av电影免费在线播放| 国产精品麻豆视频| 一本大道av一区二区在线播放| 亚洲一区二区综合| 国产精品久久久久久久久搜平片 | 青青草伊人久久| 欧美zozozo| 国产91丝袜在线18| 亚洲三级电影全部在线观看高清| 91搞黄在线观看| 日韩高清不卡一区二区三区| 日韩欧美亚洲国产精品字幕久久久 | 亚洲欧美区自拍先锋| 欧美日韩亚洲综合| 美女一区二区在线观看| 国产欧美日韩综合精品一区二区| av网站一区二区三区| 夜夜嗨av一区二区三区四季av| 精品视频999| 国产一区二区三区黄视频 | 亚洲黄色免费网站| 欧美日韩不卡一区二区| 经典一区二区三区| 国产精品久久久久久福利一牛影视 | 欧美最新大片在线看| 蜜臀av一级做a爰片久久| 国产午夜精品美女毛片视频| av不卡在线观看| 天天影视涩香欲综合网| 国产欧美一区二区精品久导航| 色偷偷一区二区三区| 麻豆91在线观看| 中文字幕av在线一区二区三区| 欧美三级日韩在线| 国产一区二区电影| 亚洲国产成人av好男人在线观看| 日韩欧美高清在线| 色综合中文字幕国产 | 国产精品主播直播| 一区二区三区四区蜜桃 | 一区二区在线观看不卡| 欧美va日韩va| 91麻豆高清视频| 久久精品99国产精品| 最新欧美精品一区二区三区| 日韩午夜在线观看视频| 91蝌蚪porny| 久草精品在线观看| 一区二区三区欧美日韩| 久久一区二区视频| 欧美视频精品在线观看| 国产成人av一区二区三区在线观看| 午夜不卡av免费| 自拍偷在线精品自拍偷无码专区| 精品国产伦一区二区三区观看体验| 色综合婷婷久久| 高清久久久久久| 天堂蜜桃一区二区三区| 亚洲欧美中日韩| 国产日韩欧美一区二区三区综合| 欧美精品tushy高清| 97成人超碰视| 国产成人aaa| 久久精品国产亚洲高清剧情介绍| 亚洲综合色视频| 国产精品传媒视频| 国产色91在线| 日韩精品综合一本久道在线视频| 欧美性生活大片视频| 91丨porny丨最新| 成人av免费网站| 国产精品99久久久久久有的能看| 免费av网站大全久久| 亚洲国产成人91porn| 一区二区成人在线观看| 亚洲欧洲精品成人久久奇米网| 精品国产麻豆免费人成网站| 欧美一级国产精品| 欧美日韩在线亚洲一区蜜芽| 91视视频在线观看入口直接观看www| 国产成人综合在线| 国产精品性做久久久久久| 久久99国产精品免费| 久久国产精品99久久人人澡|