單片機(jī)c語(yǔ)言編程函數(shù)模塊 單片機(jī)c語(yǔ)言編程300例

單片機(jī)c語(yǔ)言模塊化編程,如何定義全局變量。

1.使用關(guān)鍵字extern修飾申明。

成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括興平網(wǎng)站建設(shè)、興平網(wǎng)站制作、興平網(wǎng)頁(yè)制作以及興平網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,興平網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到興平省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

例如:

主文件中定義 int g_ival = 0;

別的文件里面用 extern int g_ival;申明一下就可以用了。

2.模塊化編程是指將一個(gè)龐大的程序劃分為若干個(gè)功能獨(dú)立的模塊,對(duì)各個(gè)模塊進(jìn)行獨(dú)立開(kāi)發(fā),然后再將這些模塊統(tǒng)一合并為一個(gè)完整的程序。這是C語(yǔ)言面向過(guò)程的編程方法,可以縮短開(kāi)發(fā)周期,提高程序的可讀性和可維護(hù)性。

3.在單片機(jī)程序里,程序比較小或者功能比較簡(jiǎn)單的時(shí)候,我們不需要采用模塊化編程,但是,當(dāng)程序功能復(fù)雜、涉及的資源較多的時(shí)候,模塊化編程就能體現(xiàn)它的優(yōu)越性了。如前面我們寫(xiě)過(guò)的HT1380驅(qū)動(dòng)程序、獨(dú)立按鍵掃描程序和12864程序,每一個(gè)程序都是只用一個(gè)源文件編寫(xiě)就能完成,但是,當(dāng)您制作一個(gè)12864液晶日歷的時(shí)候,需要用到HT1380驅(qū)動(dòng)程序、獨(dú)立按鍵掃描程序和12864顯示程序,如果把這三個(gè)程序全部集中在一個(gè)源文件里,將導(dǎo)致主體程序臃腫且雜亂,這樣做并非不可取,只是降低了程序可讀性、可維護(hù)性和代碼的重用率。如果把這三個(gè)程序當(dāng)做三個(gè)獨(dú)立的模塊放到你的主體工程進(jìn)行模塊化編程,效果就不一樣了。實(shí)際上,模塊化編程就是模塊合并的過(guò)程,就是建立每個(gè)模塊的頭文件和源文件并將其加入到主體程序的過(guò)程。主體程序調(diào)用模塊的函數(shù)是通過(guò)包含模塊的頭文件來(lái)實(shí)現(xiàn),模塊的頭文件和源文件是模塊密不可分的兩個(gè)部分,缺一不可。所以,模塊化編程必須提供每個(gè)模塊的頭文件和源文件。

單片機(jī)C語(yǔ)言模塊化編程問(wèn)題:一個(gè)模塊需要使用到SCLK,另外一個(gè)模塊也用到SCLK,定義為sbit SCLK = P^0

使用exturn 申明外部定義是一種方法;也可以只在某一個(gè)頭文件中定義一次,其他模塊直接包含該頭文件;或者只在一個(gè)模塊中定義,然后在主程序的頭文件中,包含各個(gè)子模塊,并將有定義 的頭文件位置放在前,其他需用該定義的子模塊頭文件放在后就行。

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

使用#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ǔ)言。

單片機(jī)c語(yǔ)言的各個(gè)中斷函數(shù)模型

c51中斷函數(shù)的介紹

C51編譯器允許用c51創(chuàng)建中斷服務(wù)程序,大家僅僅需要關(guān)心中斷號(hào)和寄存器組的選擇就可以了。編譯器自動(dòng)產(chǎn)生中斷向量和程序的入棧及出棧代碼。在函數(shù)聲明時(shí)包括interrupt,將把所聲明的函數(shù)定義為一個(gè)中斷服務(wù)程序。另外,可以用using定義此中斷服務(wù)程序所使用的寄存器組。

一、中斷函數(shù)的定義

1、中斷函數(shù)定義的格式為:

函數(shù)類(lèi)型 函數(shù)名 interrupt n using n

其中:

Interrupt后面的n是中斷號(hào)。

關(guān)鍵字using后面的n是所選擇的寄存器組,取值范圍是0-3.

定義中斷函數(shù)時(shí),using是一個(gè)選項(xiàng),可以省略不用。如果不用則由編譯器選擇一個(gè)寄存器組作為絕對(duì)寄存器組。

2、8051的中斷過(guò)程通過(guò)使用interrupt關(guān)鍵字和中斷號(hào)來(lái)實(shí)現(xiàn),中斷號(hào)告訴編譯器中斷程序的入口地址。中斷號(hào)對(duì)應(yīng)著IE寄存器中的使能位,換句話說(shuō),IE寄存器中的0位對(duì)應(yīng)著外部中斷0,相應(yīng)的外部中斷0的中斷號(hào)是0.

IE寄存器中的使能位與外部中斷對(duì)應(yīng)關(guān)系:

中斷號(hào) 中斷源

0 外部中斷0

1 定時(shí)器0

2 外部中斷1

3 定時(shí)器1中斷

4 串行口中斷

5 定時(shí)器2中斷

二、使用中斷函數(shù)時(shí)要注意的問(wèn)題:

1. 在設(shè)計(jì)中斷時(shí),要注意的是哪些功能應(yīng)該放在中斷程序中,哪些功能應(yīng)該放在主程序中。一般來(lái)說(shuō)中斷服務(wù)程序應(yīng)該做最少量的工作,這樣做有很多好處。首先系統(tǒng)對(duì)中斷的反應(yīng)面更寬了,有些系統(tǒng)如果丟失中斷或?qū)χ袛喾磻?yīng)太慢將產(chǎn)生十分嚴(yán)重的后果,這時(shí)有充足的時(shí)間等待中斷是十分重要的。其次它可使中斷服務(wù)程序的結(jié)構(gòu)簡(jiǎn)單,不容易出錯(cuò)。

中斷程序中放入的東西越多,他們之間越容易起沖突。簡(jiǎn)化中斷服務(wù)程序意味著軟件中將有更多的代碼段,但可把這些都放入主程序中。中斷服務(wù)程序的設(shè)計(jì)對(duì)系統(tǒng)的成敗有至關(guān)重要的作用,要仔細(xì)考慮各中斷之間的關(guān)系和每個(gè)中斷執(zhí)行的時(shí)間,特別要注意那些對(duì)同一個(gè)數(shù)據(jù)進(jìn)行操作的ISR.

2. 中斷函數(shù)不能傳遞參數(shù)。

3. 中斷函數(shù)沒(méi)有返回值。

4. 中斷函數(shù)調(diào)用其他函數(shù),則要保證使用相同的寄存器組,否則出錯(cuò)。

5. 中斷函數(shù)使用浮點(diǎn)運(yùn)算要保存浮點(diǎn)寄存器的狀態(tài)。

文章標(biāo)題:單片機(jī)c語(yǔ)言編程函數(shù)模塊 單片機(jī)c語(yǔ)言編程300例
網(wǎng)址分享:http://muchs.cn/article16/doeihgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站電子商務(wù)、做網(wǎng)站、搜索引擎優(yōu)化、Google

廣告

聲明:本網(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)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)