真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

單片機c51中c語言函數(shù) 單片機c語言編程300例c51

C51單片機用C語言寫個隨機函數(shù)該如何寫呢?最好不要加載其它頭文件的,能否實現(xiàn)呢?

#include stdlib.h

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站建設、成都網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元龍湖做網(wǎng)站,已為上家服務,為龍湖各地企業(yè)和個人服務,聯(lián)系電話:028-86922220

srand(dat); //初始化隨機種子,使用該函數(shù)需要上面的頭文件。如果不要這個,每次開機,對應的隨機數(shù)都是相同的. dat 也是需要是個隨機數(shù),一般可以用掉電存儲的方式來讀取。

dat = rand() ;

單片機C51中c語言函數(shù)(-nop-())求助

怎么用?

直接調(diào)用就行了啊

這幾個內(nèi)部函數(shù)實際上就是匯編指令,為了能在C中方便調(diào)用才做個函數(shù)

比如

_nop_();

NOP

bit _testbit_(bit);

i=_testbit_(j);

SETB C

JBC 0x20.1,L

CLR C

L:

MOV 0x20.0,C

單片機C語言編程,要使用C語言自帶的庫函數(shù),使用哪個宏包含命令?

使用#include調(diào)用庫函數(shù)。

C51語言的編譯器中包含有豐富的庫函數(shù),使用庫函數(shù)可以大大簡化用戶程序設計的工作量,提高編程效率。每個庫函數(shù)都在相應的頭文件中給出了函數(shù)原型聲明,在使用時,必須在源程序的開始處使用預處理命令#include將有關的頭文件包含進來。

C51庫函數(shù)中類型的選擇考慮到了8051單片機的結(jié)構(gòu)特性,用戶在自己的應用程序中應盡可能地使用最小的數(shù)據(jù)類型,以最大限度地發(fā)揮8051單片機的性能,同時可減少應用程序的代碼長度。

單片機c語言編程是基于C語言的單片機編程。單片機的C語言采用C51編譯器(簡稱C51)。由C51產(chǎn)生的目標代碼短,運行速度高,存儲空間小,符合C語言的ANSI標準,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言PL/M51語言目標代碼混合使用。51單片機支持三種高級語言,即PL/M,C和BASIC。C語言是一種通用的程序設計語言,其代碼率高,數(shù)據(jù)類型及運算符豐富,并具有良好的程序結(jié)構(gòu),適用于各種應用的程序設計,是使用較廣的單片機編程語言。

C51函數(shù)是如何調(diào)用

在你原來的函數(shù)基礎上,加上三個參數(shù),分別是:

1 要操作的PORT口

2 要進行的操作

3 要操作的引腳

當然,如果你的目標很明確,可以把以上三個參數(shù)裁剪掉一些,利于系統(tǒng)的效率提高.

下面是我寫的示例程序,你可能參考一下:

#includereg52.h

#define Pin0 0x01

#define Pin1 0x02

#define Pin2 0x04

#define Pin3 0x08

#define Pin4 0x10

#define Pin5 0x20

#define Pin6 0x40

#define Pin7 0x80

#define OPT_CPL 0x00 //----取反某位操作

#define OPT_CLR 0x01 //----清零某位操作

#define OPT_SET 0x02 //----置一某位操作

void Operate(

/*這里寫你原來的參數(shù),*/

unsigned char Port_Num,

unsigned char Opr_Style,

unsigned char Pins

)

{

//----如果在單片機PORT口范圍之內(nèi),剛讀取當前PORT口的狀

//----如果不在范圍之內(nèi),死循環(huán)

//----注意,為了效率起見,這個部分可以根據(jù)實際應用進行裁剪

if(Port_Num == 0)

{

Port_Num = P0;

}

else if(Port_Num == 1)

{

Port_Num = P1;

}

else if(Port_Num == 2)

{

Port_Num = P2;

}

else if(Port_Num == 3)

{

Port_Num = P3;

}

else

{

while(1);

}

//----如果是取反相應位,進行異或操作

//----如果清零相應位,則位與操作

//----如果置位相應位,則位或操作

//----如果都不在范圍之內(nèi),則死循環(huán)

//----這段代碼也根據(jù)實際情況裁剪

if(Opr_Style == OPT_CPL)

{

Port_Num ^= Pins;

}

else if(Opr_Style == OPT_CLR)

{

Port_Num = ~Pins;

}

else if(Opr_Style == OPT_SET)

{

Port_Num |= Pins;

}

else

{

while(1);

}

//----如果在單片機PORT口范圍之內(nèi),剛讀取當前PORT口的狀

//----如果不在范圍之內(nèi),死循環(huán)

//----注意,為了效率起見,這個部分可以根據(jù)實際應用進行裁剪

if(Port_Num == 0)

{

P0 = Port_Num;

}

else if(Port_Num == 1)

{

P1 = Port_Num;

}

else if(Port_Num == 2)

{

P2 = Port_Num;

}

else if(Port_Num == 3)

{

P3 = Port_Num;

}

else

{

while(1);

}

//----以上的內(nèi)容,可根據(jù)實際情況進行裁剪,以實現(xiàn)程序最優(yōu)化

//----添加你的功能的其他代碼---------------

}

void main(void)

{

//----使用示例:函數(shù)功能的同時,置位P2口的P2.0,P2.5,P2.7

Operate(/*這里寫你原來的參數(shù)*/2,OPT_SET,(Pin0|Pin5|Pin7));

//----使用示例:函數(shù)功能的同時,清零P1口的P1.2,P1.5,P2.6

Operate(/*這里寫你原來的參數(shù)*/1,OPT_CLR,(Pin2|Pin5|Pin6));

}

51單片機C語言中delay函數(shù)是怎么定義和使用的?

定義一個延時xms毫秒的延時函數(shù)

void delay(unsigned int xms) // xms代表需要延時的毫秒數(shù)

{

unsigned int x,y;

for(x=xms;x》0;x--)

for(y=110;y》0;y--);

}

使用:

void Delay10us(uchar Ms)

{

uchar data i;

for(;Ms》0;Ms--)

for(i=26;i》0;i--);

}

i=[(延時值-1.75)*12/Ms-15]/4

擴展資料

1、在C51中進行精確的延時子程序設計時,盡量不要或少在延時子程序中定義局部變量,所有的延時子程序中變量通過有參函數(shù)傳遞。

2、在延時子程序設計時,采用do…while,結(jié)構(gòu)做循環(huán)體要比for結(jié)構(gòu)做循環(huán)體好。

3、在延時子程序設計時,要進行循環(huán)體嵌套時,采用先內(nèi)循環(huán),再減減比先減減,再內(nèi)循環(huán)要好。

51單片機中,指針函數(shù) 在C語言程序 如何使用?

你好,比較方便的實現(xiàn)方式是在函數(shù)的外部申請數(shù)組;在調(diào)用函數(shù)的時候傳入數(shù)組的地址進行操作。如果一定要在子函數(shù)內(nèi)部申請空間并返回地址,那么需要在子函數(shù)內(nèi)部動態(tài)申請內(nèi)存空間。具體的方法一般是使用標準庫中的malloc函數(shù)。對于c51函數(shù)庫,參考這個鏈接:


文章名稱:單片機c51中c語言函數(shù) 單片機c語言編程300例c51
網(wǎng)址分享:http://weahome.cn/article/hgcggd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部