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

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

?? 51mcu.txt

?? 51單片機電子日歷程序代碼 有時間顯示、鬧鈴、日期、秒表及鍵盤設置功能
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
void update_timerstr(void) /*更新秒表顯示代碼數組timerstr*/ 
{ 
timerstr[0]=led[timer.ms%10]; 
timerstr[1]=led[(int)(timer.ms/10)]; 
timerstr[2]=led[timer.s%10]; 
timerstr[3]=led[(int)(timer.s/10)]; 
timerstr[4]=led[timer.m%10]; 
timerstr[5]=led[(int)(timer.m/10)]; 
} 
void display(void) /*刷新顯示六位LED一次*/ 
{ 
unsigned char i; 
for(i=0;i<6;i++) 
{ 
LED_ON(i); /*選通相應位*/ 
XBYTE[LED_SEG]=dispbuf[i]; /*寫顯示段碼*/ 
deley(50); /*延時顯示*/ 
LED_OFF; /*寫LED全滅段碼*/ 
} 
} 
void update_dispbuf(unsigned char *str) /*更新顯示緩沖區子函數,參數為要用來更新緩沖區的源字符數組的首地址*/ 
{ 
dispbuf[0]=str[0]; /*將要更新的源字符數組內容COPY至dispbuf數組,用作顯示緩沖區*/ 
dispbuf[1]=str[1]; 
dispbuf[2]=str[2]|0x80; /*默認把時位和分位后面的小數點顯示出來,根據需要再取舍*/ 
dispbuf[3]=str[3]; 
dispbuf[4]=str[4]|0x80; 
dispbuf[5]=str[5]; 
} 
void deley(int i) /*延時子函數*/ 
{ 
while(i--); 
} 
unsigned char getkeycode(void) /*鍵盤掃描子程序,返回獲得的鍵碼*/ 
{ 
unsigned char keycode; /*鍵碼變量,一開始存行碼*/ 
unsigned char scancode=0x20; /*列掃描碼*/ 
unsigned char icolumn=0; /*鍵的列號*/ 
display(); /*用刷新數碼管顯示的時間去抖*/ 
XBYTE[KEY_COLUMN]=0x00; 
keycode=XBYTE[KEY_LINE]&0x0f; /*從行端口讀入四位行碼*/ 
while((scancode&0x3f)!=0) /*取scancode的低六位,只要沒變為全0,則執行循環*/ 
{ 
XBYTE[KEY_COLUMN]=(~scancode)&0x3f; /*給列賦掃描碼,第一次為011111*/ 
if((XBYTE[KEY_LINE]&0x0f)==keycode) break; /*檢測按鍵所在的列跳出循環*/ 
scancode=scancode>>1; /*列掃描碼右移一位*/ 
icolumn++; /*列號加1*/ 
} 
keycode=keycode<<4; /*把行碼移到高四位*/ 
keycode=keycode|icolumn; /*由行碼和列碼組成鍵碼*/ 
//等待按鍵放開 
XBYTE[KEY_COLUMN]=0x00; 
while((XBYTE[KEY_LINE]&0x0f)!=0x0f) display(); 
return keycode; 
} 
void keyprocess(unsigned char keycode) /*鍵值處理函數*/ 
{ 
switch (keycode) 
{ 
case 0x73: Akey(); 
break; 
case 0xB3: Bkey(); 
break; 
case 0xD3: Ckey(); 
break; 
case 0xE3: Dkey(); 
break; 
default: break; 
} 
update_dispbuf(CurrentMode); 
} 
unsigned char getmonthdays(unsigned int year,unsigned char month)/*得到某月的天數*/ 
{ 
unsigned char days; 
switch (month) 
{ 
case 4: 
case 6: 
case 9: 
case 11:days=30; 
break; 
case 2: if(year%4==0) days=29; 
else days=28; 
break; 
default:days=31; 
break; 
} 
return days; 
} 

/*功能鍵子函數部分*/ 
void Akey(void) /*對當前設置位進行加一操作,如果設置秒位,則給秒位清零*/ 
{ 
if(CurrentMode==TIMER) /*秒表模式下啟閉走時*/ 
{ TR1=!TR1; 
return; 
} 
if(!IsSet) return; /*如果不是設置模式退出*/ 
switch (SetSelect) 
{ 
case SECOND:if(CurrentMode==CLOCK) 
{ 
clock.s=0; /*如果當前被設置位是秒位,則清零秒位*/ 
update_clockstr(); 
} 
if(CurrentMode==ALART) 
{ 
Alart_EN=!Alart_EN; 
update_alartstr(); 
} 
if(CurrentMode==DATE) 
{ 
if(++date.day==(getmonthdays(date.year,date.month)+1)) date.day=1; 
update_datestr(); 
} 
if(CurrentMode==TIMER) 
{ 
TR1=!TR1; 
} 
break; 
case MINUTE:if(CurrentMode==CLOCK) 
{ 
if(++clock.m==60) clock.m=0; /*如果當前被設置分位,則分位加1*/ 
update_clockstr(); 
} 
if(CurrentMode==ALART) 
{ 
if(++alart.m==60) alart.m=0; 
update_alartstr(); 
} 
if(CurrentMode==DATE) 
{ 
if(++date.month==13) date.month=1; 
update_datestr(); 
} 
break; 
case HOUR: if(CurrentMode==CLOCK) 
{ 
if(++clock.h==24) clock.h=0; /*如果當前被設置時位,則時位加1*/ 
update_clockstr(); 
} 
if(CurrentMode==ALART) 
{ 
if(++alart.h==24) alart.h=0; 
update_alartstr(); 
} 
if(CurrentMode==DATE) 
{ 
if(++date.year==100) date.year=0; 
update_datestr(); 
} 
break; 
default: break; 
} 
update_dispbuf(CurrentMode); 
} 
void Bkey(void) /*對當前設置位進行減一操作,如果設置秒分,則給秒位清零,類比Akey()函數*/ 
{ 
if(!IsSet) return; 
switch (SetSelect) 
{ 
case SECOND:if(CurrentMode==CLOCK) 
{ 
clock.s=0; 
update_clockstr(); 
} 
if(CurrentMode==ALART) 
{ 
Alart_EN=!Alart_EN; 
update_alartstr(); 
} 
if(CurrentMode==DATE) 
{ 
if(--date.day==0x00) date.day=getmonthdays(date.year,date.month); 
update_datestr(); 
} 
break; 
case MINUTE:if(CurrentMode==CLOCK) 
{ 
if(--clock.m==0xff) clock.m=59; 
update_clockstr(); 
} 
if(CurrentMode==ALART) 
{ 
if(--alart.m==0xff) alart.m=59; 
update_alartstr(); 
} 
if(CurrentMode==DATE) 
{ 
if(--date.month==0x00) date.month=12; 
update_datestr(); 
} 
break; 
case HOUR: if(CurrentMode==CLOCK) 
{ 
if(--clock.h==0xff) clock.h=23; 
update_clockstr(); 
} 
if(CurrentMode==ALART) 
{ 
if(--alart.h==0xff) alart.h=23; 
update_alartstr(); 
} 
if(CurrentMode==DATE) 
{ 
if(--date.year==0xffff) date.year=99; 
update_datestr(); 
} 
break; 
default: break; 
} 
update_dispbuf(CurrentMode); 
} 
void Ckey(void) /*正常走時模式和設置模式的切換*/ 
{ 
if(CurrentMode==TIMER) 
{ 
TR1=0; /*初始化定時器1設置,停止秒表記時*/ 
TH1=6; 
TL1=6; 
timer.ms=0; /*初始化秒表數組*/ 
timer.s=0; 
timer.m=0; 
update_timerstr(); 
}else 
{ 
if(IsSet==0) /*在非秒表模式下,第一次按下C鍵進入設置模式,設置時位*/ 
{ 
IsSet=1; /*置位標志位,進入設置模式 */ 
SetSelect=HOUR; 
return; 
} /*第二次按C鍵設置分位,第三次按鍵設置秒位,第四次按鍵完成退出設置*/ 
if(SetSelect==0) /*按到第四次,即設置完秒位后,將標志位IsSet置0,完成設置*/ 
{ 
IsSet=0; /*復位標志位,進入正常走時模式*/ 
return; 
} 
if(SetSelect>0) SetSelect--; /*設置位的標志變量SetSelect=0:時位 1:分位 2:秒位*/ 
} 
} 
void Dkey(void) /*工作狀態切換:時鐘、鬧鐘、日期、秒表*/ 
{ 
if(CurrentMode==CLOCK) /*切換至鬧鐘,同時開關鬧鐘*/ 
{ CurrentMode=ALART; 
Alart_EN=!Alart_EN; 
update_alartstr(); 
return; 
} 
if(CurrentMode==ALART) /*切換至日期*/ 
{ CurrentMode=DATE; 
return; 
} 
if(CurrentMode==DATE) /*切換至秒表,同時關閉設置模式*/ 
{ 
CurrentMode=TIMER; 
IsSet=0; 
return; 
} 
if(CurrentMode==TIMER) /*切換至時鐘*/ 
{ 
CurrentMode=CLOCK; 
return; 
} 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品77777| 激情久久五月天| 亚洲色图在线看| 欧美国产一区在线| 国产人伦精品一区二区| 久久精品欧美日韩精品| 国产欧美日韩在线观看| 国产欧美精品在线观看| 国产精品成人网| 亚洲乱码国产乱码精品精98午夜| 亚洲日本在线a| 亚洲国产精品久久久久秋霞影院| 午夜精品福利一区二区三区蜜桃| 肉色丝袜一区二区| 久久91精品久久久久久秒播| 国产精品99久久久久久似苏梦涵| 成人白浆超碰人人人人| 91久久精品日日躁夜夜躁欧美| 色天使色偷偷av一区二区| 欧美无人高清视频在线观看| 欧美一级生活片| 日本一区二区高清| 夜夜亚洲天天久久| 久久国产日韩欧美精品| 成人综合在线视频| 精品1区2区3区| 久久久久久久久久久久久夜| 国产精品久久777777| 午夜精品福利一区二区三区av| 久久99精品久久只有精品| 成人一道本在线| 欧美男生操女生| 久久久久国产一区二区三区四区| 亚洲精品久久7777| 精品中文字幕一区二区小辣椒| av毛片久久久久**hd| 欧美一区午夜精品| 日韩理论电影院| 韩国女主播成人在线观看| 91香蕉国产在线观看软件| 日韩一级欧美一级| 亚洲另类春色国产| 国产成人综合在线播放| 欧美日精品一区视频| 国产网站一区二区三区| 免费成人在线影院| 在线日韩国产精品| 国产欧美精品一区二区色综合朱莉| 亚洲成人你懂的| 成人精品在线视频观看| 日韩一级视频免费观看在线| 夜夜嗨av一区二区三区网页 | 狠狠网亚洲精品| 在线亚洲欧美专区二区| 欧美韩国一区二区| 精品影院一区二区久久久| 欧美日韩免费一区二区三区 | 国产精品88av| 欧美电视剧免费观看| 亚洲第一综合色| 91福利小视频| 亚洲精品免费在线观看| av在线这里只有精品| 国产女人18毛片水真多成人如厕| 麻豆成人综合网| 91精品国产色综合久久ai换脸| 一区二区在线免费观看| 91在线无精精品入口| 日本一区二区久久| 成人成人成人在线视频| 亚洲国产精品av| 成人性生交大片免费看中文 | 亚洲一区自拍偷拍| 一本色道久久综合亚洲aⅴ蜜桃| 国产精品素人一区二区| 国产成a人无v码亚洲福利| 久久五月婷婷丁香社区| 激情综合色播五月| 精品美女被调教视频大全网站| 久久精品国内一区二区三区| 欧美电影免费观看高清完整版| 日日夜夜精品视频天天综合网| 欧美久久婷婷综合色| 日韩国产成人精品| 日韩精品中文字幕在线一区| 国产一区欧美日韩| 久久久午夜电影| 99久久婷婷国产综合精品电影| 中文字幕亚洲综合久久菠萝蜜| 色先锋资源久久综合| 亚洲一区二区三区视频在线播放| 欧美肥大bbwbbw高潮| 精品午夜久久福利影院| 国产日韩欧美一区二区三区乱码| jlzzjlzz欧美大全| 一区二区三区中文字幕| 欧美日韩国产电影| 国产精品一区专区| 亚洲欧美国产毛片在线| 91.com在线观看| 国产成人高清在线| 亚洲激情自拍视频| 欧美一区二区三区婷婷月色| 国产精品 欧美精品| 亚洲欧美电影一区二区| 欧美一级免费观看| 成人v精品蜜桃久久一区| 亚洲va欧美va国产va天堂影院| 日韩美女视频在线| 色综合久久久久综合体| 日本美女视频一区二区| 中文字幕一区二区三区在线观看| 欧美亚洲愉拍一区二区| 国产精品一二三四五| 亚洲蜜臀av乱码久久精品| 日韩一区二区高清| 91搞黄在线观看| 国产乱一区二区| 五月天国产精品| 国产精品久久久久久久第一福利| 欧美一区二区私人影院日本| 97久久超碰国产精品| 极品销魂美女一区二区三区| 亚洲精品乱码久久久久久黑人 | 免费在线观看一区二区三区| 中文字幕一区二区三区不卡| 日韩欧美国产系列| 在线看日本不卡| 成人在线视频一区| 精品一区二区三区免费毛片爱 | 另类小说色综合网站| 亚洲综合免费观看高清完整版在线 | 国产日韩精品一区二区三区| 欧美一区二区三区视频在线观看| 99re8在线精品视频免费播放| 久久精品国产999大香线蕉| 亚洲成av人片一区二区梦乃| 亚洲精品中文字幕在线观看| 日本一二三不卡| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美吻胸吃奶大尺度电影| 99精品国产91久久久久久| 丁香天五香天堂综合| 国精产品一区一区三区mba视频| 天天综合天天综合色| 亚洲五码中文字幕| 亚洲国产一区二区视频| 亚洲一区二区三区视频在线播放| 亚洲猫色日本管| 亚洲区小说区图片区qvod| 国产精品久久久一区麻豆最新章节| 久久综合色综合88| 精品国产3级a| 久久网站最新地址| 久久人人爽爽爽人久久久| 精品va天堂亚洲国产| 久久综合九色综合欧美亚洲| 亚洲精品一区二区三区精华液| 精品国产凹凸成av人导航| 久久久国际精品| 中文字幕 久热精品 视频在线 | 这里是久久伊人| 日韩欧美一级精品久久| 精品欧美乱码久久久久久1区2区| 精品少妇一区二区三区日产乱码| 日韩欧美精品在线| 国产亚洲精品aa| 中文字幕中文在线不卡住| 国产精品不卡一区| 一区二区三区在线看| 婷婷亚洲久悠悠色悠在线播放| 美女精品一区二区| 国产成人av在线影院| 97se狠狠狠综合亚洲狠狠| 欧美午夜电影网| 欧美精品一区二区三区很污很色的| 国产日产欧美一区| 亚洲另类色综合网站| 蜜臀av性久久久久蜜臀aⅴ| 国产乱人伦偷精品视频不卡| www.66久久| 日韩视频不卡中文| 国产精品久久久久久久久图文区| 亚洲精品国产视频| 久热成人在线视频| 日本高清无吗v一区| 日韩亚洲欧美在线| 国产精品久久久久久久第一福利| 亚洲成人免费观看| 国产成人在线网站| 欧美日韩综合色| 久久久www成人免费毛片麻豆| 尤物av一区二区| 国产自产2019最新不卡| 欧美日韩一区国产| 国产精品久久久久三级| 久久99在线观看| 欧美三级电影网| 成人欧美一区二区三区在线播放| 美女在线观看视频一区二区|