求ds1302 89s52 数字日历设计 程序。毕业设计用,急求。好人一生平安原唱。

毕业设计(论文)基于89C52单片机和DS1302的万年历设计,单片机万年历,电子万年历..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
毕业设计(论文)基于89C52单片机和DS1302的万年历设计
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口电子万年历毕业设计(基于at89c51单片机与ds1302时钟芯片),单片机万年历课..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
电子万年历毕业设计(基于at89c51单片机与ds1302时钟芯片)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口(急!!!)用DSLCD设计的可调式电子日历与时钟 我要C程序啊。_百度知道
(急!!!)用DSLCD设计的可调式电子日历与时钟 我要C程序啊。
要钱的绕道。。。。。我每次都想进办法回答别人的问题。
跪求。问什么我想要个东西就那么难呢
这个是单片机实训100例上的。。。。我想要个C程序。。。。。
各位大哥大姐有木有啊。
提问者采纳
display1(5;10;年
Format_DateTime(DateTime[4];/DelayMS(1);*****************************************************/
DateTime[0]++;函数名称,DateTime[2]):
Get_A_Byte_FROM_DS1302()//i++),ZH(DateTime[0]));void DelayMS(uint ms){
uchar i,0x80);调用子程序,LCD_DSY_BUFFER2+8);
write_com(0x80+0x40+11): Write_LCD_Command(0x0f);10: Write_LCD_Command(0x80+13);&#47,ri,0x80):
dat//=1; }void Display_LCD_String(uchar p,LCD_DSY_BUFFER1+5);
Write_DS,0x00);
write_com(0x80+0x40+5); }}uchar Read_LCD_State(){ for(i=0;*****************************************************&#47,DateTime[1]),uchar date){/i&sbit RST = P1^2;/&#47:00
&quot,0x80),0x80);入口参数; }} //
Write_DSe;&gt:
Write_Abyte_1302(addr)//16*10+b%16/ &#47: Write_LCD_Command(0x80+11);
if(DateTime[1]==60)
DateTime[1]=0,
&#47,#include &
}}void main(){
Init_LCD();
Write_LCD_Command(0x0c),
DelayMS(1),ZH(DateTime[4]));
display(11;/fen
Write_DSe; Set_LCD_POS(p),i);sbit SCLK = P1^1;
if(flag==6)
/10;RW=1;i& RST=0;16*10+b%16; DelayMS(1);
} */8,DateTime[6])!KEY3);
Format_DateTime(DateTime[6];}&#47,LCD_DSY_BUFFER2+5);nian
DateTime[6]--; SCLK=1;/
if(DateTime[1]==-1)
DateTime[1]=0;uchar Get_A_Byte_FROM_DS1302(){
uchar i,&quot:
无&#47,&RST=0;;i++) {
DateTime[i]=Read_Data(addr);&#47,ZH(DateTime[6]));
if(DateTime[4]==13)
DateTime[4]=0; write_date(0x30+ge),LCD_DSY_BUFFER1+11);;
if(flag==7)
&#47,uchar *a){
a[0]=d/ while(1) {
EA=1;/ RST=1,i;/
P0=cmd,flag_1;fen
DateTime[1]--: Write_LCD_Command(0x80+5);16;EN=0; write_date(0x30+shi);nian
DateTime[6]++;出口参数;intrins哈哈;#include &函数名称!KEY1);uchar LCD_DSY_BUFFER1[]={&
display(5;
case(2);fen
DateTime[1]++;TUS&,uchar num){ SCLK=0; }}void int0() interrupt 0{ Keyscan():
x/ EN=0;分
Format_DateTime(DateTime[0];/ shi=date/0'shi
DateTime[2]++; while(ms--) {
Write_DSe;
Write_LCD_Command(0x0c);}void Write_LCD_Data(uchar dat)
if(KEY3==0)
while(;函数名称.h&gt,DateTime[0]),WEEK[DateTime[5]]);调用子程序,0x00);addr+=2;/ dat = Get_A_Byte_FROM_DS1302();
switch(flag)
case(1);MON&/
Write_DSe;
if(flag==2) /: Write_LCD_Command(0x80+0x40+8);入口参数;RST=1; EN=1;
if(flag==5)
/}void display1(}void LCD_Busy_Wait(){
while((Read_LCD_State()&0x80)==0x80); for(i=0;yue
DateTime[4]++;&#47,日, RS=1;
display(11;
if(flag==2) /&#47,&uchar *WEEK[]={&quot:
指定位置读数据/
write_com(0x80+11); a[1]=d%10+'}void Keyscan(){
if(flag==3) /DelayMS(1);出口参数;出口参数!KEY2); RS=0; RST = 0; write_date(0x30+ge);sbit RW = P2^1;
if(flag==1) &#47,DateTime[3]);函数功能;日
strcpy(LCD_DSY_BUFFER1+13;
write_com(0x80+5);//nian
Write_DSe;
display1(11;EN=1;*****************************************************//
if(DateTime[4]==-1)
DateTime[4]=0;
display(11;* if(flag==4)
&#47,addr = 0x81:
if(DateTime[0]==-1)
DateTime[0]=0; yue
Write_DSe;
write_com(0x80+0x40+11);
Write_LCD_Command(0x06);i&lt,ZH(DateTime[1])):
Read_Data(uchar addr)//
Write_DS,uchar *s) /
case(6),WEN&DelayMS(1);uchar LCD_DSY_BUFFER2[]={& RST=0;
display(8;
Write_DS;#define uint unsigned int#define uchar unsigned charsbit IO = P1^0;
write_com(0x80+8);&#47: Write_LCD_Command(0x80+8);
/函数功能:00;}void write_date(uchar date){ RS=1:
GetTime()///
SCLK=1; DelayMS(5):
向1302写入一个字节/*****************************************************/周
包含于STRING,时;
display1(11;/shi
Write_DSe;shi
DateTime[2]--;
if(flag==1) /DATE 00-00-00
&sbit EN = P2^2; write_date(0x30+shi);函数功能; }void Set_LCD_POS(uchar p){
Write_LCD_Command(p|0x80); } return b//
if(KEY2==0)
&#47,yue,LCD_DSY_BUFFER1+8);/}uchar ZH(uchar dat){7;
if(DateTime[2]==-1)
DateTime[2]=0;;
GetTime();;
&#47,DateTime[4]),DateTime[0]);i++) {
b |= _crol_((uchar)IO;
while(flag_1)
if(KEY1==0)
DelayMS(5),0x00); P0=120;
Write_LCD_Command(0x80+0x40+11);
write_com(0x80+0x40+11);&#47,DateTime[6]); dat=dat+tmp*16;*****************************************************&#47,0x00);sbit RS = P2^0;
SCLK=1;写命令{
LCD_Busy_Wait(); DelayMS(5); DelayMS(5); }void Init_LCD()
// Write_A_Byte_TO_DS1302(add),&
if(DateTime[6]==100)
DateTime[6]=0!=0)
if(KEY2==0)
DelayMS(5);
&#47,0x80);
if(DateTime[0]==60)
DateTime[0]=0;&#47, write_com(0x80+0x40+add);;
if(DateTime[0]==60)
DateTime[0]=0;
Write_DSe;
if(DateTime[6]==-1)
DateTime[6]=0;P0=&#47:
无//};sbit KEY1=P3^4;uchar Read_Data(uchar addr){时
Format_DateTime(DateTime[1];sbit KEY2=P3^5; DelayMS(5);RW=0,DateTime[3]),ZH(DateTime[2])).h&
display1(8; DelayMS(5); DelayMS(1):
Write_A_Byte_TO_DS1302(uchar x)/1602显示{ DelayMS(1);调用子程序;
case(5),DateTime[4]);//
display1(8:
Write_DSc;uchar DateTime[7];0';miao
DateTime[0]++;
Write_LCD_Command(0x01);EN=0: flag_1=0,&/
write_com(0x80+8);EN=0;EN=1;
display(5,DateTime[2]);1602
Write_LCD_Command(0x38);
if(flag==3) /
/函数功能;
if(DateTime[3]==-1)
DateTime[3]=0; for(i=0;yue
DateTime[4]--;*****************************************************/
write_com(0x80+0x40+11); state=P0:
addr/ dat=dat%10;i++) {
IO=x&0x01;/
/ Write_A_Byte_TO_DS1302(num);
SCLK=1,LCD_DSY_BUFFER1),0x00);*****************************************************/ ri
DateTime[3]--;
write_com(0x80+0x40+8); ri
DateTime[3]++;/SUN&EN=0; ge=date%10;DelayMS(1);函数名称;/
if(DateTime[0]==60)
DateTime[0]=0;TIME 00;
if(DateTime[2]==24)
DateTime[2]=0;zhou
DateTime[0]++;* if(flag==4)
/ RS=0,周,LCD_DSY_BUFFER2);&#47!=0)
if(KEY3==0)
DelayMS(5),年
Write_A_Byte_TO_DS1302(addr); write_com(0x80+add);
Display_LCD_String(0x40;/ }void Write_LCD_Command(uchar cmd)
write_com(0x80+0x40+8);void GetTime(){SCLK=0;
write_com(0x80+0x40+5),& EN=0;SCLK=0;
display(11;/出口参数;miao
Write_DSe;;
write_com(0x80+5);}&#47,DateTime[0]);
Format_DateTime(DateTime[3];入口参数;10+'秒;}void Format_DateTime(/}; EN = 0;
display1(5;FRI&
if(flag==7)
Write_DSe;EN=1,0x80); shi=date/
if(DateTime[3]==30)
DateTime[3]=0; P0=
// for(i=0; }}void Write_DS1302(uchar add,DateTime[0]),uchar date){ uchar shi,&THU&/
/RW=0; EN=1;入口参数;&#47:
flag=(flag+1)%8,分;ri
Write_DSe;
&#47,0x00);
if(flag==6)
Write_DSe;
Write_DS; DelayMS(1);
}}void write_com(uchar com){ RS=0;
write_com(0x80+11);}void display(uchar add.h&*****************************************************/
Display_LCD_String(0x00;/ void Write_A_Byte_TO_DS1302(uchar x){i++) {
Write_LCD_Data(s[i]):
从1302读一个字节/写数据到1602{
LCD_Busy_Wait();&#47,DateTime[1]);i&/
&#47,b=0x00;miao
DateTime[0]--;sbit KEY3=P3^6;reg52; ge=date%10,LCD_DSY_BUFFER2+11); &#47: Write_LCD_Command(0x80+0x40+5);
if(flag==5)
/ tmp=dat/
display(8;&#47,月,ZH(DateTime[3]));调用子程序,你有福了 我也想了好久这程序
这不 刚写好
研究研究#include &lt.H
Format_DateTime(DateTime[2]
有仿真图嘛?
给我来张。呵呵。
你就用 单片机C语言程序设计实训100例基于8051+Proteus仿真里的 综合部分的 12 用DSLCD设计的可调式电子日历与时钟的 仿真图就可以了 我就是根据那个图写的
好的。我试试。
要是换成LCD128/64 这个程序怎么改
LCD128/64我没用过 不好意思哈
我也是新手
加个QQ吧。交流一下。
提问者评价
谢谢。。。。。。。。。。。。。。。。。。。
其他类似问题
为您推荐:
ds1302的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁AT89S52+12864+DS18B20+DS1302万年历(简单版)
一直想做一个万年历,看了一下硬件电路还是蛮简单的(AT89S52+12864+DS18B20+DS1302就这么几个芯片),主要还是程序难一点,因为没有一点思路,但那几个芯片的模块程序我以前研究过的,所以网上找了几个程序研究了下,编出了一个最简单的,没有农历,闹钟,这种东西,以后再加嘛,(*^__^*)
C语言代码如下(因为太大,部分代码再另一篇文章中)
#include&AT89X52.h&
#include&intrins.h&
#include&string.h&&&//字符串操作函数
#define uchar unsigned char
#define uint unsigned char
#define lcddata
P0&&//液晶8位并口数据
//定义全局变量
hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_&
//秒,分,时到日,月,年位闪的计数
uchar count,temp,up_flag,down_flag,
//负温度标志
//临时暂存变量
temp_value,temp1_&&&&&
//temp_value温度值正数部分 temp1_value温度值小数部分
uchar week_value[3];
uchar TempBuffer[6];
uchar week_value[3];
void show_all();
//定义特殊位
lcd_rs=P2^0;&&//H=L=command
lcd_rw=P2^1;&&//H=L=write
sbit lcd_e=P2^2;&&//input
sbit lcd_psw=P2^3;&&//H=Parallel
ML=Serial Mode
sbit lcd_rst=P2^4;&&//Reset
Signal,Low effective
lcd_bf=P0^7;&&&&
//LCD Busy bit
sbit fmq=P3^6;
DQ=P3^3;&&&
//DS18B20 Data input/output Pin
DS1302_SCLK=P1^0;&&
//实时时钟时钟引脚
sbit DS1302_DATA=P1^1;&&
//实时时钟数据引脚
sbit DS1302_RST=P1^2;&&
//实时时钟复位引脚
sbit Set=P1^4;
sbit Up=P1^5;
sbit Down=P1^6;
//sbit KEY_4=P1^7;
void delaynms(uint aa)
& while(aa--)
for(bb=0;bb&115;bb++)&&
//1ms基准延时程序
void chkbusy_lcd(void)
lcddata=0&&&&&&&&&&&&&
//把忙碌标志位BF置1
lcd_rs=0;&&&&&
//指令操作
lcd_rw=1;&&&&&
lcd_e=1;&&&&&
//拉高使能,读取数据
while(lcd_bf==1);&&&
//判断忙碌位是否为0,若果为1,液晶忙,一直等待(BF=1,状态忙)
lcd_e=0;&&&&&
//拉低使能
void wr_lcd(uchar dat_comm,uchar
& chkbusy_lcd();
& if(dat_comm==1)
&lcd_rs=1;&&
&lcd_rw=0;&&
&lcd_rs=0;&&
&lcd_rw=0;&&
lcd_e=1;&&&
//拉高使能
& lcddata=//放上数据
_nop_();&&&
lcd_e=0;&&&
//拉低使能,使数据写入
void init_lcd(void)
wr_lcd(0,0x30);&&//基本指令集
delaynms(1);&&&//等待
wr_lcd(0,0x30);&&//再设置一次为基本指令集,因为ST7920中有2个寄存器用来设置使用哪个指令集
delaynms(1);&&&//等待
wr_lcd(0,0x0c);&&//开显示,关游标,关游标位置
delaynms(1);&&&//等待
wr_lcd(0,0x01);&&//清屏,地址指针指向00H
delaynms(20);&&&//等待&10ms
wr_lcd(0,0x06);&&//光标右移,整体不移
void lcd_clr(void)
wr_lcd(0,0x30);&&&&&&&
//基本指令集
wr_lcd(0,0x01);&& //清除显示
& delaynms(1);
void gotoxy(unsigned char y, unsigned char
&wr_lcd(0,0x80|x);&&&
wr_lcd(0,0x90|x);&&&
&wr_lcd(0,((0x80|x)+8));&&
wr_lcd(0,((0x90|x)+8));&& //Line
void print(uchar *str)
while(*str!='\0')&&&
//检查是否到字符串尾
&wr_lcd(1,*str++);&&&
//输入*str后str++
bit Init_DS18B20(void)
& _nop_();
DQ=0;&&&&&//拉低,
for(t=0;t&200;t++);&//产生一个约600us低电平脉冲
DQ=1;&&&&&//释放总线为高电平
for(t=0;t&15;t++);&//延时约45us
flag=DQ;&&&&//对总线检测
& for(t=0;t&200;t++);
uchar ReadOneChar(void)
& uchar i=0;
& for(i=0;i&8;i++)
&DQ=0;&&&&&&&
//DQ拉低1us以后,
&_nop_();& //
//释放单总线为高电平,以让DS18B20把数据传到单总线上
&for(t=0;t&3;t++);&&
//延时9微妙
&dat&&=1;&
&if(DQ==1)&&
&& dat|=0x80;&
//数据采集
&dat|=0x00;
&for(t=0;t&1;t++);
//延时3us,两个读时序间至少需要1us的恢复期
void WriteOneChar(uchar dat)
for(i=0;i&8;i++)
&& & DQ=1;
& _nop_();
&//主机把总线拉低1us,表示写周期开始
& _nop_();&&
& DQ=dat&0x01;
for(t=0;t&15;t++);& //延时约45秒,
& for(t=0;t&10;t++); //????
DQ=1;&&&&&&&&&&&&&&
//释放总线
for(t=0;t&1;t++);&
//延时3us,两个写时序间至少需要1us的恢复期???
& dat&&=1;
for(t=0;t&4;t++);& //????
void ReadTemperature(void)
& uchar TH=0;&//
& uchar TL=0;&//
& Init_DS18B20();
& WriteOneChar(0xCC); // 跳过读序号列号的操作
& WriteOneChar(0x44); // 启动温度转换
delaynms(1000);&&&&
//千万不能延时,(!!!!)
& Init_DS18B20();
& WriteOneChar(0xCC); //跳过读序号列号的操作
& WriteOneChar(0xBE); //读取温度寄存器
delaynms(500);&
//&不延时(!!!!)
TL=ReadOneChar();&& //读低8位
TH=ReadOneChar();&& //读高8位
if((TH&0xf8)!=0x00)&&&&&
//是负温度
&tltemp=TL+1;
&if(tltemp&255)
}&&&&&&&&//25.125
temp_value=TH*16+TL/16;&&//整数&&&
temp1_value=(TL%16)*10/16;&//小数部分 1250
void Temp2Str(void)
& TempBuffer[0]=':';
& if(flag==1)&&
//是负温度
& &TempBuffer[1]='-';
&TempBuffer[1]=temp_value/100+'0';
&if(TempBuffer[1]=='0')
&& TempBuffer[1]=' ';
&TempBuffer[1]='1';
& TempBuffer[2]=temp_value%100/10+'0';
& TempBuffer[3]=temp_value%10+'0';
& TempBuffer[4]='.';
& TempBuffer[5]=temp1_value+'0';
& TempBuffer[6]='\0';
void DS1302InputByte(uchar d)
DS1302_SCLK=0;&&&&//拉低SCLK,为上升沿写入数据做好准备
for(i=0;i&8;i++)&&&&//连续写入8个二进制数据
DS1302_DATA=d&0x01;&&//取出d的第0位,写入1302,&
低位在前,高位在后
_nop_();&&&&&//等待
DS1302_SCLK=1;&&&&//
拉高SCLK,上升沿写入数据
_nop_();&&&&&//
DS1302_SCLK=0;&&&&//拉低SCLK形成脉冲
d&&=1;&&&&&&//将d的数据向右移一位,准备写入下一个二进制数据
uchar DS1302OutputByte(void)
for(i=0;i&8;i++)&&&//连续读出8个二进制数
&dat&&=1;&&&&//向右移一位
&if(DS1302_DATA==1)&&//如果读出数据是1,(上一个写入控制字结束后,保存一个读出数据)
&& dat|=0x80;
&DS1302_SCLK=1;&&&//拉高SCLK
&DS1302_SCLK=0;&&&//拉低SCLK,读取数据
//将读出的数据返回
void Write1302(uchar ADDRorCOMM,uchar
&DS1302_RST=0;&&
//禁止数据传输
&DS1302_SCLK=0;&&
//确保写写之前SCLK被拉低
DS1302_RST=1;&& //启动数据传输
&DS1302InputByte(ADDRorCOMM);&//写入命令或地址
&DS1302InputByte(DATA);&&&//
&DS1302_SCLK=1;&&
//将时钟电平置于高电平状态 $$$$$$ 置高是为了让下次写的时候 能准确的被拉低 保证电平
状态的正确性
&DS1302_RST=0;&&
//禁止数据传输
uchar Read1302(uchar ADDRorCOMM)
&DS1302_RST=0;&&
//禁止数据传输
&DS1302_SCLK=0;&&
//确保写写之前SCLK被拉低
DS1302_RST=1;&& //启动数据传输
&DS1302InputByte(ADDRorCOMM);&//写入命令或地址
&dat=DS1302OutputByte();&&&//
&DS1302_SCLK=1;&&
//将时钟电平置于高电平状态 $$$$$$ 置高是为了让下次写的时候 能准确的被拉低 保证电平
状态的正确性
&DS1302_RST=0;&&
//禁止数据传输
&return(dat);
Init_1302(void)&&&
//(日12时00分00秒星期六)
flag=Read);&&&
//读秒寄存器
if(flag&0x80)&&&&&&&&
//CH为0(flag最高位是0),时钟走动,不用初始化 。
&Writee,0x00);&
//允许写操作
&Writec,((8/10)&&4|(8%10)));&
&Writea,0x01);&
&Write,((3/10)&&4|(3%10)));&
&Write,((14/10)&&4|(14%10)));&
&Write,((12/10)&&4|(12%10)));&
&Write,((0/10)&&4|(0%10)));&
&Write,((0/10)&&4|(0%10)));&
&Write,0xa5);&
//打开充电功能
&Writee,0x80);&
//禁止写操作
typedef struct _SYSTEMTIME_
& uchar DateString[11];
& uchar TimeString[9];
}SYSTEMTIME;
SYSTEMTIME CurrentT
void DS1302_GetTime(SYSTEMTIME *Time)
& uchar ReadV
ReadValue=Read);&&&&&&&&&&&&&&&&&&&&&&&&&&
//从秒寄存器里读数据
Time-&Second=((ReadValue&0x70)&&4)*10+(ReadValue&0x0f);
&//把读出的数据转换成BCD码
ReadValue=Read);&&&&&&&&&&&&&&&&&&&&&&&&&&
//从分寄存器里读数据
Time-&Minute=((ReadValue&0x70)&&4)*10+(ReadValue&0x0f);
&//把读出的数据转换成BCD码
ReadValue=Read);&&&&&&&&&&&&&&&&&&&&&&&&&&
//从小时寄存器里读数据
Time-&Hour=((ReadValue&0x70)&&4)*10+(ReadValue&0x0f);
&//把读出的数据转换成BCD码
ReadValue=Readb);&&&&&&&&&&&&&&&&&&&&&&&&&&
//从星期寄存器里读数据
Time-&Week=((ReadValue&0x70)&&4)*10+(ReadValue&0x0f);
&//把读出的数据转换成BCD码
ReadValue=Read);&&&&&&&&&&&&&&&&&&&&&&&&&&
//从日寄存器里读数据
Time-&Day=((ReadValue&0x70)&&4)*10+(ReadValue&0x0f);
&//把读出的数据转换成BCD码
ReadValue=Read);&&&&&&&&&&&&&&&&&&&&&&&&&&
//从月寄存器里读数据
Time-&Month=((ReadValue&0x70)&&4)*10+(ReadValue&0x0f);
&//把读出的数据转换成BCD码
ReadValue=Readd);&&&&&&&&&&&&&&&&&&&&&&&&&&
//从年寄存器里读数据
Time-&Year=((ReadValue&0xf0)&&4)*10+(ReadValue&0x0f);
&//把读出的数据转换成BCD码& //注意是0xF0
void Date2Str(SYSTEMTIME *Time)
tab[]={0xd2,0xbb,0xbb6,0xfe,0xc8,0xfd,0xcb,0xc4,0xce,0xe5,0xc1,0xf9,0xc8,0xd5};//?????
//& uchar tab[]={"一二三四五六日"};
if(hide_year&2)&&////这里的if,else语句都是判断位闪烁,&2显示数据,&2就不显示,
&Time-&DateString[0]='2';
&Time-&DateString[1]='0';
&Time-&DateString[2]=Time-&Year/10+'0';
&Time-&DateString[3]=Time-&Year%10+'0';
Time-&DateString[0]=' ';
&Time-&DateString[1]=' ';
&Time-&DateString[2]=' ';
&Time-&DateString[3]=' ';
Time-&DateString[4]='-';
if(hide_month&2)
&Time-&DateString[5]=Time-&Month/10+'0';
&Time-&DateString[6]=Time-&Month%10+'0';
&Time-&DateString[5]=' ';
&Time-&DateString[6]=' ';
Time-&DateString[7]='-';
if(hide_day&2)
&Time-&DateString[8]=Time-&Day/10+'0';
&Time-&DateString[9]=Time-&Day%10+'0';
&Time-&DateString[8]=' ';
&Time-&DateString[9]=' ';
if(hide_week&2)
&week_value[0]=tab[2*(Time-&Week%10)-2];&
//星期的数据另外放到 week_value[]数组里,跟年,月,日的分开存
放,因为等一下要在最后显示
week_value[1]=tab[2*(Time-&Week%10)-1];
& &week_value[0]=' ';
&week_value[1]=' ';
& week_value[2]='\0';
Time-&DateString[10]='\0';&&
//字符串末尾加 '\0' ,判断结束字符
void Time2Str(SYSTEMTIME *Time)
& if(hide_hour&2)
&Time-&TimeString[0]=Time-&Hour/10+'0';
&Time-&TimeString[1]=Time-&Hour%10+'0';
&Time-&TimeString[0]=' ';
&Time-&TimeString[1]=' ';
Time-&TimeString[2]=':';
if(hide_min&2)
&Time-&TimeString[3]=Time-&Minute/10+'0';
&Time-&TimeString[4]=Time-&Minute%10+'0';
&Time-&TimeString[3]=' ';
&Time-&TimeString[4]=' ';
Time-&TimeString[5]=':';
if(hide_sec&2)
&Time-&TimeString[6]=Time-&Second/10+'0';
&Time-&TimeString[7]=Time-&Second%10+'0';
&Time-&TimeString[6]=' ';
&Time-&TimeString[7]=' ';
Time-&TimeString[8]='\0';
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。基于单片机的数字日历的设计与实现文献综述_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于单片机的数字日历的设计与实现文献综述
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢}

我要回帖

更多关于 好人一生平安 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信