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

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

?? ds1302.c

?? KEILC51程序實例和配套硬件目標板,很詳細,程序有注釋
?? C
字號:
#include	<stdio.h>
#include	<reg5000.h>		
#define uchar unsigned char
sbit SCLK = P1^3;
sbit IO   = P1^4;
sbit RSTB = P1^5;
/**************************** 函數原型說明 ****************************/
void	clkwritebyte();			// 時鐘字節寫入函數
void	ramwritebyte();			// RAM字節寫入函數
uchar	rbyte_3w();				// 字節讀取函數
void	reset_3w();				// 復位函數
void	wbyte_3w(uchar); 		// 字節寫入函數
void	initialize_DS1302();	// DS1302初始化函數
void	disp_clk_regs(uchar);	// 顯示時鐘寄存器內容函數
void	burstramrd();			// 多字節突發方式讀取RAM函數
void	burstramwr();			// 多字節突發方式寫入RAM函數
/***************************** 復位函數 ******************************/
void reset_3w() {
   SCLK = 0;
   RSTB = 0;
   RSTB = 1;
}

/****************************** 字節寫入函數 ***************************/
void wbyte_3w(uchar W_Byte) {
uchar i;
	for(i = 0; i < 8; ++i) {
		IO = 0;
		if(W_Byte & 0x01) IO = 1;
		SCLK = 0;
		SCLK = 1;
		W_Byte >>= 1;
    }
}

/****************************** 字節讀取函數 ****************************/
uchar rbyte_3w() {
uchar i;
uchar R_Byte;
uchar TmpByte;

	R_Byte = 0x00;
	IO = 1;
	for(i=0; i<8; ++i) {
		SCLK = 1;
		SCLK = 0;
		TmpByte = (uchar)IO;
		TmpByte <<= 7;
		R_Byte >>= 1;
		R_Byte |= TmpByte; 
	}
	return R_Byte;
}

/**************************** 時鐘字節寫入函數 *************************/
void clkwritebyte() {
uchar ClkAdd;
uchar ClkData;	

	printf("\nWrite Clock ADDRESS:");  
	scanf("%bu", &ClkAdd); 				// 輸入時鐘地址
	printf("\nWrite Clock DATA:");
	scanf("%bx", &ClkData); 			// 輸入時鐘數據
	
	ClkAdd = ((ClkAdd * 2) | 0x80); 	// 時鐘數據寫入命令
	reset_3w();
	wbyte_3w(ClkAdd);
	wbyte_3w(ClkData);
	reset_3w();
}

/* ************************** RAM字節寫入函數 **************************/
void ramwritebyte() {
uchar ramadd;
uchar ramdata;

	printf("\nWrite Ram ADDRESS (HEX):");
	scanf("%bx", &ramadd);					// 輸入RAM地址
	printf("\nWrite Ram DATA (HEX):");
	scanf("%bx", &ramdata); 				// 輸入RAM數據

	ramadd = ((ramadd * 2) | 0xC0);			// RAM數據寫入命令
	reset_3w();
	wbyte_3w(ramadd);
	wbyte_3w(ramdata);
	reset_3w();
}

/************************* 顯示時鐘寄存器內容函數 ***********************/
void disp_clk_regs(uchar loop) {
uchar lsec = 99, sec, min, hrs, dte, mon, day, yr;

do	{					// 讀取并顯示時鐘寄存器的內容
		reset_3w();
		wbyte_3w(0xBF);		// 以多字節突發方式讀取時鐘數據
		sec = rbyte_3w();	// 秒
		min = rbyte_3w();	// 分
		hrs = rbyte_3w();	// 小時
		dte = rbyte_3w();	// 日期
		mon = rbyte_3w();	// 月份
		day = rbyte_3w();	// 星期
		yr  = rbyte_3w();	// 年
		reset_3w();
		if(sec != lsec || !loop) {	// 每秒顯示一次		
			printf("\nYr   Day  Mon  Dte  Hrs  Min  Sec");
			printf("\n%2.bX   %2.bX   %2.bX   %2.bX", yr, day, mon, dte);
			printf("   %2.bX   %2.bX   %2.bX", hrs, min, sec);
			lsec = sec;
		}
		if(!loop)	break;
	}	while(!RI);
	if(loop)   _getkey();
}

/************************ 多字節突發方式讀取RAM函數 *********************/
void burstramrd() {
uchar rmary[31];
uchar i;

	reset_3w();
	wbyte_3w(0xFF);			// 以多字節突發方式讀取RAM
	for (i=0; i<31; ++i) {
		rmary[i] = rbyte_3w();
	}
	reset_3w();

	printf("\nDS1302 Ram");

	printf("\n%2.bX %2.bX %2.bX %2.bX %2.bX %2.bX %2.bX %2.bX",
						rmary[0], rmary[1], rmary[2], rmary[3], 
rmary[4], rmary[5], rmary[6], rmary[7]);
	printf("\n%2.bX %2.bX %2.bX %2.bX %2.bX %2.bX %2.bX %2.bX",
	rmary[8], rmary[9], rmary[10], rmary[11],
rmary[12], rmary[13], rmary[14], rmary[15]);
	printf("\n%2.bX %2.bX %2.bX %2.bX %2.bX %2.bX %2.bX %2.bX",
rmary[16], rmary[17], rmary[18], rmary[19],
rmary[20], rmary[21], rmary[22], rmary[23]);
	printf("\n%2.bX %2.bX %2.bX %2.bX %2.bX %2.bX %2.bX",
rmary[24], rmary[25], rmary[26], rmary[27], 
rmary[28], rmary[29], rmary[30]);
}

/************************ 多字節突發方式寫入RAM函數 *********************/
void burstramwr() {
uchar ramdata;
uchar	i;

	printf("\nWrite Ram DATA (HEX):");
	scanf("%bx", &ramdata);				// 輸入RAM數據

	reset_3w();
	wbyte_3w(0xfe);						// 以多字節突發方式寫入RAM 
	for (i=0; i<31; ++i) {
		wbyte_3w(ramdata);
	}
	reset_3w();
}

/**************************** DS1302初始化函數 **************************/
void initialize_DS1302() {
uchar	yr, mn, date, dy, hr, min, sec;

	printf("\nEnter the year (0-99): ");
	scanf("%bx", &yr);
	printf("\nEnter the month (1-12): ");
	scanf("%bx", &mn);
	printf("\nEnter the date (1-31): ");
	scanf("%bx", &date);
	printf("\nEnter the day (1-7): ");
	scanf("%bx", &dy);
	printf("\nEnter the hour (1-24): ");
	scanf("%bx", &hr);
	hr = hr & 0x3f;				// 設置時鐘為24小時方式
	printf("\nEnter the minute (0-59): ");
	scanf("%bx", &min);
	printf("\nEnter the second (0-59): ");
	scanf("%bx", &sec);

	reset_3w();
	wbyte_3w(0x8e);				// 寫保護控制寄存器
	wbyte_3w(0);				// 允許寫入
	reset_3w();
	wbyte_3w(0x90);				// 涓流充電控制寄存器
	wbyte_3w(0xab);				// 允許充電, 雙二極管, 8K 電阻
	reset_3w();
	wbyte_3w(0xbe);				// 以多字節突發方式寫入時鐘數據(8個字節)
	wbyte_3w(sec);
	wbyte_3w(min);
	wbyte_3w(hr);
	wbyte_3w(date);
	wbyte_3w(mn);
	wbyte_3w(dy);
	wbyte_3w(yr);
	wbyte_3w(0);				// 以多字節突發方式寫入時鐘數據時
// 必須對寫保護控制寄存器寫入0值
	reset_3w();
}

/****************************** 主函數 *********************************/
main (void)	{
uchar M, M1;
    SCON  = 0x50;		// 設置串行口: 方式 1, 8位UART, 允許接收
    TMOD |= 0x20;       // 設置定時器T1, 方式 2, 8位自動重裝
    TH1   = 221;        // 設置串行口波特率:  1200 @ 16MHz 
    TR1   = 1;          
    TI    = 1;          

	while (1) { 
	printf("***********C51 PROGRAM FOR DS1302***********\n\n");
	printf("I. initialize DS1302\n");
	printf("CW. Write Byte  CR. Read Time\n");
	printf("RW. Write RAM   RR. Read RAM\n");
	printf("\nEnter Menu Selection:");

	M = _getkey();
	switch(M) {
		case 'C':
		case 'c':
		printf("\rEnter Clock Routine to run:C");

		M1 = _getkey();
		switch(M1) {
			case 'R':
			case 'r':	disp_clk_regs(1);	break;
            case 'W':
      case 'w':	clkwritebyte();	break;
		}
		break;

		case 'I':
		case 'i':	initialize_DS1302();	break;

		case 'R':
		case 'r':
		printf("\rEnter Ram Routine to run:R");

		M1 = _getkey();
		switch(M1) {
		case 'B':
		case 'b':	ramwritebyte();	break;
		case 'R':
		case 'r':	burstramrd();	break;
			case 'W':
			case 'w':	burstramwr();	break;
		}
		break;
	}
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产乱| 蜜桃久久精品一区二区| 国产三级三级三级精品8ⅰ区| 日韩三级在线观看| 欧美一级一区二区| 制服丝袜中文字幕亚洲| 日韩女优av电影| 国产欧美日韩精品一区| 国产精品久久久久久久久快鸭| 欧美精品一区男女天堂| 亚洲欧洲精品一区二区三区| 亚洲男人天堂一区| 五月天激情综合| 国产麻豆9l精品三级站| 色吧成人激情小说| 精品剧情v国产在线观看在线| 精品欧美乱码久久久久久 | 亚洲欧美日韩成人高清在线一区| 成人欧美一区二区三区小说| 久久er精品视频| 色婷婷精品大在线视频| 精品国产a毛片| 亚洲免费观看高清完整版在线观看熊| 丝袜美腿亚洲综合| 国产精品一区二区黑丝| 欧美人成免费网站| 亚洲三级小视频| 国产精品一区2区| 国产精品99久久久| 丝袜美腿亚洲一区二区图片| 亚洲摸摸操操av| 国产精品理论片| 欧美国产日本韩| 国产亚洲人成网站| 久久九九久精品国产免费直播| 日韩久久久精品| 精品乱码亚洲一区二区不卡| 欧美成人aa大片| 国产精品性做久久久久久| 国产一区二区三区四区在线观看| 免费高清在线一区| 日韩二区在线观看| 久久99这里只有精品| 久久99九九99精品| 国产精品综合视频| 成人精品亚洲人成在线| 91伊人久久大香线蕉| 不卡免费追剧大全电视剧网站| 丁香六月综合激情| 99这里只有精品| 欧美午夜不卡视频| 欧美区一区二区三区| 欧美日韩国产综合久久| 4438x成人网最大色成网站| 欧美日韩免费高清一区色橹橹| 日韩亚洲欧美在线| 色94色欧美sute亚洲线路一ni| 色婷婷综合久久久久中文一区二区 | 欧美色手机在线观看| 色综合网色综合| 欧美综合久久久| 777色狠狠一区二区三区| 欧美一区二区三级| 亚洲精品一区二区三区在线观看| 久久精品综合网| 国产精品情趣视频| 亚洲综合免费观看高清在线观看| 亚洲一区二区3| 美女视频黄久久| 成人美女视频在线观看| 99久久精品久久久久久清纯| 欧美色国产精品| 精品国产乱码久久久久久图片| 日本一区二区三区视频视频| 亚洲欧美日韩精品久久久久| 日韩激情一区二区| 国产综合色产在线精品| 色天使色偷偷av一区二区| 日韩视频在线永久播放| 久久欧美一区二区| 亚洲激情第一区| 精品在线播放免费| 91免费观看在线| 91精品黄色片免费大全| 亚洲国产精品激情在线观看| 亚洲午夜久久久久久久久久久| 激情亚洲综合在线| 一本色道久久综合亚洲精品按摩 | 欧美草草影院在线视频| 中文av一区特黄| 视频一区中文字幕国产| 国产91对白在线观看九色| 在线欧美一区二区| 精品免费国产二区三区| 中文字幕在线播放不卡一区| 偷拍一区二区三区四区| 国产aⅴ精品一区二区三区色成熟| 欧美综合色免费| 国产精品美女久久久久aⅴ| 日本不卡的三区四区五区| 暴力调教一区二区三区| 欧美成人一区二区三区 | 免费美女久久99| 91免费精品国自产拍在线不卡| 精品国产青草久久久久福利| 亚洲一区二区在线免费看| 国产精品综合网| 欧美一级理论片| 亚洲无人区一区| 成人福利视频在线看| 欧美大尺度电影在线| 亚洲18女电影在线观看| 99久久综合狠狠综合久久| 精品国产不卡一区二区三区| 午夜电影网一区| 欧美综合亚洲图片综合区| 国产精品久久久久久久久免费丝袜| 久久69国产一区二区蜜臀| 9191国产精品| 亚洲福利视频导航| 欧美色老头old∨ideo| 亚洲四区在线观看| 国产成人免费在线视频| 亚洲精品一区在线观看| 蜜桃久久久久久久| 欧美一区二区三区喷汁尤物| 婷婷久久综合九色综合伊人色| 日本精品一区二区三区高清 | 亚洲福利电影网| 欧美系列一区二区| 一二三四社区欧美黄| 91久久精品国产91性色tv| 1区2区3区欧美| 色综合色狠狠综合色| 亚洲青青青在线视频| 色综合久久久久久久久久久| 自拍偷拍亚洲综合| 99久久精品国产精品久久| 亚洲天堂成人在线观看| 在线日韩av片| 亚洲成人av电影| 欧美日韩mp4| 日韩精品1区2区3区| 日韩免费视频一区二区| 国内精品久久久久影院色| 精品国产乱码久久久久久1区2区| 麻豆国产精品一区二区三区| 精品国产伦一区二区三区观看体验| 麻豆精品一区二区| 久久久影视传媒| 9久草视频在线视频精品| 1000部国产精品成人观看| 成人免费看片app下载| 成人欧美一区二区三区小说 | 亚洲免费电影在线| 99久久免费视频.com| 亚洲欧美日韩久久精品| 欧美日本一道本| 视频一区中文字幕| 久久久夜色精品亚洲| 91免费精品国自产拍在线不卡| 一区二区成人在线观看| 91精品国产综合久久福利软件 | 在线电影一区二区三区| 七七婷婷婷婷精品国产| 欧美成人伊人久久综合网| 北岛玲一区二区三区四区| 亚洲丶国产丶欧美一区二区三区| 欧美mv和日韩mv的网站| 成人av网站在线| 亚洲成人精品一区| 精品999在线播放| 91久久一区二区| 秋霞成人午夜伦在线观看| 欧美激情在线一区二区三区| 欧美亚洲尤物久久| 色综合久久综合网| 色综合久久综合| 日韩中文字幕亚洲一区二区va在线| 欧美电视剧在线看免费| 97久久精品人人做人人爽| 日韩中文字幕亚洲一区二区va在线| 国产嫩草影院久久久久| 欧美色精品在线视频| 国产成a人亚洲| 日本欧美在线看| 亚洲另类中文字| 国产午夜精品理论片a级大结局| 91福利在线播放| 国产精品一区二区男女羞羞无遮挡| 亚洲激情图片qvod| 国产日韩av一区| 日韩视频永久免费| 色噜噜久久综合| 国产成人在线视频播放| 丝袜亚洲另类欧美| 亚洲男同1069视频| 337p粉嫩大胆噜噜噜噜噜91av| 在线免费精品视频| 床上的激情91.|