基于单片机的GPS定位系统设计

1 系统硬件

1.1单片机模块

单片机的种类和型号可以说是有成百上千种,很多大的公司和企业都生产开发自己的单片机芯片,并且广泛应用于各种产品。Intel、 philips、 摩托罗拉、凌阳、宏晶等等种类繁多。大体上可以分为51系列单片机和非51系列单片机。
其主要特点是:属于增强型的80C51系列单片机,指令能够向上兼容。额定工作电压是3到5V,功耗相对较低,通用性强。程序存储空间有8K字节,完全够用。本设计选择的是每个机器周期含有12个时钟的型号,在实际使用中频率最高可以达到48MHz,刚好满足GPS信号接收机的刷新频率。不需要专门的编程器,可以快速地将程序烧录到单片机存储器中。具备异步串行通信接口(即UART接口),同时抗干扰能力较强。掉电模式下可由外部中断唤醒,方便于电池供电及便携设备。能够适应严酷的温度环境,最低温度零下40°C, 最高温度85℃都可以正常使用。单片机上有512字节的只读内存。芯片通用32个I/O端口。复位后:P1/P2/P3/P4为内部带有弱上拉电阻的准双向口,P0为开路漏极输出,用作母线延伸时,不需要外接上拉电阻,但当其用作I/O端口时,需要外接上拉电阻。ISP(可编程系统)/IAP(可编程应用程序),不用专门的程序编辑器,不用特殊的仿真器,可以直接通过串口(RXD/P3.0,TXD/P3.1)下载用户所需的程序,并在几秒钟内完成一片具有看门狗功能的EEPROM功能,总共有3个16位计时器/计数器。定时器T0、T1、T2外部中断4通道、降边中断或低电平触发电路,采用外部中断、低电平触发中断模式激发Power Dawn模式,通用异步收发传输器(UART)通过使用定时器软件可实现多个。单片机采取PDIP封装。
单片机下电模式:典型功耗小于0.1μA,其唤醒可通过外部中断。中断返回后,接着运行原程序。空闲模式:一般情况下的功耗为2mA。正常运行模式:一般情况下的功耗是4mA~7ma外部中断可以唤醒下电模式,适合运用于水表、煤气表、便携设备等电池电源系统以及方便携带的设备。
STC89C52RC引脚功能说明:
主电源引脚:
VCC(40引脚):电源电压
VSS(20引脚):接地
可编程输入输出引脚:
P0端口(P0.0~P0.7,39~32引脚):端口P0是一个8位双向I/O端口,具有漏极开路。作为输出端口,各个管脚都可驱动8个使用双极晶体管的数字电路。当将“1”写入端口P0时,它可以用作高阻抗输入。当访问外部程序和数据存储器时,端口P0还能提供低8位地址和8位数据的多路复用总线。这时,端口P0的内部上拉电阻是有效的。在闪存编程中,端口P0接收指令字节,但在程序验证中,端口P0反而输出指令字节。校验时,需将上拉电阻接在外部。
P1端口(P1.0~P1.7,1~8引脚):端口P1是具有内部上拉电阻的一个8位双向I/O端口。P1端口的输出缓冲器能够驱动(吸收或输出电流模式)4个TTL输入。当将1写入P1端口时,内部上拉电阻能将端口拉到很高的电位,这时可以用作输入端口。当使用端口p1作为输入端口时,由于存在内部上拉电阻,从外部拉下的引脚将会出现输出电流。
此外,P1.0和P1.1还可用作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),详情见表3-1-1:
内置上拉电阻。P2的输出缓冲器可以驱动(吸收或输出电流模式)4个TTL输入。当端口写入1时,内部上拉电阻将端口拉到较高的电平,可用作输入端口。当使用p2作为输入端口时,外部信号拉低的引脚会由于内部拉起电阻而输出电流。
当访问16位地址的外部程序存储器和外部数据存储器(例如执行“MOVX@DPTR”指令)时,P2发送高8位地址。当访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2端口pin的内容(即特殊寄存器(SFR)区域中P2寄存器的内容)在整个访问期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻器的8位双向I/O端口。P3的输出缓冲器可以驱动(吸收或输出电流模式)4个TTL输入。向端口写入1时,通过内部拉出电阻器将端口拉至高电位,并将其用作输入端口。当P3作为输入端口时,由于内部上拉电阻,由外部信号下拉的引脚将输入电流。在flash ROM编程或程序验证中,P3还接收一些控制信号。除了作为一个通用的I/O端口,P3端口还具有其他多路复用功能,如表3-1-2所示。
控制引脚:
RST(9引脚):重置输入。当输入的高电平达两个以上的连续机器循环时,它是有效的。用于达到单片机的复位和初始化操作。看门狗定时结束后,该引脚持续发出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可能会使该功能没有反应。在DISRTO默认状态下,复位高电平是可行的。
ALE(30引脚):地址锁存控制信号(ALE)在访问外部程序存储器时,会锁存住较低8位地址的输出脉冲。在闪存编程时,该引脚也用作编程输入脉冲。
一般来说,ALE以晶体振荡器六分之一的固定频率输出脉冲,可用作外部定时器或时钟。但特别强调的是,每次访问外部数据存储器时,ALE脉冲将会被跳过。
如有必要,将地址位8EH的SFR的第0位置“1”,ALE操作无效。在此位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被稍微拉高。此ALE启用标志位(地址位8EH的SFR的第0位)设置为在外部执行模式下对微控制器有效。
PSEN(29引脚):外接程序存储器选通信号,当单片机从外接程序存储器运行外界代码时,它在每一个机器循环中都要被激活两次,但当访问外界数据存储器时,它就不需要被激活。
EA/VPP(31引脚):访问外部程序存储器控制信号。为使其可以从0000H至FFFFH的外接程序存储器读取到指令,EA一定要接GND。请注意,应用加密方式1时,请重置内部锁定。为了其可以运行内部程序指令,应连接VCC。在闪存编程过程中,还要连接12伏VPP电压。
XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端口。
XTAL2(18引脚):振荡器反相放大器的输入端口。
特殊功能寄存器
在STC89C52RC片内存储器中,80H~FFH一共有128个单元位具有特殊功能寄存器(SFR),SFR的地址空间如下表3-1-3所示。
并不是所有的地址都能被定义,在80H~FFH共128个字节中只有一部分被定义。还有相当多的一部分并没有被定义。对没有被定义的单元读写将是无效的,读出的数值将不确定,而写入进去的数据也将会遗失。
不应将“1”写入还未被定义的单元,由于这些单元在将来的产品中有可能会被赋予新的功能,在这种情况下,复位后这些单元数值都将会是“0”。
STC89C52RC除了拥有计时器/计数器0与计时器/计数器1之外,还增添了一个计时器/计数器2、计时器/计数器2的控制和状态位位于T2CON(见表3-1-4)和T2MOD(见表3-1-7)。
计时器2是一个16位计时/计数器。通过对特殊功能的寄存器T2CON中的C/T2位进行设置,可将其视作计时器或计数器使用(T2CON的描述见表3-1-4所列)。计时器2有3种操作模式:捕获、自动加载(递增或递减计数)和波特率发生器,这3种模式由T2CON中的位进行选择(如表3-1-5所列)
捕获模式:
在捕获模式中,通过T2CON中的EXEN2得到2个选项。若EXEN2=0, 计时器2作为一个16位计时器或计数器(由T2CON中的C/位选择),溢出时置位为TF2(计时器2溢出标志位)。此位可用来生成中断(经由存在于使能IE寄存器的计时器2中断使能位)。若EXEN2=1,与上述描述类似,但增添了一个特性,即为外界输入T2EX由1变0时,将存在于计时器2的TL2和TH2的当前值各自捕捉到RCAP2L和RACP2H。此外,T2EX的负跳变使T2CON中的EXF2置1,EXF2和TF2一样可以发生中断(它的向量与定时器2溢出的中断地址一样,计时器2中断服务程序通过访问TF2和EXF2来弄清引发中断的原因),捕获模式如图3-1-2所示。在此模式中,TL2和TH2不需重新装载值,甚至当T2EX生成捕获时间的时候,计数器还是以T2EX的负跳变或振荡频率的1/2(12时钟模式)或者1/6(6时钟模式)计数。
自动加载(递增/递减计数器):
16位自动加载中,计时器2可通过C/T2配置为计时器/计数器,程序控制递增/递减。计数的方向根据DCEN(递减计数使能位)来确定,DCEN位于T2MMOD寄存器中,T2MOD寄存器每一位的功能描述如表3-1-7所示。当DCEN=0时,定时器2自行认定为向上计数;当DCEN=1时,计时器2可通过T2EX确定到底是递增还是递减计数。图3-1-3展示了当DCEN=0时,定时器2如何自行认定递增计数。在此种模式中,选哪种计数方式由设置EXEN2位来决定。假设EXEN2=0,定时器2依次递增计数直至0FFFFH,并且在其溢出后将TF2置1,再将RCAP2L和RCAP2H中的16位的数值当作重新加载的值输入定时器2。RCAP2L和RCAP2H的值是可以通过软件预先设置的。
使用者切勿将其置1。这些是在将来89C51系列单片机中用来实现的新特性。在这一情况下,要用到保留位,在复位或无效状态的情况下,它的值应为0;而在这些位的有效状态情况下,它的值为1。保留位读取到的值并不是确定的。
如果EXEN2=1,16位的重新装载可通过满溢或T2EX由1至0的负跳变来实现。在负跳变同时将EXF2置1。如果计时器2中断被充能,那么当TF2或EXF2置1时,定时器2实行递增计数,计数到0FFFFH后溢出并将TF2置1,同时还将产生中断。定时器2的溢出将使RCAP2L和RCAP2H中的16位值作为重新加载的值存入TL2和TH2。
当T2EX置0时,将会使定时器2开始递减计数。当TL2和TH2计数到与RCAP2L和RCAP2H中的值相同时,定时器将会产生中断。
波特率发生器模式:
定时器1或定时器2被寄存器T2CON的位TCLK和RCLK许可得到串行口发送和接收的波特率。当TCLK=0时,定时器1被当做串行口发送波特率的发生器;反之,定时器2被当做串行口发送波特率的发生器。RCLK对串行口接收到的波特率拥有一样的效果。通过这两位,串行口能获得不一样的接收和发送波特率,一个是由定时器1产生的,另一个是由定时器2产生的。
如图3-1-5所示为定时器工作在波特率的发生器模式的情况。与自动加载相似,当TH2溢出时,波特率发生器模式使定时器2寄存器重新装载值,其值由寄存器RCAP2H和RCAP2L的16位提供,寄存器RCAP2H和RCAP2L的值是通过软件来预先设置的。当工作在模式1和模式3的情况下,波特率由下面的公式所决定:
定时器可设置成“定时”或“计数”方式,在大多应用上,定时器都会被设置成“定时”方式(C/=0)。当定时器2作为定时器时,它的操作波特率发生器并不一样。通常情况下定时器2会作为定时器来使用,它会在每个机器循环依次递增(1/6或1/12振荡频率)。当定时器2作为波特率发生器使用时,它在6时钟模式下,以振荡器的频率递增(12时钟模式时为1/12振荡频率)。
如图3-1-5所示,定时器2处在波特率发生器模式,只有在寄存器T2CON中的RCLK和TCLK=1时,定时器2才会作为波特率发生器有效。应当注意的是TH2的溢出不会将TF2置1,也不能够产生中断。在这种情况下,当定时器被当做波特率发生器时,定时器2的中断不必被禁止。如果EXEN2(T2外界使能标志)被置1,在T2EX中从1至0的转换会将EXF2(T2外部标志位)置1,但并不能致使TH2和TL2重新加载。当定时器2被用为波特率发生器时,若有需要的话,T2EX可被当做附加的外部中断。
当计时器工作在波特率发生器模式下,就不用对TH2和TL2进行读或者写操作,每经过一个状态时间或者收到由T2进入的异步信号,定时器2将会加1。在这时,对TH2和TL2进行读或写操作都绝对不可能是准确的;可以对RCAP2寄存器进行读操作,但不能进行写操作,否则将导致自动加载产生错误。当对定时器2或者寄存器RCAP进行查询时。应先关闭定时器(清零TR2)之后在进行访问。表3-1-8列出了常用的波特率还有怎样用定时器2得到的这些波特率。
看门狗应用:
STC单片机有两种时钟模式,一种是单倍速,也就是12时钟模式,在这种模式下,STC单片机和除STC系列外的51单片机具有一样的机器循环,即12个振荡周期为一个机器循环;另一种是双倍速,又称6时钟模式,在这种模式下,STC单片机比其他51系列单片机运行速度快了接近一倍之多。

2 系统软件

2.1 初始化模块

初始化模块应该在通电开机后,实现单片机、LCD1602液晶显示屏和GPS模块的初始化。应该对单片机完成设置串口的工作模式、设置波特率和中断的工作模式;也要对液晶显示屏进行设置开机画面和显示模式的工作;同时也应该做到对GPS模块串口的成功通信。

2.2数据接收处理模块

NMEA-0183数据格式
NMEA-0183是由美国国家海洋电子协会给海上应用的电子设备规定的标准格式。它是在以前的海上应用的电子设备的标准格式0180和0182的基础之上,添加了GPS接收机发出的内容才完成的。现在大泛围采取应用的是Ver 2.00版本。目前除了少数初始时期的GPS接收机外,极大多数的GPS接收机都使用了这一种格式。这个协议是给在不同的GPS导航设备中设立一个一致的RTCM标准。这种数据格式的广泛使用让GPS接收模块的通用性和互换性大大提高。
此格式输出的语句运用的是ASCII字符码,包括了纬度、经度、速度、日期、时间、航向、以及卫星信号情况等信息。其串行通信默认参数为:波特率=9600bps,数据位=8bit,开始位=1bit,停止位=1bit,没有奇偶校验。
帧格式形如: a a c c c , d d d , d d d , … , d d d ∗ h h < C R > < L F >    1. aaccc,ddd,ddd,…,ddd*hh<CR><LF>    1. aaccc,ddd,ddd,,dddhh<CR><LF>  1.”:帧命令起始位;  
2. aaccc:地址域,前两位为识别符,后三位为语句名;  
3. ddd…ddd:数据;   
4. “”:校验和前缀;   
5. hh:校验和(check sum),在$和
之间全部字符ASCII码的校验和(每个字节都做异或运算,得到校验和以后,再变换成16进制格式的ASCII字符码。)   
6. :Carriage Return和Line Feed的缩写,回车和换行,表示帧结束。
输入语句
NMEA-0183输入语句是指GPS接收模块可以接收的语句。输入语句包括初始位置,时间,秒脉冲状态,差分模式,NMEA输出间隔等设置信息。这些是GPS接收机可以读取的语句。通常情况下初始化信息语句为PGRMI。
$GPRMI,(1),(2),(3),(4),(5),(6),(7)hh(CR)(LF)
1)纬度ddmm.mmmm(度分)格式(前面的0也会被发送);
(2)纬度半球分为N(北半球)或S(南半球);
(3)经度dddmm.mmmm(度分)格式(前面的0也会被发送);
(4)经度半球分为E(东经)或W(西经);
(5)国际协调日期,ddmmyy(日月年)格式;
(6)国际协调时间,hhmmss(时分秒)格式;
(7)接收机两种命令,分别为A和R,其中A为自动定位,R为机器重新启动。
输出语句
SiRF Star II的输出语句共有十余种之多,其主要语句有GPALM(历书数据)、GPGGA(GPS标准数据)、GPGSV(卫星状态)、GPVTG、GPRMC、GPGSA、PGRME、PGRMF、PGRMT、PGRMV(GARMIN定义的语句,3D速度信息)、LCGLL、LCVTG(NMEA标准语句)等。可以经GPS串口调试软件为SiRF Star II芯片传输命令语句,在此之后芯片会按照命令语句设置参数。
几种常用的数据格式如下:
1 .GPS标准数据(GPGGA),其结构为:
$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14)
(15)(CR)(LF)   
(1)国际协调时间,其格式是hhmmss.sss;
(2)纬度,格式是ddmm.mmmm(位数不够的则需在前面补0);
(3)纬度半球,N或S(北纬或南纬);
(4)经度,格式为dddmm.mmmm(位数不够的则需在前面补0);
(5)经度半球,E或W(东经或西经);
(6)定位质量效果指示,0表示定位无效,1表示定位有效;
(7)使用卫星的数量,从00到12(位数不足则需在前面补0);
(8)水平的精确度,由0.5至99.9;
(9) 天线距离海平面的高度,从-9999.9到9999.9米 ;
(10)高度单位,M表示长度单位米;
(11)大地椭球面相对海平面的高度,从-999.9到9999.9米;
(12) 和(10)一样;   
(13) 差分GPS数据间隔(RTCM SC-104),最后设立RTCM传送的秒数;   
(14) 差分参考基站标号,从0000到1023(位数不够的则需在前面补0);   
(15) 校验和。
2.可视卫星状态输出语句(GPGSV),其结构为:
$GPGSV,(1),(2),(3),(4),(5),(6),(7),…,(4),(5),(6),(7)(8)(CR)(LF)   
(1)GSV所有的语句电文数;   
(2)此刻GSV的语句号;   
(3)可视卫星的总数,00至12;   
(4)卫星的编号,由01至32;   
5)卫星的仰角,00至90度;   
6)卫星的方位角,000至359度,实际值;   
7)信噪比(C/No),00至99dB;无表示没有接收到讯号;  
8) 校验和。
3. 推荐最小的GPS/TRANSIT数据(GPRMC),其结构是:
G P R M C , ( 1 ) , ( 2 ) , ( 3 ) , ( 4 ) , ( 5 ) , ( 6 ) , ( 7 ) , ( 8 ) , ( 9 ) , ( 10 ) , ( 11 ) , ( 12 ) ∗ h h ( C R ) ( L F ) 当中“ G P ”是交谈识别符;“ R M C ”是语句识别符;“ h h ”为校验和,它代表了在“ GPRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)(LF) 当中“GP”是交谈识别符;“RMC”是语句识别符;“hh”为校验和,它代表了在“ GPRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11)(12)hh(CR)(LF)当中GP是交谈识别符;RMC是语句识别符;hh为校验和,它代表了在”和“
”之间全部字符的按位异或值(但不包含这两个字符)。
$GPRMC语句数据区的内容是:
(1)定位地点的UTC,hhmmss(时分秒)格式;
(2)定位的两种状态,分别是A和V,A表示有效定位,V表示无效定位;
(3)定位点的纬度,ddmm.mmmm(度分)格式;
(4)纬度半球,N(北半球)或S(南半球);
(5)定位点经度,dddmm.mmmm(度分)格式;
(6)经度半球,E(东半球)或W(西半球);
(7)地面的速率,000.0~999.9节;
8)地面航向,000.0~359.9度;
9)国际协调日期,ddmmyy(日月年)格式;
10)磁偏角,000.0~180度;
11)磁偏角方向,E(东)或W(西);
12)四种工作的模式:分别为A、D、E和N,A表示自主,D表示差分,E表示评估,N表示数据无效。

3 系统仿真

3.1 Proteus软件介绍

Proteus是来自英国LabcenterE1 ectronics公司的EDA工具软件.Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具-样的原理布图、PCB 自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus 为设计者建立了完备的电子设计开发环境。
Proteus软件具有以下两个重要特点:(1)互动的电路仿真。用户可以实时采用诸如RAM, ROM,键盘,马达,LED, LCD, AD/DA,部分SPI器件,部分IIC器件进行电路仿真。(2)仿真处理器及其外围电路。可以仿真51系列、AVR、PIC、 ARM等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配台显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建 立了完备的电子设计开发环境。
Keil软件是目前最流行的开发MCS-51系列单片机的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision) 将这些部份组合在一起。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
C51工具包的中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.0BJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由0H51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

4 仿真过程

在Proteus软件中搜索相关零部件,依据电路图连接,仔细检查是否有错误检查接线。完成电路图连接如图5-1
使用keil软件编译程序源码软件测试和修正,编译成功结果如图5-2
使用Virtual GPS模拟GPS信号,如图5-3
双击单片机烧写程序后上电测试运行结果,液晶显示如图5-3
调试过程可以分为三个部分:
第一部分:通过实践表明,电子装置即运用依照电路的完善参数安装设计也不可避免产生出较小的误差。因此,设计的时候,可能出现很多方面想不到的问题,在改善之后,运用了多种方式,通过各种各样的途径实现装置的技术指标。
第二部分:对于软件部分的调试,应用KEIL软件界面,在程序编辑的窗口,选好单片机的类型,编译程序源码,链接,通过软件仿真调试器。
第三部分:是软件和调试,实现GPS信号的液晶显示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/980515.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python量化交易——金融数据管理最佳实践——使用qteasy管理本地数据源

文章目录 统一定义的金融历史数据表最重要的数据表数据表的定义交易日历表的定义&#xff1a;交易日历表: trade_calendar qteasy是一个功能全面且易用的量化交易策略框架&#xff0c; Github地址在这里。使用它&#xff0c;能轻松地获取历史数据&#xff0c;创建交易策略并完…

如何使用ArcGIS Pro制作横向图例:详细步骤与实践指南

ArcGIS Pro&#xff0c;作为Esri公司推出的新一代地理信息系统&#xff08;GIS&#xff09;平台&#xff0c;以其强大的功能和灵活的操作界面&#xff0c;在地理数据处理、地图制作和空间分析等领域发挥着重要作用。 在地图制作过程中&#xff0c;图例作为地图的重要组成部分&…

C语言(18)------------>函数(1)

本文介绍C语言函数的定义、标准库和库函数、自定义函数、函数中形式参数和实际参数。通过举例子和画图的方式分解每一个知识点&#xff0c;并结合生活案例和已知知识来解释函数知识。从而使得读者对C语言的函数理解更加深入&#xff0c;学习到C语言开发软件的一些实用技巧。 一…

MaxCompute x DataWorks × DeepSeek,实现使用自定义数据集微调DeepSeek-R1蒸馏模型

一、整体概要 基于阿里云云原生大数据计算服务MaxCompute以及大数据开发治理平台DataWorks实现使用自定义数据集微调DeepSeek-R1蒸馏模型主要分为两大部分&#xff0c;一部分是基于人工智能平台PAI的微调训练&#xff0c;第二部分是通过如何构建自有数据集&#xff0c;并进行接…

unity大坐标抖动处理测试

第二幅图就是相机坐标是0 6360094 0的地方看见的模型&#xff0c;可以看见这个球体已经烂了 那么这里可以知道的是坐标太大了导致的&#xff0c;那么把所有物体共同偏移一下&#xff0c;即可得到第一幅图的效果&#xff0c;圆润的sphere又回来了 浮点数的计算是需要位数的&…

Sqli-labs

先搭建靶场 一、环境准备 建议采用虚拟机作为靶场环境的承载平台&#xff0c;以实现更灵活、可定制的配置&#xff0c;提高系统资源的利用效率。这种部署方式不仅能够有效隔离实验环境&#xff0c;降低对真实硬件的依赖&#xff0c;还能够快速搭建和复制实验场景&#xff0c;…

ES、OAS、ERP、电子政务、企业信息化(高软35)

系列文章目录 ES、OAS、ERP、电子政务、企业信息化 文章目录 系列文章目录前言一、专家系统&#xff08;ES&#xff09;二、办公自动化系统&#xff08;OAS&#xff09;三、企业资源规划&#xff08;ERP&#xff09;四、典型信息系统架构模型1.政府信息化和电子政务2.企业信息…

miqiu的分布式锁(四):MySQL悲观锁解析

&#x1f4da;miqiu的分布式锁&#xff08;四&#xff09;&#xff1a;MySQL悲观锁解析 &#x1f31f; 什么是悲观锁&#xff1f; “先下手为强&#xff01;”——这就是悲观锁的核心思想。它默认所有操作都可能发生并发冲突&#xff0c;在操作数据前会先加锁&#xff0c;确保…

openEuler环境下GlusterFS分布式存储集群部署指南

1.环境准备&#xff1a; os&#xff1a;openEuler 22.03 主机名 IP地址 主机用途 Rocky8192.168.121.160客户端 open-Euler1192.168.121.150节点1&#xff0c;提供两块6G硬盘open-Euler4192.168.121.153节点2&#xff0c;提供两块6G硬盘open-Euler5192.168.121.154 …

网络空间安全(6)web应用程序技术

前言 Web应用程序技术是指用于开发和构建基于Web的应用程序的技术和工具&#xff0c;涵盖了前端开发、后端开发、数据库管理、安全性等多个方面的技术。 一、前端开发技术 HTML/CSS/JavaScript&#xff1a;HTML用于构建网页结构&#xff0c;CSS用于进行样式设计&#xff0c;Jav…

unity中找不到AI > Navgation

预制体中的Add Component 选中Agent Type -> Open Agent Setting跳出没有安装包的提示后,点击安装

手机打电话时如何识别对方按下的DTMF按键的字符-安卓AI电话机器人

手机打电话时如何识别对方按下的DTMF按键的字符 --安卓AI电话机器人 一、前言 前面的篇章中&#xff0c;使用蓝牙电话拦截手机通话的声音&#xff0c;并对数据加工&#xff0c;这个功能出来也有一段时间了。前段时间有试用的用户咨询说&#xff1a;有没有办法在手机上&#xff…

LVGL -------矩阵3

static void event_cb(lv_event_t * e) { lv_obj_t * obj lv_event_get_target(e); uint32_t id lv_btnmatrix_get_selected_btn(obj); bool prev id 0 ? true : false; bool next id 6 ? true : false; if(prev || next) { /Find the checked button/ uint32_t i; for…

新建菜单项的创建之CmpGetValueListFromCache函数分析

第一部分&#xff1a; PCELL_DATA CmpGetValueListFromCache( IN PHHIVE Hive, IN PCACHED_CHILD_LIST ChildList, OUT BOOLEAN *IndexCached, OUT PHCELL_INDEX ValueListToRelease ) 0: kd> dv KeyControlBlock 0xe1…

大语言模型微调的基本概念介绍

大型语言模型&#xff08;LLMs&#xff09;正在以惊人的速度发展&#xff0c;LLM微调的潜力更是如此。大型语言模型的生命周期有几个关键步骤&#xff0c;今天我们将要介绍这个周期中最丰富、最耗时的一部分——LLM微调过程。 大语言模型的生命周期 在深入了解大型语言模型&a…

三次握手内部实现原理

socket()创建一个新的套接字 int socket(int domain, int type, int protocol)&#xff1b; 参数&#xff1a; domain&#xff1a;地址族&#xff0c;如 AF_INET&#xff08;IPv4&#xff09;&#xff0c;AF_INET6&#xff08;IPv6&#xff09; type&#xff1a;套接字类型&…

【Mac】git使用再学习

目录 前言 如何使用github建立自己的代码库 第一步&#xff1a;建立本地git与远程github的联系 生成密钥 将密钥加入github 第二步&#xff1a;创建github仓库并clone到本地 第三步&#xff1a;上传文件 常见的git命令 git commit git branch git merge/git rebase …

CSS—text文本、font字体、列表list、表格table、表单input、下拉菜单select

目录 1.文本 2.字体 3.列表list a.无序列表 b.有序列表 c.定义列表 4.表格table a.内容 b.合并单元格 3.表单input a.input标签 b.单选框 c.上传文件 4.下拉菜单 1.文本 属性描述color设置文本颜色。direction指定文本的方向 / 书写方向。letter-spacing设置字符…

【前端基础】1、HTML概述(HTML基本结构)

一、网页组成 HTML&#xff1a;网页的内容CSS&#xff1a;网页的样式JavaScript&#xff1a;网页的功能 二、HTML概述 HTML&#xff1a;全称为超文本标记语言&#xff0c;是一种标记语言。 超文本&#xff1a;文本、声音、图片、视频、表格、链接标记&#xff1a;由许许多多…

Java---入门基础篇(下)---方法与数组

前言 本篇文章主要讲解有关方法与数组的知识点 ,是基础篇的一部分 , 而在下一篇文章我会讲解类和对象的知识点 入门基础篇上的链接给大家放在下面啦 ! Java---入门基础篇(上)-CSDN博客 感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb; 欢迎各位大佬指点…