基于单片机的电子万年历的设计与制作 - 图文 联系客服

发布时间 : 星期一 文章基于单片机的电子万年历的设计与制作 - 图文更新完毕开始阅读46fa9556af45b307e971970f

郑州航空工业管理学院毕业设计(论文)

LCD_E=1; delay(1); P0=dat; delay(2); LCD_E=0; delay(2); LCD_RS=1; LCD_RW=1; delay(2); LCD_E= 1; }

void WriteCommandLCD(uchar udat)//向12864写指令 {

LCD_RS=0; LCD_RW=0; delay(2); LCD_E=1; delay(1); P0=udat; delay(2); LCD_E=0; delay(2); LCD_RS=1; LCD_RW=1; delay(2); LCD_E= 1; }

void LCDInit(void) //12864初始化设置 {

WriteCommandLCD(0x30);//基本指令操作 WriteCommandLCD(0x01);//清除显示

WriteCommandLCD(0x06); //进入点设定,地址指针加1

WriteCommandLCD(0x0c);//显示设定,整体显示、游标关、不反白 }

void LCDlear(void) {

WriteCommandLCD(0x01); WriteCommandLCD(0x34); WriteCommandLCD(0x30); }

void LCDSendWord(uchar *p)//显示汉字,直接输入汉字 {

while(*p>0) { WriteDataLCD(*p); p++; } }

void LCDTestWord(bit i,uchar word)

36

郑州航空工业管理学院毕业设计(论文)

{

if(i==0) //写指令 { WriteCommandLCD(word); }

else //写数据 { WriteDataLCD(word); } }

节假日提示

#include \

/************节假日提示************/ void Holidays(void) {

uint p=GetTemp();

LCDTestWord(0,0x98);

if(next==0) //没有键按下时 {

if(LunarMonth==0x01&&LunarDay==0x01) {LCDSendWord(\春节快乐!\

if(LunarMonth==0x01&&LunarDay==0x15) {LCDSendWord(\元宵节快乐!\ if(LunarMonth==0x01&&LunarDay==0x26) {LCDSendWord(\妈妈的生日!\ if(LunarMonth==0x01&&LunarDay==0x28) {LCDSendWord(\爱人的生日!\ if(LunarMonth==0x05&&LunarDay==0x05) {LCDSendWord(\端午节快乐!\ if(LunarMonth==0x06&&LunarDay==0x28) {LCDSendWord(\嘿嘿,我又老了!\ if(LunarMonth==0x07&&LunarDay==0x07) {LCDSendWord(\中国情人节快乐!\ if(LunarMonth==0x08&&LunarDay==0x15) {LCDSendWord(\中秋节快乐!\ if(LunarMonth==0x09&&LunarDay==0x09) {LCDSendWord(\重阳节快乐!\

if(LunarMonth==0x08&&LunarDay==0x15) {LCDSendWord(\爸爸的生日!\ if(LunarMonth==0x12&&LunarDay==0x08) {LCDSendWord(\腊八节!\

if(LunarMonth==0x12&&LunarDay==0x23) {LCDSendWord(\过小年啦!\

if(LunarMonth==0x12&&LunarDay==0x29) {LCDSendWord(\还有一天新年啦!\ if(LunarMonth==0x12&&LunarDay==0x30) {LCDSendWord(\今天就到新年夜了!\

37

郑州航空工业管理学院毕业设计(论文)

//以上是农历节日,以下是公历节日 if(month==0x01&&day==0x01) {LCDSendWord(\元旦快乐!\ if(month==0x02&&day==0x10) {LCDSendWord(\世界气象日!\ if(month==0x02&&day==0x14) {LCDSendWord(\情人节快乐!\ if(month==0x03&&day==0x12) {LCDSendWord(\中国植树节!\ if(month==0x04&&day==0x01) {LCDSendWord(\愚人节快乐!\ if(month==0x04&&day==0x05) {LCDSendWord(\中国清明节!\ if(month==0x04&&day==0x22) {LCDSendWord(\世界地球日!\ if(month==0x05&&day==0x01) {LCDSendWord(\国际劳动节! \ if(month==0x05&&day==0x12) {LCDSendWord(\世界护士节!\ if(month==0x06&&day==0x01) {LCDSendWord(\国际儿童节!\ if(month==0x06&&day==0x05) {LCDSendWord(\世界环境日!\ if(month==0x06&&day==0x26) {LCDSendWord(\国际禁毒日!\ if(month==0x08&&day==0x01) {LCDSendWord(\中国建军节!\ if(month==0x09&&day==0x10) {LCDSendWord(\中国教师节!\ if(month==0x10&&day==0x01) {LCDSendWord(\中国国庆节!\ if(month==0x10&&day==0x09) {LCDSendWord(\世界邮政日!\ if(month==0x12&&day==0x24) {LCDSendWord(\平安夜快乐!\ if(month==0x12&&day==0x25) {LCDSendWord(\圣诞节快乐!\ } else {

if((((p-0.5)/10)>2)&&(((p-0.5)/10)<34)) { if(SetKey==1&&SureKey==1&&PlusKey==1&&ReduceKey==1) { hour=read_ds(4); if(((hour/16*10+hour)>=6)&&((hour/16*10+hour)<22)) {

38

郑州航空工业管理学院毕业设计(论文)

if((hour/16*10+hour)>=12&&(hour/16*10+hour)<14) {LCDSendWord(\午休时间( ^@^ )~~ \ else {LCDSendWord(\快乐每一天^_^ \

if((hour/16*10+hour)>22||(hour/16*10+hour<=5)) {LCDSendWord(\夜深了注意休息喔\ } } if(((p-0.5)/10)<=2) {LCDSendWord(\天气寒冷注意保暖\ else {LCDSendWord(\天气炎热注意防暑\ } } }

按键模块

#include \bit w=0;

uchar aa,bb,cc,dd,mm; uchar next;

/********************按键设置函数*************************/ void UpDate(void) //年,月,日,周,时分秒显示 {

DisplayYear(); DisplayMonth(); DisplayDay(); DisplayWeek(); DisplayHour(); DisplayMin(); DisplaySec();

DisplayShengXiao(); }

void SetTime(uchar count) //时间设置函数 {

char address,item; uchar max=0,mini=0; if(count<8) { LCDTestWord(0,0x98); LCDSendWord(\调整\ if(count==7) { LCDSendWord(\秒钟请按+ - \ address=0x00; max=59; mini=0; }

39