资源简介
门禁系统源代码 VC++,純C++源碼公開,供交流研究。
代码片段和文件信息
#include
#include
#include
#include
#include “TimecardRecord.h“
#include “AVR_TWI.h“
void set_eeprom_as(volatile unsigned char *uc_data)
{
if( (*uc_data != 0xA0) && (*uc_data != 0xA4) && (*uc_data != 0xA6) ) goto error;
unsigned int ui_data_addr;
unsigned char uc_device_addr;
unsigned int uc_cycle;
uc_device_addr = *uc_data;
set_buff_as(*(uc_data+1) 128 uc_pc_buff);
for(ui_data_addr=0; ui_data_addr<0xFF80;)
{
uc_cycle = 0;
re_write:
if( uc_cycle++ >= CYCLE_TRY ) goto error;
if( I2C_eeprom_write(uc_device_addr ui_data_addr 128 uc_pc_buff) == RW_SUC )
{
ui_data_addr+=128;
}
else
{
goto re_write;
}
}
trans_suc_msg(_SET_EEPROM_AS);
return;
error:
trans_err_msg(_SET_EEPROM_AS);
}
void set_system_time(unsigned char uc_len volatile unsigned char *uc_data)
{
unsigned char uc_cycle;
uc_cycle=0;
re_write:
if( uc_cycle++ >= CYCLE_TRY ) goto error;
if( RTC_Write(0xA2 0x02 uc_len uc_data) )
{
goto re_write;
}
trans_suc_msg(_SET_TIME);
return;
error:
trans_err_msg(_SET_TIME);
}
void read_system_time(unsigned char uc_be_send_to_master)
{
unsigned char uc_temp;
unsigned char uc_cycle;
unsigned char uc_cycle_r;
uc_cycle=0;
begin:
if( uc_cycle++ >= CYCLE_TRY ) goto error;
if( RTC_Read(0xA2 0x02) == RW_SUC )
{
for(uc_temp=0; uc_temp<7;)
{
uc_cycle_r=0;
re_read:
if( uc_cycle_r++ >= CYCLE_TRY ) goto error;
if( TWI_SLA_R() == 0x50 )
{
uc_systime[uc_temp++] = TWDR;
}
else
{
goto re_read;
}
}
TWI_Stop();
uc_systime[0] = uc_systime[0]&0x7F;
uc_systime[1] = uc_systime[1]&0x7F;
uc_systime[2] = uc_systime[2]&0x3F;
uc_systime[3] = uc_systime[3]&0x3F;
uc_systime[4] = uc_systime[4]&0x07;
uc_systime[5] = uc_systime[5]&0x1F;
uc_systime[6] = uc_systime[6]&0xFF;
if( uc_be_send_to_master == _READ_TIME )
{
trans_msg(_READ_TIME 7 uc_systime);
}
return;
}
else
{
goto begin;
}
error:
TWI_Stop();
trans_err_msg(_READ_TIME);
}
void set_single_info(unsigned int ui_addr unsigned int ui_addr_offset unsigned char uc_be_warrant)
{
unsigned char uc_cycle;
unsigned char uc_cycle_r;
unsigned char uc_read_buff;
uc_cycle=0;
start_step1:
if( uc_cycle++ > CYCLE_TRY ) goto error;
if( I2C_eeprom_read(0xA0 (ui_addr_offset+(ui_addr/8))) == RW_SUC )
{
uc_cycle_r=0;
re_read_step1:
if( uc_cycle_r++ > CYCLE_TRY ) goto error;
if( TWI_SLA_R() == 0x50 )
{
uc_read_buff = TWDR;
TWI_Stop();
}
else
{
goto re_read_step1;
}
}
else
{
goto start_step1;
}
uc_cycle=0;
if( uc_be_warrant == 0x01 )
{
if( bit_is_clear(uc_read_buff (ui_addr_offset+(ui_addr%8))) )
{
sbi(uc_read_buff (ui_addr_offset+(ui_addr%8)));
goto start_step2;
}
}
else if( uc_be_warrant == 0x00 )
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4666 2012-10-09 02:11 門禁系統源代碼 VC++\TimecardRecord\AVR_TWI.h
文件 3142 2007-01-31 00:47 門禁系統源代碼 VC++\TimecardRecord\TimecardRecord.aps
文件 17346 2012-10-09 02:12 門禁系統源代碼 VC++\TimecardRecord\TimecardRecord.c
文件 8260 2012-10-09 02:12 門禁系統源代碼 VC++\TimecardRecord\TimecardRecord.h
目录 0 2013-01-03 18:01 門禁系統源代碼 VC++\TimecardRecord
目录 0 2013-01-03 18:01 門禁系統源代碼 VC++
----------- --------- ---------- ----- ----
33414 6
- 上一篇:光流场估计算法 c++代码
- 下一篇:Qt编写的画图小程序c++语言
相关资源
- 基于神经网络的车牌识别系统//VC++毕
- 操作系统实验--电梯调度 VC++实现
- vc++6.0实现的学生成绩管理系统代码
- 用vc++6.0做 的RSA的加密与解密程序
- VC++ 四种进程间通信的完整
- MFC小学生速算练习系统VS2017
- 分数计算器课程设计
- VC使用CStringArray类创建和使用字符串数
- VC++使用Webbrowser开发浏览器
- 人事管理系统(使用MFC单文档程序,
- MFC 实现的坦克大战
- C语言大作业 菜单驱动的学生成绩管理
- VC++源码字识别系统
- STK与VC++ 6.0联合编程
- VC++MFC串口调试助手完整编辑过程介绍
- VC++端口转发程序源码
- VC++操作WPS表格的类(VC6.0编译通过)
- RSA加解密源码VC++
- 在VC++6.0中编写的音乐播放器源代码
- vc++ mfc 基于udp协议在不同ip地址之间
- VC++2005测试版运行库 Microsoft.VC80.Debu
- 猎豹网校C++ Primer初中高全套无密版
- VC++基于mfc 实现对话框打开读取txt文件
- Visual C++ Build Tools 2015 离线包.part1/7
- vc++ 2005 express 完整安装包
- VC++之MFC类库中文手册一怀去意---
- MFC视频播放器(带播放列表VC++6.0源代
- VC++调用大漠插件
- VC++用MKL产生正态分布随机数、计算样
- VC++ 使用RSA算法防止非法注册机破解软
评论
共有 条评论