当前位置: 首页 > news >正文

基于单片机的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卡门禁系统设计

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

大模型 | NEFTune之引入随机噪声对大模型训练的收益

大模型 | NEFTune之引入随机噪声对大模型训练的收益 paper中提到&#xff0c;在模型foward过程中&#xff0c;对inputs_embedding增加适度的随机噪声&#xff0c;会带来显著的收益。 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 实时信息表 四、系…...

什么是云原生?土生土长?

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

2011-2021年北大数字普惠金融指数数据(包括省市县)第四期

2011-2021年北大省市县数字普惠金融指数数据&#xff08;第四期&#xff09; 1、时间&#xff1a;2011-2021年 2、指标&#xff1a;index_aggregate、coverage_breadth、usage_depth、payment、insurance、monetary_fund、investment、credit、credit_investigation、digitiz…...

ch3_6多线程举例

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

javaEE -7(网络原理初识 --- 7000字)

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

新生儿弱视:原因、科普和注意事项

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

【机器学习可解释性】2.特征重要性排列

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

机器学习之朴素贝叶斯

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

Python中if __name__ == ‘__main__‘,__init__和self 的解析

一、 if __name__ __main__ if __name__ __main__的意思是&#xff1a; 当.py文件被直接运行时&#xff0c;if __name__ __main__之下的代码块将被运行&#xff1b; 当.py文件以模块形式被导入时&#xff0c;if __name__ __main__之下的代码块不被运行。 1.1、一个 xxx.p…...

【Superset】自定义授权认证,接入内部系统二次开发

想要将内部系统认证与superset打通&#xff0c;必须要了解superset的认证体系。 Superset的认证体系 Superset的认证体系可以通过以下几种方式进行配置&#xff1a; 基于LDAP认证&#xff1a;Superset可以集成LDAP以验证用户身份。在这种情况下&#xff0c;Superset将根据LDAP…...

私有云:【1】ESXI的安装

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

Mac怎么删除文件和软件?苹果电脑删除第三方软件方法

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

【开题报告】基于微信小程序的旅游攻略分享平台的设计与实现

1.研究背景及意义 旅游已经成为现代人生活中重要的组成部分&#xff0c;人们越来越热衷于探索新的目的地和体验不同的文化。然而&#xff0c;对于旅游者来说&#xff0c;获取准确、可靠的旅游攻略信息并不容易。传统的旅游攻略书籍或网站往往无法提供实时、个性化的建议。因此…...

布隆过滤器(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.现状 公司的一套系统内部有多个节点的内网&#xff0c;要把数据上传至客户的办公网环境中的服务器。客户办公网为我们提供了一台类似路由的设备&#xff0c;办公网无法让内网地址的数据包透传至服务器。现场条件所限&#xff0c;只有有限数量的技术服务人员可以维持&#xf…...

使用 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&#xff1f;1.2 这些GPIO都有哪些可复用的功能&#xff1f; 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…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

【QT控件】显示类控件

目录 一、Label 二、LCD Number 三、ProgressBar 四、Calendar Widget QT专栏&#xff1a;QT_uyeonashi的博客-CSDN博客 一、Label QLabel 可以用来显示文本和图片. 核心属性如下 代码示例: 显示不同格式的文本 1) 在界面上创建三个 QLabel 尺寸放大一些. objectName 分别…...

篇章一 论坛系统——前置知识

目录 1.软件开发 1.1 软件的生命周期 1.2 面向对象 1.3 CS、BS架构 1.CS架构​编辑 2.BS架构 1.4 软件需求 1.需求分类 2.需求获取 1.5 需求分析 1. 工作内容 1.6 面向对象分析 1.OOA的任务 2.统一建模语言UML 3. 用例模型 3.1 用例图的元素 3.2 建立用例模型 …...

Linux信号保存与处理机制详解

Linux信号的保存与处理涉及多个关键机制&#xff0c;以下是详细的总结&#xff1a; 1. 信号的保存 进程描述符&#xff08;task_struct&#xff09;&#xff1a;每个进程的PCB中包含信号相关信息。 pending信号集&#xff1a;记录已到达但未处理的信号&#xff08;未决信号&a…...

Web APIS Day01

1.声明变量const优先 那为什么一开始前面就不能用const呢&#xff0c;接下来看几个例子&#xff1a; 下面这张为什么可以用const呢&#xff1f;因为复杂数据的引用地址没变&#xff0c;数组还是数组&#xff0c;只是添加了个元素&#xff0c;本质没变&#xff0c;所以可以用con…...

Qt 按钮类控件(Push Button 与 Radio Button)(1)

文章目录 Push Button前提概要API接口给按钮添加图标给按钮添加快捷键 Radio ButtonAPI接口性别选择 Push Button&#xff08;鼠标点击不放连续移动快捷键&#xff09; Radio Button Push Button 前提概要 1. 之前文章中所提到的各种跟QWidget有关的各种属性/函数/方法&#…...

河北对口计算机高考MySQL笔记(完结版)(2026高考)持续更新~~~~

MySQL 基础概念 数据&#xff08;Data&#xff09;&#xff1a;文本&#xff0c;数字&#xff0c;图片&#xff0c;视频&#xff0c;音频等多种表现形式&#xff0c;能够被计算机存储和处理。 **数据库&#xff08;Data Base—简称DB&#xff09;&#xff1a;**存储数据的仓库…...