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

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

?? hour.c

?? 單片機C51典型應用設計代碼共11章包括液晶顯示代碼
?? C
字號:
#pragma SRC
#include <stdio.h>
#include <reg51.h>


#define		TRUE			1
#define		FALSE			0

#define		DELAY_VALUE		3
#define		DELAY_VALUE_EXTRA	10100



#define    	PinDrvKey1	P1_0
#define		PinDrvKey2	P1_1
#define		PinDrvKey3	P1_2
#define    	PinDrvKey4	P1_3		
//鍵盤掃描的驅動線


#define    	PinScanKey1	P1_4
#define    	PinScanKey2	P1_5
#define    	PinScanKey3	P1_6
#define    	PinScanKey4	P1_7		
//鍵盤掃描的信號獲取線

#define		PinSegA		P2_0	
#define		PinSegB		P2_1
#define		PinSegC		P2_2
#define		PinSegD		P2_3		
//七段碼的數據線

#define		PinSelectA	P2_4
#define		PinSelectB	P2_5
#define		PinSelectC	P2_6		
//選擇器的數據位

#define		PinSelectCS	P2_4		
//選擇器的片選位

#define		LedSelect0	0x80
#define		LedSelect1	0x90
#define		LedSelect2	0xa0
#define		LedSelect3	0xb0
#define		LedSelect4	0xc0
#define		LedSelect5	0xd0

#define		PinLamp		P0_0		
//指示燈驅動管腳
#define		PinSpeaker	P0_1		
//蜂鳴器驅動管腳

sbit		P0_0=P0^0;
sbit		P0_1=P0^1;
sbit		P0_2=P0^2;
sbit		P0_3=P0^3;
sbit		P0_4=P0^4;
sbit		P0_5=P0^5;
sbit		P0_6=P0^6;
sbit		P0_7=P0^7;

sbit		P1_0=P1^0;
sbit		P1_1=P1^1;
sbit		P1_2=P1^2;
sbit		P1_3=P1^3;
sbit		P1_4=P1^4;
sbit		P1_5=P1^5;
sbit		P1_6=P1^6;
sbit		P1_7=P1^7;

sbit		P2_0=P2^0;
sbit		P2_1=P2^1;
sbit		P2_2=P2^2;
sbit		P2_3=P2^3;
sbit		P2_4=P2^4;
sbit		P2_5=P2^5;
sbit		P2_6=P2^6;
sbit		P2_7=P2^7;


void initial(void);              
//初始化子程序
void delay(short i);		 
//延時子程序
void display(unsigned char i,unsigned char num);
//顯示子程序,其中變量i,num含義為在第i個數碼管顯示數字num.
unsigned char keyscan(void);
//鍵盤掃描子程序
void updatee(void);

unsigned char h1=0;
unsigned char h0=0;
unsigned char m1=0;
unsigned char m0=0;
unsigned char s1=0;
unsigned char s0=0;
unsigned char seth1=0;
unsigned char seth0=0;
unsigned char setm1=0;
unsigned char setm0=0;
unsigned char sets1=0;
unsigned char sets0=0;  //設定鬧鐘的鬧定時間,設定為鬧鐘時間,鬧鈴時間定為1分鐘

void main(void)
{
	unsigned char status;
	unsigned char keyword;
	initial();
	//鍵盤驅動信號,發光二極管,以及蜂鳴器都設在無效狀態
	for(;;)
	{
		switch(status)
		{
		case 0:
			keyword=keyscan();
			if(keyword==16)
			{
				if(h1==seth1&&h0==seth0&&m1==setm1&&m0==setm0)
				{
					PinSpeaker=FALSE;
					delay(DELAY_VALUE);
					PinSpeaker=TRUE;     //到達鬧鐘定時時間,蜂鳴器響
				}
				else
					delay(DELAY_VALUE_EXTRA);
				updatee();
			}
			else
				if(keyword==11)status=1; //0狀態為計時狀態,1狀態為停止狀態
				else 
				{
					PinSpeaker=FALSE;
					delay(DELAY_VALUE);
					PinSpeaker=TRUE;     //輸入有錯,蜂鳴器響
				}
				break;
		case 1:
			keyword=keyscan();
			if(keyword==10)status=0;
			else if(keyword==12)status=2;//2狀態為設置初值狀態;
			else if(keyword==13){h0=0;
			h1=0;
			s0=0;
			s1=0;
			m0=0;
			m1=0;}//清零
			else if(keyword==14)status=3;//3狀態為設置鬧鐘時間狀態;
			else
			{
				PinSpeaker=FALSE;
				delay(DELAY_VALUE);
				PinSpeaker=TRUE;     //輸入有錯,蜂鳴器響   			
			}
			break;
		case 2:
			keyword=keyscan();
			if(keyword==10&&s1<=5&&m1<=5&&(h1*10+h0)<24)
				status=0;
			else if(keyword==11&&s1<=5&&m1<=5&&(h1*10+h0)<24)
				status=1;
			else if(keyword<10&&keyword>=0) //輸入的是數字鍵
			{
				h1=h0;
				h0=m1;
				m1=m0;
				m0=s1;
				s1=s0;
				s0=keyword;
				updatee();		   //輸入的數字鍵從低位起往左移
			}
			else
			{
				PinSpeaker=FALSE;
				delay(DELAY_VALUE);
				PinSpeaker=TRUE;     //輸入有錯,蜂鳴器響   			
			}
		case 3:
			keyword=keyscan();
			if(keyword==10&&sets1<=5&&setm1<=5&&(seth1*10+seth0)<24)
				status=0;
			else if(keyword==11&&sets1<=5&&setm1<=5&&(seth1*10+seth0)<24)
				status=1;
			else if(keyword<10&&keyword>=0) //輸入的是數字鍵
			{
				seth1=seth0;
				seth0=setm1;
				setm1=setm0;
				setm0=sets1;
				sets1=sets0;
				sets0=keyword;
				updatee();		   //輸入的數字鍵從低位起往左移
			}
			else
			{
				PinSpeaker=FALSE;
				delay(DELAY_VALUE);
				PinSpeaker=TRUE;     //輸入有錯,蜂鳴器響   			
			}
			
		}	
	}
	
}

void initial(void)
{
	P1_0=FALSE;
	P1_1=FALSE;
	P1_2=FALSE;
	P1_3=FALSE;			//鍵盤驅動信號都設為低,避免干擾。  
	P0_0=TRUE;			//發光二極管設為不亮
	P0_1=TRUE;			//蜂鳴器不響
}

void delay(short i)	//延遲子程序,為精確計時,需要用匯編語言來做。R6R7剛好存的是i的值
{
short ii;
ii=i;
#pragma asm
X_delay:
	USING	0
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
XC0025:
	CLR  	C
	MOV  	A,R5
	SUBB 	A,R7
	MOV  	A,R6
	XRL  	A,#080H
	MOV  	R0,A
	MOV  	A,R4
	XRL  	A,#080H
	SUBB 	A,R0
	JNC  	XC0028
	INC  	R5
	CJNE 	R5,#00H,XC0069
	INC  	R4
XC0069:
	SJMP 	XC0025
XC0028:
#pragma endasm
}

void display(unsigned char i,unsigned char num)
{
	if(num >= 0 && num <=9)
	{switch(i)
	{ case 0:P2= LedSelect0 | num;  
	//LedSelect0的高四位為選擇第0個數碼管的邏輯,低四位則為數碼管顯示的數字。
	break;
	  case 1:P2= LedSelect1 | num;
		  //LedSelect1的高四位為選擇第1個數碼管的邏輯,低四位則為數碼管顯示的數字。
		  break;
	  case 2:P2= LedSelect2 | num;
		  //LedSelect2的高四位為選擇第2個數碼管的邏輯,低四位則為數碼管顯示的數字。
		  break;
	  case 3:P2= LedSelect3 | num;
		  //LedSelect3的高四位為選擇第3個數碼管的邏輯,低四位則為數碼管顯示的數字。
		  break;
	  case 4:P2= LedSelect4 | num;
		  //LedSelect4的高四位為選擇第4個數碼管的邏輯,低四位則為數碼管顯示的數字。
		  break;
	  case 5:P2= LedSelect5 | num;
		  //LedSelect5的高四位為選擇第5個數碼管的邏輯,低四位則為數碼管顯示的數字。
		  break;
	  default:break;
	}
	}
}

unsigned char keyscan()
{
	PinDrvKey1=TRUE;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 1;
	if(PinScanKey2==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 5;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 9;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 12;
	PinDrvKey1=FALSE;	//掃描第一列
	PinDrvKey2=TRUE;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 2;
	if(PinScanKey2==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 6;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 0;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 13;
	PinDrvKey2=FALSE;	//掃描第二列
	PinDrvKey3=TRUE;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 3;
	if(PinScanKey2==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 7;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 10;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 14;
	PinDrvKey3=FALSE;	//掃描第三列
	PinDrvKey4=TRUE;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 4;
	if(PinScanKey2==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 8;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 11;
	if(PinScanKey1==TRUE)
		PinLamp=FALSE;
	PinSpeaker=FALSE;
	delay(DELAY_VALUE);
	PinLamp=TRUE;
	PinSpeaker=TRUE;
	return 15;
	PinDrvKey3=FALSE;	//掃描第四列
	return 16;
}

void updatee()
{
	if(s0==9)	//如果10ms位需要進位,則進入語句
	{
		s0=0;
		if(s1==5)	//如果100ms位需要進位,則進入語句
		{
			s1=0;
			if(m0==9)	//如果1sec位需要進位,則進入語句
			{
				m0=0;
				if(m1==5)	//如果10sec位需要進位,則進入語句
				{
					m1=0;
					if(h0==9&&h1<=1)
					{h0=0;
					h1+=1;}
					else if(h0==3&&h1==2)
					{h0=0;
					h1=0;}
					else h0+=1;
				}
				else m1+=1;
			}
			else m0+=1;
		}
		else s1+=1;
	}
	else s0+=1;
	display(0,s0);
	delay(DELAY_VALUE);
	display(1,s1);
	delay(DELAY_VALUE);
	display(2,m0);
	delay(DELAY_VALUE);
	display(3,m1);
	delay(DELAY_VALUE);
	display(4,h0);
	delay(DELAY_VALUE);
	display(5,h1);
	delay(DELAY_VALUE); //以上語句則在數碼管上顯示各個數字
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色狠狠色狠狠综合| 国产成人免费av在线| 国产精品不卡在线观看| 国产欧美一区二区精品婷婷 | 日韩精品一级中文字幕精品视频免费观看 | 日韩一区中文字幕| 亚洲日本va午夜在线影院| 亚洲欧美在线观看| 亚洲精品视频在线| 亚洲二区在线观看| 麻豆精品久久久| 九九**精品视频免费播放| 韩国视频一区二区| av不卡在线播放| 色哟哟国产精品免费观看| 在线免费观看成人短视频| 亚洲一区二区视频| 亚洲激情自拍视频| 亚洲国产精品久久艾草纯爱| 亚洲国产综合91精品麻豆| 日韩电影一区二区三区| 免费高清视频精品| 国产最新精品精品你懂的| 国产黑丝在线一区二区三区| 岛国一区二区三区| 99久久久精品免费观看国产蜜| 91麻豆福利精品推荐| 欧美日韩视频在线观看一区二区三区| 欧美精品v日韩精品v韩国精品v| 欧美色欧美亚洲另类二区| 欧美一区二区三区的| 久久精品一区蜜桃臀影院| 亚洲欧洲av另类| 午夜欧美大尺度福利影院在线看| 韩国中文字幕2020精品| 色综合天天视频在线观看| 在线不卡欧美精品一区二区三区| 精品免费视频一区二区| 亚洲精品日韩一| 麻豆精品在线看| 日本乱人伦一区| 国产午夜三级一区二区三| 亚洲午夜影视影院在线观看| 国内精品伊人久久久久av影院| 91行情网站电视在线观看高清版| 日韩精品专区在线| 夜夜夜精品看看| 丁香六月综合激情| 91精品国产全国免费观看| 亚洲视频小说图片| 国产一区二区在线观看免费| 欧美性受xxxx| 日韩一区欧美一区| 东方aⅴ免费观看久久av| 在线电影一区二区三区| 亚洲美女屁股眼交3| 高清视频一区二区| 精品国产一区二区精华| 五月天欧美精品| 欧美综合欧美视频| 亚洲欧美日韩人成在线播放| 国产激情一区二区三区桃花岛亚洲| 91精品国产全国免费观看| 亚洲电影欧美电影有声小说| 色综合天天天天做夜夜夜夜做| 欧美国产日本视频| 国产一区二区电影| 久久婷婷国产综合国色天香| 天堂午夜影视日韩欧美一区二区| 色综合久久久久综合体桃花网| 国产三级精品在线| 国产精品99久久久久久似苏梦涵| 日韩欧美二区三区| 久久99精品久久久久久久久久久久| 欧美日韩小视频| 亚洲bt欧美bt精品| 欧美精品v国产精品v日韩精品| 亚洲一区二区综合| 欧美色爱综合网| 丝袜美腿成人在线| 日韩一二三区视频| 美女视频黄免费的久久| 精品久久久久久综合日本欧美| 美女视频一区二区| 久久久九九九九| youjizz久久| 一区二区三区波多野结衣在线观看| 一本久久a久久免费精品不卡| 亚洲美女在线国产| 欧美人与性动xxxx| 久久国产精品露脸对白| 久久久久国产免费免费| 成人永久免费视频| 亚洲高清在线视频| 精品国产髙清在线看国产毛片| 久久97超碰色| 亚洲婷婷综合色高清在线| 在线观看视频91| 久久99久久久久| 国产精品三级av| 欧美天堂一区二区三区| 精品系列免费在线观看| 国产精品电影院| 欧美理论片在线| 国产麻豆精品视频| 一区二区三区视频在线看| 欧美一区二区三区婷婷月色| 韩国av一区二区三区四区| 久久国产精品无码网站| 日本久久一区二区| 午夜欧美电影在线观看| 日韩精品一区二区三区四区| 国产99精品视频| 一区二区三区精品| 日韩视频在线一区二区| eeuss鲁一区二区三区| 天天综合色天天综合色h| 久久久不卡网国产精品一区| 欧美性大战久久久久久久蜜臀| 精品一区二区三区日韩| 亚洲精品菠萝久久久久久久| 亚洲精品一区二区三区福利| 色伊人久久综合中文字幕| 国产麻豆欧美日韩一区| 日韩成人精品在线| 伊人夜夜躁av伊人久久| 国产日韩亚洲欧美综合| 欧美一级生活片| 在线观看成人小视频| 99视频在线观看一区三区| 亚洲精品乱码久久久久久久久 | 成人丝袜18视频在线观看| 全国精品久久少妇| 亚洲自拍另类综合| 自拍偷自拍亚洲精品播放| 尤物视频一区二区| 亚洲欧洲日韩在线| 中文字幕av一区二区三区| 久久免费看少妇高潮| 欧美一级高清片在线观看| 欧美日韩国产综合视频在线观看| 99国产精品久久久| 成人午夜在线播放| 国产福利一区二区| 国产美女在线精品| 国产综合色精品一区二区三区| 日本三级亚洲精品| 日韩国产欧美三级| 亚洲国产sm捆绑调教视频| 一区二区三区日韩欧美精品| 亚洲免费av网站| 中文字幕亚洲区| 亚洲婷婷在线视频| 一区二区久久久久久| 亚洲精品videosex极品| 亚洲一区在线看| 亚洲一区二区三区在线| 午夜私人影院久久久久| 天堂蜜桃91精品| 麻豆高清免费国产一区| 久久99精品久久久| 国产一区二区在线看| 国产精品一区一区三区| 国产激情视频一区二区在线观看| 成人动漫一区二区| 一本色道久久综合亚洲aⅴ蜜桃| youjizz久久| 国产日韩亚洲欧美综合| 久久免费电影网| 日本一区二区三区电影| 亚洲欧洲在线观看av| 亚洲欧洲制服丝袜| 日韩在线卡一卡二| 久久66热re国产| 成人app软件下载大全免费| 91视频一区二区| 91久久国产综合久久| 欧美一区二区三区视频| 久久精品人人爽人人爽| 一区二区三区在线视频免费| 奇米综合一区二区三区精品视频| 国产九色精品成人porny| 94-欧美-setu| 日韩欧美电影一二三| 亚洲欧洲av另类| 蜜臀av一区二区三区| 97超碰欧美中文字幕| 日韩精品中文字幕一区二区三区 | 久久精品国产成人一区二区三区| 日韩电影免费一区| 国产精品夜夜嗨| 欧美午夜不卡视频| 久久你懂得1024| 亚洲成人你懂的| 成人av午夜影院| 欧美视频在线观看一区二区| 久久综合久久综合久久综合| 亚洲一区二区三区视频在线 | 制服丝袜成人动漫| 国产精品国产精品国产专区不蜜 |