历史上的今天
今天是:2024年09月24日(星期二)
2020年09月24日 | 基于51单片机的红外电子密码锁的设计
2020-09-24 来源:51hei
本设计包含两个51单片机和一个proteus自带的红外组件IRLINK来模拟实现红外通信:1)一个单片机模拟发送密码信号;
2)一个单片机接收密码信号并通过电磁线圈控制锁的开或者关;
3)使用proteus自带的红外组件IRLINK的发射端模拟第一个单片机发射红外信号;
4)使用proteus自带的红外组件IRLINK的接收端模拟接红外信号并经过光电转换成电信号送入第二个单片机(红外电子密码锁的控制器)
以下是电路图的设计:
电路图设计

以下是红外通信的部分程序
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit LOCK=P2^0; //开锁控制接口
sbit IRIN=P3^2; //红外通讯与单片机的接口,采用外部中断0控制
u8 IrValue[4]; //实际只用4位
u8 code1=0x00; //存放原始关锁密码:00000000;
u8 code2=0xff; //存放原始开锁密码:11111111;
u8 Time; //存放中间变量
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函数名 : IrInit()
* 函数功能 : 初始化红外线接收
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void IrInit()
{
IT0=1;//下降沿触发
EX0=1;//打开中断0允许
EA=1; //打开总中断
IRIN=1;//初始化端口
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
IrInit();
while(1)
{
if(IrValue[2] == code1) LOCK=1; //关门
if(IrValue[2] == code2) LOCK=0; //开门
}
}
/*******************************************************************************
* 函数名 : ReadIr()
* 函数功能 : 读取红外数值的中断函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void ReadIr() interrupt 0
{
u8 j,k;
u16 err;
Time=0;
. . . . . .
上一篇:串口的工作方式
史海拾趣
|
1)如果您的密码不慎丢失,可以点击“找回密码”进入的便是博客的找回密码系统。 2)将您的用户名、Email、填写好点提交,系统将您的密码返还。(也可参照论坛帮助帖密码丢了怎么办) … 查看全部问答> |
|
网上买来的JLINK V8仿真器和mini2440连好了,去SEGGER的网站下载了驱动,装好,打开JLINK.exe显示下面这图,是我哪里没弄好还是产品问题? 这是JLINK和2440连接用的转接板,上面没有标识正反,我是看JLINK上面的灯是红的就反过来插,到绿为止。 ...… 查看全部问答> |
|
用于EPOS与主机连接的。 我现在握手成功了,SNRM和RR都能正常交互, 但是发数据的时候老是不对。 发过去返回19 45,不知道是什么错误。 我发送的数据格式是 30 10 19 B1… 查看全部问答> |
|
开发工具:Pocket Builder2.0 远程数据库 ASA 中心数据库 Sql Server 问题描述: 在本机PC上运行程序,可以与Mobilink服务器连接,但将程序放到PDA里,则提示\"不能连接远程数据库\" PDA通过无线网络连接 请高手指 ...… 查看全部问答> |
|
StellarisWare 例程简介 AES Pre-expanded Key(aes_expanded_key) 此例程演示了如何使用预扩展密钥加密明文并把它解密成原来的信息。使用预扩展密钥避免了在运行的时候处理扩展。采用的是AES中的CB ...… 查看全部问答> |
|
如题请问PCI Compiler v11.1IP Compiler for PCI Express v11.1这两个PCI IP核能实现PCI功能吗?最后附上福利!… 查看全部问答> |
|
【10款典型实验室电路推荐】之二:利用单芯片电压和电流输出DAC AD5422及数字隔离器ADuM1401构建16位全隔离输出模块。该电路提供一种完整的工业控制输出模块解决方案,适合过程控制可编程逻辑控制器和分布式控制系统模块,同时还含有标准外部保护功 ...… 查看全部问答> |




