当前位置: 首页 > news >正文

番禺区网站优化广州 网站设计

番禺区网站优化,广州 网站设计,在线教育网站建设公司,做app得多少钱目录 一、电路图 二、底层驱动 三、实际应用 四、时序 一、电路图 上图是寄存器地址定义#xff0c;时分秒#xff0c;年月日等等 DS1302有自己的时钟线SCLK#xff0c;不会跟单总线一样因为没有自己的时钟线而导致温度读不出来 CH#xff1a;时钟静止#xff0c;置1时…目录 一、电路图 二、底层驱动 三、实际应用 四、时序 一、电路图 上图是寄存器地址定义时分秒年月日等等 DS1302有自己的时钟线SCLK不会跟单总线一样因为没有自己的时钟线而导致温度读不出来 CH时钟静止置1时钟就停止运行了 且上图的秒和分钟都分为了十位和个位也就对应了BCD码用2个4位二进制数来表示十进制了所以以BCD码的形式来看 十位就是高四位个位就是低四位高四位/1610然低四位直接%16后在相加即可得到十进制下的时间具体做法看后面的实际应用 二、底层驱动 #ifndef __DS1302_H #define __DS1302_H#include STC15F2K60S2.H #include intrins.hsbit SCK P1^7; sbit SDA P2^3; sbit RST P1^3; void Write_Ds1302(unsigned char temp); void Write_Ds1302_Byte( unsigned char address,unsigned char dat ); unsigned char Read_Ds1302_Byte( unsigned char address );#endif#include ds1302.h //写字节 void Write_Ds1302(unsigned char temp) {unsigned char i;for (i0;i8;i) { SCK 0;SDA temp0x01;temp1; SCK1;} } //向DS1302寄存器写入数据 void Write_Ds1302_Byte( unsigned char address,unsigned char dat ) {RST0; _nop_();SCK0; _nop_();RST1; _nop_(); Write_Ds1302(address); Write_Ds1302(dat); RST0; }//从DS1302寄存器读出数据 unsigned char Read_Ds1302_Byte ( unsigned char address ) {unsigned char i,temp0x00;RST0; _nop_();SCK0; _nop_();RST1; _nop_();Write_Ds1302(address);for (i0;i8;i) { SCK0;temp1; if(SDA)temp|0x80; SCK1;} RST0; _nop_();SCK0; _nop_();SCK1; _nop_();SDA0; _nop_();SDA1; _nop_();return (temp); }三、实际应用 读写寄存器: 1.在哪 写入 什么 2.在哪 读出 什么      然后再main.c里面先写入再读出用数码管显示出来即可 由地址命令字来实现 我们还要知道BCD码        我们定义的时间是以十进制展现的而DS1302的寄存器中需要以BCD码的形式来存储数据所以我们写入的时候要先转换成BCD码然后读出数据的时候还要记得转换为十进制 若直接写入BCD码如写入秒寄存器0x50就表示写入50秒然后读出的时候转换成十进制就行了如下列代码 void main() {LCD_Init();DS1302_Init();LCD_ShowString(1,1,RTC);DS1302_WriteByte(0x8E,0x00);//解除写保护//DS1302_WriteByte(0x84,0x00);//hour//DS1302_WriteByte(0x82,0x00);//minDS1302_WriteByte(0x80,0x50);//secawhile(1){secDS1302_ReadByte(0x81);minDS1302_ReadByte(0x83);hourDS1302_ReadByte(0x85);LCD_ShowChar(2,6,:);LCD_ShowChar(2,3,:);LCD_ShowNum(2,7,sec/16*10sec%16,2);LCD_ShowNum(2,4,min/16*10min%16,2);LCD_ShowNum(2,1,hour/16*10hour%16,2);} }#define SEC 0x80 #define MIN 0x82 #define HOUR 0x84 #define DATA 0x86 #define MON 0x88 #define DAY 0x8a #define YEAR 0x8c #define WP 0x8eu8 time_buf[3] {50,59,16};void SET_TIME() {u8 i 0;Write_Ds1302_Byte(WP,0x00);//关闭写保护for(i0;i3;i){Write_Ds1302_Byte(SECi*2,time_buf[i]/10*16time_buf[i]%10);//我们实现时分秒显示 //就分别对时分秒寄存器进行写入}Write_Ds1302_Byte(WP,0x80);//开启写保护 }void READ_TIME() {u8 i 0;u8 temp;for(i0;i3;i){temp Read_Ds1302_Byte(0x81i*2);从时分秒寄存器读出数据给temptime_buf[i] temp/16*10temp%16;//将转化后的数据赋给time_buf的元素} } void main() {ALL_INIT();Timer0Init();SET_TIME();while(1){READ_TIME(); seg_set(time_buf[2]/10,time_buf[2]%10,17,time_buf[1]/10,time_buf[1]%10,17,time_buf[0]/10,time_buf[0]%10); } }void TIME_ISR() interrupt 1 {cnt;seg_loop();cnt % 1000; } 关于数码管的使用若是不会可以看我前面的文章  四、时序 若是对时序感兴趣可以先自行看看研究 CE操作使能整个操作环节中要给高电平 SCLK时钟信号在时钟上升沿向时钟芯片写入数据在时钟下降沿读出时钟芯片的数据 只有读出的D0到D7由DS1320操控其他全由单片机掌控
http://www.zqtcl.cn/news/86944/

相关文章:

  • 乡镇医院网站建设做网站用什么软件?
  • 怎样免费注册自己网站的域名网站建设与规划案例
  • 网站工作室和网络公司上线后wordpress后台无法登陆
  • 网站开发网站设计案例三门峡河南网站建设
  • 哈尔滨网站优化对策家电网站建设
  • 免费个人网站+上传wordpress方正模板
  • 青岛艺腾网站建设网站 68
  • 部分网站建设管理不规范青岛营销型网站建设
  • 公司网站代做免费建立网站教程
  • 学习怎么做网站中国新闻社山西分社
  • 怎么做网站跳转链接wordpress应用镜像
  • 长沙网站定制wordpress 自定义js
  • 网站的死链jsp做网站 案例
  • 一般做网站的在哪里找主机屋免费网站空间
  • 网站如何连接微信支付宝吗网络科技公司简介文案
  • 烟台公司网站开发烟台优化网站公司
  • 网站备案需要多少钱wordpress代码实现下载文件
  • 腾讯广告投放端提供的建站工具有网站集约化
  • access数据库做网站怎么快速刷排名
  • 东莞做创意网站建站行业新闻
  • 网站注册系统源码营销网站建设解决方案
  • 徐州金桥建设监理有限公司网站wordpress教程视频 下载
  • 网站的站点地图设计怎么用html做个人的网页
  • 蔬菜类网站建设规划书清远市网站建设公司
  • 怎么做垂直网站手机企业网站制作流程
  • 天津平台网站建设推荐网站空间ftp
  • 代理彩票网站做链接wordpress运行
  • 做视频上传多少个网站西安做网站公司那家好
  • wordpress收费会员seo搜索优化专员
  • 国外私人网站什么平台可以找客源