没有合适的资源?快使用搜索试试~ 我知道了~
51单片机c语言电子万年历完整程序.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5 浏览量
2022-06-08
12:43:43
上传
评论
收藏 675KB PDF 举报
。。。
资源推荐
资源详情
资源评论














word 格式-可编辑-感谢下载支持
该程序为 51 单片机 c 语言电子万年历
#include"reg52.h"
//#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit DATA=P0^7;
sbit RST=P0^5;
sbit SCLK=P0^6;
sbit menu=P3^0; //菜单
sbit add=P3^1; //加一
sbit dec=P3^7; //减一
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
sbit ds=P3^2;
//sbit beep=P3^3;
uint temp;
float f_temp;
uint warn_l1=270;
uint warn_l2=250;
uint warn_h1=300;
uint warn_h2=320;
uint get_temp();
void delayms(uint x);
void write_com(uchar com);
void write_data(uchar date);
void init();

word 格式-可编辑-感谢下载支持
void dis_temp(uint t);
void Write1302(uchar dat);
void WriteSet1302(uchar Cmd,uchar dat);
uchar Read1302(void);
uchar ReadSet1302(uchar Cmd);
void Init_DS1302(void);
void DisplaySecond(uchar x);
void DisplayMinute(uchar x);
void DisplayHour(uchar x);
void DisplayDay(uchar x);
void DisplayMonth(uchar x);
void DisplayYear(uchar x);
void DisplayWeek(uchar x);
void dis_temp(uint t);
void read_date(void);
void turn_val(char newval,uchar flag,
uchar newaddr,uchar s1num);
void key_scan(void);
char code table[]="0123456789" ;
uchar code table2[]= "TUEWESTHUFRISATSUNMON";
uchar second,minute,hour,day,month,year,week,count=0;
uchar ReadValue,num,time;
void delayms(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
////////////////////////////////////////////////////////////
void write_com(uchar com)
{

word 格式-可编辑-感谢下载支持
lcdrs=0;
P2=com;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P2=date;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
/////////////////////////////////////////////////////////////////
void Write1302(uchar dat)
{
uchar i;
SCLK=0; //拉低 SCLK,为脉冲上升沿写入数据做好准备
delayms(2); //稍微等待,使硬件做好准备
for(i=0;i<8;i++) //连续写 8 个二进制位数据

word 格式-可编辑-感谢下载支持
{
DATA=dat&0x01; //取出 dat 的第 0 位数据写入 1302
delayms(2); //稍微等待,使硬件做好准备
SCLK=1; //上升沿写入数据
delayms(2); //稍微等待,使硬件做好准备
SCLK=0; //重新拉低 SCLK,形成脉冲
dat>>=1; //将 dat 的各数据位右移 1 位,准备写入下一个数据位
}
}
void WriteSet1302(uchar Cmd,uchar dat)
{
RST=0; //禁止数据传递
SCLK=0; //确保写数居前 SCLK 被拉低
RST=1; //启动数据传输
delayms(2); //稍微等待,使硬件做好准备
Write1302(Cmd); //写入命令字
Write1302(dat); //写数据
SCLK=1; //将时钟电平置于已知状态
RST=0; //禁止数据传递
}
uchar Read1302(void)
{
uchar i,dat;
delayms(2); //稍微等待,使硬件做好准备
for(i=0;i<8;i++) //连续读 8 个二进制位数据

word 格式-可编辑-感谢下载支持
{
dat>>=1; //将 dat 的各数据位右移 1 位,因为先读出的是字节的最低位
if(DATA==1) //如果读出的数据是 1
dat|=0x80; //将 1 取出,写在 dat 的最高位
SCLK=1; //将 SCLK 置于高电平,为下降沿读出
delayms(2); //稍微等待
SCLK=0; //拉低 SCLK,形成脉冲下降沿
delayms(2); //稍微等待
}
return dat; //将读出的数据返回
}
uchar ReadSet1302(uchar Cmd)
{
uchar dat;
RST=0; //拉低 RST
SCLK=0; //确保写数居前 SCLK 被拉低
RST=1; //启动数据传输
Write1302(Cmd); //写入命令字
dat=Read1302(); //读出数据
SCLK=1; //将时钟电平置于已知状态
RST=0; //禁止数据传递
return dat; //将读出的数据返回
}
void Init_DS1302(void)
{
WriteSet1302(0x8E,0x00); //根据写状态寄存器命令字,写入不保护指令
剩余23页未读,继续阅读
资源评论

春哥111
- 粉丝: 7234
- 资源: 6万+

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- 基于JSP和SQL的房屋租赁管理系统毕业设计,数据库、管理软件、房屋租赁管理、查询
- COCO 2017 dataset 数据集 百度网盘链接
- 合宙Air724UG+继电器控制+开关量采集+模拟量采集+原理图+PCB+BOM
- 基于Java个人博客系统的毕业设计,采用java ee、数据库使用开源的Mysql、服务器采用Tomcat
- 基于struts+hibernate+spring+oracle的车辆管理系统源码
- 电商211赵祖魁思维导图新的.emmx
- 基于JSP+SQL的城乡信息管理系统源码
- 顺序表的建立与操作.c
- 基于JSP+SQL的销售管理系统源码
- 基于JSP的毕业生离校系统的毕业设计与实现,应用了MySQL、S2SH、HTML、JSP、MyEclipse等知识
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
