资源描述:
《智能电子钟LCD显示仿真图和程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、#include#include#defineuintunsignedint#defineucharunsignedchar#defineDateP3//数码管数据口#definecomP1sbitDS1302_CLK=P1^7;//实时时钟时钟线引脚sbitDS1302_IO=P2^6;//实时时钟数据线引脚sbitDS1302_RST=P1^6;//实时时钟复位线引脚sbitACC0=ACC^0;sbitACC7=ACC^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f
2、,0x6f};charhide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;//秒,分,时到日,月,年位闪的计数sbitSet=P2^0;//模式切换键sbitUp=P2^1;//加法按钮sbitDown=P2^2;//减法按钮sbitout=P2^3;//立刻跳出调整模式按钮sbitdi=P2^4;//蜂鸣器chardone,count,temp,flag,up_flag,down_flag;ucharTempBuffer[5],week_value[2];voidshow_time();//显示程序/***
3、*********************功能:延时,延时时间大概为ms。**********************/voiddelayms(intx){inti,j;for(i=110;i>0;i--)for(j=x;j>0;j--);}voidbeep(){di=1;delayms(400);di=0;}/**************************名称:数码管显示*************************/xianshi(ucharshi1,ucharshi2,ucharfen1,ucharfen2,ucharmiao1,ucharmiao2){Date=table[
4、shi1];com=0xfe;delayms(10);Date=table[shi2];com=0xfd;delayms(10);Date=table[fen1];com=0xfb;delayms(10);Date=table[fen2];com=0xf7;delayms(10);Date=table[miao1];com=0xef;delayms(10);Date=table[miao2];com=0xdf;delayms(10);}/***********1602液晶显示部分子程序*********/sbitLcdRs=P2^5;sbitLcdRw=P2^6;sbitLcdEn=P2^7
5、;sfrDBPort=0x80;//内部等待函数****************unsignedcharLCD_Wait(void){LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();LcdEn=0;returnDBPort;}//向LCD写入命令或数据******************#defineLCD_COMMAND0//Command#defineLCD_DATA1//Data#defineLCD_CLEAR_SCREEN0x01//清屏#defineLCD_HOMING0x02//光标返回原点voidLCD_Write(bitstyle,unsign
6、edcharinput){LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();//注意顺序LcdEn=1;_nop_();//注意顺序LcdEn=0;_nop_();LCD_Wait();}//设置显示模式***********************#defineLCD_SHOW0x04//显示开#defineLCD_HIDE0x00//显示关#defineLCD_CURSOR0x02//显示光标#defineLCD_NO_CURSOR0x00//无光标#defineLCD_FLASH0x01//光标闪动#defineLCD_N
7、O_FLASH0x00//光标不闪动voidLCD_SetDisplay(unsignedcharDisplayMode){LCD_Write(LCD_COMMAND,0x08
8、DisplayMode);}//设置输入模式****************************#defineLCD_AC_UP0x02#defineLCD_AC_DOWN0x00//default#defineLCD_MOVE0