欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4083|回復: 1
收起左側

基于51單片機的紅外電子密碼鎖的設計與仿真(電路圖設計+C51程序+proteus仿真)

[復制鏈接]
ID:822631 發表于 2020-9-24 02:34 | 顯示全部樓層 |閱讀模式
本設計包含兩個51單片機和一個proteus自帶的紅外組件IRLINK來模擬實現紅外通信1)一個單片機模擬發送密碼信號;         
2)一個單片機接收密碼信號并通過電磁線圈控制鎖的開或者關;
3)使用proteus自帶的紅外組件IRLINK的發射端模擬第一個單片機發射紅外信號;
4)使用proteus自帶的紅外組件IRLINK的接收端模擬接紅外信號并經過光電轉換成電信號送入第二個單片機(紅外電子密碼鎖的控制器)

以下是電路圖的設計:

電路圖設計

電路圖設計



以下是仿真運行結果:
  

仿真

仿真


以下是附件的文件清單:包括電路圖和keil程序
51hei圖片1.png

51hei圖片2.png


以下是紅外通信的部分程序,感興趣請下載附件:
#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;                                         

         . . . . . .


全部資料51hei下載地址:
Infra-code Lock.rar (60.62 KB, 下載次數: 56)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:102963 發表于 2020-10-16 20:57 | 顯示全部樓層
樓主的程序不全,沒有發送端源程序!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表