云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 单片机

单片机

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 11:10:00

亮时为逻辑“0\符合光采集电路输出信号状态),暗时为“1\,人体存在为“1\,人体不存在为“0\,开灯为“1”,关灯为“0\,那么环境光与人体存在可以用以下的逻辑关系表来表示,如表所示3.1:

表3.1 环境光与人体存在逻辑关系

环境光参数 0 1 0 1 人体存在参数 0 0 1 1 教室灯状态 0 0 0 1 上表数据表明可将环境光参数与人体存在参数进行与操作,又由于继电器是低电平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯的状态。 3.3时钟模块

在系统启动自检初始化时,首先会对时钟芯片DS1302的运行状态进行判断,当检测到DS1302处于启动状态时才对其进行初始化,启动时钟。实时时钟芯片DS1302的初始化及其读写程序设计的关键是要遵循其时序要求。 3.3.1数据输入输出

在对DS1302进行各种操作之前,必须先对其初始化,即需要把复位输入RST端置为高电平,如果RST输入为低电平,那么所有的数据传送中止,且I/O引脚变为高阻抗状态。在数据读/写完后,RST端应置成低电平,以防止外部干扰对DS1302内部时钟的影响。

同时,为了防止复位输入端受到外部的干扰,要求上电时,在主电源引脚Vcc2≥2.5V之前,RST必须为逻辑0。无论是读操作还是写操作,都必须在开头的8个时钟周期内把提供地址和命令信息的8位数据装入到DS1302的移位寄存器中。地址/命令信息用于指明40个寄存器中的哪个进行何种操作。数据在SCLK的上升沿串行输入,在开始的8个时钟周期把命令字装入移位寄存器之后,若跟随的是写命令字节,则在下8个SCLK周期的上升沿输入数据字节,若跟随在读命令字节的8个SCLK周期之后,在下8个SCLK周期的下降沿输出数据字节。程序流程如图3-3所示:

图3-3数据输入输出流程图

3.3.2时钟程序设计

驱动程序 //寄存器宏定义

#define WRITE_SECOND 0x80 #define WRITE_MINUTE 0x82 #define WRITE_HOUR 0x84 #define READ_SECOND 0x81 #define READ_MINUTE 0x83 #define READ_HOUR 0x85 #define WRITE_PROTECT 0x8E //位寻址寄存器定义

sbit ACC_7 = ACC^7; //管脚定义

sbit SCLK = P3^5; // DS1302时钟信号 7脚 sbit DIO= P3^6; // DS1302数据信号 6脚 sbit CE = P3^7; // DS1302片选 5脚 //地址、数据发送子程序

void Write1302 ( unsigned char addr,dat ) {

unsigned char i,temp;

CE=0; //CE引脚为低电平,数据传送中止 SCLK=0; //清零时钟总线

CE = 1; //CE引脚为高电平,逻辑控制有效 //发送地址

for ( i=8; i>0; i-- ) //循环8次移位 {

SCLK = 0; temp = addr;

DIO = (bit)(temp&0x01); //每次传输低字节 addr >>= 1; //右移一位 SCLK = 1; } //发送数据

for ( i=8; i>0; i-- ) {

SCLK = 0; temp = dat;

DIO = (bit)(temp&0x01); dat >>= 1; SCLK = 1; } CE = 0; }

//数据读取子程序

unsigned char Read1302 ( unsigned char addr ) {

unsigned char i,temp,dat1,dat2; CE=0;

SCLK=0; CE = 1; //发送地址

for ( i=8; i>0; i-- ) //循环8次移位 {

SCLK = 0; temp = addr;

DIO = (bit)(temp&0x01); //每次传输低字节 addr >>= 1; //右移一位 SCLK = 1; }

//读取数据

for ( i=8; i>0; i-- ) {

ACC_7=DIO; SCLK = 1; ACC>>=1; SCLK = 0; } CE=0; dat1=ACC;

dat2=dat1/16; //数据进制转换 dat1=dat1; //十六进制转十进制 dat1=dat1+dat2*10; return (dat1); }

//初始化DS1302 void Initial(void) {

Write1302 (WRITE_PROTECT,0X00); //禁止写保护 Write1302 (WRITE_SECOND,0x56); //秒位初始化 Write1302 (WRITE_MINUTE,0x34); //分钟初始化 Write1302 (WRITE_HOUR,0x12); //小时初始化 Write1302 (WRITE_PROTECT,0x80); //允许写保护 }

搜索更多关于: 单片机 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

亮时为逻辑“0\符合光采集电路输出信号状态),暗时为“1\,人体存在为“1\,人体不存在为“0\,开灯为“1”,关灯为“0\,那么环境光与人体存在可以用以下的逻辑关系表来表示,如表所示3.1: 表3.1 环境光与人体存在逻辑关系 环境光参数 0 1 0 1 人体存在参数 0 0 1 1 教室灯状态 0 0 0 1 上表数据表明可将环境光参数与人体存在参数进行与操作,又由于继电器是低电平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯的状态。 3.3时钟模块 在系统启动自检初始化时,首先会对时钟芯片DS1302的运行状态进行判断,当检测到DS1302处于启动状态时才对其进行初始化,启动时钟。实时时钟芯片DS1302的初始化及其读写程序设计的关键是要遵循其时序要求。 3.3.1数据输入输出 在对DS13

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com