久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 公文素材 > 范文素材 > C語(yǔ)言學(xué)習(xí)感想

C語(yǔ)言學(xué)習(xí)感想

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-29 22:35:12 | 移動(dòng)端:C語(yǔ)言學(xué)習(xí)感想

C語(yǔ)言學(xué)習(xí)感想

┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊

論文報(bào)告紙

C語(yǔ)言學(xué)習(xí)感想

一C語(yǔ)言學(xué)習(xí)經(jīng)歷

學(xué)習(xí)C語(yǔ)言已經(jīng)大半年了,回想起這段學(xué)C語(yǔ)言的日子,經(jīng)歷了先苦后甜的過(guò)程。

早在上學(xué)期就已經(jīng)聽(tīng)說(shuō)過(guò)C語(yǔ)言的掛科率,高達(dá)50%,同學(xué)們談C色變。這種感覺(jué)在第一節(jié)課的時(shí)候終于得到了證實(shí),老師首先講授了學(xué)習(xí)C語(yǔ)言的技巧,記得最清楚的就是上課一定要記筆記,上課認(rèn)真聽(tīng),上機(jī)認(rèn)真做練習(xí)。接著老師給我們大體介紹了C語(yǔ)言的發(fā)展歷程以及在目前大學(xué)教育里的地位的扶搖直上。C語(yǔ)言最初是為開(kāi)發(fā)UNIX操作系統(tǒng)而設(shè)計(jì)的。C語(yǔ)言是介于匯編語(yǔ)言和高級(jí)語(yǔ)言的語(yǔ)言,C語(yǔ)言面向過(guò)程,高級(jí)語(yǔ)言面向?qū)ο螅珻語(yǔ)言較于高級(jí)語(yǔ)言的一個(gè)優(yōu)點(diǎn)就是能夠直接對(duì)地址進(jìn)行操作。最后老師對(duì)我們講解了計(jì)算機(jī)中的進(jìn)制問(wèn)題,那叫一個(gè)頭疼,老師以為我們?cè)谏蠈W(xué)期大體學(xué)過(guò),就匆匆講了一下,老師的快語(yǔ)速加上我較差的基本功,我徹底的暈了,不過(guò)幸好的是我那時(shí)并沒(méi)有放棄,反而全身心的把精力放在了記筆記上。這個(gè)小小的措施使得我有機(jī)會(huì)在課后仔細(xì)的復(fù)習(xí)和研究老師上課的內(nèi)容,最終弄懂弄通。

在第二節(jié)課上前面部分老師主要講了C語(yǔ)言的算法,這部分我在高中時(shí)接觸過(guò),所以大部分都聽(tīng)懂了,有不理解的照例做了筆記,課后再看幾遍也就會(huì)了。到了后半部分老師講了數(shù)據(jù)類型及基本運(yùn)算,這部分開(kāi)始還能聽(tīng)的懂,但隨著大量的新概念的輸入,腦子開(kāi)始迷糊了,我有開(kāi)始充分發(fā)揮我的強(qiáng)記能力,幾乎把老師說(shuō)出的每個(gè)我聽(tīng)不懂的字都記錄下來(lái),所以現(xiàn)在看我那一章的書(shū)密密麻麻的全是字。但這種方法確實(shí)幫了我不少忙。但自那節(jié)課后,我意識(shí)到了這種聽(tīng)課方式的弊端,這樣囫圇吞棗的記筆記,就浪費(fèi)了大把大把的上課時(shí)間,我開(kāi)始嘗試慢慢的強(qiáng)迫自己接受老師的講課內(nèi)容,開(kāi)始確實(shí)接受不進(jìn)去,甚至還想打瞌睡,但這種強(qiáng)迫式的學(xué)習(xí)開(kāi)始慢慢的發(fā)揮最用,我開(kāi)始能夠接受大量的新定義和邏輯算法,這令我無(wú)比興奮,我喜歡這這種聽(tīng)課很順的感覺(jué)。

接下來(lái)的課,由于前面的基礎(chǔ)打的好,所以聽(tīng)起課來(lái)沒(méi)什么困難,至少直到指針這一節(jié)是這樣的。為了更好的學(xué)習(xí)C語(yǔ)言,我還買了譚浩強(qiáng)的《C語(yǔ)言試題匯編》,做了大量的訓(xùn)練,漸漸的喜歡上了C語(yǔ)言,看著在電腦上運(yùn)行自己編寫(xiě)的小程序,無(wú)比興奮(編的小程序僅僅處于自己的愛(ài)好)。現(xiàn)在在短學(xué)期學(xué)習(xí)C語(yǔ)言的結(jié)構(gòu)體,指針和鏈表,我很遺憾的是真的如老師所言,我們?cè)诙虒W(xué)期根本沒(méi)心思好好學(xué),不過(guò)為了應(yīng)付下學(xué)期的二級(jí)考試,我還是準(zhǔn)備在暑假好好再學(xué)一下。

二C語(yǔ)言學(xué)習(xí)技巧(筆者自己的看法,不必錙銖必較)

1.一定要記筆記

2.課后一定要復(fù)習(xí),可以向老師拷PPT

3.買一本C語(yǔ)言練習(xí)冊(cè),自己有空就做做,大學(xué)里有的就是時(shí)間4.多多嘗試自己編寫(xiě)一些小程序,最好是自己感興趣的5.上機(jī)好好做題

三學(xué)習(xí)C語(yǔ)言的重要性(大家都是這樣說(shuō)的)

1C語(yǔ)言是CombinedLanguage(組合語(yǔ)言)的中英混合簡(jiǎn)稱。是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫(xiě)系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫(xiě)不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開(kāi)發(fā)上,而且各類科研都需要用到C語(yǔ)言,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。

2作為新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在時(shí)代發(fā)展的前列,掌握現(xiàn)代科學(xué)知識(shí),調(diào)整自己的知識(shí)結(jié)構(gòu)和能力結(jié)構(gòu),以適應(yīng)社會(huì)發(fā)展的要求。新世紀(jì)需要具有豐富的現(xiàn)代科學(xué)知識(shí),能夠獨(dú)立解決面臨的任務(wù),充滿活力,有創(chuàng)新意識(shí)的新型人才。尤其是掌握計(jì)算機(jī)的基本技能和語(yǔ)言。

共3頁(yè)第1頁(yè)

┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊

論文報(bào)告紙

四C語(yǔ)言的特點(diǎn)

1.C是中級(jí)語(yǔ)言。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。

2.C是結(jié)構(gòu)式語(yǔ)言。結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂、維護(hù)以及調(diào)試。C語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程序完全結(jié)構(gòu)化。

3.C語(yǔ)言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。另外C語(yǔ)言也具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。而且計(jì)算功能、邏輯判斷功能也比較強(qiáng)大,可以實(shí)現(xiàn)決策目的的游戲。

4.C語(yǔ)言適用范圍大。適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。

C語(yǔ)言對(duì)編寫(xiě)需要硬件進(jìn)行操作的場(chǎng)合,明顯優(yōu)于其它解釋型高級(jí)語(yǔ)言,有一些大型應(yīng)用軟件也是用C語(yǔ)言編寫(xiě)的。

C語(yǔ)言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫(xiě)系統(tǒng)軟件,三維,二維圖形和動(dòng)畫(huà)。它是數(shù)值計(jì)算的高級(jí)語(yǔ)言。

五C語(yǔ)言的優(yōu)點(diǎn)

簡(jiǎn)潔緊湊、靈活方便

C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書(shū)寫(xiě)形式自由,主要用小寫(xiě)字母表示。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)最基本的工作單元。

運(yùn)算符豐富

C語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C語(yǔ)言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。

數(shù)據(jù)結(jié)構(gòu)豐富

C語(yǔ)言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語(yǔ)言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。

共3頁(yè)第2頁(yè)

┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊

論文報(bào)告紙

共3頁(yè)第3頁(yè)

擴(kuò)展閱讀:c語(yǔ)言學(xué)習(xí)心得

1、只有頻繁用到或?qū)\(yùn)算速度要求很高的變量才放到data區(qū)內(nèi),如for循環(huán)中的計(jì)數(shù)值。2、其他不頻繁調(diào)用到和對(duì)運(yùn)算速度要求不高的變量都放到xdata區(qū)。3、常量放到code區(qū),如字庫(kù)、修正系數(shù)。4、邏輯標(biāo)志變量可以定義到bdata中。

在51系列芯片中有16個(gè)字節(jié)位尋址區(qū)bdata,其中可以定義8*16=128個(gè)邏輯變量。這樣可以大大降低內(nèi)存占用空間。定義方法是:bdatabitLedState;但位類型不能用在數(shù)組和結(jié)構(gòu)體中。

5、data區(qū)內(nèi)最好放局部變量。

因?yàn)榫植孔兞康目臻g是可以覆蓋的(某個(gè)函數(shù)的局部變量空間在退出該函數(shù)是就釋放,由別的函數(shù)的局部變量覆蓋),可以提高內(nèi)存利用率。當(dāng)然靜態(tài)局部變量除外,其內(nèi)存使用方式與全局變量相同;

6、確保程序中沒(méi)有未調(diào)用的函數(shù)。

在KeilC里遇到未調(diào)用函數(shù),編譯器就將其認(rèn)為可能是中斷函數(shù)。函數(shù)里用的局部變量的空間是不釋放,也就是同全局變量一樣處理。這一點(diǎn)Keil做得很愚蠢,但也沒(méi)辦法。7、如果想節(jié)省data空間就必須用large模式。

將未定義內(nèi)存位置的變量全放到xdata區(qū)。當(dāng)然最好對(duì)所有變量都要指定內(nèi)存類型。8、使用指針時(shí),要指定指針指向的內(nèi)存類型。

在C51中未定義指向內(nèi)存類型的通用指針占用3個(gè)字節(jié);而指定指向data區(qū)的指針只占1個(gè)字節(jié);指定指向xdata區(qū)的指針占2個(gè)字節(jié)。如指針p是指向data區(qū),則應(yīng)定義為:chardata*p;。還可指定指針本身的存放內(nèi)存類型,如:chardata*xdatap;。其含義是指針p指向data區(qū)變量,而其本身存放在xdata區(qū)。

以前沒(méi)搞過(guò)C51,大學(xué)時(shí)代跟單片機(jī)老師的時(shí)候也是搗鼓下匯編,現(xiàn)在重新搞單片機(jī),因?yàn)槭诸^資料不多,找到一些C51的程序,發(fā)現(xiàn)里面有這些關(guān)鍵字,不甚明了,沒(méi)辦法只好找了下,發(fā)現(xiàn)如下描述:

從數(shù)據(jù)存儲(chǔ)類型來(lái)說(shuō),8051系列有片內(nèi)、片外程序存儲(chǔ)器,片內(nèi)、片外數(shù)據(jù)存儲(chǔ)器,片內(nèi)程序存儲(chǔ)器還分直接尋址區(qū)和間接尋址類型,分別對(duì)應(yīng)code、data、xdata、idata以及根據(jù)51系列特點(diǎn)而設(shè)定的pdata類型,使用不同的存儲(chǔ)器,將使程序執(zhí)行效率不同,在編寫(xiě)C51程序時(shí),最好指定變量的存儲(chǔ)類型,這樣將有利于提高程序執(zhí)行效率(此問(wèn)題將在后面專門講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對(duì)應(yīng)不同的實(shí)際硬件系統(tǒng),也將有不同的編譯結(jié)果。

在51系列中data,idata,xdata,pdata的區(qū)別

data:固定指前面0x00-0x7f的128個(gè)RAM,可以用acc直接讀寫(xiě)的,速度最快,生成的代碼也最小。

idata:固定指前面0x00-0xff的256個(gè)RAM,其中前128和data的128完全相同,只是因?yàn)樵L問(wèn)的方式不同。idata是用類似C中的指針?lè)绞皆L問(wèn)的。匯編中的語(yǔ)句為:moxACC,@Rx.(不重要的補(bǔ)充:c中idata做指針式的訪問(wèn)效果很好)

xdata:外部擴(kuò)展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問(wèn)。

pdata:外部擴(kuò)展RAM的低256個(gè)字節(jié),地址出現(xiàn)在A0-A7的上時(shí)讀寫(xiě),用movxACC,@Rx讀寫(xiě)。這個(gè)比較特殊,而且C51好象有對(duì)此BUG,建議少用。但也有他的優(yōu)點(diǎn),具體用法屬于中級(jí)問(wèn)題,這里不提。

三、有關(guān)單片機(jī)ALE引腳的問(wèn)題

"單片機(jī)不訪問(wèn)外部鎖存器時(shí)ALE端有正脈沖信號(hào)輸出,此頻率約為時(shí)鐘振蕩頻率的1/6.每當(dāng)訪問(wèn)

外部數(shù)據(jù)存儲(chǔ)器是,在兩個(gè)機(jī)器周期中ALE只出現(xiàn)一次,即丟失一個(gè)ALE脈沖."這句話是不是有毛

病.我覺(jué)得按這種說(shuō)法,應(yīng)該丟失3個(gè)ALE脈沖才對(duì),我一直想不通是怎么回事,希望大蝦們幫幫我.

小弟感激涕零.

答:

其他所有指令每6個(gè)機(jī)器周期發(fā)出一個(gè)ALE,而MOVX指令占用12個(gè)機(jī)器周期只發(fā)出一個(gè)ALE

四、如何將一個(gè)INT型數(shù)據(jù)轉(zhuǎn)換成2個(gè)CHAR型數(shù)據(jù)?

經(jīng)keil優(yōu)化后,char1=int1/256,char2=int1%256或char1=int1>>8,char2=int1&0x00ff效率是一樣的。

五、在KEILC51上仿真完了,怎樣生成HEX文件去燒寫(xiě)??

右鍵點(diǎn)項(xiàng)目中Target1,選第二個(gè),在OUTPUT中選中CREATHEX

六、typedef和#define有何不同??

typedef和#define有何不同》》》如

typedefunsignedcharUCHAR;

#defineunsignedcharUCHAR;typedef命名一個(gè)新的數(shù)據(jù)類型,但實(shí)際上這個(gè)新的數(shù)據(jù)類型是已經(jīng)存在的,只不過(guò)是定義了

一個(gè)新的名字.

#define只是一個(gè)標(biāo)號(hào)的定義.

你舉的例子兩者沒(méi)有區(qū)別,但是#define還可以這樣用

#defineMAX100

#defineFUN(x)100-(x)

#defineLABEL

等等,這些情況下是不能用typedef定義的

七、請(qǐng)問(wèn)如何設(shè)定KELC51的仿真工作頻(時(shí)鐘)

用右鍵點(diǎn)擊左邊的的target1,然后在xtal一欄輸入

八、不同模塊怎樣共享sbit變量,extern不行?

把SBIT定義單獨(dú)放到一個(gè).H中,每個(gè)模塊都包含這個(gè).h文件

九、C51中對(duì)于Px.x的訪問(wèn)必須自己定義嗎?

是的。

如sbitP17=0x97;即可定義對(duì)P1.7的訪問(wèn)

十、SWITCH()語(yǔ)句中表達(dá)式不可以是位變量對(duì)嗎?

可以用位變量:

#include

#include

voidmain(){bitflag;

flag=0;

switch(flag){

case"0":{printf("0\\n");break;}

case"1":{printf("1\\n");break;}

default:break;}}

bit變量只有兩種狀態(tài),if語(yǔ)句足夠啦,!!!

十一、const常數(shù)聲明占不占內(nèi)存???

const只是用來(lái)定義“常量”,所占用空間與你的定義有關(guān),如:

constcodecstStr[]={"abc"};

占用代碼空間;而如:

constchardatacstStr[]={"abc"};

當(dāng)然占用內(nèi)存空間。

另外,#define之定義似乎不占用空間。

十二、philips的單片機(jī)P89C51RD+的擴(kuò)展RAM在C51中如何使用?

試一試將auxr.1清0,然后在c語(yǔ)言中直接聲明xdata類型的變量

十三、BUGofKeilC51

程序中用如下語(yǔ)句:constunsignedcharstrArr[]={"數(shù)學(xué)"};

結(jié)果發(fā)現(xiàn)strArr[]內(nèi)容為{0xCA,0xD1,0xA7},真奇怪!

凡是有0xfd,則會(huì)通通不見(jiàn)了,所以只能手工輸入內(nèi)碼了,例如ucharstrArr[]=

{0xCA,0xfd,0xd1,0xa7}(用Ultraedit會(huì)很方便)。

十四、KeilC51中如何實(shí)現(xiàn)代碼優(yōu)化?

菜單Project下Optionfortarget"Simulator"的C51.

看到Codeoptimization了嗎?

十五、請(qǐng)教c的!和~符號(hào)有甚區(qū)別??

!是邏輯取反,~是按位取反。

十六、c51編程,讀端口,還要不要先輸出1?

我怎么看到有的要,有的不要,請(qǐng)高手給講講,到底咋回事?謝了

要輸出1的,除非你能保證之前已經(jīng)是1,而中間沒(méi)有輸出過(guò)其他值。

十七、當(dāng)定時(shí)器1(T1)用于產(chǎn)生波特率時(shí),P3^5還是否可以用作正常的I/O口呢?

p3.5完全可以當(dāng)普通的io使用

十八、C51中INT轉(zhuǎn)換為2個(gè)CHAR?

各位高手:

C51中INT轉(zhuǎn)換為CHAR如何轉(zhuǎn)換諸如:

X=LOW(Z);

Y=HIGH(Z);

答:

x=(char)z;y=(char)(z>>8);

十九、如果我想使2EH的第7位置1的話,用位操作可以嗎?

現(xiàn)在對(duì)位操作指令我一些不太明白請(qǐng)各位多多指教:

如SETB07H表示的是20H.7置1,對(duì)嗎?(我在一本書(shū)上是這么看到的)

那么如果我想使2EH的第7位置1的話,象我舉的這個(gè)例子怎么表示呢?謝謝!

SETB77H

setb(2eh-20h)*8+7

20h-2fh每字節(jié)有8個(gè)可位操作(00h-7fh),其它RAM不可位直接操作

二十、char*addr=0xc000和charxdata*addr=0xc000有何區(qū)別?

char*addr=0xc000;

charxdata*addr=0xc000;

除了在內(nèi)存中占用的字節(jié)不同外,還有別的區(qū)別嗎?

char*addr=0xc000;是通用定義,指針變量addr可指向任何內(nèi)存空間的值;

charxdata*addr=0xc000;指定該指針變量只能指向xdata中的值;

后一種定義中該指針變量(addr)將少占用一個(gè)存儲(chǔ)字節(jié)。

ucharxdata*addr=0xc000;指針指向外ram;

如果:dataucharxdata*addr=0xc000;指針指向外ram但指針本身存在于內(nèi)ram(data)中

以此類推可以idataucharxdata*addr=0xc000;pdataucharxdata*addr=0xc000;dataucharidata*addr=0xa0;.........

二十一、while(p1_0)的執(zhí)行時(shí)間?

假設(shè),P1_0為單片機(jī)P1口的第一腳,請(qǐng)問(wèn),

while(P1_0){P1_0=0;}

while(!P1_0){

P1_0=1;}

以上代碼,在KEILC中,需要多長(zhǎng)時(shí)間,執(zhí)行完。能具體說(shuō)明while(P1_0)的執(zhí)行時(shí)間嗎?

仿真運(yùn)行看看就知道了,

我仿真了試了一下,約14個(gè)周期

二十二、怎樣編寫(xiě)C51的watchdog程序?

各位大蝦,我用KEILC51編寫(xiě)了一個(gè)帶外部開(kāi)門狗的程序,可程序無(wú)法運(yùn)行起來(lái),經(jīng)過(guò)查

找,發(fā)現(xiàn)程序在經(jīng)過(guò)C51編譯后,在MAIN()函數(shù)的前部增加了一端初始化程序,等到進(jìn)入

主程序設(shè)置開(kāi)門狗時(shí),開(kāi)門狗已經(jīng)時(shí)間到,將我的程序復(fù)位了,請(qǐng)問(wèn)我怎樣才能修改這一端

初始花程序,使他一運(yùn)行,就設(shè)置開(kāi)門狗?

可以在startup.a51中加入看門狗刷新指令,當(dāng)然用匯編,然后重新編譯startup.a,將他和你的程序連接即可。新的startup.a51會(huì)自動(dòng)代替系統(tǒng)默認(rèn)的啟動(dòng)模塊。

二十三、keilC51怎樣把修改的startup.a51加到工程文件中

直接加入即可

注意不要改動(dòng)?STACK,?C_START,?C_STARTUP等符號(hào)。startup.a51直接加入項(xiàng)目,不用修改也可?稍趦(nèi)面自己修改匯編的一些限制或堆棧指針。

二十四、關(guān)于波特率的設(shè)置

我在設(shè)定串口波特率時(shí)發(fā)現(xiàn)一個(gè)問(wèn)題:在晶體震蕩器為11.0592MHz時(shí),若設(shè)9600BPS的話,

TH1=0XFD,TL1=0XFD,而要設(shè)19200BPS的話,TH1、TL1有否變化,如果沒(méi)變,為什么?

如果變了,又為什么?(因?yàn)槲铱磿?shū)上倆個(gè)是一樣的),希望大家點(diǎn)撥。答:

當(dāng)電源控制寄存器(PCON)第BIT7(SMOD)為1時(shí)波特率加倍。

TH1和TL1的值不變.

二十五、如何在C中聲明保留這部分RAM區(qū)不被C使用?

我不知道在C源程序中怎么控制這個(gè),但在匯編程序中加入下面一段就行:

DSEGAT20H

AA:DS10

這樣C51就不會(huì)占用20H--29H了

或者在c51里這樣定義:

uchardataasm_buff[10]_at_0x20;

二十六、問(wèn)浮點(diǎn)運(yùn)算問(wèn)題

我在用C51時(shí)發(fā)現(xiàn)它對(duì)傳遞浮點(diǎn)參數(shù)的個(gè)數(shù)有限制,請(qǐng)問(wèn):

1)參數(shù)是以全局變量的形式傳遞的,請(qǐng)問(wèn)以全局變量的形式傳遞的參數(shù)也有限制嗎?

2)這種傳遞浮點(diǎn)參數(shù)的限制有多少呢?3)float*float的結(jié)果是float類型還是double類型?能否直接賦值給float類型的變量?答:

由于KEILC51的參數(shù)傳遞是通過(guò)R0-R7來(lái)傳遞的,所以會(huì)有限制。

不過(guò)KEIL提供了一個(gè)編譯參數(shù),可以支持更多參數(shù)的傳遞。具體

的內(nèi)容見(jiàn)KEIL的PDF文檔。

我建議你把多個(gè)要傳遞的參數(shù)定義到指針或結(jié)構(gòu)體中去,傳遞參

數(shù)通過(guò)指針或結(jié)構(gòu)進(jìn)行,這樣好一些。

第3個(gè)問(wèn)題回答是YES,你自己試試不就知道了。

二十七、如何在某一個(gè)地址定義ram

用_at_命令,這樣可以定位靈活一點(diǎn)的地址

ucharxdatadis_buff[16]_at_0x6020;//定位RAM

將dis_buff[16]定位在0x6020開(kāi)始的16個(gè)字節(jié)

二十八、keilc中,用什么函數(shù)可以得到奇偶校驗(yàn)位?

例如32位數(shù)據(jù),將四個(gè)字節(jié)相互異或后檢查P即可,若耽心P被改變,可用內(nèi)嵌匯編。

#include

unsignedcharparity(unsignedcharx){x^=x;

if(P)return(1);

elsereturn(0);}

unsignedcharparity2(unsignedintx){

#pragmaasm

mova,r7

xrlar6,a

#pragmaendasm

if(P)return(1);

elsereturn(0);}

友情提示:本文中關(guān)于《C語(yǔ)言學(xué)習(xí)感想》給出的范例僅供您參考拓展思維使用,C語(yǔ)言學(xué)習(xí)感想:該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


C語(yǔ)言學(xué)習(xí)感想》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.weilaioem.com/gongwen/747895.html
相關(guān)文章