51单片机电子时钟(C语言)

这篇具有很好参考价值的文章主要介绍了51单片机电子时钟(C语言)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

硬件仿真

 全部硬件电路分为四大部分:

  1. 控制模块51单片机;
  2. 显示模块LCD1602,由P0口控制;
  3. 计时模块DS1302,由P1口控制;
  4. 输入按键,由P3口控制。

        实际设计硬件电路时应考虑到51单片机的电源、复位电路以及外接晶振,时钟芯片DS1302的备用电源等。

51单片机电子时钟程序,51单片机,单片机,c语言文章来源地址https://www.toymoban.com/news/detail-724295.html

51单片机动态功能

  1. 从1302的寄存器中读取数据(8421BCD码),转换后(2进制)送至1602显示
  2. 判断是否有按键输入,根据按键输入将数据写入1302寄存器

LCD1602

  1. 设置显示模式
  2. 接收数据,根据命令字显示

DS1302

  1. 自动计时
  2. 发送/接收数据

 程序源码

#include<reg51.h>
#include<intrins.h>

//时钟芯片1302寄存器读写命令字
#define SEC_write 0x80
#define SEC_read 0x81
#define MIN_write 0x82
#define MIN_read 0x83
#define HR_write 0x84
#define HR_read 0x85
#define DAY_write 0x86
#define DAY_read 0x87
#define MONTH_write 0x88
#define MONTH_read 0x89
#define YEAR_write 0x8c
#define YEAR_read 0x8d

//时钟芯片1302数据传输接口
sbit SCLK=P2^0;
sbit DATA=P2^1;
sbit RST=P2^2;

//向1302写一个字节数据
void Write1302(unsigned char dat)
{
	unsigned char i;
	SCLK=0;
	_nop_();
	for(i=0;i<8;i++)
	{
		DATA=dat&0x01;
		_nop_();
		SCLK=1;
		_nop_();
		SCLK=0;
		dat>>=1;
	}
}

//根据命令字,向1302写一个字节数据
void WriteSet1302(unsigned char Cmd,unsigned char dat)
{
	RST=0;
	SCLK=0;
	RST=1;
	_nop_();
	Write1302(Cmd);
	Write1302(dat);
	SCLK=1;
	RST=0;
}

//从1302读一个字节数据
unsigned char Read1302(void)
{
	unsigned char i,dat;
	_nop_();
	for(i=0;i<8;i++)
	{
		dat>>=1;
		if(DATA==1)
		dat|=0x80;
		SCLK=1;
		_nop_();
		SCLK=0;
		_nop_();
	}
	return dat;
}

//根据命令字,从1302读一个字节数据
unsigned char ReadSet1302(unsigned char Cmd)
{
	unsigned char dat;
	RST=0;
	SCLK=0;
	RST=1;
	Write1302(Cmd);
	dat=Read1302();
	SCLK=1;
	RST=0;
	return dat;
}

//1302进行初始化设置
void Init_DS1302(void)
{
	WriteSet1302(0x8E,0x00);
	WriteSet1302(SEC_write,((0/10)&

到了这里,关于51单片机电子时钟(C语言)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于AT89C51单片机的电子时钟设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87695258?spm=1001.2014.3001.5503 源码获取 主要内容: 1.设计出电子数字钟的电路,并用protus进行仿真画出对应的电路图 2.设计出电子数字钟的源程序,并用Keil进行编辑生成HEX文件 3.在protus中进行测试。

    2024年02月09日
    浏览(63)
  • 基于AT89C51单片机的电子时钟设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87779867?spm=1001.2014.3001.5503 源码获取 主要内容: 使用DS1302芯片作为计时设备,用6个7段LED数码管或者LCD162作为显示设备,实现时钟功能; 基本要求: (1)可以分别设定小时、分钟和秒,复位后时

    2024年02月06日
    浏览(50)
  • C51单片机的电子时钟(数码管显示+独立按键模块修改及暂停时间)

    IMG_1120 通过查看这三个原理图我们可以得知控制K1、K2、K3及K4是通过P31、P30、P32及P33来实现的,控制8个数码管是P22、P23及P24来实现, 控制发光二极管则由P00-P07来实现。 代码分为三部分分别为main.c、key.h、key.c scankey()函数的主要代码,通过软件入手提高系统的可靠性,防止外

    2024年02月05日
    浏览(52)
  • 51单片机的数字时钟系统【含仿真+程序+报告+原理图】

    该系统由AT89C51单片机+DS1302时钟模块+按键模块+LCD显示模块构成。 利用51单片机实现电子时钟的功能。使用DS1302芯片作为计时设备,用LCD1602作为显示设备,按键按下可修改当前时间,按下的时候蜂鸣器会di一声。 可实现基本功能: 1、实时显示当前时间和日期 按键功能: 1、点

    2024年02月06日
    浏览(50)
  • Proteus仿真--基于51单片机的可演奏电子琴设计(仿真文件+程序)

    本文主要介绍基于51单片机的可演奏电子琴设计(完整仿真源文件及代码见文末链接) 仿真图如下 其中通过矩阵键盘可以实现不同的音乐播放 仿真运行视频 Proteus仿真--基于51单片机的可演奏电子琴设计(仿真文件+程序) 附完整Proteus仿真资料+代码资料 百度网盘链接: https:

    2024年02月06日
    浏览(42)
  • 51单片机简易时钟闹钟八位数码管显示仿真( proteus仿真+程序+原理图+报告+讲解视频)

    51单片机简易时钟闹钟八位数码管显示仿真( proteus仿真+程序+原理图+报告+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0046 本设计旨在设计一个基于51单片机的多功能数字时钟闹钟proteus仿真设计,可以显示时、分、秒,并且可以设置时

    2024年02月09日
    浏览(41)
  • 基于51单片机的16键电子琴音乐盒设计proteus仿真原理图程序

    功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.LCD1602液晶实时显示时间和当前工作模式 2.支持电子琴模式和歌曲模式(内置8首歌曲) 3.短触’设置/切换’键可切换工作模式 4.长按’设置/切换‘键可进入时间设置模式 5.采用DC002作为电源接口可直接输入5V给整个系统供电

    2024年02月12日
    浏览(42)
  • 51单片机数字时钟

    我们学单片机,一般都会写数字时钟编程。它能帮助我们: a. 能够系统性地总结掌握的知识,将单元模块知识有机的结合在一起。 b. 能够充分协调好硬件与软件之间的相互结合,合理设计硬件电路。 c. 掌握单片机 C 语言判断语句、分支语句以及子程序调用等编程知识。

    2024年02月11日
    浏览(40)
  • 基于单片机的电子时钟

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87453487 源码获取 本次设计由于前期我们已经完成了单片机最小系统的制作,为了节省时间,故利用已有资源,选择用单片机最小系统来实现数字钟的制作。采用的是以单片机芯片为核心,辅以必

    2024年02月04日
    浏览(40)
  • 51单片机实时时钟显示

    51单片机+DS1302+DS18B20+LCD12864 用的IIC通信,写的一个ds3231时钟模块的程序,可更改时间,下面是.h文件里面的部分代码 #ifndef __ds3231_h #define _ ds3231_h #include reg51.h #define uchar unsigned char #define uint unsigned int extern uchar day2,Htemp2,Mtemp2,Stemp2; //星期,时分秒 extern ucharYtemp2,Mtemp2,Dtemp2,Ttem

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包