完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
附程序 #include #include #define uint unsigned int #define uchar unsigned char #define Date P3 //数码管数据口 #define com P1 ***it DS1302_CLK = P1^7; //实时时钟时钟线引脚 ***it DS1302_IO = P2^6; //实时时钟数据线引脚 ***it DS1302_RST = P1^6; //实时时钟复位线引脚 ***it ACC0 = ACC^0; ***it ACC7 = ACC^7; uchar code table[]={0x3f,0x06,0x5b,0x4f ,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; char hide_sec,hide_min,hide_hour,hide_day,hide_week, hide_month,hide_year; //秒,分,时到日,月,年位闪的计数 ***it Set = P2^0; //模式切换键 ***it Up = P2^1; //加法按钮 ***it Down = P2^2; //减法按钮 ***it out = P2^3; //立刻跳出调整模式按钮 ***it di=P2^4; //蜂鸣器 char done,count,temp,flag,up_flag,down_flag; uchar TempBuffer[5],week_value[2]; void show_time(); //显示程序 /*********************** * 功能 : 延时,延时时间大概为ms。 **********************/ void delayms(int x) {int i,j; for(i=110; i>0; i--) for(j=x; j>0; j--); } void beep() { di=1;delayms(400); di=0;} /************************* *名称: 数码管显示 *************************/ xianshi(uchar shi1,uchar shi2,uchar fen1,uchar fen2,uchar miao1,uchar miao2) { Date=table[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液晶显示部分子程序*********/ ***it LcdRs= P2^5; ***it LcdRw= P2^6; ***it LcdEn = P2^7; sfr DBPort= 0x80; //内部等待函数**************** unsigned char LCD_Wait(void) { LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); LcdEn=0; return DBPort; } //向LCD写入命令或数据****************** #define LCD_COMMAND 0 // Command #define LCD_DATA 1 // Data #define LCD_CLEAR_SCREEN 0x01 // 清屏 #define LCD_HOMING 0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) {LcdEn=0;LcdRs=style;LcdRw=0; _nop_();DBPort=input; _nop_();//注意顺序 LcdEn=1; _nop_();//注意顺序 LcdEn=0; _nop_();LCD_Wait(); } //设置显示模式*********************** #define LCD_SHOW 0x04 //显示开 #define LCD_HIDE 0x00 //显示关 #define LCD_CURSOR 0x02 //显示光标 #define LCD_NO_CURSOR 0x00 //无光标 #define LCD_FLASH 0x01 //光标闪动 #define LCD_NO_FLASH 0x00 //光标不闪动 void LCD_SetDisplay(unsigned char DisplayMode) {LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } //设置输入模式**************************** #define LCD_AC_UP 0x02 #define LCD_AC_DOWN 0x00 // default #define LCD_MOVE 0x01 // 画面可平移 #define LCD_NO_MOVE 0x00 //default void LCD_SetInput(unsigned char InputMode) {LCD_Write(LCD_COMMAND, 0x04|InputMode);} //初始化LCD************************* void LCD_Initial() { LcdEn=0; LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动 } //液晶字符输入的位置************************ void GotoXY(unsigned char x, unsigned char y) {if(y==0)LCD_Write(LCD_COMMAND,0x80|x); if(y==1)LCD_Write(LCD_COMMAND,0x80|(x-0x40)); }//将字符输出到液晶显示 void Print(unsigned char *str) {while(*str!=' |