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

上海电子商务网站开发北京 网站建设托管公司

上海电子商务网站开发,北京 网站建设托管公司,WordPress农产品,北京活动网站制作原理部分 1.DS1302可调时钟介绍 单片机定时器主要占用CPU时间#xff0c;掉电不能继续运行 图1 2.原理 图2 内部有寄存器#xff0c;寄存的时候以时分秒寄存#xff0c;以通信协议实现数据交互#xff0c;就可以实现对数据进行访问和读写 3.主要寄存器定义 CE芯片使能…原理部分 1.DS1302可调时钟介绍 单片机定时器主要占用CPU时间掉电不能继续运行 图1 2.原理 图2 内部有寄存器寄存的时候以时分秒寄存以通信协议实现数据交互就可以实现对数据进行访问和读写 3.主要寄存器定义 CE芯片使能IO数据输入输出相当于时序电路中的SERSCLK串行时钟 图3 第6位为0表示到CK——时钟第0位为0表示WR——写 CE写入给1写完给0 4.时序图 图4 5.BCD码 图5 代码部分 1.新建项目引入LCD1602 2.编写DS1302_con.c和DS1302_con.h文件 ①DS1302_con.h #ifndef __DS1302_CON_H__ #define __DS1302_CON_H__ void DS1302_Init(); void DS1302_Write(unsigned char command,Data); unsigned char DS1302_Read(unsigned char command);   #endif ②DS1302_con.c #include REGX52.H sbit DS1302_SCLKP3^6; sbit DS1302_CEP3^5; sbit DS1302_IOP3^4; //刚开始单片机上电所有端口默认为1所以需要调0 void DS1302_Init() {     DS1302_SCLK0;     DS1302_CE0; } void DS1302_Write(unsigned char command,Data) {     unsigned char i;     DS1302_CE1;     for(i0;i8;i)     {         //IO从最低位开始读         DS1302_IOcommand(0x01i);         DS1302_SCLK1;         DS1302_SCLK0;     }     for(i0;i8;i)     {           //从最低位开始         DS1302_IOData(0x01i);         DS1302_SCLK1;         DS1302_SCLK0;     }     DS1302_CE0; } unsigned char DS1302_Read(unsigned char command) {     unsigned char i,Data0x00;     DS1302_CE1;     for(i0;i8;i)     {         //从最低位开始         DS1302_IOcommand(0x01i);         DS1302_SCLK0;         DS1302_SCLK1;     }     for(i0;i8;i)     {           //从最低位开始         DS1302_SCLK1;         DS1302_SCLK0;         if(DS1302_IO)     //直接使用就相当于读取         {             Data|(0x01i);   //这里第一次运行就相当于Data已经拿到了第0位数据只是在存入Data         }     }     DS1302_CE0;     DS1302_IO0;       //这里要把IO口置位0清空IO缓存否则输出数字会闪烁不定     return Data; } 3.main.c #include REGX52.H #include LCD1602.h #include DS1302_con.h #include Delay.h void main() {     unsigned char sec;     LCD_Init();     DS1302_Init();     LCD_ShowString(1,1,RTC);     DS1302_Write(0x8e,0x00);              //关闭写保护没有这一行则可能显示数字大于59且不动     DS1302_Write(0x80,0x03);         //写入秒时0x80可看图3     while(1)     { secDS1302_Read(0x81);    //读取秒时0x81可看图3 LCD_ShowNum(2,1,sec/16*10sec%16,3);    //这里有一个BCD转10进制的计算可看图5     } } 到这一步可验证结果是否秒钟的递增数字是否显示正常 4.显示时分秒以及年月日 ①DS1302_con.h #ifndef __DS1302_CON_H__ #define __DS1302_CON_H__ void DS1302_Init(); void DS1302_Write(unsigned char command,Data); unsigned char DS1302_Read(unsigned char command); extern unsigned char DS1302_Time[];   #endif ②DS1302_con.c #include REGX52.H //寄存器写入地址/指令定义 #define DS1302_SECOND        0x80 #define DS1302_MINUTE        0x82 #define DS1302_HOUR            0x84 #define DS1302_DATE            0x86 #define DS1302_MONTH        0x88 #define DS1302_YEAR            0x8C #define DS1302_WP              0x8E sbit DS1302_SCLKP3^6; sbit DS1302_CEP3^5; sbit DS1302_IOP3^4; //年、月、日、时、分、秒 unsigned char DS1302_Time[] {24,2,29,11,11,26}; //刚开始单片机上电所有端口默认为1所以需要调0 void DS1302_Init() {     DS1302_SCLK0;     DS1302_CE0; } void DS1302_Write(unsigned char command,Data) {     unsigned char i;     DS1302_CE1;     for(i0;i8;i)     {         //从最低位开始         DS1302_IOcommand(0x01i);         DS1302_SCLK1;         DS1302_SCLK0;     }     for(i0;i8;i)     {           //从最低位开始         DS1302_IOData(0x01i);         DS1302_SCLK1;         DS1302_SCLK0;     }     DS1302_CE0; } unsigned char DS1302_Read(unsigned char command) {     unsigned char i,Data0x00;     //更改命令的最后一位减少代码     command|1;     DS1302_CE1;     for(i0;i8;i)     {         //从最低位开始         DS1302_IOcommand(0x01i);         DS1302_SCLK0;         DS1302_SCLK1;     }     for(i0;i8;i)     {           //从最低位开始         DS1302_SCLK1;         DS1302_SCLK0;         if(DS1302_IO)     //直接使用就相当于读取         {             Data|(0x01i);   //这里第一次运行就相当于Data已经拿到了第0位数据只是在存入Data         }     }     DS1302_CE0;     DS1302_IO0;     return Data; } //时间的写入 void DS1302_SetTime()    {     DS1302_Write(DS1302_WP,0x00);//取消写保护     DS1302_Write(DS1302_YEAR,DS1302_Time[0]/10*16DS1302_Time[0]%10);//十进制转BCD码后写入     DS1302_Write(DS1302_MONTH,DS1302_Time[1]/10*16DS1302_Time[1]%10);     DS1302_Write(DS1302_DATE,DS1302_Time[2]/10*16DS1302_Time[2]%10);     DS1302_Write(DS1302_HOUR,DS1302_Time[3]/10*16DS1302_Time[3]%10);     DS1302_Write(DS1302_MINUTE,DS1302_Time[4]/10*16DS1302_Time[4]%10);     DS1302_Write(DS1302_SECOND,DS1302_Time[5]/10*16DS1302_Time[5]%10);     DS1302_Write(DS1302_WP,0x00);//打开写保护 } void DS1302_showTime()  {     unsigned char temp;     tempDS1302_Read(DS1302_YEAR);     DS1302_Time[0]temp/16*10temp%16; tempDS1302_Read(DS1302_MONTH);     DS1302_Time[1]temp/16*10temp%16;          tempDS1302_Read(DS1302_DATE);     DS1302_Time[2]temp/16*10temp%16;          tempDS1302_Read(DS1302_HOUR);     DS1302_Time[3]temp/16*10temp%16;          tempDS1302_Read(DS1302_MINUTE);     DS1302_Time[4]temp/16*10temp%16;          tempDS1302_Read(DS1302_SECOND);     DS1302_Time[5]temp/16*10temp%16;      } ③main.c #include REGX52.H #include LCD1602.h #include DS1302_con.h #include Delay.h void main() {     LCD_Init();     DS1302_Init();     LCD_ShowString(1,1,  -  -  );     LCD_ShowString(2,1,  :  :  );     DS1302_SetTime();      //这句循环写入多个命令相当于之前的 DS1302_Write(0x80,0x03);           while(1)     {         DS1302_showTime();   //这句相当于多个之前的secDS1302_Read(0x81);         LCD_ShowNum(1,1,DS1302_Time[0],2);         LCD_ShowNum(1,4,DS1302_Time[1],2);         LCD_ShowNum(1,7,DS1302_Time[2],2);         LCD_ShowNum(2,1,DS1302_Time[3],2);         LCD_ShowNum(2,4,DS1302_Time[4],2);         LCD_ShowNum(2,7,DS1302_Time[5],2);              } } 即可实现以下效果
http://www.dnsts.com.cn/news/95910.html

相关文章:

  • 经典重庆论坛畅谈重庆当阳seo外包
  • 网站建设纯免费官网商城网站一般用什么做二次开发
  • 网站营销力吉安律师网站建设
  • 建设银行上虞支行网站wordpress瀑布流展示插件
  • 布吉做网站的公司北京海淀区官网
  • wordpress修改主题文件夹专业网站优化推广
  • 凡科做网站怎么样网站的系统建设方式有哪些方面
  • 马鞍山的网站建设公司海丰网站建设
  • 净化网络环境网站该怎么做关键词全网搜索工具
  • 新农村建设评论网站大型旅游网站
  • 手机软件开发外包昆明搜索引擎的关键词优化
  • 做公司网站客户群体怎么找国际新闻报道
  • 一级域名做网站制作wordpress博客app
  • 网站建设栏目分析服饰网站新闻建设
  • app制作简易网站做游戏模板下载网站有哪些
  • linux 做网站宁波网络公司设计装修
  • 合肥网站制作价格游戏代理加盟
  • 泰州网站制作工具京东优惠券网站怎么做
  • 经营阅读网站需要怎么做下载百度免费版
  • ps做网站教程三亚网站建设哪家专业
  • 合肥制作企业网站上海网站排名公司
  • 销售类网站开发架构购物网站建设开发
  • 网站开发需要什么金融行业网站建设
  • 石家庄网站开发哪家好竞价推广软件
  • 包头正规旅游网站开发哪家好网站开发的公司电话
  • 企业网站如何推广东莞东城社保局电话
  • 做a 免费网站wordpress仿砍柴网
  • 给女朋友做的网站视频网站开发报告
  • 网站开发团队如何接活邯郸移动网站建设
  • 门户网站建设推荐网站移动端适配怎么做