红外遥控电子密码锁


红外遥控电子密码锁毕业设计 C51单片机 C语言开发 包括原理图 代码 参考资料 文档等一整套
资源截图
代码片段和文件信息
#include  
#include  
#define uchar unsigned char
#define uint unsigned int
#define DUAN P0
#define WEI P2

uchar display[4]display1[4]display2[4]dpcount;//开辟四个气短数码管缓冲区,dpcount为编号

uint PWBit;
uint p1=0p2=0p3=0p4=0;
uint i;

sbit Beep=P3^7; 
sbit GreenLed=P3^0;
sbit RedLed=P3^1;
 

sbit IRIN=P3^2 ; //1838b接收头OUT端连接INT0

  
uchar IRdisplay[2]; //抓暖显示ASCII码
uchar IRcode[4]; //实际键码

char p;//密码地址,共4位密码
char ErrNum=0;

bit ButtonFlag=0;
bit RecFlag=0;
bit ModifyFlag1=0;
bit ModifyFlag2=0;

//****************************
//共阴段码表  
//****************************
unsigned char code dpcode[]=
{
        0x3F/*0*/  //O
        0x06/*1*/
        0x5B/*2*/
        0x4F/*3*/
        0x66/*4*/
        0x6D/*5*/ //S
        0x7D/*6*/
        0x07/*7*/
        0x7F/*8*/
        0x6F/*9*/
0x80/*.-10*/
        0x73/*P-11*/        
0x77/*A-12*/
        0x79/*E-13*/
        0x54/*n-14*/
  0x50/*r-15*/ 
0x00/* -16*/    //撤销输入
0x40/*--17*/
};

//****************************
//位码表  
//****************************

uchar bitcode[]={0xf70xfb0xfd0xfe};

/*************************************************
1ms延时函数 晶振:12MHz
*************************************************/
void delay(unsigned int z) //1毫秒延时子函数
{
unsigned int xy; //开辟两个变量
for(x=z;x>0;x--) //让这两个变量循环递减达到耗时的目的
for(y=123;y>0;y--); //y=123,是通过实验得到的
}

/**************************************************

  键盘扫描程序

***************************************************/

uchar k;//按键结果

void KeyScan()
{
uchar xyz;
EX0=0;
P1=0x0f;//行扫描
if(P1!=0x0f)//判断是否有按键按下
{
delay(10);//延时防干扰
if(P1!=0x0f)
{
x=P1&0x0f;//保存行状态
P1=0xf0;//列扫描
y=P1&0xf0;//保存列状态
z=x|y;//得到键值

ButtonFlag=1;
Beep=0;
delay(100);
Beep=1;
delay(300);

switch(z)//判断键值
{
case 0x77:k=1;break;
case 0x7b:k=2;break;
case 0x7d:k=3;break;
case 0x7e:k=4;break;
case 0xb7:k=5;break;
case 0xbb:k=6;break;
case 0xbd:k=7;break;
case 0xbe:k=8;break;
case 0xd7:k=9;break;
case 0xdb:k=0;break;
case 0xdd:k=10;break;    //修改密码
case 0xde:k=15;break; //撤销输入
}
}
}
EX0=1;
}



/*********************************************************
延时x*0.14ms子程序 @ 11.0592M    
**********************************************************/
void delay0(uchar x)    //x*0.14MS
{
uchar i;
while(x--)
{
for (i = 0; i<13; i++);
}
}

 /**************************************************

  判断子程序

***************************************************/
 void right()
 {
display[0]=14; //OPEN
display[1]=13;
display[2]=11;
display[3]=0;
RedLed=1;
GreenLed=0;

Beep=0;
delay(100);
Beep=1;

delay(100);

Beep=0;  
delay(100);
Beep=1;

ModifyFlag1=1;
p=3;

ErrNum=0;//清除错误次数

delay(2000);//密码正确,延时2s后可以继

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         301  2011-06-14 21:40  readme.txt
     目录           0  2011-08-09 14:20  开发工具及相关资料
     文件      361018  2011-05-14 13:25  开发工具及相关资料AT89S52.pdf
     文件       71680  2011-02-14 11:18  开发工具及相关资料一种红外遥控器编解码仿真.doc
     文件      184832  2010-06-26 13:12  开发工具及相关资料单片机应用编程技巧.doc
     文件     1258496  2008-01-08 09:40  开发工具及相关资料数码管静态显示及定时器和中断应用.ppt
     文件     1052705  2006-02-22 18:02  开发工具及相关资料红外遥控编码资料.pdf
     目录           0  2011-08-09 14:20  毕业设计文档
     文件      199168  2011-08-09 14:17  毕业设计文档开题报告.doc
     文件      149504  2011-08-09 14:19  毕业设计文档文献综述.doc
     文件     2060800  2011-06-14 21:44  毕业设计文档用户使用手册.doc
     文件     4249600  2011-08-09 14:18  毕业设计文档论文.doc
     文件       38400  2011-08-09 14:19  毕业设计文档选题指南.doc
     目录           0  2011-08-09 14:21  源程序和电路图
     文件      117689  2011-05-07 13:21  源程序和电路图moni.DSN
     文件         742  2011-06-13 19:03  源程序和电路图moni.PWI
     文件        4616  2011-06-13 23:46  源程序和电路图monidaima.hex
     文件       11341  2011-06-13 23:46  源程序和电路图monidama.c
     文件        3565  2011-05-01 20:20  源程序和电路图STC.H
     文件      134140  2011-05-13 16:46  源程序和电路图原理图.DSN

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)