-
大小: 1.55MB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2023-10-20
- 語言: 其他
- 標簽: at89c51??單片機??門禁系統(tǒng)??
資源簡介
此資源有詳細的電路圖和程序,報告,非常好,和大家分享一下。
代碼片段和文件信息
#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;
}
//向存儲器?發(fā)送數據子程序Data為要求發(fā)送的數據
void?Write(uchar?Data)
{?????????
????uchar?BitCounter=8;?????????//位數控制
????uchar?temp;?????????????????//中間變量控制
????do
????{
????????temp=Data;
????????SCL=0;
????????_nop_?();????_nop_?();????_nop_?();??_nop_?();
????????if((temp&0x80)==0x80)???//如果最高位是1就發(fā)送1
????????????SDA=1;
????????else
????????????SDA=0;??????????????//如果最高位是0就發(fā)送0
????????SCL=1;
????????temp?=?Data<<1;?????????//RLC?逐位的發(fā)送數據
????????Data?=?temp;???????
????????BitCounter--;???????????//沒發(fā)完一位數據就減一
????}while(BitCounter);?????????//如果發(fā)送完8位后跳出循環(huán)
????SCL=0;?????????????? //釋放總線
????delay(20);????????????
}
//讀一個字節(jié)的數據并返回該字節(jié)值
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??門禁系統(tǒng)\~$51單片機的門禁系統(tǒng)設計.doc
?????文件????1811456??2009-06-17?10:36??門禁系統(tǒng)\基于51單片機的門禁系統(tǒng)設計.doc
?????文件??????41984??2009-06-17?10:45??門禁系統(tǒng)\開題報告(高興鵬).doc
?????文件??????20480??2009-06-15?15:31??門禁系統(tǒng)\門禁系統(tǒng)使用說明.doc
?????文件??????35328??2009-05-23?16:08??門禁系統(tǒng)\門禁系統(tǒng)元件.doc
?????文件??????15227??2009-08-17?10:32??門禁系統(tǒng)\門禁系統(tǒng)源程序.c
?????文件?????336658??2009-06-04?11:10??門禁系統(tǒng)\門禁系統(tǒng)電路.jpg
?????文件??????35840??2009-06-17?10:42??門禁系統(tǒng)\高興鵬-任務書.doc
?????目錄??????????0??2009-08-17?10:44??門禁系統(tǒng)
-----------?---------??----------?-----??----
??????????????2297135????????????????????9
評論
共有 條評論