资源描述:
《c51电子密码锁程序代码(终稿)本科论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、超级密码锁、备份/*=================================================================================密码锁控制==================================================================================//*连接线图:---------------------------------------------------
2、LCM-----51
3、LCM----
4、-51
5、 LCM------51
6、
7、-----------------------------------------------
8、
9、DB0-----P0.0
10、DB4-----P0.4
11、RS-------P2.0
12、
13、DB1-----P0.1
14、DB5-----P0.5
15、RW-------P2.1
16、
17、DB2-----P0.2
18、DB6-----P0.6
19、E--------P2.2
20、
21、DB3-----P0.3
22、DB7-----P0.7
23、VLCD接1K电阻到GND
24、-------------------------
25、--------------------------接口说明:1.P1口:4x4矩阵键盘2.P2.4工作指示灯3.P2.5继电器控制端4.P3.7蜂鸣器控制端5.P3.324c02时钟端SCL6.P3.424c02数据端SDA/*接盘按键说明:--------------------------------------------------
26、1
27、2
28、3
29、A
30、-------------
31、4
32、5
33、6
34、B
35、-------------
36、7
37、8
38、9
39、C
40、-------------
41、*
42、0
43、#
44、D
45、----------
46、----------------------------------------[注:AT89S51使用12M晶振]==========================定义与申明=============================================================*/#include"regx52.h"#include"string.h"#include"intrins.h"#defineucharunsignedchar#defineuintunsignedint//**
47、*********引脚定义引脚#defineLCM_RSP2_0//数据/命令选择信号#defineLCM_RWP2_1//读/写选择信号#defineLCM_EP2_2//使能信号#defineWLEDP2_4//工作指示灯#defineRELP2_5//继电器#defineBELLP3_7//蜂鸣器#defineSCLP3_3//模拟I2C串行时钟控制#defineSDAP3_4//模拟I2C串行数据传输#defineLCM_DataP0//显示数据端口#defineAddWr0xa0//"1010000
48、0B"器件地址选择及写标志#defineAddRd0xa1//"10100001B"器件地址选择及读标志//控制字格式:/*-----------1010A2A1A0R/W-----------*//*注:1.前4位为I2C总线特征编码:10102.A2A1A0为24c02的地址3.R/W=0:表示写入;R/W=1:表示读出*///***********变量定义#defineBusy0x80//用于检测LCM状态字中的Busy标识ucharCount,num;//计数器uintcon_30m;//30min计
49、数器ucharcon_20s;//10s计数器bitflag,mark,sign,mark0;//常用标志位bitflag1;//Choice_menu()调用标志bitsignx;//循环标志bitmarkx;//************数组定义ucharcodeO_Password[]={0x30,0x30,0x30,0x30,0x30,0x30};//原始密码"000000"uchardataN_Password[]={0x00,0x00,0x00,0x00,0x00,0x00};//新密码uchard
50、ataT_Password[]={0x00,0x00,0x00,0x00,0x00,0x00};//输入密码暂存//***********函数声明voidStart(void);//开始总线函数voidStop(void);//结束总线函数ucharRead(void);//读一字节数据bitSend(ucharData);//发送一字节数据ucharReadCurrent(ucharAddress