①如果 fun.h 文件 已經(jīng)正確聲明了,那么main.c 只要 include "fun.h"就可以使用 fun.c 函數(shù)了。只怕是,fun.h 只有 聲明,而沒(méi)有 正確聲明。正確的 聲明,需要 條件編譯 聲明是 函數(shù)聲明 還是 外部函數(shù)聲明。
創(chuàng)新互聯(lián)公司長(zhǎng)期為成百上千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為梅江企業(yè)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站制作,梅江網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
② fun.c 中可能有多個(gè)函數(shù),而 main.c 并不需要 調(diào)用,如果 這些函數(shù) 在 程序過(guò)程沒(méi)有調(diào)用,那么 編譯器將放棄 該函數(shù)編譯,同時(shí) 發(fā)出 “未使用函數(shù)”警告,就不會(huì) 寫(xiě)進(jìn) 單片機(jī)了。
在單片機(jī)c語(yǔ)言中直接調(diào)用庫(kù)函數(shù)即可,具體如下:
#includeintrins.h // 聲明了void?_nop_(void);
_nop_(); // 產(chǎn)生一條NOP指令。
該函數(shù)的作用:對(duì)于延時(shí)很短的,要求在us級(jí)的,采用“_nop_”函數(shù),這個(gè)函數(shù)相當(dāng)匯編NOP指令,延時(shí)幾微秒。NOP指令為單周期指令,可由晶振頻率算出延時(shí)時(shí)間,對(duì)于12M晶振,延時(shí)1uS。
單片機(jī)又稱(chēng)單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。
單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱(chēng)前冠以形容詞——“智能型”,如智能型洗衣機(jī)等。
1、可以放參數(shù),因?yàn)関oid Delay(unsigned char x) ? ? //x為形參
例如:
a=3000*b/a;
Delay(a); ? ? ? ?//帶參數(shù)a到x,調(diào)用延時(shí)
2、delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。
C語(yǔ)言定義延時(shí)函數(shù)主要通過(guò)無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
// 定義一個(gè)延時(shí)xms毫秒的延時(shí)函數(shù)
void?delay(unsigned?int?xms)??//?xms代表需要延時(shí)的毫秒數(shù)
{
unsigned?int?x,y;
for(x=xms;x0;x--)
for(y=110;y0;y--);
}
使用#include調(diào)用庫(kù)函數(shù)。
C51語(yǔ)言的編譯器中包含有豐富的庫(kù)函數(shù),使用庫(kù)函數(shù)可以大大簡(jiǎn)化用戶(hù)程序設(shè)計(jì)的工作量,提高編程效率。每個(gè)庫(kù)函數(shù)都在相應(yīng)的頭文件中給出了函數(shù)原型聲明,在使用時(shí),必須在源程序的開(kāi)始處使用預(yù)處理命令#include將有關(guān)的頭文件包含進(jìn)來(lái)。
C51庫(kù)函數(shù)中類(lèi)型的選擇考慮到了8051單片機(jī)的結(jié)構(gòu)特性,用戶(hù)在自己的應(yīng)用程序中應(yīng)盡可能地使用最小的數(shù)據(jù)類(lèi)型,以最大限度地發(fā)揮8051單片機(jī)的性能,同時(shí)可減少應(yīng)用程序的代碼長(zhǎng)度。
單片機(jī)c語(yǔ)言編程是基于C語(yǔ)言的單片機(jī)編程。單片機(jī)的C語(yǔ)言采用C51編譯器(簡(jiǎn)稱(chēng)C51)。由C51產(chǎn)生的目標(biāo)代碼短,運(yùn)行速度高,存儲(chǔ)空間小,符合C語(yǔ)言的ANSI標(biāo)準(zhǔn),生成的代碼遵循Intel目標(biāo)文件格式,而且可與A51匯編語(yǔ)言PL/M51語(yǔ)言目標(biāo)代碼混合使用。51單片機(jī)支持三種高級(jí)語(yǔ)言,即PL/M,C和BASIC。C語(yǔ)言是一種通用的程序設(shè)計(jì)語(yǔ)言,其代碼率高,數(shù)據(jù)類(lèi)型及運(yùn)算符豐富,并具有良好的程序結(jié)構(gòu),適用于各種應(yīng)用的程序設(shè)計(jì),是使用較廣的單片機(jī)編程語(yǔ)言。
這程序是不對(duì)的,num這個(gè)參數(shù)會(huì)出現(xiàn)問(wèn)題,不可能兼顧兩個(gè)數(shù)碼管的數(shù)據(jù)。
#includecnm.h
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0};
sbit key1=P3^2;
sbit key2=P3^3;
sbit a=P1^7;
sbit b=P1^6;
sbit c=P1^5;
sbit d=P1^4;
uint num1,num2;
void delay(){
uint z;
z=5000;
while (z--);
}
uint key_scan(key)
{
uint num;
num=0;
if(key==0){
delay();
if (key==0){
num=1;
}
}
return(num);
}
void main()
{
num1=0;
num2=0;
while(1)
{
while(key_scan(key1)) //這里不懂?。。?/p>
{a=0 ;
num1++;
num1%=10;
P2=table[num1];
delay();
}
while(key_scan(key2)) //這里不懂?。?!
{ b=0;
num2++;
num2%=10;
P2=table[num];
delay();
}
}
a.c //源文件
int max(int x,int y)
{
int temp;
if(xy)
{
temp=x;
}
else
{
temp=y;
}
}
a.h
#ifndef A_H
#define A_H
int max(int x,int y);
#endif
main.c
#include"a.h"
void main()
{
int max(7,8);
}
大概就是這樣
大概就是這樣
本文題目:單片機(jī)c語(yǔ)言函數(shù)調(diào)用 單片機(jī)函數(shù)的調(diào)用
文章分享:http://www.rwnh.cn/article4/dodosoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、云服務(wù)器、App設(shè)計(jì)、網(wǎng)站策劃、靜態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)