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

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

可調鬧鐘lcd時鐘

2019-11-10 17:28:28
字體:
來源:轉載
供稿:網友
#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
亚洲第一精品久久忘忧草社区| 欧美日韩精品二区| 国产91热爆ts人妖在线| 国产日韩在线视频| 久久久久久久亚洲精品| 美女av一区二区| 国产成人高清激情视频在线观看| 中文字幕欧美在线| 亚洲精品98久久久久久中文字幕| 日韩av黄色在线观看| 海角国产乱辈乱精品视频| 欧美日韩综合视频| 国产精品三级美女白浆呻吟| 国产69精品99久久久久久宅男| 国产精品永久在线| 亚洲色图美腿丝袜| 亚洲美腿欧美激情另类| 中文字幕亚洲欧美在线| 日韩成人激情在线| 国产成人精品视| 91亚洲午夜在线| zzjj国产精品一区二区| 国产欧美精品久久久| 久久久久久中文字幕| 68精品国产免费久久久久久婷婷| 日韩电影在线观看永久视频免费网站| 国产精品美乳一区二区免费| 久久精品99久久久香蕉| 久久久久久亚洲精品中文字幕| 美女av一区二区三区| 亚洲2020天天堂在线观看| 超碰精品一区二区三区乱码| 国产精品三级久久久久久电影| 久青草国产97香蕉在线视频| 国产91成人video| 91av视频在线免费观看| 国产精品成人av在线| 久久精品久久久久电影| 最近2019年日本中文免费字幕| 久久av中文字幕| 人体精品一二三区| 国产aaa精品| 在线观看亚洲区| 色阁综合伊人av| 怡红院精品视频| 国产成人一区三区| 欧美日韩国产中文精品字幕自在自线| 久久久国产在线视频| 韩国欧美亚洲国产| 国产精品久久色| 国产精品入口免费视频一| 中日韩美女免费视频网站在线观看| 色av中文字幕一区| 夜夜嗨av一区二区三区四区| 精品国产鲁一鲁一区二区张丽| 欧美激情xxxx| 欧美黄色成人网| 久久中文字幕在线| 97色在线播放视频| 国语自产精品视频在免费| 欧美色另类天堂2015| 久久香蕉国产线看观看av| 91po在线观看91精品国产性色| 国产精品一二三在线| 91久久精品在线| 欧美亚洲伦理www| 亚洲第一页自拍| 欧美激情第99页| 奇米一区二区三区四区久久| 欧美日韩中文字幕在线| 欧美大片大片在线播放| 91在线视频精品| 97久久超碰福利国产精品…| 亚洲国产日韩一区| 亚洲精品wwww| 欧美孕妇毛茸茸xxxx| 日韩在线视频观看正片免费网站| 国产这里只有精品| 日本不卡高字幕在线2019| 久久69精品久久久久久久电影好| 亚洲精品在线看| 国产成人精品国内自产拍免费看| 91精品久久久久久久久中文字幕| 国产精品久久久久久久av电影| 亚洲精品视频中文字幕| 96pao国产成视频永久免费| 国产成人精品在线视频| 日韩在线观看视频免费| 日韩av中文字幕在线免费观看| 亚洲aⅴ男人的天堂在线观看| 国产精品九九久久久久久久| 97国产精品免费视频| 日本欧美在线视频| 国产一区二区三区视频| 欧美裸体男粗大视频在线观看| 久久久www成人免费精品张筱雨| 国产精品video| 少妇精69xxtheporn| 国产热re99久久6国产精品| 日韩中文字幕在线| 欧美一级淫片丝袜脚交| 欧美孕妇性xx| 精品久久久久久久久久国产| 精品国产91乱高清在线观看| 亚洲国产欧美久久| 亚洲黄一区二区| 欧美美女15p| 日韩欧美亚洲一二三区| 国产婷婷97碰碰久久人人蜜臀| 2019国产精品自在线拍国产不卡| 亚洲mm色国产网站| 精品网站999www| 亚洲男人天天操| 日本19禁啪啪免费观看www| 日韩在线欧美在线国产在线| 日韩欧美中文字幕在线观看| 成人av电影天堂| 粗暴蹂躏中文一区二区三区| 秋霞午夜一区二区| 欧美日韩国产一中文字不卡| 日韩欧美在线播放| 欧美日本国产在线| 亚洲日本成人女熟在线观看| 欧美日韩美女视频| 国a精品视频大全| 欧美性理论片在线观看片免费| 亚洲国产一区二区三区四区| 超薄丝袜一区二区| 91精品国产91久久久久久不卡| 欧美最猛性xxxxx(亚洲精品)| 久久精品99久久久香蕉| 97视频免费看| 亚洲码在线观看| 亚洲精品欧美极品| 欧美成年人视频| 精品一区二区亚洲| 国产精品电影在线观看| 性欧美暴力猛交69hd| 成人黄色在线播放| 韩国一区二区电影| 亚洲国产另类 国产精品国产免费| 国产日韩欧美日韩大片| 国产精品一区二区av影院萌芽| 日韩一区在线视频| 国模吧一区二区三区| 亚洲理论电影网| 欧美性在线观看| 亚洲女人被黑人巨大进入| 欧美日韩精品在线观看| 欧美日本精品在线| 日本三级韩国三级久久| 欧美日韩国产综合新一区| 两个人的视频www国产精品| 亚洲日本中文字幕免费在线不卡| 欧美成人精品在线观看| 欧美性xxxxxxxxx| 日韩在线中文视频| 日韩电影免费观看中文字幕| 中文日韩在线观看| 欧美三级欧美成人高清www| 综合国产在线观看| 97精品国产97久久久久久免费| 国产精品电影久久久久电影网| 高清欧美性猛交xxxx黑人猛交|