51单片机+DS1302+数码管制作时钟

实验目的:

用51单片机+时钟芯片DS1302+7段数码管制作时钟。

6个7段数码管,单片机IO口不够用,增加移位74HC164,串口驱动。

这个带来了个问题,串口速度太慢,6个数码管,移位的时间已经长到肉眼可见,所以显示效果是一闪一闪的。

准备换液晶屏重新做一个,这个算是初稿,仅当记录一下吧。

proteus原理图:

代码:

#include <reg51.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int

sbit DAT=P3^0;
sbit CLK=P3^1;
sbit CLR=P3^2;
sbit LED_ON=P3^3;

sbit RTC_DAT=P1^0;
sbit RTC_CLK=P1^1;
sbit RTC_RST=P1^2;

uchar code num[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar yy,mm,dd,hh,mm,ss;

//延时10ms
void delay10ms(uint n)
 {
   uchar i,j;
   for(;n>0;n--)
   {
      for(i=0;i<18;i++)
      {
	 for(j=0;j<184;j++){;}
      }
   }
 }
 
//DS1302写8位地址和数据 
void RTC_wcom(uchar addr,uchar wdata)
{
   uchar i,j;
   RTC_RST=0;
   RTC_CLK=1;
   RTC_RST=1;
   for(i=0;i<8;i++)
   {
      RTC_DAT=addr >> i & 0x01;
      RTC_CLK=0;
      RTC_CLK=1;
   }
   for(j=0;j<8;j++)
   {
      RTC_DAT=wdata >> j & 0x01;
      RTC_CLK=0;
      RTC_CLK=1;
   }
   RTC_CLK=1;
   RTC_RST=0;
}

//DS1302读数据
int RTC_rcom(uchar addr)
{
   uchar i,rdata=0;
   RTC_RST=1;
   for(i=0;i<8;i++)
   {
      RTC_CLK=0;
      RTC_DAT=addr>>i & 0x01;
      RTC_CLK=1;
   }
   for(i=0;i<8;i++)
   {
      RTC_CLK=1;
      RTC_CLK=0;
      if(RTC_DAT)
      rdata |= (0x01<<i);
   }
   RTC_DAT=0;
   RTC_CLK=1;
   RTC_RST=0;
   return rdata;
}

//DS1302初始化
void RTC_init(void)
{
   RTC_wcom(0x8e,0x00);	//00允许写,80写保护
   RTC_wcom(0x8c,0x00);	//年,00~99,初始00
   RTC_wcom(0x88,0x01);	//月,01~12,初始01    
   RTC_wcom(0x86,0x01);	//日,01~31,初始01   
   RTC_wcom(0x84,0x12);	//时,00~23,初始12
   RTC_wcom(0x82,0x00);	//分,00~59,初始00
   RTC_wcom(0x80,0x00);	//秒,00~59,初始00
}

//装载数据
void num_wr(uchar n)
{
   uchar i;
   for(i=0;i<8;i++)
   {
      CLK=0;
      DAT=(num[n]>>(7-i)) & 0x01;
      CLK=1;
   }
}

void display(void)
{
   CLR=1;
   LED_ON=1;
   num_wr(ss%16);	//寄存器的数据都是0~9的,16进制与10进制相同
   num_wr(ss/16);	//所以可以不转化为10进制,直接取高位低位
   num_wr(mm%16);
   num_wr(mm/16);
   num_wr(hh%16);
   num_wr(hh/16);
   LED_ON=0;
   delay10ms(100);
}


void main(void)
 { 
   RTC_init();
   while (1)
   {
      yy=RTC_rcom(0x8d);
      mm=RTC_rcom(0x89);
      dd=RTC_rcom(0x87);
      hh=RTC_rcom(0x85);
      mm=RTC_rcom(0x83);
      ss=RTC_rcom(0x81);
      display();
   }
 }

 

zzh113
关注 关注
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于51单片机的数字钟设计—数码管显示
2301_80486681的博客
11-07 2379
具体功能: 1.自动计时,显示24小时制时间,由6位LED显示显示时、分、秒。 2.自动计时,显示24小时制时间,由6位LED显示显示时、分、秒。 3.具备校准功能,可以直接由按键设置当前时间。 4.具有调整闹钟功能、整点报时功能。
51单片机数码管时钟程序
07-17
51单片机上实现数码管时钟程序,程序的开发环境是keil软件。
基于51单片机DS1302实时时钟
weichen_78的博客
11-28 2338
介绍DS1302实时时钟芯片基本知识,演示DS1302例程。
89C51单片机+DS1302时钟+18B20温度+LCD12864显示软件源代码+硬件开发板原理图.zip
05-24
89C51单片机+DS1302时钟+18B20温度+LCD12864显示软件源代码+硬件开发板原理图 void main() { uchar i; uint temp_buff; LCD12864_Reset(); /*LCD初始化*/ ////////////////////////////////////////////////////...
基于C51单片机+DS1302时钟+18B20温度+LCD12864显示 软件实现例程源码+开发板原理图.zip
05-20
基于C51单片机+DS1302时钟+18B20温度+LCD12864显示 软件实现例程源码+开发板原理图: void main() { uchar i; uint temp_buff; LCD12864_Reset(); /*LCD初始化*/ P0=0X00;//关掉数码管的信号。阻止数码管受到P0口...
89C51单片机+DS1302芯片+LCD1602显示年月日时分秒日历时钟显示软件源码.zip
最新发布
05-25
89C51单片机+DS1302芯片+LCD1602显示年月日时分秒日历时钟显示软件源码 void main() { uchar i; lcd_system_reset(); /*LCD1602 初始化*/ ///////////////////////////////////////////////////////////////// P0...
STC8G1K08-TSSOP20单片机+DS3231+ESP8266的1.2英寸数码管时钟ALTIUM硬件原理图+PCB工程
06-30
stc8g1k08单片机+DS3231+ESP8266的1.2英寸数码管时钟ALTIUM硬件原理图+PCB工程文件,2层板设计,大小为134x42mm,双面布局布线,Altium Designer 设计的工程文件,包括完整的原理图及PCB文件,可以用Altium(AD)软件...
基于51单片机DS1302四位数码管可调时钟
08-18
基于51单片机DS1302四位数码管可调时钟设计 本设计基于51单片机DS1302四位数码管可调时钟,包含原理图及配套程序。下面将详细介绍该设计的知识点: 1.硬件设计 该设计使用51单片机作为主控芯片,DS1302作为实时...
51单片机数码管时钟程序,注释详细
03-21
本例程适用于共阴数码管 段选锁存器与位选锁存器都接P0
51单片机通过DS1302进行时钟显示,并在数码管显示时间,可以按键设置时间实现闹铃。
06-04
51单片机通过DS1302进行时钟显示,并在数码管显示时间,可以按键设置时间实现闹铃。
基于51单片机数码管显示时钟电路图与c程序
06-29
基于51单片机数码管显示时钟电路图与c程序 有原理图和PCB 源代码 调试成功,保证好用。
51单片机做的数字电子钟
05-13
51单片机做的数字电子钟51单片机做的数字电子钟51单片机做的数字电子钟51单片机做的数字电子钟
基于51单片机数码管显示程序
01-17
基于AT89S51单片机的数据码显示源程序,可以直接下载到硬件上进行运行调试。
51单片机数码管可调时钟
weixin_72950851的博客
03-05 3415
51单片机自学。数码管时钟
基于51单片机的扫描数码管时钟
u012062079的博客
12-22 530
利用51单片机实现动态扫描数码管时钟
51单片机独立按键数码管可调时钟显示程序
m0_68511400的博客
06-16 3408
/************************************************************************** 独立按键数码管时钟显示程序 ***************************************************************************/ #include <REGX52.H> #include "Nixie.h" #include "Delay.h" #include "K...
51单片机---DS1302时钟使用(含源码)
热门推荐
m0_56399733的博客
10-28 3万+
本节我们学习了51单片机DS1302的相关内容,包括原理,电路图,相关寄存器的设置以及时序;完成了利用LCD1602与晶体管的结合,实现了时钟显示
电子时钟(基于51单片机)
qq_53534483的博客
04-20 2133
本次我们选择8位共阴数码管作为显示,如图1-1所示。位选为,当1接的引脚为低电平时,第一个数码管显示。DS18B20是一款比较常用的温度传感器,它采取单总线传输数据,接线简单,使用非常方便。它的结构也是比较简单的,一个数据引脚,一个时钟引脚,一个数据引脚。通过按键可以切换界面,初始界面为温度界面,显示温度,2位小数(C做标志符)。我们通过DS1302和DS18B20这两个简单的传感器,就可以获取我们想知道的两个量。本次我们通过DS18B20获取当前环境温度,DS1302获取时间,8位数码管显示时间和温度。
89C51单片机+DS1302实现多功能时钟设计及仿真教程
资源摘要信息:"该资源为一套基于89C51单片机DS1302实时时钟芯片相结合的多功能时钟系统的完整设计文件,其中包括C语言源代码程序以及Proteus仿真文件,可用于个人学习和参考设计。DS1302是一款常用于单片机系统的...
写文章

热门文章

  • 实现8*8点阵LED上下左右移动程序 4055
  • 初学STM32——keil设置 2134
  • STM32F103xx系列和GD32F103xx系列对比 1879
  • PROTEUS仿真——万年历_C51+LCD1602+DS1302+DS18B20 1676
  • 51单片机-多机串口通信 1624

最新评论

  • system_stm32f10x.c文件解读

    CuPhoenix: Bypass指的是旁路时钟源(BYPASS Clock Source),直接从SOC_IN导入外部时钟信号

  • 51单片机——不同端口IO点亮数码管

    zzh113: 这代码没出现amp呀,不应该啊,你能把报错原文贴一下吗?

  • 51单片机——不同端口IO点亮数码管

    m0_68319085: 报错,显示未定义amp

  • 实现8*8点阵LED上下左右移动程序

    zzh113: num[] 这个数组就是显示数字的,只要在这个地方更改或增加,然后在对应的调用这个数组的代码中修改一下就可以了

  • 实现8*8点阵LED上下左右移动程序

    零星的雨384: 再加数字的话要怎么显示,求

大家在看

  • 基于大数据 Python Vue 美食推荐可视化系统(源码+LW+部署讲解+数据库)
  • 【Linux】firewall-cmd防火墙基本命令及命令注释+示例 166
  • Python+Django社区捐赠物品管理系统
  • MySql索引原理 527
  • 请解释MySQL中的查询缓存及其工作原理。

最新文章

  • STM32F103xx系列和GD32F103xx系列对比
  • keil出现stm32f10x.h(303): error: #67: expected a “}“的问题
  • C语言——解九宫格数独游戏
2023年16篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢艺术雕塑资讯通用玻璃钢雕塑摆件哪里买广西玻璃钢仿铜雕塑定制玻璃钢卡通雕塑迷你图片萍乡学校玻璃钢雕塑池州户外玻璃钢雕塑市场金湖玻璃钢雕塑号码半身玻璃钢雕塑贵州玻璃钢仿铜人物雕塑玻璃钢花盆推销河南常用商场美陈多少钱黑龙江公园玻璃钢雕塑制作水泥雕塑跟玻璃钢雕塑的区别安顺商场美陈装置浙江欧式玻璃钢雕塑市场南京玻璃钢花盆价格玻璃钢雕塑十大元帅蜗牛玻璃钢雕塑现货景德玻璃钢大白菜雕塑深圳大型玻璃钢雕塑公司合肥彩绘玻璃钢雕塑恐龙玻璃钢雕塑江苏酒店艺术玻璃钢雕塑价格室外玻璃钢仿铜雕塑设计汝南玻璃钢雕塑费用福建景观玻璃钢雕塑哪家便宜玻璃钢雕塑索隆安徽玻璃钢雕塑供应玻璃钢动物雕塑园林小品沧州卡通玻璃钢雕塑生产厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化