ImageVerifierCode 换一换
格式:DOCX , 页数:52 ,大小:41.07KB ,
资源ID:8063247      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8063247.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51门禁系统源程序Word文件下载.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

51门禁系统源程序Word文件下载.docx

1、 relay_OFF(); /关继电器 LED_BLINK_1(); /led test beep1(); /beep test display(0,0,0); /显示初始化 while(1) key=key_scan(); /按键操作 if(key=12) if(states0) states-; else states=0; /上一功能 Card_SN_BUF4=0xff,0xff,0xff,0xff,/卡号登记缓冲区 KEY_BUF8=0,;INT8U bPass = 0; bWarn = 0;void uart_over( void ) /串口数据还原 UartCount = 0; U

2、artStart = FALSE; UartComp = FALSE;void pass( void ) Delay_ms(2000);/让卡片离开void warn(void) LED_BLINK_2();INT8U IC_READ( void ) INT8U ID_ASC8,i; if( PcdRequest( PICC_REQIDL, Card_type ) != MI_OK )/寻天线区内未进入休眠状态的卡,返回卡片类型 2字节 if( PcdRequest( PICC_REQIDL, Card_type ) ! return FALSE; if( PcdAnticoll( Card_

3、SN ) != MI_OK ) /防冲撞,返回卡的序列号 4字节 bWarn = 1; return FALSE; bPass = 1; send_bytes(Card_type,2); send_bytes(Card_SN,4); for(i=0;i9) ID_ASCi*2=Card_SNi/16+7; else ID_ASCi*2=Card_SNi/16+ if(Card_SNi%169) ID_ASCi*2+1=Card_SNi%16+ else ID_ASCi*2+1=Card_SNi%16+ display2(3,0,ID: ,4); /显示卡号 display2(3,2,ID_AS

4、C,8); return TRUE;void ctrl_process( void ) INT8U i,key_count,key_value=16,table8=-,statesbuf; if(states!=statesbuf) /状态改变,清屏 display_clear_line(2); display_clear_line(3); statesbuf=states; switch(states) case 0: /IC卡读卡输入 display(1,0,1); if(IC_READ() if (Card_SN0=Card_SN_BUF0) &(Card_SN1=Card_SN_BUF

5、1) &(Card_SN2=Card_SN_BUF2)(Card_SN3=Card_SN_BUF3) relay_ON();/灯开关 display(2,0,5); else display(2,0,6); relay_OFF(); break; case 1: display(1,0,2); /密码输入 display2(3,0,table,8); key_count=0; key_value=key_scan(); if(key_value=12) states-; return; if(key_value=13) states+; return; if(key_value=0 & key

6、_value if(key_count=8 & key_value = 15) /按下确定键 for(i=0;8; KEY_BUFi=tablei; EEPROM_WRITE(7,KEY_BUF,8); break; default : break; if( bPass ) /处理成功 bPass = 0; pass(); if( bWarn ) /处理失败 bWarn = 0; warn(); #include intrins.hstring.hvoid delay_ns(unsigned int ns) unsigned int i;ns; nop();/-/ 读SPI数据 unsigne

7、d char SPIReadByte(void) unsigned char SPICount; / Counter used to clock out the data unsigned char SPIData; SPIData = 0; for (SPICount = 0; SPICount 8; SPICount+) / Prepare to clock in the data to be read SPIData =1; / Rotate the data CLR_SPI_CK; /nop();/nop(); / Raise the clock to clock the data o

8、ut of the MAX7456 if(STU_SPI_MISO) SPIData|=0x01; SET_SPI_CK; / Drop the clock ready for the next bit / and loop back return (SPIData); / Finally return the read data / 写SPI数据 void SPIWriteByte(unsigned char SPIData) SPICount+) if (SPIData & 0x80) SET_SPI_MOSI; else CLR_SPI_MOSI;nop();= 1; /功 能:读RC6

9、32寄存器/参数说明:AddressIN:寄存器地址/返 回:读出的值unsigned char ReadRawRC(unsigned char Address) unsigned char ucAddr; unsigned char ucResult=0; CLR_SPI_CS; ucAddr = (Address1)&0x7E)|0x80; SPIWriteByte(ucAddr); ucResult=SPIReadByte(); SET_SPI_CS; return ucResult;写RC632寄存器/ valueIN:写入的值void WriteRawRC(unsigned char

10、 Address, unsigned char value)0x7E); SPIWriteByte(value);清RC522寄存器位regIN:/ maskIN:清位值void ClearBitMask(unsigned char reg,unsigned char mask) char tmp = 0x00; tmp = ReadRawRC(reg); WriteRawRC(reg, tmp & mask); / clear bit mask置RC522寄存器位置位值void SetBitMask(unsigned char reg,unsigned char mask) WriteRaw

11、RC(reg,tmp | mask); / set bit mask/用MF522计算CRC16函数void CalulateCRC(unsigned char *pIndata,unsigned char len,unsigned char *pOutData) unsigned char i,n; ClearBitMask(DivIrqReg,0x04); WriteRawRC(CommandReg,PCD_IDLE); SetBitMask(FIFOLevelReg,0x80); for (i=0; i MAXRLEN) n = MAXRLEN;n; pOutDatai = ReadRawRC(FIFODataReg); status = MI_ERR;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2