www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 網(wǎng)上流傳比較多的C51版本是龐波的《25045操作標(biāo)準(zhǔn)子程序集41.c》,但是經(jīng)我實(shí)際使用過(guò)后發(fā)現(xiàn)有一些錯(cuò)誤,如&和&&的區(qū)別及一些邏輯的問(wèn)題。還有總是有人問(wèn)電路的接法,由于X25045的datasheet寫(xiě)的不清楚,

網(wǎng)上流傳比較多的C51版本是龐波的《25045操作標(biāo)準(zhǔn)子程序集41.c》,但是經(jīng)我實(shí)際使用過(guò)后發(fā)現(xiàn)有一些錯(cuò)誤,如&和&&的區(qū)別及一些邏輯的問(wèn)題。還有總是有人問(wèn)電路的接法,由于X25045的datasheet寫(xiě)的不清楚,的確很容易弄錯(cuò),這次就把接法的說(shuō)明也貼上來(lái)了。希望能夠?qū)Υ蠹矣袔椭?br/>分為兩個(gè)文件:X25045.h和X25045.C內(nèi)容如下
1、X25045.h

#ifndef __X25045_H__
#define __X25045_H__
/*
;軟 件 標(biāo) 題:25045操作標(biāo)準(zhǔn)子程序集
;軟 件 說(shuō) 明:X25045已經(jīng)停產(chǎn),替代產(chǎn)品為X5045
;_________________________________________

;原作者:龐波
;程序修改人:貓賊
;版本號(hào):
;_________________________________________
;貓賊:感謝原作者提供參考程序,雖然其中有一些錯(cuò)誤,但是其公開(kāi)源碼的方式值得敬佩。
;我沒(méi)有測(cè)試連續(xù)讀和連續(xù)寫(xiě)程序,不知道會(huì)不會(huì)有問(wèn)題,其他的函數(shù)都已經(jīng)正確了。
*/
/*
參考電路說(shuō)明:X25045/X5045
PIN1-CS :直接接到MCU的IO口
2-SO :直接接到MCU的IO口
3-WP :電阻上拉5V, 個(gè)人感覺(jué)接到MCU的IO口沒(méi)什么意義
4-VSS:GND
5-SI :直接接到MCU的IO口
6-SCK:直接接到MCU的IO口
7-RST:電阻上拉5V,該引腳直接與MCU的RST腳相連,注意該引腳不能接下拉電阻
8-VCC:+5V
應(yīng)用范例:
環(huán)境:AT89C2051,+5V供電,6MHz晶振頻率
編譯器:偉福,Keil C
1.設(shè)置狀態(tài)寄存器(設(shè)置/開(kāi)啟Watchdog)。狀態(tài)寄存器的值請(qǐng)?jiān)O(shè)置STATUS_REG
void main(void){
wrsr_cmd();//復(fù)位時(shí)間位和數(shù)據(jù)保護(hù)位寫(xiě)入狀態(tài)寄存器
//該語(yǔ)句最好放在起始位置,執(zhí)行完畢后Watchdog就設(shè)置為需要的時(shí)間參數(shù)。
//Watchdog其實(shí)在上電的時(shí)候就已經(jīng)開(kāi)始計(jì)時(shí)了,默認(rèn)的時(shí)間為1.4秒。
//狀態(tài)寄存器值默認(rèn)為00
//注意不要忘記喂狗rst_wdog();
........
}
2.寫(xiě)/讀一個(gè)字節(jié)到EEPROM。
void main(void){
..........
byte_write(0x55,0x01);//寫(xiě)一個(gè)字節(jié)數(shù)據(jù)0x55到的EEPROM,地址0x01
..........
Array_Vector = byte_read(0x01);//讀取0x01地址的內(nèi)容,如果之前沒(méi)有做過(guò)改變,則應(yīng)該為0X55
..........
}

*/

sbit SO =P1^3;/*25045輸出*/
sbit SI =P1^5;/*25045輸入*/
sbit SCK=P1^6;/*25045時(shí)鐘*/
sbit CS =P1^4;/*25045片選*/

#define STATUS_REG 0X00
/* Status register,設(shè)置DOG時(shí)間設(shè)置為1.4秒,無(wú)寫(xiě)保護(hù)
這是狀態(tài)寄存器的值,他的意義在于第5,第4位為WDI1,WDI0代表DOG的時(shí)間,00為1.4秒,01為600毫秒,10為200毫秒,00為dISAbLED
第3位和第2位為BL1,BL0,是寫(xiě)保護(hù)設(shè)置位,00為無(wú)保護(hù),01為保護(hù)180-1FF,10為保護(hù)100-1FF,11為保護(hù)000-1FF.第1位為WEL,
當(dāng)他為1時(shí)代表已經(jīng)"寫(xiě)使能"設(shè)置了,現(xiàn)在可以寫(xiě)了,只讀位.第0位為WIP,當(dāng)他為1時(shí)代表正在進(jìn)行寫(xiě)操作,是只讀*/
#define MAX_POLL0x99
/* Maximum number of polls
最大寫(xiě)過(guò)程時(shí)間,確定25045的最大的寫(xiě)入過(guò)程的時(shí)間*/

void wren_cmd(void);/*寫(xiě)使能子程序*/
void wrdi_cmd(void);/*寫(xiě)使能復(fù)位*/
void wrsr_cmd(void);/*復(fù)位時(shí)間位和數(shù)據(jù)保護(hù)位寫(xiě)入狀態(tài)寄存器*/
unsigned char rdsr_cmd(void);/*讀狀態(tài)寄存器*/
void byte_write(unsigned char aa,unsigned int dd);/*字節(jié)寫(xiě)入,aa為寫(xiě)入的數(shù)據(jù),dd為寫(xiě)入的地址*/
unsigned char byte_read(unsigned int dd);/*字節(jié)讀出,dd為讀出的地址,返回讀出的數(shù)據(jù)*/
void page_write(unsigned char aa1,unsigned char aa2,unsigned char aa3,unsigned char aa4,unsigned int dd);/*頁(yè)寫(xiě)入*/
void sequ_read(void);/*連續(xù)讀出*/
void rst_wdog(void);/*DOG復(fù)位*/

#endif/* __X25045_H__ */


2、X25045.C

#include
#include
#include "X25045.H"
#define uchar unsigned char
#define uint unsigned int

uchar code WREN_INST=0X06;
/* Write enable latch instruction (WREN)*/
uchar code WRDI_INST=0X04;
/* Write disable latch instruction (WRDI)*/
uchar code WRSR_INST=0X01;
/* Write status register instruction (WRSR)*/
uchar code RDSR_INST=0X05;
/* Read status register instruction (RDSR)*/
uchar code WRITE_INST=0X02;
/* Write memory instruction (WRITE)*/
/*寫(xiě)入25045的先導(dǎo)字,應(yīng)當(dāng)為0000A010,其中的A為寫(xiě)入25045的高位地址
將此WRITE_INST和寫(xiě)入高位地址相或后即為正確的寫(xiě)先導(dǎo)字*/
uchar code READ_INST=0X03;
/* Read memory instruction (READ)*/
/*讀出25045的先導(dǎo)字,應(yīng)當(dāng)為0000A011,其中的A為讀出25045的高位地址
將此READ_INST和讀出高位地址相或后即為正確的讀先導(dǎo)字*/
uint code BYTE_ADDR=0X55;
/* Memory address for byte mode operations*/
uchar code BYTE_DATA=0X11;
/*Data byte for byte write operation*/
uintcode PAGE_ADDR=0X1F;
/* Memory address for page mode operations*/
/*頁(yè)面寫(xiě)入的其始地址*/
uchar code PAGE_DATA1=0X22;
/* 1st data byte for page write operation*/
uchar code PAGE_DATA2=0X33;
/* 2nd data byte for page write operation*/
uchar code PAGE_DATA3=0X44;
/* 3rd data byte for page write operation*/

uchar code INIT_STATE=0x09;
/* Initialization value for control ports*/
uint code SLIC=0x30;
/* AddressLOCation of SLIC*/

void outbyt(uchar aa);/*輸出一個(gè)字節(jié)到25045中,不包括先導(dǎo)字等*/
uchar inputbyt();/*由25045輸入一個(gè)字節(jié),不包括先導(dǎo)字等額外的東西*/
void wip_poll(void);/*檢查寫(xiě)入過(guò)程是否結(jié)束*/


void delay(char n){
char a;
for(a=0;a}
/*25045操作子程序集*/
/*;**********************************************************
*
;* Name: WREN_CMD
;* Description: Set write enable latch
;* Function: This routine sends the command to enable writes to the EEPROM memory array or
;* status register
;* Calls: outbyt
;* Input: None
;* Outputs: None
;* Register Usage: A
;**************************************************************
*/
/*寫(xiě)使能子程序*/
void wren_cmd(void)
{
uchar aa;
SCK=0;/* Bring SCK low */
CS=0;/* Bring /CS low */
aa=WREN_INST;
outbyt(aa);/* Send WREN instruction */
delay(1);
SCK=0;/* Bring SCK low */
CS=1;/* Bring /CS high */
}

/*;********************************************************************
*
;* Name: WRDI_CMD
;* Description: Reset write enable latch
;* Function: This routine sends the command to disable writes to the EEPROM memory array or
;* status register
;* Calls: outbyt
;* Input: None
;* Outputs: None
;* Register Usage: A
;********************************************************************
*/
/*寫(xiě)使能復(fù)位子程序*/
void wrdi_cmd(void)
{
uchar aa;
SCK=0;/* Bring SCK low */
CS=0;/* Bring /CS low */
aa=WRDI_INST;
outbyt(aa);/* Send WRDI instruction */
delay(1);
SCK=0;/* Bring SCK low */
CS=1;/* Bring /CS high */
}


/*;***********************************************************************
*
;* Name: WRSR_CMD
;* Description: Write Status Register
;* Function: This routine sends the command to write the WD0, WD1, BP0 and BP0 EEPROM
;* bits in the status register
;* Calls: outbyt, wip_poll
;* Input: None
;* Outputs: None
;* Register Usage: A
;**********************************************************************
*/
/*寫(xiě)狀態(tài)寄存器子程序*/
void wrsr_cmd(void)
{
uchar aa;

wren_cmd();//寫(xiě)使能子程序

SCK=0;/* Bring SCK low */
CS=0;/* Bring /CS low */
aa=WRSR_INST;
outbyt(aa) ;/* Send WRSR instruction */
aa=STATUS_REG;
outbyt(aa);/* Send status register */
delay(1);
SCK=0;/* Bring SCK low */
CS=1;/* Bring /CS high */
wip_poll();/* Poll for completion of write cycle */

wrdi_cmd();//寫(xiě)使能復(fù)位,其實(shí)這句可以省略,每寫(xiě)一次就自動(dòng)復(fù)位
}





/*;*************************************************************************
*
;* Name: RDSR_CMD
;* Description: Read Status Register
;* Function: This routine sends the command to read the status register
;* Calls: outbyt, inputbyt
;* Input: None
;* Outputs: A = status registerXicor Application Note AN21
;* Register Usage: A
;********************************************************************
*/
/*讀狀態(tài)寄存器,讀出的數(shù)據(jù)放入到aa中*/
uchar rdsr_cmd (void)
{
uchar aa;
SCK=0;
CS=0;
aa=RDSR_INST;
outbyt(aa);
aa=inputbyt();
SCK=0;
CS=1;
return aa;
}







/*;**********************************************************************
*
;* Name: BYTE_WRITE
;* Description: Single Byte Write
;* Function: This routine sends the command to write a single byte to the EEPROM memory
array
;* Calls: outbyt, wip_poll
;* Input: None
;* Outputs: None
;* Register Usage: A, B
;***************************************************************
*/
/*字節(jié)寫(xiě)入,aa為寫(xiě)入的數(shù)據(jù),dd為寫(xiě)入的地址,對(duì)于25045而言為000-1FF*/
void byte_write(aa,dd)
uchar aa;
uint dd;
{
uchar tmp;

wren_cmd();//寫(xiě)使能子程序

SCK=0;
CS=0;
if(dd>0xff)
tmp =WRITE_INST | 0x08;
else
tmp = WRITE_INST;
outbyt(tmp);/* Send WRITE instruction including MSB of address */
/*將高位地址左移3位與寫(xiě)入先導(dǎo)字相或,得到正確的先導(dǎo)字寫(xiě)入25045*/
outbyt((uchar)(dd&0xff));
/*輸出低位地址到25045*/
outbyt(aa);
/*寫(xiě)入數(shù)據(jù)到25045的對(duì)應(yīng)單元*/
SCK=0;
CS=1;
wip_poll();
/*檢測(cè)是否寫(xiě)完*/

wrdi_cmd();//寫(xiě)使能復(fù)位,其實(shí)這句可以省略,每寫(xiě)一次就自動(dòng)復(fù)位
}



/*;***********************************************************************
*
;* Name: BYTE_READ
;* Description: Single Byte Read
;* Function: This routine sends the command to read a single byte from the EEPROM memory
array
;* Calls: outbyt, inputbyt
;* Input: None
;* Outputs: A = read byte
;* Register Usage: A, BXicor Application Note AN21
;*********************************************************************
*/
/*字節(jié)讀出,其中dd為讀出的地址,返回的值為讀出的數(shù)據(jù)*/
uchar byte_read(dd)
uint dd;
{
uchar cc,tmp;
SCK=0;
CS=0;
if(dd>0xff)
tmp =READ_INST | 0x08;
else
tmp = READ_INST;
outbyt(tmp);/* Send READ_INST instruction including MSB of address */
/*將高位地址左移3位與讀出先導(dǎo)字相或,得到正確的先導(dǎo)字寫(xiě)入25045*/
outbyt((uchar)(dd&0xff));
/*輸出低位地址到25045*/
cc=inputbyt();/*得到讀出的數(shù)據(jù)*/
SCK=0;
CS=1;
return cc;
}


/*;**********************************************************************
*
;* Name: PAGE_WRITE
;* Description: Page Write
;* Function: This routine sends the command to write three consecutive bytes to the EEPROM
;* memory array using page mode
;* Calls: outbyt, wip_poll
;* Input: None
;* Outputs: None
;* Register Usage: A, B
;**************************************************************************
*/
/*頁(yè)面寫(xiě)入,其中aa1,aa2,aa3,aa4為需要寫(xiě)入的4個(gè)數(shù)據(jù)(最大也就只能一次寫(xiě)入4個(gè)字,dd為寫(xiě)入的首地址*/
void page_write(aa1,aa2,aa3,aa4,dd)
uchar aa1,aa2,aa3,aa4;
uint dd;
{
SCK=0;
CS=0;
outbyt((((uchar)(dd-0XFF))<<3)|WRITE_INST);// Send WRITE instruction including MSB of address
//將高位地址左移3位與寫(xiě)入先導(dǎo)字相或,得到正確的先導(dǎo)字寫(xiě)入25045
outbyt((uchar)(dd));
//寫(xiě)入低位地址到25045
outbyt(aa1);
//寫(xiě)入數(shù)據(jù)1到25045的對(duì)應(yīng)單元
outbyt(aa2);
//寫(xiě)入數(shù)據(jù)2到25045的對(duì)應(yīng)單元
outbyt(aa3);
//寫(xiě)入數(shù)據(jù)3到25045的對(duì)應(yīng)單元
outbyt(aa4);
//寫(xiě)入數(shù)據(jù)4到25045的對(duì)應(yīng)單元
SCK=0;
CS=1;
wip_poll();
}




/*;**********************************************
*
;* Name: SEQU_READ
;* Description: Sequential Read
;* Function: This routine sends the command to read three consecutive bytes from the EEPROM
;* memory array using sequential mode
;* Calls: outbyt, inputbyt
;* Input: None
;* Outputs: A = last byte read
;* Register Usage: A, B
;************************************************************
*/
/*連續(xù)讀出,由于函數(shù)的返回值只能為1個(gè),對(duì)于連續(xù)讀出的數(shù)據(jù)只能使用指針作為函數(shù)的返回值才能做到返回一系列的數(shù)組*/
//sequ_read:
unsigned int *page_read(n,dd)
uchar n;//n是希望讀出的數(shù)據(jù)的個(gè)數(shù),n<=11
unsigned int dd;//dd是讀出數(shù)據(jù)的首地址
{
uchar i;
uchar pp[10];
unsigned int *pt=pp;
SCK=0;
CS=0;
outbyt((((uchar)(dd-0XFF))<<3)|READ_INST);
for (i=0;i{
pp[i]=inputbyt();
}
return (pt);
}
/*調(diào)用的方法如下
unsigned int *p;
p=page_read(4,100);
a=*(p)
b=*(p+1)
c=*(p+2)
d=*(p+3)
//abcd中存放25045中由100地址開(kāi)始的4個(gè)數(shù)據(jù)
*/
/* Send WRITE
mov DPTR, #PAGE_ADDR ; Set address of 1st byte to be read
clr sck ; Bring SCK low
clr cs ; Bring /CS low
mov A, #READ_INST
mov B, DPH
mov C, B.0
mov ACC.3, C
lcall outbyt ; Send READ instruction with MSB of address
mov A, DPL
lcall outbyt ; Send low order address byte
lcall inputbyt ; Read 1st data byte
lcall inputbyt ; Read 2nd data byte
lcall inputbyt ; Read 3rd data byte
clr sck ; Bring SCK low
setb cs ; Bring /CS high
ret*/




/*;*********************************************************************
*
;* Name: RST_WDOG
;* Description: Reset Watchdog Timer
;* Function: This routine resets the watchdog timer without sending a command
;* Calls: None
;* Input: None
;* Outputs: None
;* Register Usage: None
;***********************************************************************
*/
/*復(fù)位DOG*/
void rst_wdog (void)
{
CS=0;
CS=1;
}





/*;************************************************************************
*
;* Name: WIP_POLL
;* Description: Write-In-Progress Polling
;* Function: This routine polls for completion of a nonvolatile write cycle by examining the
;* WIP bit of the status register
;* Calls: rdsr_cmdXicor Application Note AN21
;* Input: None
;* Outputs: None
;* Register Usage: R1, A
;************************************************************************
*/
/*檢測(cè)寫(xiě)入的過(guò)程是否結(jié)束*/
void wip_poll(void)
{
uchar aa;
uchar my_flag;
for (aa=0;aa{
my_flag=rdsr_cmd();
if ((my_flag&0x01)==0) {aa=MAX_POLL;}/*判斷是否WIP=0,即判斷是否寫(xiě)入過(guò)程已經(jīng)結(jié)束,若結(jié)束就跳出,否則繼續(xù)等待直到達(dá)到最大記數(shù)值*/
}
//aa=1;
//while(aa){
//my_flag=rdsr_cmd();
//if ((my_flag&0x01)==0){
//aa=0;/*判斷是否WIP=0,即判斷是否寫(xiě)入過(guò)程已經(jīng)結(jié)束,若結(jié)束就跳出,否則繼續(xù)等待直到達(dá)到最大記數(shù)值*/
//}
//}
aa = 0;
}




/*;**************************************************************************
*
;* Name: OUTBYT
;* Description: Sends byte to EEPROM
;* Function: This routine shifts out a byte, starting with the MSB, to the EEPROM
;* Calls: None
;* Input: A = byte to be sent
;* Outputs: None
;* Register Usage: R0, A
;***********************************************************************
*/
/*輸出一個(gè)數(shù)據(jù)到25045,此數(shù)據(jù)可能為地址,先導(dǎo)字,寫(xiě)入的數(shù)據(jù)等*/
void outbyt(aa)
uchar aa;
{
uchar my_flag1,my_flag2,i;
my_flag1=aa;
for (i=0;i<8;i++)
{
my_flag2=my_flag1&0x80 ;
SI=my_flag2>>7;
delay(1);
SCK=0;
SCK=1; delay(3);
my_flag1 <<= 1 ;
}
SI=0;/*使SI處于確定的狀態(tài)*/
}






/*;***************************************************************************
*
;* Name: INPUTBYT
;* Description: Recieves byte from EEPROM
;* Function: This routine recieves a byte, MSB first, from the EEPROM
;* Calls: None
;* Input: None
;* Outputs: A = recieved byte
;* Register Usage: R0, A
;**********************************************************************
*/
/*得到一個(gè)數(shù)據(jù),此數(shù)據(jù)可能為狀態(tài)寄存器數(shù)據(jù),讀出的單元數(shù)據(jù)等*/
uchar inputbyt(void)
{
uchar aa,my_flag;
char i;
aa = 0;
for (i=7;i>=0;i--)
{
SCK=0;
//delay(1);
my_flag=SO;
SCK=1;

//delay(1);
my_flag <<= i;
aa |= my_flag ;
my_flag=0x00;
}
return aa;
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

為了提升設(shè)計(jì)效率和運(yùn)行安全性 ,對(duì)DL/T 834—2023《火力發(fā)電廠汽輪機(jī)防進(jìn)水和冷蒸汽導(dǎo)則》與DL/T 834—2003 《火力發(fā)電廠汽輪機(jī)防進(jìn)水和冷蒸汽導(dǎo)則》的設(shè)計(jì)、運(yùn)行和檢驗(yàn)及維護(hù)要求進(jìn)行了對(duì)比分析 , 總...

關(guān)鍵字: 標(biāo)準(zhǔn) 疏水 冷蒸汽 發(fā)電廠

電磁兼容(EMC)是指在同一電磁環(huán)境中,不同設(shè)備或系統(tǒng)能夠正常工作且互不干擾的狀態(tài)。在現(xiàn)代電子和通信領(lǐng)域,EMC是一個(gè)至關(guān)重要的概念,它不僅影響設(shè)備的性能,還關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和安全性。為了確保設(shè)備的EMC,各國(guó)都制...

關(guān)鍵字: 電磁兼容 EMC 標(biāo)準(zhǔn)

北京——2024年10月29日 亞馬遜云科技日前宣布,通過(guò)與光環(huán)新網(wǎng)與西云數(shù)據(jù)的緊密合作,在亞馬遜云科技(北京)區(qū)域和(寧夏)區(qū)域推出Amazon Lambda SnapStart功能,將基于Java Lambda函數(shù)的...

關(guān)鍵字: 函數(shù) 數(shù)據(jù)處理

北京2024年10月29日 /美通社/ -- 亞馬遜云科技日前宣布,通過(guò)與光環(huán)新網(wǎng)與西云數(shù)據(jù)的緊密合作,在亞馬遜云科技(北京)區(qū)域和(寧夏)區(qū)域推出Amazon Lambda SnapStart功能,將基于Java La...

關(guān)鍵字: START 亞馬遜 PS 函數(shù)

無(wú)線(xiàn)充電技術(shù),作為現(xiàn)代科技領(lǐng)域的一項(xiàng)創(chuàng)新,正逐步改變著我們的生活方式。從智能手機(jī)到電動(dòng)汽車(chē),無(wú)線(xiàn)充電的應(yīng)用場(chǎng)景日益廣泛,為用戶(hù)提供了前所未有的便捷性。然而,盡管無(wú)線(xiàn)充電技術(shù)發(fā)展迅速,其在標(biāo)準(zhǔn)和能效方面仍面臨諸多瓶頸,這些...

關(guān)鍵字: 無(wú)線(xiàn)充電 能效 標(biāo)準(zhǔn)

關(guān)于數(shù)據(jù)分析與可視化,以下介紹Pandas讀取數(shù)據(jù)以及保存數(shù)據(jù)的方法,畢竟我們很多時(shí)候需要讀取各種形式的數(shù)據(jù),以及將我們需要將所做的統(tǒng)計(jì)分析保存成特定的格式。

關(guān)鍵字: 函數(shù) Panda

深圳2024年8月15日 /美通社/ -- 近日,知名量化交易平臺(tái)水母量化正式推出了突破性的輪動(dòng)交易策略回測(cè)功能,目前已進(jìn)入公測(cè)階段。該功能實(shí)現(xiàn)了從策略設(shè)計(jì)、歷史回測(cè)到實(shí)盤(pán)自動(dòng)交易一體化流程,幫用戶(hù)解決了策略驗(yàn)證難、交易...

關(guān)鍵字: 編程 仿真 函數(shù) 開(kāi)源

隨著無(wú)人機(jī)的普及,越來(lái)越多的人開(kāi)始使用無(wú)人機(jī)進(jìn)行各種飛行任務(wù),但是不當(dāng)?shù)氖褂脮?huì)給公共安全和社會(huì)秩序帶來(lái)潛在的風(fēng)險(xiǎn),因此對(duì)于無(wú)人機(jī)使用的規(guī)定也變得越來(lái)越嚴(yán)格。本文將介紹無(wú)人機(jī)使用的標(biāo)準(zhǔn)和規(guī)定,以幫助大家正確使用無(wú)人機(jī)。

關(guān)鍵字: 無(wú)人機(jī) 標(biāo)準(zhǔn) UAV

智能家居作為新興領(lǐng)域,逐漸走入了人們的生活。智能家居系統(tǒng)是利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、智能云端控制、綜合布線(xiàn)技術(shù)、醫(yī)療電子技術(shù)依照人體工程學(xué)原理,融合個(gè)性需求,將與家居生活有關(guān)的各個(gè)子系統(tǒng)如安防、燈光控制、窗簾控...

關(guān)鍵字: 智能家居 標(biāo)準(zhǔn)

Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的吉多·范羅蘇姆于1990年代初設(shè)計(jì),作為一門(mén)叫做ABC語(yǔ)言的替代品。 Python提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單有效地面向?qū)ο缶幊獭?/p> 關(guān)鍵字: python 函數(shù) 對(duì)象編程

關(guān)閉