专业制作网站服务/网站制作报价表
本文是关于DS1302时钟芯片的相关介绍。
文章目录
- 一、 DS1302时钟芯片介绍
- 二、DS1302的使用
- 2.1、DS1302的控制寄存器
- 2.2、DS1302的日历/时钟寄存器
- 2.3、片内RAM
- 2.4、DS1302的读写时序
- 三、SPI总线介绍
- 四、DS1302使用示例
一、 DS1302时钟芯片介绍
DS1302是DALLAS公司推出的涓流充电时钟芯片,内部含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。该芯片是3线SPI接口。
实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可以自动调整。
时钟操作通过AM/PM只是决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需要用到三根通信线:
① RES复位;② I/O数据线;③ SCLK串行时钟。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低,保持数据个时钟信息时功率小于1mW。
DS1302的双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。它广泛应用与电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域下面。
DS1302主要的性能指标:
- 实时时钟具有能计算2100年之前的秒、分、时、日、周、月、年的能力,还有闰年调整能力。
- 31个8位暂存数据存储RAM。
- 串行I/O口方式使得管脚数量最少。
- 宽范围工作电压3.0~5.5V。
- 工作在2.0V时,电流小于300nA。
- 读/写时钟或RAM数据时有两种传送方式:单字节传送和多字节传送方式。
- 8脚DIP封装或可选的8脚SOIC封装根据表面装配。
- 简单3线接口。
- 与TTL兼容Vcc=5V。
- 可选工业级温度范围-40~+85。
- 具有涓流充电能力。
- 采用主电源和备份电源双电源供应,备份电源可用电池或大容量电容实现。
DS1302芯片管脚如下:
芯片管脚功能:
管脚名称 | 管脚标号 | 说明 |
---|---|---|
Vcc2 | 1 | 备用电源引脚,接入电池断电时提供1302电源 |
X1、X2 | 2、3 | 外部晶振引脚,通常需要外接32.768K晶振 |
GND | 4 | 电源地 |
CE | 5 | 使能引脚,也是复位引脚RST,低电平有效,操作时置为高电平 |
I/O | 6 | 串行数据引脚,数据输出或输入都使用该引脚,具有三态功能 |
SCLK | 7 | 串行时钟引脚 |
Vcc1 | 8 | 工作电源引脚 |
二、DS1302的使用
操作DS1302的大致过程,就是将各种数据写入DS1302的寄存器,来设置它当前的时间的格式;然后使DS1302开始运作,DS1302时钟会按照设置情况运转,再用单片机将其寄存器内的数据读出;最后用液晶显示,就是常说的简易电子时钟。
简单来说DS1302的操作分2步,显示部分属于液晶显示的内容,不属于DS1302本身的内容。
首先了解下寄存器,DS1302有一个控制寄存器、12个日历/时钟寄存器和31个RAM。
2.1、DS1302的控制寄存器
控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字节为控制命令,它用于对DS1302读写过程进行控制,格式如下:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
1 | RAM /CK | A4 | A3 | A2 | A1 | A0 | RD /WR |
- 第7位固定是1。
- 第6位,1表示片内RAM;0表示日历、时钟寄存器选择位。
- 第5到1位,地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。
- 第0位,1表示RD,即下一步的操作是读;0表示WR,即下一步的操作是写。
第5到1位取值代表的RAM或寄存器如下表所示。根据下表可以知道,如果要读秒寄存器,命令为1000 0001,如果要写秒寄存器命令为1000 0000。
寄存器名称 | D7 1 | D6 RAM/CK | D5 A4 | D4 A3 | D3 A2 | D2 A1 | D1 A0 | D0 RD/WR | 寄存器值 |
---|---|---|---|---|---|---|---|---|---|
秒寄存器 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0或1 | 80H/81H |
分寄存器 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0或1 | 82H/83H |
时寄存器 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0或1 | 84H/85H |
日寄存器 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0或1 | 86H/87H |
月寄存器 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0或1 | 88H/89H |
星期寄存器 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0或1 | 8AH/8BH |
年寄存器 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0或1 | 8CH/8DH |
写保护寄存器 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0或1 | 8EH/8FH |
慢充电寄存器 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0或1 | 90H/91H |
时钟突发模式 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0或1 | BEH/BFH |
RAM0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0或1 | C0H/C1H |
… | 1 | 1 | … | … | … | … | … | 0或1 | … |
RAM30 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0或1 | FCH/FDH |
RAM突发模式 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0或1 | FEH/FFH |
2.2、DS1302的日历/时钟寄存器
DS1302共有12个寄存器,其中7个与日历、时钟有关,存放的数据为BCD码形式,格式如下:
寄存器名称 | 取值范围 | D7 | D6~D4 | D3~D0 |
---|---|---|---|---|
秒寄存器 | 00~59 | CH | 秒的十位 | 秒的个位 |
分寄存器 | 00~59 | 0 | 分的十位 | 分的个位 |
时寄存器 | 01 ~ 12或00 ~ 23 | 12或24 | D6-D5-D4 0-A/P-HR | 时的个位 |
日寄存器 | 01~31 | 0 | D6-D5D4 0-日的十位 | 日的个位 |
月寄存器 | 01~12 | 0 | D6-D5-D4 0-0-1或0 | 月的个位 |
周寄存器 | 01~07 | 0 | D6-D5-D4 0-0-0 | 星期几 |
年寄存器 | 01~99 | 年的十位 | 年的十位 | 年的个位 |
写保护寄存器 | WP | 0-0-0 | 0-0-0-0 | |
慢充电寄存器 | TCS | TCS-TCS-TCS | DS-DS-RS-RS | |
时钟突发寄存器 |
寄存器说明:
-
秒寄存器:低四位为SEC,高的次三位为10SEC。CH位为时钟暂停位,当CH=1时,时钟暂停,CH=0时,时钟开始启动。
-
时寄存器:最高位为12/24小时的格式选择位,1表示12小时格式,0表示24小时格式;
- 当设置为12小时显示格式时,D5的高电平表示上午AM,D5低电平表示下午PM;
- 当设置为24小时格式时,D5、D4表示小时的十位。
-
写保护寄存器:最高位WP为1时,DS1302只读不写,一般在往DS1302写数据之前确保WP为0。
-
慢充电寄存器:TCS位为控制慢充电的选择,当为1010时才能使慢充电工作。
-
DS为二极管选择位。DS=01表示选择一个二极管,DS=10表示选择二个二极管,DS=11或00表示充电器被禁止,与TCS无关。
-
RS用于选择连接在Vcc2和Vcc1之间的电阻,RS=00,充电器被禁止,与TCS无关,电阻选择如下:
-
RS位 电阻器 阻值 00 无 无 01 R1 2K 10 R2 4K 11 R3 8K
-
从DS1302中读取出来的时钟数据均为BCD码格式,需要转换为习惯的十进制。
BCD码是通过4位二进制码来表示1位十进制中的0~9这10个数码。
二进制码转换为BCD码的方式为:4位二进制码大于1001时,加6。比如BCD码00001100的二进制码为:00001100+6=0010010。
如下所示:
十进制码 二进制码 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001
2.3、片内RAM
DS1302片内有31个RAM单元,对片内RAM的操作方式有两种:单字节方式和多字节方式。
当控制命令字位C0H~FDH时为单字节读写方式,命令字中的D5 ~ D1用于选择对应的RAM单元。
当控制命令字为FEH、FFH时为多字节操作,表中的RAM突发模式,多字节操作可一次把所有的RAM单元内容进行读写。FEH为写操作,FFH为读操作。
2.4、DS1302的读写时序
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位开始。在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位到高位。时序图如下。
- DS1302通过SPI串行总线跟单片机通信,当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉DS1302是读还是写操作,是对RAM还是CLOCK寄存器操作。第二个字节是要读或要写的数据。
- 单字节读写,只有在SCLK为低电平时,才能将CE置为高电平。所以在进行操作之前需要先将SCLK置低电平,然后将CE置为高电平,接着开始在IO上放入要传送的电平信号。然后跳变SCLK。数据在SCLK上升沿时,DS1302读写数据,在SCLK下降沿时,DS1302放置数据到IO上。
上图是DS1302的三个时序:复位时序、单字节写时序、单字节读时序。
CE(RST):复位时序,在RST引脚产生一个正脉冲,在整个读写期间,RST保持高电平,一次字节读写完毕后,把RST返回低电平准备下次读写周期。
单字节读时序:读之前要先对寄存器写命令,从最低位开始写;可以看到,写数据时在SCLK的上升沿实现,读数据在SCLK的下降沿实现。在单字节读时序中,写命令的第八个上升沿结束后紧接着的第八个下降沿就将要读寄存器的第一位数据读到数据线上了。读出来的数据也是最低位开始。
单字节写时序:两个字节的数据配合16个上升沿将数据写入即可。
需要注意的是:
- 在操作DS1302之前需要关闭写保护。
- 用延时来降低单片机的速度以配合器件时序。
- DS1302读出来的数据是BCD码形式,要转换成常用的10进制。
- 读取字节之前,将IO设置为输入口,读取完之后,将IO改回输出口。
- 写程序时,建议开辟数组集放置DS1302的一系列数据,方便扩展键盘输入。
三、SPI总线介绍
SPI,Serial Peripheral Interface,串行外围接口。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器之间。
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,可达几Mbps。
SPI接口以主从方式工作,这种方式下通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:
- MOSI——主器件数据输出,从器件数据输入;
- MISO——主器件数据输入,从器件数据输出;
- SCLK——时钟信号,由主器件产生;
- /CE——从器件使能信号,由主器件控制;
SPI接口内部硬件如下:
SPI没有指定的流控制,没有应答机制确认是否接收到数据。
四、DS1302使用示例
本示例实现的功能是:系统运行时,数码管上显示电子时钟,格式为"xx-xx-xx"。
使用到的资源有数码管以及DS1302时钟芯片,DS1302时钟模块设计如下,DS1302芯片的控制管脚接至单片机的P3.4~P3.6口上,在芯片的X1、X2管脚处外接了一个32.768KHz晶振,为时钟运行提供一个稳定的时钟频率。
软件实现,按照上面介绍的时序编写DS1302的读、写时序代码,如下:
sbit DSIO=P3^4;
sbit RST=P3^5;
sbit SCLK=P3^6;// DS1302读时、分、秒等寄存器的地址命令,依次是秒分时日月周年
uchar code READ_RTC_ADDR[]={0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d};
// DS1302写时、分秒等寄存器的地址命令,依次是秒分时日月周年
uchar code WRITE_RTC_ADDR[]={0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};// 时钟初始化2023-12-26星期二12点0分0秒,存储顺序按照秒分时日月周年,
// 存储格式使用BCD吗
uchar TIME[7]={0, 0, 0x12, 0x26, 0x12, 0x02, 0x23};// 向DS1302发送命令,向地址addr写入数据dat
void DS1302Write(uchar addr, uchar dat)
{uchar i;RST=0; // RST拉低_nop_(); // 延时SCLK=0; // 拉低SCLK,SCLK为低时才可拉高RST_nop_(); // 延时RST=1; // RST拉高,整个读写期间保持RST高电平_nop_(); // 延时for(i=0;i<8;i++) // 从低位开始传送八位地址addr{DSIO=addr&0x01;addr>>=1;SCLK=1; // 上升沿向DS1302写数据_nop_();SCLK=0; // SCLK拉低为下一位传送做准备_nop_();}for(i=0;i<8;i++) // 从低位开始传送八位数据dat{DSIO=dat&0x01;dat>>=1;SCLK=1; // 上升沿向DS1302写数据_nop_();SCLK=0; // SCLK拉低为下一位传送做准备_nop_();}// 数据传送结束,将RST拉低,为下一次传送做准备RST=0;_nop_();
}// 从DS1302中读取地址addr的数据dat
uchar DS1302Read(uchar addr)
{uchar i;uchar dat, bi;RST=0; // RST拉低_nop_(); // 延时SCLK=0; // 拉低SCLK,SCLK为低时才可拉高RST_nop_(); // 延时RST=1; // RST拉高,整个读写期间保持RST高电平_nop_(); // 延时for(i=0;i<8;i++) // 从低位开始传送八位地址addr{DSIO=addr&0x01;addr>>=1;SCLK=1; // 上升沿向DS1302写数据_nop_();SCLK=0; // SCLK拉低为下一位传送做准备_nop_();}_nop_();for(i=0;i<8;i++) // 从低位开始读取八位数据dat{bi=DSIO;dat=(dat>>1)|(bi<<7);SCLK=1; // 上升沿向DS1302写数据_nop_();SCLK=0; // SCLK拉低为下一位传送做准备_nop_();}// 数据传送结束,将RST拉低,为下一次传送做准备RST=0;_nop_();// DS1302复位稳定时间SCLK=1;_nop_();DSIO=0;_nop_();DSIO=1;_nop_();return dat;
}
在读取之前需要对DS1302初始化,写入设置的时间,然后可以读取时间,代码如下:
// DS1302初始化
// 1. 在对DS1302操作之前需要关闭写保护,0x8e写0x00
// 2. 写入设置的时间
// 3. 打开写保护功能
void DS1302Init()
{uchar i;DS1302Write(0x8E, 0x00); // 关闭写保护for(i=0;i<sizeof(WRITE_RTC_ADDR);i++) // 设置时间{DS1302Write(WRITE_RTC_ADDR[i], TIME[i]);}DS1302Write(0x8E, 0x80); // 打开写保护}// 从DS1302中读取时间信息
void DS1302ReadTime()
{uchar i;for(i=0;i<sizeof(READ_RTC_ADDR);i++){TIME[i] = DS1302Read(READ_RTC_ADDR[i]);}
}
主程序中,数据处理函数中读取时间,并将时间处理后赋值给显示数据的数组,如下
void DataPros()
{DS1302ReadTime(); // 首先读取时间信息display[0]=smg[TIME[2]/16]; // 时display[1]=smg[TIME[2]&0x0f];display[2]=0x40; // - 号display[3]=smg[TIME[1]/16]; // 分display[4]=smg[TIME[1]&0x0f]; display[5]=0x40; // - 号display[6]=smg[TIME[0]/16]; // 秒display[7]=smg[TIME[0]&0x0f];
}
数码管显示函数与温度传感器使用示例中类似。主函数如下:
void main()
{DS1302Init(); // 初始化,第一次初始化后可以注释掉while(1){DataPros();DigDisplay();}
}
第一次初始化仿真结果:
当注释调初始化函数时,会显示当前时间,如下:
相关文章:

【51单片机系列】DS1302时钟模块
本文是关于DS1302时钟芯片的相关介绍。 文章目录 一、 DS1302时钟芯片介绍二、DS1302的使用2.1、DS1302的控制寄存器2.2、DS1302的日历/时钟寄存器2.3、片内RAM2.4、DS1302的读写时序 三、SPI总线介绍四、DS1302使用示例 一、 DS1302时钟芯片介绍 DS1302是DALLAS公司推出的涓流…...

深入理解C语言中冒泡排序(优化)
目录 引言: 冒泡排序概述: 优化前: 优化后(注意看注释): 解析优化后: 原理(先去了解qsort): 引言: 排序算法是计算机科学中的基础问题之一。在本篇博客中,…...

低代码选型注意事项
凭借着革命性的生产力优势,低代码技术火爆了整个IT圈。面对纷繁复杂的低代码和无代码产品,开发者该如何选择? 在研究低代码平台的年数上,本人已有3年,也算是个低代码资深用户了,很多企业面临低代码选型上的…...

Caffeine--缓存组件
Caffeine 概念缓存手动加载自动加载手动异步加载自动异步加载 驱逐策略基于容量基于时间基于引用 移除显式移除 概念 Caffeine是一个基于Java8开发的提供了近乎最佳命中率的高性能的缓存库。与ConcurrentMap有点相似。最根本的区别是ConcurrentMap将会持有所有加入到缓存当中的…...

Centos7:Jenkins+gitlab+node项目启动(1)
Centos7:Jenkinsgitlabnode项目启动(1) Centos7:Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7:Jenkinsgitlabnode项目启动(2) Centos7:Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7:Jenkinsgitlabnode项目启…...

starrocks集群fe/be节点进程守护脚本
自建starrocks集群,有时候服务会挂掉,无法自动拉起服务,于是采用supervisor进行进程守护。可能是版本的原因,supervisor程序总是异常,无法对fe//be进行守护。于是写了个简易脚本。 #!/bin/bash AppNameFecom.starrock…...

奇富科技跻身国际AI学术顶级会议ICASSP 2024,AI智能感知能力迈入新纪元
近日,2024年IEEE声学、语音与信号处理国际会议ICASSP 2024(2024 IEEE International Conference on Acoustics, Speech, and Signal Processing)宣布录用奇富科技关于语音情感计算的最新研究成果论文“MS-SENet: Enhancing Speech Emotion Re…...

如何在Android Termux中使用SFTP实现远程传输文件
文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问5. 配置固定远程连接地址6、结语 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFT…...

高频知识汇总 | 【操作系统】面试题汇总(万字长博通俗易懂)
前言 这篇我亲手整理的【操作系统】资料,融入了我个人的理解。当初我在研习八股文时,深感复习时的困扰,网上资料虽多,却过于繁杂,有的甚至冗余。例如,文件管理这部分,在实际面试中很少涉及&…...

【前端框架】NPM概述及使用简介
什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 npm是Node官方提供的包管理工具,他已经成了Node包的标准发布平台,用于Node包的发布、传播、依赖控制。npm提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布…...

C# LINQ
一、前言 学习心得:C# 入门经典第8版书中的第22章《LINQ》 二、LINQ to XML 我们可以通过LINQ to XML来创造xml文件 如下示例,我们用LINQ to XML来创造。 <Books><CSharp Time"2019"><book>C# 入门经典</book><…...

云原生机器学习平台cube-studio开源项目及代码简要介绍
1. cube-studio介绍 云原生机器学习平台cube-studio介绍:https://juejin.cn/column/7084516480871563272 cube-studio是开源的云原生机器学习平台,目前包含特征平台,支持在/离线特征;数据源管理,支持结构数据和媒体标…...

大小端存储是什么鬼?
以下内容为本人的著作,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/htYGddzO2xPl9kDN4lANpQ 大小端存储的划分是为了解决长度大于一个字节的数据类型内容在存储地址上以不同顺序分布的问题。 比如16位的short整形&…...

WEB:探索开源PDF.js技术应用
1、简述 PDF.js 是一个由 Mozilla 开发的开源 JavaScript 库,用于在浏览器中渲染 PDF 文档。它的目标是提供一个纯粹的前端解决方案,摆脱了依赖插件或外部程序的束缚,使得在任何支持 JavaScript 的浏览器中都可以轻松地显示 PDF 文档。 2、…...

数据分析之词云图绘制
试验任务概述:如下为所给CSDN博客信息表,分别汇总了ai, algo, big-data, blockchain, hardware, math, miniprog等7个标签的博客。对CSDN不同领域标签类别的博客内容进行词频统计,绘制词频统计图,并根据词频统计的结果绘制词云图。…...

【赠书第13期】边缘计算系统设计与实践
文章目录 前言 1 硬件架构设计 2 软件框架设计 3 网络结构设计 4 安全性、可扩展性和性能优化 5 推荐图书 6 粉丝福利 前言 边缘计算是一种新兴的计算模式,它将计算资源推向网络边缘,以更好地满足实时性、低延迟和大规模设备连接的需求。边缘计算…...

数据库01_增删改查
1、什么是数据?什么是数据库? 数据:描述事物的符号记录称为数据。数据是数据库中存储的基本对象。数据库:存放数据的仓库,数据库中可以保存文本型数据、二进制数据、多媒体数据等数据 2、数据库的发展 第一阶段&…...

MySQL——进阶篇
二、进阶篇🚩 1. 存储引擎🍆 1.1 MSQL体系结构 连接层: 连接处理,连接认证,每个客户端的权限 服务层: 绝大部分核心功能,可跨存储引擎 可插拔存储引擎: 需要的时候可以添加或拔掉…...

Python 网络编程之搭建简易服务器和客户端
用Python搭建简易的CS架构并通信 文章目录 用Python搭建简易的CS架构并通信前言一、基本结构二、代码编写1.服务器端2.客户端 三、效果展示总结 前言 本文主要是用Python写一个CS架构的东西,包括服务器和客户端。程序运行后在客户端输入消息,服务器端会…...

往年面试精选题目(前50道)
常用的集合和区别,list和set区别 Map:key-value键值对,常见的有:HashMap、Hashtable、ConcurrentHashMap以及TreeMap等。Map不能包含重复的key,但是可以包含相同的value。 Set:不包含重复元素的集合&#…...

解决服务器Tab键不能补全问题
编辑~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml 命令:vim ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml替换:<property name“<Super>Tab” type“string” value“switch_window…...

人工智能 机器学习 深度学习:概念,关系,及区别说明
如果过去几年,您读过科技主题的文章,您可能会遇到一些新词汇,如人工智能(Artificial Intelligence)、机器学习(Machine Learning)和深度学习(Deep Learning)等。这三个词…...

数据库——LAMP的搭建及MySQL基操
1.实验内容及原理 1. 在 Windows 系统中安装 VMWare 虚拟机,在 VMWare 中安装 Ubuntu 系统,并在 Ubuntu 中搭建 LAMP 实验环境。 2. 使用 MySQL 进行一些基本操作: (1)登录 MySQL,在 MySQL 中创建用户,并对…...

抗原设计与兔单B细胞技术的结合-卡梅德生物
随着生物医学研究的不断深入,抗体疗法作为治疗疾病的有力工具逐渐成为研究的焦点。而兔单B细胞技术作为抗体研究的创新方法,其与抗原设计的有机结合为获取定制抗体打开了崭新的创新之路。本文将深入探讨抗原设计与兔单B细胞技术相互融合的原理、优势&…...

在uniapp中使用背景渐变色与背景图不生效问题
list上有文字详情以及背景图,从背景可以看出是渐变色和 背景图片的结合。 因为使用到渐变色,所以要结合 background-blend-mode 属性来实现与背景图片叠加显示,否则只通过 background: linear-gradient(); background-image: url(); 设置不会…...

Java中XML的解析
1.采用第三方开元工具dom4j完成 使用步骤 1.导包dom4j的jar包 2.add as lib.... 3.创建核心对象, 读取xml得到Document对象 SAXReader sr new SAXReader(); Document doc sr.read(String path); 4.根据Document获取根元素对象 Element root doc.getRootElement(); …...

React快速入门之交互性
响应事件 创建事件处理函数 处理函数名常以handle事件名命名 function handlePlayClick() {alert(Playing);}传递事件处理函数 函数名、匿名两种方式! function PlayButton() {function handlePlayClick() {alert(Playing);}return (<Button handleClick{handl…...

浅谈WPF之ToolTip工具提示
在日常应用中,当鼠标放置在某些控件上时,都会有相应的信息提示,从软件易用性上来说,这是一个非常友好的功能设计。那在WPF中,如何进行控件信息提示呢?这就是本文需要介绍的ToolTip【工具提示】内容…...

Android Studio 如何隐藏默认标题栏
目录 前言 一、修改清单文件 二、修改代码 三、更多资源 前言 在 Android 应用中,通常会有一个默认的标题栏,用于显示应用的名称和一些操作按钮。但是,在某些情况下,我们可能需要隐藏默认的标题栏,例如自定义标题栏…...

对于c++的总结与思考
笔者觉得好用的学习方法:模板法 1.采用原因:由于刚从c语言面向过程的学习中解脱出来,立即把思路从面向过程转到面向对象肯定不现实,加之全新的复杂语法与操作,着实给新手学习这门语言带来了不小的困难。所以ÿ…...