77范文网 - 专业文章范例文档资料分享平台

课程设计 - 红外遥控电子密码锁的设计与实现(5)

来源:网络收集 时间:2019-01-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

6 附录一

6.1 整体电路结构:

图表 23 总电路图

6.2 PCB图:

图表 24 pcb电路图

18

7 附录二

7.1 AT24C02模块

#include \

sbit WP = P1^0; sbit SCL = P1^1; sbit SDA = P1^2;

void Delay_US(void) { ;; }

void Delay_10MS(void) {

uchar i = 0; uchar j = 0;

for(i = 50;i>0;i--) { for(j=200;j>0;j--); } }

void AT24C08_unprotect() {

WP = 0; }

void AT24C02_Start(void) {

SDA = 1; SCL = 1; Delay_US(); SDA = 0; Delay_US(); }

void AT24C02_Stop(void) {

SDA = 0; SCL = 1; Delay_US(); SDA = 1;

//开始总线//停止总线

19

Delay_US(); }

void AT24C02_Ack(void) //ACK信号 {

uchar i = 0; //等待从机回应 SCL = 1; Delay_US();

while((SDA ==1) && (i<200))//等 侍ACK信号 { i ++; } SCL = 0; Delay_US(); }

void AT24C02_NOAck(void) //NO ACK {

SCL = 1; //主机发送给从机 Delay_US(); SDA = 1; SCL = 0; Delay_US(); }

void AT24C02_Write_Byte(uchar Value)// 写8位数据到总线 {

uchar i = 0;

for(i =0; i<8; i++) { SCL = 0; SDA = Value & 0x80;// 1000 0000 Delay_US(); SCL = 1; Delay_US(); Value <<= 1; } SCL = 0; Delay_US(); SDA = 1; }

uchar AT24C02_Read_Byte(void)//读8位数据 {

20

uchar Value = 0; uchar i = 0; SCL = 0; //低电平数据可以变化 Delay_US();

for(i = 0; i <8;i++) { SCL = 1; //高电平状态读数据 Delay_US(); if(SDA) { Value |= 0x80>>i;//先读高位数据 } SCL = 0; Delay_US(); }

return Value; }

void AT24C02_Write(uchar Address,uchar Value) {

AT24C02_Start(); //起始条件 AT24C02_Write_Byte(0xA0); //器件地址1010 0000//写 AT24C02_Ack(); //等从机应答

AT24C02_Write_Byte(Address); // 1024 字节,其中一个字节操作25 AT24C02_Ack();

AT24C02_Write_Byte(Value); // 0x15 AT24C02_Ack(); // AT24C02_Stop(); Delay_10MS(); }

uchar AT24C02_Read(uchar Address) {

uchar Value = 0;

AT24C02_Start(); //开始总线 AT24C02_Write_Byte(0xA0); // 1010 0000 AT24C02_Ack();

AT24C02_Write_Byte(Address); //读数据的地址; //25 AT24C02_Ack(); AT24C02_Start(); //再次开始 AT24C02_Write_Byte(0xA1); // 1010 0001 AT24C02_Ack();

Value = AT24C02_Read_Byte(); AT24C02_NOAck(); //主机发送给从机无应答

21

AT24C02_Stop(); return Value; }

7.2 红外通信模块

sbit beer=P0^4;

sbit RED_DATA=P3^2; //红外接口 //uchar RED_ADD=0; //红外遥控的地址

uchar RED_add=255; //红外遥控的地址缓存区

uchar RED_key=255; //红外摇控的键值,无键按下时为255

//红外初始化

void Init_Red(void) {

RED_DATA=1; //P3^2输出高电平 EX0=1; //开启红外中断 P3^2 }

//检测脉冲宽度

uchar Red_check(void) {

uchar t=0;uchar a=0;

while(RED_DATA) { t++; for(a=0;a<4;a++);// if(t==250) return t;//超时溢出 }

return t; }

void exter0() interrupt 0 {

uchar res=0; uchar aa=0; bit OK=0;

bit RODATA=0;

while(1) {

if(RED_DATA)//有高脉冲出现 {

22

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库课程设计 - 红外遥控电子密码锁的设计与实现(5)在线全文阅读。

课程设计 - 红外遥控电子密码锁的设计与实现(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/419491.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: