基于单片机的IC卡门禁系统设计
收藏和点赞,您的关注是我创作的动力
文章目录
- 概要
- 一、主要研究内容及总体设计方案
- 1.1 系统方案设计
- 1.2系统工作原理
- 二、硬件设计
- 2.1 主控电路
- 三、软件设计
- 3.2主程序设计
- 实物
- 附录1 原理图
- 附录2 源程序清单
- 四、 结论
- 五、 文章目录
概要
本论文重点通过对射频技术原理和射频卡来研究智能门禁系统,而主要的研究对象就是这款非接触式的IC卡门禁系统。相对于其它的门禁系统,它有着独特的优势,也使得它的使用最为广泛,它的核心技术是将射频识别技术和IC卡技术相结合,正是通过这种多部分技术相结合的形式,使得它的发展更有前景也更有发展潜力。本篇论文将几种不同的门禁系统进行了比较,选出合适的方案,并结合本系统预期要达到的特点加以改进,最后完成系统设计方案,并且详细的介绍了该门禁系统的硬件组成、软件组成,以及各部分的运行方式和参数。
经过最终测试,本设计达到了预期的设计效果。这套IC卡门禁系统可以高效的识别IC卡模块的读写,磁锁部分也能及时的做出开关指令,并且在IC卡管理上可以进行加入用户卡,删除用户卡,以及键盘密码控制等功能。总体的系统功能均以达到了预期目的。
关键词:单片机;射频识别技术;IC读写模块;按键
一、主要研究内容及总体设计方案
1.1 系统方案设计
方案一:本方案的核心在于系统的芯片选取上,这里选择的是PIC16C84单片机为核心芯片。之所以选这款单片机芯片是因为其强大的功能,CMOS EEPROM微控制器为8位,在模块功能上它的性能也十分强大,尤其是它的RISC信号指令。并且它的单字节的指令有35条,这使得它的运行速度更优于AT系列单片机。
它的主要指令只需要一个指令周期,除了程序分支指令是需要两个指令周期,而程序分支指令应用并不是很多。在芯片内有1K×14的EEPROM程序存储器,而程序指令的宽度仅为14位。显示模块选用LCD1602液晶显示屏,键盘上选用独立式键盘,它的功能原理相对简单,键按指的令发出是通过判断芯片I/O口处读取口的电平的高低去判断的,从而达到发射指令控制的这样效果。
这套方案总体来讲核心功能十分强大,但是也有他的不足之处,就是这种方式的I/O口占用的数量相对较多。而且对键盘处理的这一部分还要克服一个键盘的抖动的问题。在我们现有的内力上想改善防抖问题,分为软件防抖和硬件防抖,而这一块的技术方面我们还尚未做到完善,所以这也是我们的备选方案之一。此方案应该选取的控制电路图如图1.1所示。
图1.1 独立式控制电路图
方案二:本方案的核心在于系统的芯片选取上是十分重要的,我选用AT89C51这款芯片。之所以选择这款芯片是因为,这款芯片它具有很多优越性除了低功耗、稳定的性能之外还有CMOS 8位微控制器,这款控制器并不是最高效的控制器,但是作为我们系统控制器是足够的。
除此之外它有系统可编程Flash存储器为4K字节。灵活的8位CPU和在系统可编程Flash,易失性存储与工业其他产品指令和引脚完全兼容,它的广泛使用与它良好的兼容性是分不开的。正因如此才使得性能不是最强大的AT89C51在市场有其足够的市场。
在控制方面上我预计选用行列扫描的键盘形式,模块的电源正极通过一个小值电阻连接列线,这套模块有很多优势,它的输入端为列线连接的单片机I/O口,输出端是以行线所连接的单片机I/O口。它的工作原理是判断输入线的高低电平,进而判断是否有按键按下,正常时候是没有按键被按下,它输出端的所有列线都是高电平,当有键按下,高电平将会被输入线拉低。
这套方案总体巧妙的运用了高低电平,并且性价比非常高,以一个较为经济的价格可以达到一个令人满意的系统控制效果,并且51系列单片机是一款我们相对熟悉的一款芯片,而行列式的控制模块也跟更容易理解其控制原理,方便我们后期的代码编写。所以方案二也是我们的备选方案之一。行列式的控制电路如图1.2所示。
图1.2 行列式的控制电路图
方案三:本方案的核心在于系统的芯片选取上也是十分重要的,我们以MSP430单片机芯片为核心。这款单片机有很多它独有的优势,拥有16位的混合信号处理器,最大的特点就是它的功率功耗很小,并且它的健康使用时间更长,并且可以高效、精准的处理混合信号。最开始的时候它是由美国的德州仪器(TI)开始推出市场,它的应用也比较广泛,主要优势体现于高可靠性、方便扩展、功耗更小、所占空间更小、使用更为简洁等优点,主要针对于更大功能需求上的应用需要。
系统上它把各个模块的模拟电路、数字电路和微处理器汇到一起,然后通过强大的芯片对其进行混合信号的处理,然后迅速发出指令,它的指令集是十分简单迅速的、更低的功耗的混合型单片机,这款单片机通体来说具有很好整合电路能力,所以这是我们选择这款芯片原因。然而我们在能完成相对简单的电路的前提下,我们考虑芯片的经济价格。
最后就是我们整个电路的而核心控制模块的选取了。这是一款串并转换电路的键盘形式这款控制电路为74LS164,它一共有8个按键,工作原理为串并转化芯片它把SDA(P10)上的串行数据化为8位的并行数据。正是通过并行数据达到其数据传输的效果。它以S1-S8作为盘扫描,S1-S8依次输出低电平,当扫描到其他的管脚上是,如果S1~S7上的数据经过简单处理得到对应的键值。则说明扫描到的是P11等于0。如果P11检测为高电平,那么说明电路是没有按键为关闭状态。
总体来讲,74LS164型号的控制器拥有较为齐全的功能,但是较我们以往的学习经验,这款74LS164型号的控制器我们应用较少,相对陌生。74LS164控制器电路图如图1.3所示。
图1.3 74LS164型号的控制器电路图
通过以上三种方案的对比,第一种方案总体的功能十分强大,但是难以解决防抖问题,而第三套方案的功能也很成熟,但价格方面较高。综合上述方案的优缺点,我们基于经济和知识贮备等多方面的考虑,最终选择最为常用的方案二AT89C51系统。
1.2系统工作原理
(1)通过对系统初始化,然后通过扫描IC卡,系统会对卡片进行校验,校验成功方可打开电磁锁;
(2)智能门禁系统可以对IC进行增加或删除,并且带有显示器,可以直观的了解当前的系统或卡片情况,从而进行设置,而硬件上采用单片机和IC读写模块+DS1302+LCD1602液晶总线技术;
(3)具有通讯报警功能,绿灯表示允许通过,红灯表示禁止通过;
(4)门禁系统的本模块是将接触式IC卡技术应用于其中,使得整个门禁系统具有使用方便、快捷、安全的特点。除此之外还有很高的性价比和优越的扩展性。本系统结构框图如图1.4所示。
图1.4 系统结构框图
二、硬件设计
2.1 主控电路
在主控电路上,本系统采用的是最为经济常用的AT89C51单片机,它的工作电压为4.5V-5.5V,工作频率在40MHz之内。主控模块的是通过AT89C51对各部分模块进行功能整合最终达到完整系统运行的。它共有的四个并行的I/O口为P0.1、P0.1、P0.2、P0.3,这里面P0.1口只是普通的I/O口;P0.0可以做数据总线、地址总线的端口;P0.2可以做地址总线;P3的功能最为强大可以作为RXD、TXD、WR、RD、INT0、INT1来使用。正是因为其完善的端口功能也使得系统的各个模块正常运行得以保障。主控芯片AT89C51原理图如图2.1所示。
图2.1 AT89C51原理图
三、软件设计
3.2主程序设计
软件主程序是系统的监控程序,所以第一步就要将始化完成,在主程序可以完整运行的前提下控制程序的流向,然后调用相关子程序的功能。当子程序的运行也没有问题后,上电复位,程序开始运行。其中详细包括:
●单片机I/O口及内部寄存器变量初始化,使整个系统处于一个确定的工作状态。
●定时器TO和T1的初值的设置:定时计数器Tl用作串口通信的波特率发生器,波特率为9600bit/s;定时计数器T0用作定时计数器,定时时间为65ms。
●中断请求控制寄存器的设置,包括定时/计数器的中断标志、外中断1的触发方式控制位、串行发送/接收中断标志、中断的使能。
●LCD1602显示器工作状态寄存器的设置,除了显示器的亮度和清晰度之外还包括扫描位数的设定,以及系统开关的提示。
●读卡芯片工作寄存器的设置,然后对天线、询卡、缓冲区相关寄存器进行指令设置。设置成功之后,将程序进入循环状态,依次判断是否需要回铃、提示用户、设置管理RFID卡(新卡注册或旧卡注销)等。主程序工作流程图如图3.3所示。
图3.3 主程序工作流程图
系统工作流程:首先为系统供应5V电压,开启开关,选择按键按钮让其复位,然后读卡模块会自动寻卡,当管理IC卡刷过后,读卡系统会自动扫描,并且会进行防冲突和选择卡片等系统功能,最后进行验证,对卡进行操作是否写卡,如果通过写卡将经过写卡流程,如果系统识别为不写卡则会进行读卡操作,并且会进行上述操作。除此之外这部分还可以对有效卡片的删除和添加功能进行设置,按键输入和设置密码控制继电器,控制信号会同时反馈到液晶显示器上进行显示状态。本系统实现了IC卡刷卡产生的信号去控制继电器开断,以此表示门的开放或关闭,整套流程的实现最终构成一套完整的工作系统。
实物
附录1 原理图
附录2 源程序清单
#include<reg51.h>
#include<intrins.h>
sbit cp=P1^0;
sbit sck=P1^1;
sbit so=P1^2;
sbit beep=P3^7;
sbit led5=P0^5;
sbit KD_KEY = P2^6;
sbit KEY_SDA=P2^7;
sbit KEY_CLK=P2^5;
unsigned char chcardno[10][5]={0};
unsigned char cardok;
unsigned char j=0;
unsigned char count;
unsigned char a;
unsigned char cardno[5]={0};
unsigned char key_value;
unsigned char b=1;
//---------毫秒延时子程序----------
void delay2(unsigned char ms)
{unsigned char i;while(ms--){for(i=0;i<120;i++);}
}
//---------蜂鸣器--------------
unsigned char feib(void)
{
beep=0;
led5=0;
delay2(250);
beep=1;
led5=1;
delay2(250);
}
void send(unsigned char a)
//判断是不是有键按下
{
unsigned char i;
for(i=0;i<8;i++){if(_crol_(a,i)&0x80)KEY_SDA=1;elseKEY_SDA=0;KEY_CLK=0;KEY_CLK=1;}
}
unsigned char key(void)
//判断是第几键按下
{
unsigned char buffer,display_bit,i;
buffer=0xff;//赋初值为0xff
delay2(250);//延时去抖动
display_bit=0xfe;//扫描键盘
for(i=0;i<8;i++)
{
send(display_bit);
if(!KD_KEY)//是此键按下吗?
{
buffer=display_bit;//是,则保存其键值
return(i);
break;//退出
}
display_bit=_crol_(display_bit,1);
//检测下一键
}
}
//------同步串行口接收一字节-------
unsigned char rx1byte()
{char i;char rxdata;for(i=9;--i;){rxdata<<=1;while(sck==0)//等待始终上升沿continue;if(so==1)//读数据++rxdata;while(sck==1)continue;}return rxdata;
}
//--------同步串行口接收-------
unsigned char rx(void)
{char i;if(cp==1)//检测CP脚是否出现低电平return;EA=0;//屏蔽中断for(i=25;--i;)//保证CP的宽度大于时钟宽度{if(sck==0){EA=1;return;}}while(sck==1)//等待时钟线出现低电平continue;cardno[0]=rx1byte();//读第一个字节cardno[1]=rx1byte();//读第二个字节cardno[2]=rx1byte();cardno[3]=rx1byte();cardno[4]=rx1byte();cardno[5]=rx1byte(); //读第六个字节while(cp==0) //等待CP脚恢复高电平continue;EA=1;
//读卡结束,校验卡号i=cardno[0]+cardno[1]+cardno[2]+cardno[3]+cardno[4];if(i=cardno[5]){cardok=1;}}
//---------------管理卡程序-----------
unsigned char zjz (void)
{char i=0;while(1){rx();P0=0XFF;if(cardok==1)//判断是否有刷卡{cardok=0; if(chcardno[0][5]==0)//判断是否有管理卡{ feib();feib();chcardno[0][5]=cardno[5];//设计为管理卡}else{
if(chcardno[0][5]==cardno[5])//判断是否是管理卡{ feib();feib();feib();delay2(250);while(1){rx();if(cardok==1)//判断是否有刷卡{feib();cardok=0;TR0=1;//起动定时器0count=0;break;}}}else{ for(a=1;a<=b;a++){if(chcardno[a][5]==cardno[5])//判断是否是用户卡{feib();break;}}}}}}
}//----------定时器子程序---------
void timer1(void) interrupt 3
{TH0=(65536-50000)/256;TL0=(65526-50000)%256;count++;key_value=key();switch(key_value){case 0://按键1feib();chcardno[b][5]=cardno[5];//添加用户卡cardno[5]=0;b++;break;case 1://按键2feib();feib();for(a=1;a<=b;a++){if(chcardno[a][5]==cardno[5]){chcardno[a][5]=chcardno[b][5];//删除用户卡}}break;case 2://按键3feib();feib();feib();chcardno[0][5]=0;//删除管理卡break; case 3://按键4feib();feib();feib();feib();for(a=1;a<=b;a++){chcardno[a][5]=0;//清空所有用户卡}break;}if(count==50)//定时5S是否到{ TR0=0; EA=0;}
}
//--------------------主程序--------------
void main(void)
{TMOD=0x01; //定时器0TH0=(65536-50000)/256;//定时器0初始华TL0=(65526-50000)%256;EA=1;ET0=1;P0=0XFF;zjz();
}
四、 结论
相对与其他磁卡锁系统如:生物虹膜门禁系统、指纹门禁系统、以及更为高级的面部识别系统相比,它们的使用范围不同,经济价格不同,方便程度也各不相同。IC卡门禁系统有着独特的自身优势,其价格更为经济,应用范围更加宽泛,可以满足大多数用户的使用。除此之外就是IC卡门禁系统的独有特性了,它可以通过较为简单的电路,通过对读卡器进行简单的设计,就可以满足更多复杂条件或多变环境下的场合工作。
通过本次设计项目,也让我对我们专业的内容有了更深入的了解,无论是Keil5的主程序设计、还是硬件上的读卡器设计、显示器模块的设计、控制电路的组装焊接、以及其结构组成都有了更深层次的了解。IC卡门禁系统的迅猛发展会随着我们的科技发展不断的发展,未来会增加更多方便、实用、安全的功能。并且在使用范围也会更加广泛,比如在住户、银行、公司企业和智能大厦等部门都可能会被广泛应用,甚至发展到其他经济发展较为落后的国家,总而言之科技的发展必将带来技术上的进步,IC卡门禁系统的未来发展必将呈现出势如破竹之势。
五、 文章目录
目 录
摘 要 I
Abstract II
引 言 1
1 主要研究内容及总体设计方案 3
1.1 系统方案设计 3
1.2系统工作原理 6
2 硬件设计 7
2.1 主控电路 7
2.2 电源模块电路 10
2.3 键盘模块电路 10
2.4 读卡器模块电路 10
2.4.1 读卡器模块 11
2.4.2 IC卡的功能组成 12
2.5 射频识别电路 14
2.6 显示模块电路 14
3 软件设计 16
3.1 系统程序开发流程 16
3.2 主程序设计 18
4 实物制作 21
结 论 23
参考文献 24
附录1 原理图 25
附录2 源程序清单 26
致 谢 32
………………62
相关文章:

基于单片机的IC卡门禁系统设计
收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、主要研究内容及总体设计方案1.1 系统方案设计1.2系统工作原理 二、硬件设计2.1 主控电路 三、软件设计3.2主程序设计实物附录1 原理图附录2 源程序清单 四、 结论五、 文章目录 概要 本论文重点通过对射频技术…...

大模型 | NEFTune之引入随机噪声对大模型训练的收益
大模型 | NEFTune之引入随机噪声对大模型训练的收益 paper中提到,在模型foward过程中,对inputs_embedding增加适度的随机噪声,会带来显著的收益。 Paper: https://arxiv.org/pdf/2310.05914.pdf Github: https://github.com/neelsjain/NEFT…...

【开源】基于SpringBoot的高校学院网站的设计和实现
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学院院系模块2.2 竞赛报名模块2.3 教育教学模块2.4 招生就业模块2.5 实时信息模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学院院系表3.2.2 竞赛报名表3.2.3 教育教学表3.2.4 招生就业表3.2.5 实时信息表 四、系…...

什么是云原生?土生土长?
“云原生”(Cloud Native)是一种构建和运行应用程序的方法,这种方法充分利用了云计算的优势。云原生应用程序是为云环境设计的,通常是在容器中运行,并被设计为在微服务架构中运行,这使得它们能够快速扩展和…...

2011-2021年北大数字普惠金融指数数据(包括省市县)第四期
2011-2021年北大省市县数字普惠金融指数数据(第四期) 1、时间:2011-2021年 2、指标:index_aggregate、coverage_breadth、usage_depth、payment、insurance、monetary_fund、investment、credit、credit_investigation、digitiz…...

ch3_6多线程举例
作者丨billom 来源丨投稿 编辑丨GiantPandaCV 云端深度学习的服务的性能加速通常需要算法和工程的协同加速,需要模型推理和计算节点的融合,并保证整个“木桶”没有太明显的短板。 如何在满足时延前提下让算法工程师的服务的吞吐尽可能高,尽…...

javaEE -7(网络原理初识 --- 7000字)
一:网络初识 计算机的独立模式是指多台计算机在网络中相互独立运行,彼此之间不共享资源或信息。在早期,计算机主要采用独立模式,每台计算机都拥有自己的操作系统、应用程序和数据,它们之间没有直接的连接或通信。 在…...

新生儿弱视:原因、科普和注意事项
引言: 新生儿弱视,也被称为婴儿弱视或婴儿屈光不正,是一个在婴儿和幼儿时期非常重要的视觉问题。虽然它是一种潜在的视觉障碍,但早期的诊断和干预可以显著改善儿童的视觉发育。本文将科普新生儿弱视的原因,提供相关信…...

【机器学习可解释性】2.特征重要性排列
机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.偏依赖图 ( partial dependence plots )4.SHAP Value5.SHAP Value 高级使用 正文 前言 你的模型认为哪些特征最重要? 介绍 我们可能会对模型提出的最基本的问题之一是:哪…...

机器学习之朴素贝叶斯
朴素贝叶斯: 也叫贝叶算法推断,建立在主管判断的基础上,不断地进行地修正。需要大量的计算。1、主观性强2、大量计算 贝叶斯定理:有先验概率和后验概率区别:假如出门堵车有两个因素:车太多与交通事故先验概…...

Python中if __name__ == ‘__main__‘,__init__和self 的解析
一、 if __name__ __main__ if __name__ __main__的意思是: 当.py文件被直接运行时,if __name__ __main__之下的代码块将被运行; 当.py文件以模块形式被导入时,if __name__ __main__之下的代码块不被运行。 1.1、一个 xxx.p…...

【Superset】自定义授权认证,接入内部系统二次开发
想要将内部系统认证与superset打通,必须要了解superset的认证体系。 Superset的认证体系 Superset的认证体系可以通过以下几种方式进行配置: 基于LDAP认证:Superset可以集成LDAP以验证用户身份。在这种情况下,Superset将根据LDAP…...

私有云:【1】ESXI的安装
私有云:【1】ESXI的安装 1、使用VMware Workstation创建虚拟机2、启动配置虚拟机3、登录ESXI管理台 1、使用VMware Workstation创建虚拟机 新建虚拟机 选择典型安装 稍后安装操作系统 选择VMware ESXI 选择虚拟机安装路径 硬盘设置300G或者更多 自定义硬件 内存和处…...

Mac怎么删除文件和软件?苹果电脑删除第三方软件方法
Mac删除程序这个话题为什么一直重复说或者太多人讨论呢?因为如果操作不当,可能会导致某些不好的影响。因为Mac电脑如果有太多无用的应用程序,很有可能会拖垮Mac系统的运行速度。或者如果因为删除不干净,导致残留文件积累在Mac电脑…...

【开题报告】基于微信小程序的旅游攻略分享平台的设计与实现
1.研究背景及意义 旅游已经成为现代人生活中重要的组成部分,人们越来越热衷于探索新的目的地和体验不同的文化。然而,对于旅游者来说,获取准确、可靠的旅游攻略信息并不容易。传统的旅游攻略书籍或网站往往无法提供实时、个性化的建议。因此…...

布隆过滤器(Bloom Filter)初学习
目录 1、布隆过滤器是什么 2、布隆过滤器的优缺点 3、使用场景 4、⭐基于Redis的布隆过滤器插件安装 4.1 下载布隆过滤器 4.2 创建文件夹并上传文件 4.3 安装gcc 4.4 解压RedisBloom压缩包 4.5 在解压好的文件夹下输入make 4.6 将编译的好的插件拷贝到docker redis容…...

“深入探讨操作系统和虚拟化技术“
目录 引言1.操作系统1.1.什么是操作系统1.2.常见操作系统1.3.个人版本和服务器版本的区别1.4.Linux的各个版本 2.安装VMWare虚拟机1.VMWare虚拟机介绍2.VMWare虚拟机安装3.VMWare虚拟机配置 3.安装配置Windows Server 2012 R24.完成电脑远程访问电脑5.服务器环境搭建配置jdk配置…...

远程连接异地主机可能遇到的问题及处理
0.现状 公司的一套系统内部有多个节点的内网,要把数据上传至客户的办公网环境中的服务器。客户办公网为我们提供了一台类似路由的设备,办公网无法让内网地址的数据包透传至服务器。现场条件所限,只有有限数量的技术服务人员可以维持…...

使用 PointNet 进行3D点集(即点云)的分类
点云分类 介绍 无序3D点集(即点云)的分类、检测和分割是计算机视觉中的核心问题。此示例实现了开创性的点云深度学习论文PointNet(Qi 等人,2017)。 设置 如果使用 colab 首先安装 trimesh !pip install trimesh。 import os import glob import trimesh import numpy as…...

高通平台GPIO引脚复用指导
高通平台GPIO引脚复用指导 1. 概述1.1 平台有多少个GPIO?1.2 这些GPIO都有哪些可复用的功能? 2. 软件配置2.1 TZ侧GPIO配置2.2 SBL侧GPIO配置2.3 AP侧GPIO配置2.3.1 Linux DTS机制与设备驱动模型概述2.3.2高通平台的pinctrl控制器2.3.2.1 SDX12 CPU pinc…...

华为机试题:HJ5 进制转换
目录 第一章、算法题1.1)题目描述1.2)解题思路与答案1.3)派仔的解题思路与答案1.3)牛客链接 友情提醒: 先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。 第一章、算法题 1.…...

面试算法37:小行星碰撞
题目 输入一个表示小行星的数组,数组中每个数字的绝对值表示小行星的大小,数字的正负号表示小行星运动的方向,正号表示向右飞行,负号表示向左飞行。如果两颗小行星相撞,那么体积较小的小行星将会爆炸最终消失…...

ROS学习记录2018.7.10
ROS学习记录2018.7.10 1.ROS基础了解 开源机器人操作系统ROS(robot operation system) 分级: 1.计算图集(一种网络结构) 1.节点:执行运算的进程(做基础处理的单元)2.消息&#x…...

OPC UA:工业领域的“HTML”
OPC UA是工业自动化领域的一项重要的通信协议。它的特点是包括了信息模型构建方法。能够建立工业领域各种事物的信息模型。在工业自动化行业,OPCUA 类似互联网行业的HTTP协议和“HTML”语言。能够准确,可靠地描述复杂系统中各个元素,并且实现…...

【golang】Windows环境下Gin框架安装和配置
Windows环境下Gin框架安装和配置 我终于搞定了Gin框架的安装,花了两三个小时,只能说道阻且长,所以写下这篇记录文章 先需要修改一些变量,这就需要打开终端,为了一次奏效,我们直接设置全局的: …...

多测师肖sir_高级金牌讲师__接口测试之tonken (5.6)
接口测试之tonken 网站:http://shop.duoceshi.com/login?redirect2Fdashboard 第一个接口:uiid接口 uiid接口url:http://manage.duoceshi.com/auth/code test中语句: var jsonData JSON.parse(responseBody); postman.setEnvi…...

C++常见面试问题之内存对齐
一、内存对齐是什么 1.内存对齐是什么 还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占415byte;但是实际上&…...

网络协议--TCP:传输控制协议
17.1 引言 本章将介绍TCP为应用层提供的服务,以及TCP首部中的各个字段。随后的几章我们在了解TCP的工作过程中将对这些字段作详细介绍。 对TCP的介绍将由本章开始,并一直包括随后的7章。第18章描述如何建立和终止一个TCP连接,第19和第20章将…...

网络协议--BOOTP:引导程序协议
16.1 引言 在第5章我们介绍了一个无盘系统,它在不知道自身IP地址的情况下,在进行系统引导时能够通过RARP来获取它的IP地址。然而使用RARP有两个问题:(1)IP地址是返回的唯一结果;(2)…...

33基于MATLAB的对RGB图像实现中值滤波,均值滤波,维纳滤波。程序已通过调试,可直接运行。
基于MATLAB的对RGB图像实现中值滤波,均值滤波,维纳滤波。程序已通过调试,可直接运行。 33 MATLAB、图像处理、维纳滤波 (xiaohongshu.com)...