ds1302at89s52led时钟程序(c语言源代码原理图

上传人:xiao****1972 文档编号:84146703 上传时间:2019-03-02 格式:DOCX 页数:4 大小:14.10KB
返回 下载 相关 举报
ds1302at89s52led时钟程序(c语言源代码原理图_第1页
第1页 / 共4页
ds1302at89s52led时钟程序(c语言源代码原理图_第2页
第2页 / 共4页
ds1302at89s52led时钟程序(c语言源代码原理图_第3页
第3页 / 共4页
ds1302at89s52led时钟程序(c语言源代码原理图_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《ds1302at89s52led时钟程序(c语言源代码原理图》由会员分享,可在线阅读,更多相关《ds1302at89s52led时钟程序(c语言源代码原理图(4页珍藏版)》请在金锄头文库上搜索。

1、#include/*ds1302与at89s52引脚连接*/sbit T_RST=P35; sbit T_CLK=P36; sbit T_IO=P37; sbit ACC0=ACC0;sbit ACC7=ACC7;unsigned char seg=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09; /09段码/*DS1302:写入操作(上升沿)*/ void write_byte(unsigned char da)unsigned char i;ACC=da;for(i=8;i0;i-) T_IO=ACC0;T_CLK=0; T_CLK=1;

2、ACC=ACC1;/*DS1302:读取操作(下降沿)*/unsigned char read_byte(void)unsigned char i;for(i=0;i1;T_CLK = 1;T_CLK = 0;ACC7 = T_IO;return(ACC);/*DS1302:写入数据(先送地址,再写数据)*/ void write_1302(unsigned char addr,unsigned char da)T_RST=0; /停止工作T_CLK=0; T_RST=1; /重新工作write_byte(addr); /写入地址write_byte(da);T_RST=0;T_CLK=1;/

3、*DS1302:读取数据(先送地址,再读数据)*/unsigned char read_1302(unsigned char addr)unsigned char temp;T_RST=0; /停止工作T_CLK=0; T_RST=1; /重新工作write_byte(addr); /写入地址temp=read_byte();T_RST=0;T_CLK=1; /停止工作return(temp);/*延时程序=a*1ms*/void delay(unsigned char a)unsigned char i;while(a- !=0)for(i=0;i=50次 /点亮次数 */* time =2

4、ms /持续时间 */* DS1302秒,分,时寄存器是BCD码形式: 用16求商和余进行高4位和低4位分离 */* 0x00,0x10,0x30,0x40,0x60,0x70 : 位选 */*/ void led_disp(unsigned char *poi) P0=seg*poi % 16; /第1个数码管:显示秒(个位);delay(2); /持续2msP0=0xff; /消影P0=seg*poi /160x10; /第2个数码管:显示秒(十位);delay(2);P0=0xff;poi+;P0=seg*poi % 160x30; /第4个数码管:显示分(个位)delay(2);P0=

5、0xff;P0=seg*poi / 160x40; /第5个数码管:显示分(十位)delay(2);poi+;P0=0xff;P0=seg*poi % 160x60; /第7个数码管:显示时(个位)delay(2);P0=0xff;P0=seg*poi /160x70; /第8个数码管:显示时(十位)delay(2);P0=0xff;/*主程序*/void main(void)unsigned char clk_time3=0x00,0x00,0x12; /秒,分,时寄存器初始值unsigned char temp=0x80; unsigned char i;write_1302(0x8e,0x00); /WP=0 写操作for(i=0;i3;i+)write_1302(temp,clk_timei);temp+=2;write_1302(0x8e,0x80); /WP=1 写保护while(1) led_disp(clk_time);temp=0x81; for(i=0;i3;i+)clk_timei=read_1302(temp);temp+=2;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号