LCD1602&DS1302时钟测试程序+仿真图分享

发布者:心若水仙最新更新时间:2019-10-14 来源: eefocus关键字:LCD1602  DS1302  时钟测试 手机看文章 扫描二维码
随时随地手机看文章

comments :
1、八线制驱动LCD1602B:PB0-PB7为数据线,PD3/PD4/PD6控制LCD1602B的RS,RW,EN。
2、设置和读取DS1302内部时钟,并通过LCD1602显示。
3、进行此实验请插上JP1、JP2的所有8个短路块,PC2、PC3、PC4、PC7短路块。
4、DS1302芯片接口占用JTAG仿真接口,在做实验时需要关闭mega16的JTAG功能,否则
   不正常显示。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
 

单片机源程序如下:


#include

#include

#include "ds1302.h"

#include "LCD1602.h"


void main(void) 

{

        unsigned char temp;


        Port_init();   //端口初始化

        LCD_init();    //LCD初始化

        LCD_clear();   //清屏

        ds1302_init(); //DS1302初始化

        delay_ms(10);

        ds1302_write_time(); //写入初始值


        while (1) 

        {

                delay_ms(200);       //每200ms更新一次时间

                ds1302_read_time();  //读取时间

                //LCD_clear();       //清屏

                                

                temp = (time_buf[0] >> 4) + '0';

                LCD_write_char(0, 0, temp);/*年*/

                temp = (time_buf[0] & 0x0F) + '0';

                LCD_write_char(1, 0, temp);

                temp = (time_buf[1] >> 4) + '0';

                LCD_write_char(2, 0, temp);

                temp = (time_buf[1] & 0x0F) + '0';

                LCD_write_char(3, 0, temp);

                LCD_write_char(4, 0, '-');

                

                temp = (time_buf[2] >> 4) + '0';

                LCD_write_char(5, 0, temp);/*月*/

                temp = (time_buf[2] & 0x0F) + '0';

                LCD_write_char(6, 0, temp);

                LCD_write_char(7, 0, '-');

                

                temp = (time_buf[3] >> 4) + '0';

                LCD_write_char(8, 0, temp);/*日*/

                temp = (time_buf[3] & 0x0F) + '0';

                LCD_write_char(9, 0, temp);

                

                LCD_write_str(0,1,"week:");

                temp = (time_buf[7]) + '0';

                LCD_write_char(5, 1, temp);  //周

                

                temp = (time_buf[4] >> 4) + '0';

                LCD_write_char(8, 1, temp);  //时

                temp = (time_buf[4] & 0x0F) + '0';

                LCD_write_char(9, 1, temp);

                LCD_write_char(10, 1, ':');

                

                temp = (time_buf[5] >> 4) + '0';

                LCD_write_char(11, 1, temp);/*分*/

                temp = (time_buf[5] & 0x0F) + '0';

                LCD_write_char(12, 1, temp);

                LCD_write_char(13, 1, ':');

                

                temp = (time_buf[6] >> 4) + '0';

                LCD_write_char(14, 1, temp);/*秒*/

                temp = (time_buf[6] & 0x0F) + '0';

                LCD_write_char(15, 1, temp);

        }

}


关键字:LCD1602  DS1302  时钟测试 引用地址:LCD1602&DS1302时钟测试程序+仿真图分享

上一篇:单片机无线模块解码(可解2262 1527编码芯片)
下一篇:ATMEL系列MCU在线升级bootloader固件源码及操作过程

推荐阅读最新更新时间:2024-11-20 19:57

基于单片机的智能计算器(AT89C51、LCD1602、矩阵键盘)
一、简介 此电路由AT89C51最小系统、LCD1602液晶显示模块和矩阵键盘模块组成。 二、执行效果 三、部分代码 /* S16 S12 S8 S4分别是123+ S15 S11 S7 S3分别是456- S14 S10 S6 S2分别是789* S13 S9 S5 S1分别是0 CLR = / */ /*想要更多项目私wo!!!*/ /* 实现两个数的运算,每个数的位数至少可以八位 */ #include reg52.h #include lcd.h typedef unsigned char uint8; typedef unsigned int uint16; sbit led=P3^
[单片机]
基于单片机的智能计算器(AT89C51、<font color='red'>LCD1602</font>、矩阵键盘)
51单片机的ds1302驱动程序
////////////////////////////////////////////////////////////头文件///////////////////////////////////////////////// /******************************************************************************* * 标题: ds1302时钟芯片驱动程序 * * 文件: ds1302.h ds1302.c
[单片机]
PIC18+DS1302程序设计
1、ds1302芯片使用相对简单,其采用spi三接口同步通信。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此可应用于测量系统中。ds1302内部读写寄存器存放的数据格式为bcd码,在读取后的数据转换时除以16得到相应10进制数。 2、部分核心程序: 发送地址及数据(向芯片里面写入数据): void write1302(unsigned char addr,unsigned dat){ RST=0;//不让数据传输进ds1302 SCLK=0;//初始化时钟总线 RST=1; for(int i=8;i 0;i--){ SCLK=0;
[单片机]
基于DS1307的多功能时钟系统设计方案
以AT89S52单片机为控制核心,通过实时时钟芯片DS1307和数字温度传感器DS18B20构成了一个多功能的数字时钟系统。详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。系统采用液晶LCD1602作为显示器,具有实时时间与日历显示、环境温度显示、按键调时、闹铃定时等功能。软件程序采用均采用C语言编写,便于移植与升级。 0 引言 目前家用的数字电子钟,多数只能显示小时、分钟等信息,功能单一,而且大都采用LED数码管作为显示器件,功耗大,不能令消费者满意。为此,笔者开发了一款多功的数字式电子钟,它可以显示年、月、日、小时、分钟等时间信息,同时可以显示环境的温度信息。还具有按键调时、设定闹铃等功能。时钟采用LCD作为显
[模拟电子]
DS1302时钟芯片的MSP430程序
//MSP430 Advanced Developping Components - ////DS1302 Trickle Charge Timekeeping Chip //MSP430高级实验开发组件 - DS1302时钟芯片 //时钟设置: ////ACLK=N/A,MCLK=SMCLK=default(DCO~800k) //硬件连接: //// MSP430 MCU DS1302 //// ------------------ ------------------ //// | P20 | ------ | SCLK
[单片机]
DS1302+AT89C2051控制的红外遥控LED电子钟设计
自制LED电子钟在很多电子类报刊杂志上都可以见到,但多数在断电后要重新设置时间等参数,给使用带来不便。也有用电池作为备用电源的,但往往体积较大。本文介绍的LED电子钟克服了上述弊端,加上采用家电通用的红外遥控器进行控制,使用方便。该电子钟有一路闹铃输出,可以通过遥控器设置闹铃时间及闹铃允许。   一、工作原理   实时时钟芯片DS1302采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用32768Hz晶振。   AT89C2051作为主控芯片,其功能一是对接收到的红外遥控编码进行判断识别,并进行相应的处理;二是定期读取DS1302中的时间,并把小时和分钟送显示;三是比较设置的闹铃时间与实时时间,如
[单片机]
<font color='red'>DS1302</font>+AT89C2051控制的红外遥控LED电子钟设计
51单片机+ds1302+ds18b20+1602液晶万年历
这是我写的单片机小程序,将单片机开发板上的ds1302,ds18b20和1602综合起来,在1602上显示年月日周时分秒和温度;望各位好友指点,此程序仅适用于我的开发板,用在其他开发板上应该改下端口就可以。 #include reg52.h typedef unsigned char uint8; typedef unsigned int uint16; typedef long int uint32; //**************************************************************************************************** sbit DQ
[单片机]
51单片机+<font color='red'>ds1302</font>+ds18b20+1602液晶万年历
DS1302时钟+1602液晶,proteus电路图+程序
#include REGX51.H #include LCD1602.h #include DS1302.h void Delay1ms(unsigned int count) { unsigned int i,j; for(i=0;i count;i++) for(j=0;j 120;j++); } main() { SYSTEMTIME CurrentTime; LCD_Initial(); Initial_DS1302(); GotoXY(0,0); Print( Date: ); GotoXY(0,1); Print( Time: )
[单片机]
<font color='red'>DS1302</font><font color='red'>时钟</font>+1602液晶,proteus电路图+程序
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved