资源简介
此资源有详细的电路图和程序,报告,非常好,和大家分享一下。
代码片段和文件信息
#include “reg52.h“
#include “intrins.h“ //调用头文件
#define WriteDeviceAddress 0xa0 // AT24C02的识别码是1010硬件的三个地址引脚接地为000最后一位为0时表示向存储器写入数据
#define ReadDviceAddress 0xa1 //最后一位为1时表示从存储器读出数据。0xa0=1010 000 0 0xa1=1010 000 1 .
sbit BCD6 = P1^7;
sbit BCD5 = P1^6;
sbit BCD4 = P1^5;
sbit BCD3 = P1^4;
sbit BCD2 = P1^3;
sbit BCD1 = P1^2;
sbit SCL = P1^1; //at24c02串行时钟信号
sbit SDA = P1^0; //at24c02串行数据信号
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
sbit BEEP = P3^0;
sbit UNLOCK = P3^1;
sbit LOCK = P3^2;
sbit ADMINI = P3^3;
typedef unsigned char uchar;
const uchar BCD[]={0xC00xF90xA40xB00x990x920x820xF80x800x900xBF}; //定义数字显示数组为常量
//0 1 2 3 4 5 6 7 8 9 -
uchar mode = 0;
uchar Password[6] = {123456}; //存放从存储器中读取的原始密码
uchar Input[6] = {0x0A0x0A0x0A0x0A0x0A0x0A}; //存放从键盘输入的密码
void delay(unsigned int number)
{
unsigned char temp;
for(;number!=0;number--)
{
for(temp=150;temp!=0;temp--) ;
}
}
//起始条件存储器的通讯起始
void Start(void)
{
SDA=1;
SCL=1;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
SDA=0;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
}
//停止条件存储器的通讯停止
void Stop(void)
{
SDA=0;
SCL=1;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
SDA=1;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
}
//应答位
void Ack(void)
{
SDA = 0;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
SCL = 1;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
SCL = 0;
}
//反向应答位
void NoAck(void)
{
SDA = 1;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
SCL = 1;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
SCL = 0;
}
//向存储器 发送数据子程序Data为要求发送的数据
void Write(uchar Data)
{
uchar BitCounter=8; //位数控制
uchar temp; //中间变量控制
do
{
temp=Data;
SCL=0;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
if((temp&0x80)==0x80) //如果最高位是1就发送1
SDA=1;
else
SDA=0; //如果最高位是0就发送0
SCL=1;
temp = Data<<1; //RLC 逐位的发送数据
Data = temp;
BitCounter--; //没发完一位数据就减一
}while(BitCounter); //如果发送完8位后跳出循环
SCL=0; //释放总线
delay(20);
}
//读一个字节的数据并返回该字节值
uchar Read(void)
{
uchar temp=0;
uchar temp1=0;
uchar BitCounter=8; //定义从存储器读出的数据位数
SDA=1;
do{
SCL=0;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
SCL=1;
_nop_ (); _nop_ (); _nop_ (); _nop_ ();
if(SDA)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 162 2009-08-17 09:51 门禁系统\~$51单片机的门禁系统设计.doc
文件 1811456 2009-06-17 10:36 门禁系统\基于51单片机的门禁系统设计.doc
文件 41984 2009-06-17 10:45 门禁系统\开题报告(高兴鹏).doc
文件 20480 2009-06-15 15:31 门禁系统\门禁系统使用说明.doc
文件 35328 2009-05-23 16:08 门禁系统\门禁系统元件.doc
文件 15227 2009-08-17 10:32 门禁系统\门禁系统源程序.c
文件 336658 2009-06-04 11:10 门禁系统\门禁系统电路.jpg
文件 35840 2009-06-17 10:42 门禁系统\高兴鹏-任务书.doc
目录 0 2009-08-17 10:44 门禁系统
----------- --------- ---------- ----- ----
2297135 9
相关资源
- 测量液体的液位(内含原理图、源代
- 基于单片机的交通信号灯的控制系统
- esp8266代码
- 33个毕业设计—单片机类
- 《手把手教你学51单片机》教材pdf
- LCD1602硬件结构及程序设计
- 单片机实验代码8次.zip
- 硕飞ME830/ME850 单片机开发实验仪最新
- 经典51单片机开发板Protel99se文件含原
- 基于单片机的数字时钟
- WiFi-STC-DOWNLOADER.zip
- STC-ISP 6.85
- STC8A加强版开发板配套程序
- 基于单片机的超声波流量计.pdf
- 基于单片机的智能LED台灯设计-附电路
- Silicon 单片机程序烧写软件
- 基于AT89C51单片机的水塔智能水位控制
- stm32矩阵按键程序.rar
- 基于51单片机的全自动洗衣机控制器的
- 温湿度传感器DHT11资料+程序
- \\51单片机35个
- pic16f684单片机中文数据手册
- 单片机音乐彩灯
- AVR单片机与CPLD_FPGA综合应用入门
- TOSHIBA单片机调试工具及编译软件
- 基于51单片机的简易交通灯设计
- 89系列单片机选型指南
- 基于单片机控制的智能照明系统设计
- 51做的毕业设计电子指南针全套东西硬
- 音乐喷泉单片机项目
评论
共有 条评论