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