欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于ds1302的51单片机简易实时时钟-1602显示-源程序(共7页).docx

    • 资源ID:6496992       资源大小:80.06KB        全文页数:7页
    • 资源格式: DOCX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于ds1302的51单片机简易实时时钟-1602显示-源程序(共7页).docx

    精选优质文档-倾情为你奉上=主程序=#include <reg51.h>#include "ds1302.h"#include "LCD1602.h"void change();uchar times9;uchar date9;main()LCD_init();/LCD初始化init_1302(time_1302);gotoxy(1,1);LCD_display("Time:");gotoxy(1,2);LCD_display("Date:");times8='0'/date8='0'while(1)get_1302(time_1302);change();gotoxy(7,1);LCD_display(times);gotoxy(7,2);LCD_display(date);/*= 转 换 子 程 序=*/void change() / 时 间 的 转 换times0=time_13022/10+'0'times1=time_13022%10+'0'times2=':'times3=time_13021/10+'0'times4=time_13021%10+'0'times5=':'times6=time_13020/10+'0'times7=time_13020%10+'0'/ 日 期 的 转 换date0=time_13026/10+'0'date1=time_13026%10+'0'date2='-'date3=time_13024/10+'0'date4=time_13024%10+'0'date5='-'date6=time_13023/10+'0'date7=time_13023%10+'0'=DS1302驱动程序=#define uchar unsigned charuchar time_13027=0x00,0x00,0x00,0x03,0x07,0x03,0x08;/设置时间初始值数组 / 秒 分 时 号 月份 星期 年sbit T_IO=P10; /与硬件相关的连线 clk为DS1302的时钟信号线sbit T_CLK=P11; /DAT为DS1302的I/O数据线sbit T_RST=P12; /RST为DS1302的RST信号线 uchar bdata datbyte;sbit datbyte0=datbyte0;sbit datbyte7=datbyte7;void get_1302(uchar time);void write_ds1302(uchar dat);uchar r_1302(uchar add);void w_1302(uchar add,uchar dat);uchar read_ds1302(void);void init_1302(uchar *time);/*= D S 1 3 0 2 初 始 化=*/void init_1302(uchar *time)uchar i, add;/uchar time_bcd7;add=0x80;/0写入,1读出w_1302(0x8e,0x00);for(i=0;i<7;i+)w_1302(add,*time); add+=2; time+; w_1302(0x8e,0x80);/=/ 读取当前时间/=void get_1302(uchar time)uchar i;uchar add=0x81;w_1302(0x8e,0x00);for(i=0;i<7;i+) timei=r_1302(add); add+=2; w_1302(0x8e,0x80); /*= DS1302写入一个字节(上升沿有效)=*/void write_ds1302(uchar dat)uchar i;datbyte=dat;for(i=0;i<8;i+)T_IO=datbyte0;T_CLK=1;T_CLK=0;datbyte=datbyte>>1;/*= DS1302读取一个字节(下降沿有效)=*/uchar read_ds1302(void)uchar i;for(i=0;i<8;i+)datbyte=datbyte>>1; datbyte7=T_IO; T_CLK=1; T_CLK=0; return(datbyte);/*= 指定位置读取数据=*/uchar r_1302(uchar add)uchar temp,dat1,dat2;T_RST=0;T_CLK=0;T_RST=1;write_ds1302(add);temp=read_ds1302();T_CLK=1;T_RST=0;dat1=temp/16;dat2=temp%16;temp=dat1*10+dat2;return(temp);/*= 指定位置写入数据=*/void w_1302(uchar add,uchar dat)T_RST=0;T_CLK=0;T_RST=1;write_ds1302(add);write_ds1302(dat/10<<4|dat%10);T_CLK=1;T_RST=0;=LCD1602驱动程序=#define LCD_DB P0/定义LCD的数据端口 sbit LCD_RS=P20; sbit LCD_RW=P21; sbit LCD_E=P22;#define uchar unsigned char#define uint unsigned int/=延时子函数=void delay_lcd(uint x)uint i,j;for(i=x;i>0;i-) for(j=0;j<2;j+);/=写指令函数=void LCD_write_command(uchar command)LCD_DB=command;LCD_RS=0;/指令LCD_RW=0;/写入LCD_E=1;LCD_E=0;delay_lcd(1);/等待执行完毕 。/=写数据函数=void LCD_write_data(uchar dat)LCD_DB=dat;LCD_RS=1;/数据寄存器LCD_RW=0;/写入数据LCD_E=1;LCD_E=0;delay_lcd(1);/等待程序执行完毕 。/*=显示一个字符子函数=void LCD_disp_char(uchar x,uchar y, uchar dat) uchar address; if(y=1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat); =*/=延时1= void delay1(uint x) uint i,j; for(j=0;j<x;j+) for(i=0;i<100;i+);/=初始化函数=void LCD_init(void)LCD_write_command(0x38);/设置8位格式,2行,5*7LCD_write_command(0x0c);/整体显示,关光标,不闪烁LCD_write_command(0x06);/设定输入方式,增量不移位LCD_write_command(0x01);/清屏显示delay_lcd(200);/=光标定位=void gotoxy(uchar x,uchar y)uchar address; if(y=1) address=0x80+x; else address=0xc0+x; LCD_write_command(address);/=显示一个字符串=void LCD_display(uchar *dat) while(*dat!='0') LCD_write_data(*dat); dat+; 专心-专注-专业

    注意事项

    本文(基于ds1302的51单片机简易实时时钟-1602显示-源程序(共7页).docx)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开