资源简介
红外遥控电子密码锁毕业设计
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
- 上一篇:字符串\“撞墙反弹\“效果
- 下一篇:文件压缩程序基于哈夫曼C++算法
评论
共有 条评论