亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

可調鬧鐘lcd時鐘

2019-11-10 20:01:03
字體:
來源:轉載
供稿:網友
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義#include<intrins.h>#include "i2c.h"http://sbit LATCH1=P2^2; //定義鎖存使能端口 段鎖存//sbit LATCH2=P2^3; //位鎖存sbit RS = P2^4; //定義端口 sbit RW = P2^5;sbit EN = P2^6;sbit SPK = P2^7;#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define DataPort P0 //定義數據端口 程序中遇到DataPort 則用P0 替換#define KeyPort P1bit KeyPRessFlag;//定義按鍵標志位unsigned char sec;unsigned char min;unsigned char hour;unsigned char second;unsigned char minute;unsigned char hours;unsigned char dat[3] = 0;/*------------------------------------------------ uS延時函數------------------------------------------------*/void DelayUs2x(unsigned char t){ while(--t);}/*------------------------------------------------ mS延時函數------------------------------------------------*/void DelayMs(unsigned char t){ while(t--) { //大致延時1mS DelayUs2x(245); DelayUs2x(245); }}/*------------------------------------------------ 外部中斷0初始化------------------------------------------------*/void Init_INT0(void){ EA=1; //全局中斷開 EX0=1; //外部中斷0開 IT0=1; //邊沿觸發}/*------------------------------------------------ 外部中斷0程序------------------------------------------------*/void ISR_INT0(void) interrupt 0 { KeyPressFlag=1; //表明按鍵有動作,可以進行按鍵掃描}/*------------------------------------------------ 按鍵掃描函數,返回掃描鍵值------------------------------------------------*/unsigned char KeyScan(void) //鍵盤掃描函數,使用行列逐級掃描法{ unsigned char Val; KeyPort=0xf0;//高四位置高,低四位拉低 if(KeyPort!=0xf0)//表示有按鍵按下 { DelayMs(10); //去抖 if(KeyPort!=0xf0) { //表示有按鍵按下 KeyPort=0xfe; //檢測第一行 if(KeyPort!=0xfe) { Val=KeyPort&0xf0; Val+=0x0e; while(KeyPort!=0xfe); DelayMs(10); //去抖 while(KeyPort!=0xfe); return Val; } KeyPort=0xfd; //檢測第二行 if(KeyPort!=0xfd) { Val=KeyPort&0xf0; Val+=0x0d; while(KeyPort!=0xfd); DelayMs(10); //去抖 while(KeyPort!=0xfd); return Val; } KeyPort=0xfb; //檢測第三行 if(KeyPort!=0xfb) { Val=KeyPort&0xf0; Val+=0x0b; while(KeyPort!=0xfb); DelayMs(10); //去抖 while(KeyPort!=0xfb); return Val; } KeyPort=0xf7; //檢測第四行 if(KeyPort!=0xf7) { Val=KeyPort&0xf0; Val+=0x07; while(KeyPort!=0xf7); DelayMs(10); //去抖 while(KeyPort!=0xf7); return Val; } } } return 0xff;}/*------------------------------------------------ 按鍵值處理函數,返回掃鍵值------------------------------------------------*/unsigned char KeyPro(void){ switch(KeyScan()) { case 0x7e: { sec++; if(sec == 60) { sec = 0; } break; } case 0x7d: { min++; if(min == 60) { min = 0; } break; } case 0x7b: { hour++; if(hour == 24) { hour =0 ; } break; } case 0x77: { second++; if(second == 60) { second = 0; } break; } case 0xbe: { minute++; if(minute == 60) { minute = 0; } break; } case 0xbd: { hours++; if(hours == 24) { hours = 0; } break; } /* case 0xbb:;break;//6 case 0xb7:return 7;break;//7 case 0xde:return 8;break;//8 case 0xdd:return 9;break;//9 case 0xdb:return 10;break;//a case 0xd7:return 11;break;//b case 0xee:return 12;break;//c case 0xed:return 13;break;//d case 0xeb:return 14;break;//e case 0xe7:return 15;break;//f*/ default:return 0xff;break; }}/*------------------------------------------------ 判忙函數------------------------------------------------*/ bit LCD_Check_Busy(void) { DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80); }/*------------------------------------------------ 寫入命令函數------------------------------------------------*/ void LCD_Write_Com(unsigned char com) { // while(LCD_Check_Busy()); //忙則等待 DelayMs(5); RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; }/*------------------------------------------------ 寫入數據函數------------------------------------------------*/ void LCD_Write_Data(unsigned char Data) { //while(LCD_Check_Busy()); //忙則等待 DelayMs(5); RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; }/*------------------------------------------------ 清屏函數------------------------------------------------*/ void LCD_Clear(void) { LCD_Write_Com(0x01); DelayMs(5); }/*------------------------------------------------ 寫入字符串函數------------------------------------------------*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { if (y == 0) { LCD_Write_Com(0x80 + x); //表示第一行 } else { LCD_Write_Com(0xC0 + x); //表示第二行 } while (*s) { LCD_Write_Data( *s); s ++; } }/*------------------------------------------------ 寫入字符函數------------------------------------------------*/ void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { LCD_Write_Com(0x80 + x); } else { LCD_Write_Com(0xC0 + x); } LCD_Write_Data( Data); }/*------------------------------------------------ 初始化函數------------------------------------------------*/ void LCD_Init(void) { LCD_Write_Com(0x38); /*顯示模式設置*/ DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*顯示關閉*/ LCD_Write_Com(0x01); /*顯示清屏*/ LCD_Write_Com(0x06); /*顯示光標移動設置*/ DelayMs(5); LCD_Write_Com(0x0C); /*顯示開及光標設置*/ }void ISR_time0() interrupt 1{ unsigned char i; EA = 0; TMOD = 0x01; TH0 = 0x3c; TL0 = 0xb0; i++; if(i == 20) { i = 0; sec++; } EA = 1; }void time_add(){ if(sec == 60) { sec = 0; min++; } if(min == 60) { min = 0; hour++; } if(hour == 24) { hour = 0; } if(sec == second && min == minute && hour == hours) { SPK = !SPK; DelayMs(5); }}/*------------------------------------------------ 主函數------------------------------------------------*/ void main(void) { IRcvStr(0xae,80,dat,16); sec = dat[0]; min = dat[1]; hour = dat[2]; TMOD = 0x01; TH0 = 0x3c; TL0 = 0xb0; TR0 = 1; EA = 1; ET0 = 1; Init_INT0(); LCD_Init(); LCD_Clear();//清屏 DelayMs(5); while (1) { time_add(); KeyPort=0xf0; // 賦值用于中斷檢測 if(KeyPressFlag==1) { KeyPressFlag=0; //按鍵標志清零,以便下次檢測 KeyPro(); } LCD_Write_Char(7,0,'0' + sec%10); LCD_Write_Char(6,0,'0' + sec/10); dat[0] = sec; LCD_Write_Char(5,0,0x3a); LCD_Write_Char(4,0,'0' + min%10); LCD_Write_Char(3,0,'0' + min/10); dat[1] = min; LCD_Write_Char(2,0,0x3a); LCD_Write_Char(1,0,'0' + hour%10); LCD_Write_Char(0,0,'0' + hour/10); dat[2] = hour; LCD_Write_Char(0,1,'a'); LCD_Write_Char(1,1,'l'); LCD_Write_Char(2,1,'a'); LCD_Write_Char(3,1,'r'); LCD_Write_Char(4,1,'m'); LCD_Write_Char(5,1,0x3a); LCD_Write_Char(6,1,'0' + second%10); LCD_Write_Char(7,1,'0' + second/10); LCD_Write_Char(8,1,0x3a); LCD_Write_Char(9,1,'0' + minute%10); LCD_Write_Char(10,1,'0' + minute/10); LCD_Write_Char(11,1,0x3a); LCD_Write_Char(12,1,'0' + hours%10); LCD_Write_Char(13,1,'0' + hours/10); ISendStr(0xae,80,dat,16); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黄色一区二区在线观看| 日韩一区二区福利| 亚洲男女自偷自拍图片另类| 日韩精品高清视频| 在线观看日韩视频| 欧美在线日韩在线| 日韩一区二区av| 欧美丰满片xxx777| 亚洲欧美激情精品一区二区| 日韩中文字幕在线播放| 日韩av在线播放资源| 97在线视频免费看| 97成人超碰免| 一区二区在线免费视频| 亚洲欧美一区二区三区四区| 最新中文字幕亚洲| 丰满岳妇乱一区二区三区| 91在线观看免费高清完整版在线观看| 久久精品国产亚洲精品2020| 高清一区二区三区日本久| 国产偷亚洲偷欧美偷精品| 国产亚洲欧美aaaa| 成人在线免费观看视视频| 91福利视频在线观看| 91精品美女在线| 伊人久久久久久久久久久| 欧美国产在线电影| 成人久久一区二区三区| 奇米4444一区二区三区| xx视频.9999.com| 亚洲第一区在线观看| 亚洲理论在线a中文字幕| 亚洲欧美福利视频| 久久亚洲精品中文字幕冲田杏梨| 国产精品wwwwww| 亚洲精品成人久久| 国产精品成人久久久久| 久久久亚洲成人| 欧美国产日韩在线| 日产精品久久久一区二区福利| 欧美日韩一区二区精品| 亚洲欧美精品伊人久久| 国产激情综合五月久久| 国产精品最新在线观看| 国产不卡精品视男人的天堂| 欧美激情精品久久久久| 久久久999国产| 久久九九免费视频| 亚洲图片欧美日产| 亚洲日本中文字幕| 亚洲男人天堂2023| 国产91色在线免费| 国产精品九九九| 亚洲精品一区二区网址| 国内精品视频一区| 日韩精品在线观看一区二区| 日本高清不卡在线| 亚洲电影免费观看高清完整版在线| 丝袜亚洲另类欧美重口| 夜夜嗨av一区二区三区免费区| 欧美日本亚洲视频| 久久不射热爱视频精品| 亚洲精品视频久久| 久久精品福利视频| 疯狂做受xxxx欧美肥白少妇| 草民午夜欧美限制a级福利片| 国产精品视频999| 欧美性猛交xxxx富婆弯腰| 亚洲精品久久久久中文字幕欢迎你| 欧美怡红院视频一区二区三区| 欧美一区二区三区四区在线| 日本韩国欧美精品大片卡二| 欧美日韩国产激情| 欧美日韩免费在线观看| 亚洲国产精品成人一区二区| 91嫩草在线视频| 97人洗澡人人免费公开视频碰碰碰| 亚洲精品国产拍免费91在线| 亚洲深夜福利视频| 热re99久久精品国产66热| 亚洲精品wwwww| 日韩av电影院| 精品高清一区二区三区| 亚洲精品美女视频| 成人中文字幕在线观看| 亚洲国产精品99久久| 国产亚洲精品综合一区91| 午夜剧场成人观在线视频免费观看| 亚洲专区中文字幕| 国产亚洲精品高潮| 久久久av网站| 成人精品在线视频| 国产成人精品免费久久久久| 精品国产91久久久久久| 久久久久久久色| 国内精品国产三级国产在线专| 亚洲男人天堂久| 久久夜色精品亚洲噜噜国产mv| 亚洲国产精品高清久久久| 日韩在线视频免费观看高清中文| 国产精品三级久久久久久电影| 91精品国产乱码久久久久久久久| 黑人与娇小精品av专区| 国产日韩精品在线| 日韩av在线网址| 92国产精品久久久久首页| 日韩小视频在线| 成人有码在线播放| 午夜精品福利在线观看| 欧美俄罗斯乱妇| 久久九九热免费视频| 精品亚洲精品福利线在观看| 国产精品美女午夜av| 亚洲九九九在线观看| 久久久这里只有精品视频| 日本精品在线视频| 国产精品视频1区| 日本精品视频在线观看| 欧美午夜精品伦理| 国产成人91久久精品| 影音先锋欧美在线资源| 精品激情国产视频| 亚洲一区二区三区香蕉| 91精品国产自产91精品| 国产精自产拍久久久久久蜜| 国产噜噜噜噜噜久久久久久久久| 国内精品久久久久久中文字幕| 日韩在线视频一区| 欧美大学生性色视频| 日韩中文视频免费在线观看| 九九视频这里只有精品| 国产免费一区视频观看免费| 日韩一区二区三区国产| 日韩的一区二区| 亚州欧美日韩中文视频| 91精品综合久久久久久五月天| 国产精品91视频| 国产精品久久不能| 国产丝袜视频一区| 午夜精品蜜臀一区二区三区免费| 日韩av在线免费观看| 美女视频黄免费的亚洲男人天堂| 亚洲精品永久免费精品| 夜色77av精品影院| 日韩精品极品视频| 欧美成人免费网| 日韩在线www| 欧美日韩国产精品一区| 欧美激情第6页| 欧美另类第一页| 色青青草原桃花久久综合| 亚洲精品久久在线| 精品一区二区亚洲| 久久精品国产一区二区三区| 亚洲精品综合久久中文字幕| 日韩欧美精品在线观看| 伊人伊成久久人综合网小说| 久99久在线视频| 成人黄色大片在线免费观看| 亚洲系列中文字幕| 国产综合久久久久久| 国产精品盗摄久久久| 日韩欧美中文第一页| 久久精品电影网|