单片机万年历课程设计感悟
⑴ 单片机课程设计-电子万年历论文
这种题目,对网络文库里搜索,就可以搜索到很多的,有论文,原理图,有程序的。
在这里求没有用的,没人给你做的。
⑵ 基于单片机的万年历的设计
void DS1302_limit(void) //初始化
{
DS1302_WriteEnable();
DS1302_OscEnable();
for(ds1302_b=0;ds1302_b<7;ds1302_b++)
DS1302_SendByte(ds_sec+2*ds1302_b,d1302[ds1302_b]); //赋值初始化
}
uchar DS1302_Read(uchar address) //读时钟
{
uchar dat;
DS1302_WriteEnable();
switch(address)
{case 0:dat=DS1302_ReceiveByte(ds_sec+1);
break;
case 1:dat=DS1302_ReceiveByte(ds_min+1);
break;
case 2:dat=DS1302_ReceiveByte(ds_hour+1);
break;
case 3:dat=DS1302_ReceiveByte(ds_day+1);
break;
case 4:dat=DS1302_ReceiveByte(ds_week+1);
break;
case 5:dat=DS1302_ReceiveByte(ds_month+1);
break;
case 6:dat=DS1302_ReceiveByte(ds_year+1);
break;
}
DS1302_WriteDisable();
return(dat);
}
void DS1302_Write(uchar address,uchar dat)
{
DS1302_WriteEnable();
switch(address)
{
case 0:DS1302_SendByte(ds_sec,dat);
break;
case 1:DS1302_SendByte(ds_min,dat);
break;
case 2:DS1302_SendByte(ds_hour,dat);
break;
case 3:DS1302_SendByte(ds_day,dat);
break;
case 4:DS1302_SendByte(ds_week,dat);
break;
case 5:DS1302_SendByte(ds_month,dat);
break;
case 6:DS1302_SendByte(ds_year,dat);
break;
}
DS1302_WriteDisable();
}
ds1302pro() //读出数据
{
nian01=DS1302_ReceiveByte(ds_year+1);
yue01=DS1302_ReceiveByte(ds_month+1);
ri01=DS1302_ReceiveByte(ds_day+1);
xiaoshi01=DS1302_ReceiveByte(ds_hour+1);
sec01=DS1302_ReceiveByte(ds_sec+1); //读秒信息
min01=DS1302_ReceiveByte(ds_min+1); //读分信息
zhouxingqi=DS1302_ReceiveByte(ds_week+1);
d1302_transfer(); //数值处理提取出待显示的值
}
void DS1302_SendByte(uchar Command,uchar XmtDat) // 发送数据程序,发送1个字节给被控器DS1302
{
uchar i;
RST=0;
_nop_();
SCLK=0;
_nop_();
RST=1;
for(i=0;i<8;i++)
{
IO_DATA= (bit)(Command&0x01);
Command = Command >> 1;
SCLK=1;
_nop_();
SCLK=0;
}
for(i=0;i<8;i++)
{
IO_DATA= (bit)(XmtDat&0x01);
XmtDat = XmtDat >> 1;
SCLK=1;
_nop_();
SCLK=0;
}
RST=0;
}
uchar DS1302_ReceiveByte(uchar Command) // 接收数据程序;从被控器DS1302 接收1个字节数据
{
uchar i, RcvDat=0;
RST=0;
_nop_();
SCLK=0;
_nop_();
RST=1;
for(i=0;i<8;i++)
{
IO_DATA= (bit)(Command&0x01);
Command = Command >> 1;
SCLK=1;
_nop_();
SCLK=0;
}
for(i=0;i<7;i++)
{
if(IO_DATA)RcvDat|=0x80;
RcvDat= RcvDat >> 1;
SCLK=1;
_nop_();
SCLK=0;
}
if(IO_DATA)RcvDat|=0x80;
RST=0;
return RcvDat;
}
void DS1302_WriteEnable(void) //允许数据写入寄存器
{
DS1302_SendByte(ds_com,00);
}
void DS1302_WriteDisable(void) //禁止数据写入寄存器
{
DS1302_SendByte(ds_com,0x80);
}
void DS1302_OscEnable(void) //起动时钟操作
{
DS1302_SendByte(ds_sec,0x00);
}
void DS1302_OscDisable(void) //停止时钟操作
{
DS1302_SendByte(ds_sec,0x80);
}
void d1302_transfer(void) //数据转换函数
{
nian02=nian01&0x0f;
nian01=nian01>>4;
yue02=yue01&0x0f;
yue01=yue01>>4;
ri02=ri01&0x0f;
ri01=ri01>>4;
xiaoshi02=xiaoshi01&0x0f;
xiaoshi01=xiaoshi01>>4;
min02=min01&0x0f;
min01=min01>>4;
sec02=sec01&0x0f; //取miao信号的低四位
sec01=sec01>>4; //取高四位
}
void delay1302(int i) //延时函数
{
uchar x,j;
for(x=0;x<i;x++)
{
for(j=0;j<125;j++){;}
}
}
⑶ 基于51单片机的万年历课程设计
我前几天还帮一位朋友做了。我有现成的程序和仿真,还有电路图。
⑷ 急!!求一份基于51单片机的简易万年历(含电子钟)的课程设计实验报告
留个邮箱,我找到就发给你。
⑸ 单片机课程设计万年历方案论证怎么写
方案论证主要是写你做设计时有几种可选的方案比如用stc51单片机还是lpc51或者用pic还有时钟回芯片答选择还有显示用1284还是1602等等 说说各自的优缺点最后经过对比选择较合适的那一种,比如从成本的对比,控制的对比,性能的对比还有就是可行性,希望帮到你
⑹ 精通51单片机的来,万年历的设计论文
我看可帮你做。的。
⑺ 谁能告诉我单片机制作电子万年历的目的和意义
一、熟悉数码管的驱动
二、熟悉按键的应用
......把做万年历所需要的器件列出来,大致就是这个格式