本文目錄一覽:
C語言論文,跪求!!
C51語言應用編程的若干問題
摘 要 簡要介紹了Franklin C51交叉編譯器的特點,較詳細地討論了C51語言程序設計的基本技巧及其與彙編語言程序的混合編程、中斷處理過程等實際問題,並給出了相應的處理程序。
關鍵詞 Franklin C51編譯器 彙編語言 結構化設計 模塊 中斷
——————————————————————————–
在研製單片機應用系統時,彙編語言是一種常用的軟體工具。它能直接操作硬體,指令的執行速度快。但其指令系統的固有格式受硬體結構的限制很大,且難於編寫與調試,可移植性也差。隨著單片機硬體性能的提高,其工作速度越來越快,因此在編寫單片機應用系統程序時,更著重於程序本身的編寫效率。而Franklin C51交叉編譯器是專為80C51系列單片機設計的一種高效的C語言編譯器,使用它可以縮短開發周期,降低開發成本,而且開發出的系統易於維護,可靠性高,可移植性好,即使在代碼的使用效率上,也完全可以和彙編語言相比,因此目前它已成為開發80C51系列單片機的流行工具。
1 C51語言程序設計的基本技巧
C語言是一種高級程序設計語言,它提供了十分完備的規範化流程式控制制結構。因此採用C51語言設計單片機應用系統程序時,首先要儘可能地採用結構化的程序設計方法,這樣可使整個應用系統程序結構清晰,易於調試和維護。對於一個較大的程序,可將整個程序按功能分成若干個模塊,不同的模塊完成不同的功能。對於不同的功能模塊,分別指定相應的入口參數和出口參數,而經常使用的一些程序最好編成函數,這樣既不會引起整個程序管理的混亂,還可增強可讀性,移植性也好。
在程序設計過程中,要充分利用C51語言的預處理命令。對於一些常用的常數,如TRUE,FALSE,PI以及各種特殊功能寄存器,或程序中一些重要的依據外界條件可變的常量,可採用宏定義”#define”或集中起來放在一個頭文件中進行定義,再採用文件包含命令”#include”將其加入到程序中去。這樣當需要修改某個參量時,只須修改相應的包含文件或宏定義,而不必對使用它們的每個程序文件都作修改,從而有利於文件的維護和更新。現舉例說明如下:
例1 對於不同的單片機晶振,程序取不同的延時時間,而且可根據外界條件的變化修改延時時間的長短。對於這樣的程序,可利用宏定義和條件編譯來實現。程序如下:
#define flag 1
#ifdef flag==1
#define fosc 6M
delay=10;
#elif flag = = 0
#define fosc 8M
delay=12;
#else
#define fosc 12M
delay=20;
#endif
main()
{
for(I=0;Idelay;I++);
}
這樣源程序不作任何修改就可適用於不同時鐘頻率的單片機系統,並可根據情況的不同取不同的delay值,完成不同的目的。
2 C51語言與彙編語言程序的混合編程
C51編譯器能對C語言源程序進行高效率的編譯,生成高效簡潔的代碼,在絕大多數場合採用C語言編程即可完成預期的目的。但有時為了編程直觀或某些特殊地址的處理,還須採用一定的彙編語言編程。而在另一些場合,出於某種目的,彙編語言也可調用C語言。在這種混合編程中,關鍵是參數的傳遞和函數的返回值。它們必須有完整的約定,否則數據的交換就可能出錯。下面就以力源公司的10位串列A/D轉換器TLC1549 為例說明C語言程序與彙編語言程序的調用。
圖1 TLC1549管腳圖
1549的管腳圖和時序圖分別如圖1和圖2所示,假定DATA OUT接P1.0, 接P1.1,CLOCK接P1.2。
1549的具體特性請查閱有關資料。
圖2 TLC1549時序圖
例2 C語言程序與彙編語言程序的調用,其子程序如下:
PUBLIC AD ;入口地址
SEG_AD SEGMENT CODE ;程序段
RSEG SEG_AD
USING 0
AD: MOV R6,#00
MOV R7,#00
SETB P1.1
ACALL DELAY
CLR P1.1
ACALL DELAY
MOV R0,#10
RR0: SETB P1.2
NOP
CLR P1.2
DJNZ R0,RR0
ACALL DELAY
MOV 30H,R6 ;A/D轉換的高
;兩位保存在R6中
ACALL CIR
MOV R6,30H
SETB P1.2
NOP
CLR P1.2
MOV 30H,R6
ACALL CIR
MOV R6,30H
MOV R0,#8 ;A/D轉換的低
;8位保存在R7中
RR2: SETB P1.2
NOP
CLR P1.2
MOV 30H,R7
ACALL CIR
MOV R7,30H
DJNZ R0,RR2
RET
CIR: CLR C
MOV C,P1.0
MOV A,30H
RLC A
MOV 30H,A
RET
END
在以上程序中,函數的返回值為一無符號整型數,根據調用規則,返回值的高位必須在R6中,低位在R7中,這樣才可保證數據的傳遞不出錯。另外,在調用過程中,必須注意寄存器的入棧。這樣在以後用到A/D轉換時,在C語言中調用彙編語言子程序AD()即可。
3 C51中斷處理過程
C51編譯器支持在C源程序中直接開發中斷過程,因此減輕了使用彙編語言的繁瑣工作,提高了開發效率。中斷服務函數的完整語法如下:
void 函數名(void)[模式]
[再入]interrupt n [using r]
其中n(0~31)代表中斷號。C51編譯器允許32個中斷,具體使用哪個中斷由80C51系列的晶元決定。r(0~3)代表第r組寄存器。在調用中斷函數時,要求中斷過程調用的函數所使用的寄存器組必須與其相同。”再入”用於說明中斷處理函數有無”再入”能力。C51編譯器及其對C語言的擴充允許編程者對中斷所有方面的控制和寄存器組的使用。這種支持能使編程者創建高效的中斷服務程序,用戶只須在C語言下關心中斷和必要的寄存器組切換操作。
例3 設單片機的fosc=12MHz,要求用T0的方式1編程,在P1.0腳輸出周期為2ms的方波。
用C語言編寫的中斷服務程序如下:
#include reg51.h
sbit P1_0=P1^0;
void timer0(void)interrupt 1 using 1 {
/*T0中斷服務程序入口*/
P1_0=!P1_0;
TH0=-(1000/256); /*計數初值重裝*/
TL0=-(1000%256);
}
void main(void)
{
TMOD=0x01; /*T0工作在定時器方式1*/
P1_0=0;
TH0=-(1000/256); /*預置計數初值*/
TL0=-(1000%256);
EA=1; /*CPU開中斷*/
ET0=1; /*T0開中斷*/
TR0=1; /*啟動T0*/
do{}while(1);
}
在編寫中斷服務程序時必須注意不能進行參數傳遞,不能有返回值。
4 結論
C51編譯器不但可以縮短單片機控制系統的開發周期,而且易於調試和維護。此外,C51語言還有許多強大的功能,如提供豐富的庫函數供用戶直接調用,完整的編譯控制指令為程序調試提供必要的符號信息等等。總之,C51語言是廣大單片機開發人員的強有力的工具。
求一篇編程範式對c語言學習的影響的論文
畢業論文是教學科研過程的一個環節,也是學業成績考核和評定的一種重要方式。畢業論文的目的在於總結學生在校期間的學習成果,培養學生具有綜合地創造性地運用所學的全部專業知識和技能解決較為複雜問題的能力並使他們受到科學研究的基本訓練。
標題
標題是文章的眉目。各類文章的標題,樣式繁多,但無論是何種形式,總要以全部或不同的側面體現作者的寫作意圖、文章的主旨。畢業論文的標題一般分為總標題、副標題、分標題幾種。
總標題
總標題是文章總體內容的體現。常見的寫法有:
①揭示課題的實質。這種形式的標題,高度概括全文內容,往往就是文章的中心論點。它具有高度的明確性,便於讀者把握全文內容的核心。諸如此類的標題很多,也很普遍。如《關於經濟體制的模式問題》、《經濟中心論》、《縣級行政機構改革之我見》等。
②提問式。這類標題用設問句的方式,隱去要回答的內容,實際上作者的觀點是十分明確的,只不過語意婉轉,需要讀者加以思考罷了。這種形式的標題因其觀點含蓄,輕易激起讀者的注重。如《家庭聯產承包制就是單幹嗎?》、《商品經濟等同於資本主義經濟嗎?》等。
③交代內容範圍。這種形式的標題,從其本身的角度看,看不出作者所指的觀點,只是對文章內容的範圍做出限定。擬定這種標題,一方面是文章的主要論點難以用一句簡短的話加以歸納;另一方面,交代文章內容的範圍,可引起同仁讀者的注重,以求引起共鳴。這種形式的標題也較普遍。如《試論我國農村的雙層經營體制》、《正確處理中心和地方、條條與塊塊的關係》、《戰後西方貿易自由化剖析》等。
④用判定句式。這種形式的標題給予全文內容的限定,可伸可縮,具有很大的靈活性。文章研究對象是具體的,面較小,但引申的思想又須有很強的概括性,面較寬。這種從小處著眼,大處著手的標題,有利於科學思維和科學研究的拓展。如《從鄉鎮企業的興起看中國農村的希望之光》、《科技進步與農業經濟》、《從「勞動創造了美」看美的本質》等。
⑤用形象化的語句。如《激勵人心的治理體制》、《科技史上的曙光》、《普照之光的理論》等。
標題的樣式還有多種,作者可以在實踐中大膽創新。
副標題和分標題
為了點明論文的研究對象、研究內容、研究目的,對總標題加以補充、解說,有的論文還可以加副標題。非凡是一些商榷性的論文,一般都有一個副標題,如在總標題下方,添上「與××商榷」之類的副標題。
另外,為了強調論文所研究的某個側重面,也可以加副標題。如《如何看待現階段勞動報酬的差別——也談按勞分配中的資產階級權利》、《開發蛋白質資源,提高蛋白質利用效率——探討解決吃飯問題的一種發展戰略》等。
設置分標題的主要目的是為了清楚地顯示文章的層次。有的用文字,一般都把本層次的中心內容昭然其上;也有的用數碼,僅標明「一、二、三」等的順序,起承上啟下的作用。需要注重的是:無論採用哪種形式,都要緊扣所屬層次的內容,以及上文與下文的聯繫緊密性。
目錄
一般說來,篇幅較長的畢業論文,都沒有分標題。設置分標題的論文,因其內容的層次較多,整個理論體系較龐大、複雜,故通常設目錄。
設置目錄的目的主要是:
1.使讀者能夠在閱讀該論文之前對全文的內容、結構有一個大致的了解,以便讀者決定是讀還是不讀,是精讀還是略讀等。
2.為讀者選讀論文中的某個分論點時提供方便。長篇論文,除中心論點外,還有許多分論點。當讀者需要進一步了解某個分論點時,就可以依靠目錄而節省時間。
目錄一般放置在論文正文的前面,因而是論文的導讀圖。要使目錄真正起到導讀圖的作用,必須注重:
1.準確。目錄必須與全文的綱目相一致。也就是說,本文的標題、分標題與目錄存在著一一對應的關係。
2.清楚無誤。目錄應逐一標註該行目錄在正文中的頁碼。標註頁碼必須清楚無誤。
3.完整。目錄既然是論文的導讀圖,因而必然要求具有完整性。也就是要求文章的各項內容,都應在目錄中反映出來,不得遺漏。
目錄有兩種基本類型:
1.用文字表示的目錄。
2.用數碼錶示的目錄。這種目錄較少見。但長篇大論,便於讀者閱讀,也有採用這種方式的。
內容提要
內容提要是全文內容的縮影。在這裡,作者以極經濟的筆墨,勾畫出全文的整體面目;提出主要論點、揭示論文的研究成果、簡要敘述全文的框架結構。
內容提要是正文的附屬部分,一般放置在論文的篇首。
寫作內容提要的目的在於:
1.為了使指導老師在未審閱論文全文時,先對文章的主要內容有個大體上的了解,知道研究所取得的主要成果,研究的主要邏輯順序。
2.為了使其他讀者通過閱讀內容提要,就能大略了解作者所研究的問題,假如產生共鳴,則再進一步閱讀全文。在這裡,內容提要成了把論文推薦給眾多讀者的「廣告」。
因此,內容提要應把論文的主要觀點提示出來,便於讀者一看就能了解論文內容的要點。論文提要要求寫得簡明而又全面,不要啰哩啰嗦抓不住要點或者只是乾巴巴的幾條筋,缺乏說明觀點的材料。
內容提要可分為報道性提要和指示性提要。
報道性提要,主要介紹研究的主要方法與成果以及成果分析等,對文章內容的提示較全面。
指示性提要,只簡要地敘述研究的成果(數據、看法、意見、結論等),對研究手段、方法、過程等均不涉及。畢業論文一般使用指示性提要。
關鍵詞
關鍵詞是標示文獻關鍵主題內容,但未經規範處理的主題詞。它是為了文獻標引工作,從論文中選取出來,用以表示全文主要內容信息款目的單詞或術語。一篇論文可選取3~8個詞作為關鍵詞。
正文
一般來說,學術論文主題的內容應包括以下三個方面:1.事實根據(通過本人實際考察所得到的語言、文化、文學、教育、社會、思想等事例或現象)。提出的事實根據要客觀、真實,必要時要註明出處;2.前人的相關論述(包括前人的考察方法、考察過程、所得結論等)。理論分析中,應將他人的意見、觀點與本人的意見、觀點明確區分。無論是直接引用還是間接引用他人的成果,都應該註明出處;3.本人的分析、論述和結論等。做到使事實根據、前人的成果和本人的分析論述有機地結合,注意其間的邏輯關係。
結論
結論應是畢業論文的最終的、總體的結論,換句話說,結論應是整篇論文的結局、是整篇論文的歸宿,而不是某一局部問題或某一分支問題的結論,也不是正文中各段的小結的簡單重複。結論是該論文結論應當體現作者更深層的認識,且是從全篇論文的全部材料出發,經過推理、判斷、歸納等邏輯分析過程而得到的新的學術總觀念、總見解。結論可采「結論」等字樣,要求精鍊、準確地闡述自己的創造性工作或新的見解及其意義和作用,還可提出需要進一步討論的問題和建議。結論應該準確、完整、明確、精練。
C語言普通論文
1、論文題目:要求準確、簡練、醒目、新穎。
2、目錄:目錄是論文中主要段落的簡表。(短篇論文不必列目錄)
3、提要:是文章主要內容的摘錄,要求短、精、完整。字數少可幾十字,多不超過三百字為宜。
4、關鍵詞或主題詞:關鍵詞是從論文的題名、提要和正文中選取出來的,是對錶述論文的中心內容有實質意義的辭彙。關鍵詞是用作機系統標引論文內容特徵的詞語,便於信息系統彙集,以供讀者檢索。 每篇論文一般選取3-8個辭彙作為關鍵詞,另起一行,排在「提要」的左下方。
主題詞是經過規範化的詞,在確定主題詞時,要對論文進行主題,依照標引和組配規則轉換成主題詞表中的規範詞語。
5、論文正文:
(1)引言:引言又稱前言、序言和導言,用在論文的開頭。 引言一般要概括地寫出作者意圖,說明選題的目的和意義, 並指出論文寫作的範圍。引言要短小精悍、緊扣主題。
〈2)論文正文:正文是論文的主體,正文應包括論點、論據、 論證過程和結論。主體部分包括以下內容:
a.提出-論點;
b.分析問題-論據和論證;
c.解決問題-論證與步驟;
d.結論。
6、一篇論文的參考文獻是將論文在和寫作中可參考或引證的主要文獻資料,列於論文的末尾。參考文獻應另起一頁,標註方式按《GB7714-87文後參考文獻著錄規則》進行。
中文:標題–作者–出版物信息(版地、版者、版期):作者–標題–出版物信息
所列參考文獻的要求是:
(1)所列參考文獻應是正式出版物,以便讀者考證。
(2)所列舉的參考文獻要標明序號、著作或文章的標題、作者、出版物信息。
C語言的用途,定位及特點(論文)
1.2 C 語言的特點
C 語言發展如此迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的
功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。
用C 語言加上一些彙編語言子程序, 就更能顯示C 語言的優勢了, 象PC- DOS 、
WORDSTAR等就是用這種方法編寫的。歸納起來C 語言具有下列特點:
1. C是中級語言
它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以象
彙編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化, 即程序的各個部分除了必要的
信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調
試。C 語言是以函數形式提供給用戶的, 這些函數可方便的調用, 並具有多種循
環、條件語句控制程序流向, 從而使程序完全結構化。
3. C語言功能齊全
C 語言具有各種各樣的數據類型, 並引入了指針概念, 可使程序效率更高。另
外C 語言也具有強大的圖形功能, 支持多種顯示器和驅動器。而且計算功能、邏輯
判斷功能也比較強大, 可以實現決策目的。
4. C語言適用範圍大
C 語言還有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於
多種機型。
c語言課程設計論文
談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是「讓我歡喜讓我憂。」歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,你就可以理直氣壯地對他人說「我是電腦高手!」,而且以後若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如「少林武功」一般博大精深,太難學了。其實就筆者認為C語言並非是「difficult(困難)」的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。
了解一些基本知識
一.C語言的背景
就個人感觸,無論學習哪門語言首先應該了解一下自己所學語言的背景,也可以說它的發展史。
C語言屬於高級程序語言的一種,它的前身是「ALGOL」。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的局限性,因為它只能用於UNIX系統上。然而隨著科學技術的進步,計算機工業的發展,C語言逐漸脫離UNIX。1987年美國標準化協會制定了C語言的國際標準,簡稱「ANSI C」,從此以後它便成為一種廣泛使用的程序語言。C語言的優點很多,主要的有如下四點:
1.兼備高級語言與低級語言的優點,屬於一種中間語言。
2.它是一種結構化程序設計語言,非常適合結構化程序設計。
3.有較豐富的數據類型、運算符以及函數供以選用。
4.直接與內存打交道,使修改、編輯其他程序與文檔變得輕鬆,簡單。
二.二大語系二種不同的學習方法
其實高級程序語言分為兩大語系。例如:C,C++(C語言的擴展),QBASIC,VB(BASIC的可視化),JAVAs cript,Js cript ,VBs cript,JAVA,ASP,FOXPRO,PERL等等。一路是以C為主的程序語言,例如:JAVAs cript,JAVA等,這類語言在函數的調用,程序語句的書寫,循環的控制都極為相似。另一路是以BASIC為首的程序語言,例如:FOXPRO,VBs cript等,此類語言同樣具有相似的函數調用,程序語句書寫以及循環控制,但與C語系是不同的。因此若是您以前是從QBASIC起家的,那麼在學習C語言前最好是先洗洗腦,千萬不要把學習BASIC的方法以及思路用在C身上。
講到這裡,我想大家對C語言一定有了感性認識吧!下面讓我們再升華一下,全方位親密接觸它。學習C語言必須從以下四點入手,也就是說,只要你能掌握這四點的內容,那麼基本上就大功告成了。
親密接觸C語言
一.輸入輸出
C語言的輸入輸出是非常嚴格的,或許在其他程序語言中我們可以不關心這個問題,但在C語言中,我們必須要徹底了解它。由於篇幅有限,因此筆者不能詳談,有興趣的朋友可以參考由著名程序語言教授譚浩強先生主編,由清華大學出版社出版的《C程序設計第二版》。不過這裡筆者還是有幾點要簡單的談一下。
1.二維浮點數數組的輸入
二維浮點數數組的輸入(即:通過鍵盤給二維浮點數數組賦值)在很多專業書中都沒有詳細講過這個問題。在給二維浮點數數組賦值時一定要先聲明一個變數,接著把數值賦予這個變數,最後把變數數值賦予二維浮點數數組賦值。
2.注意輸出格式中「%」後的字元
C語言的輸出說複雜不複雜,因為常用的都很簡單。可說不複雜也未必,記得曾在一次等級考前輔導我們C語言的教授講道:「如果C語言要考得很難的話,根本不用考什麼指針,只要專考輸出格式,我想百分之九十九的學生都不及格。」當時我們無不認同。從這則事例中可以看出C語言的輸出格式之複雜程度。因此大家在學習它時千萬要學會辨別輸出格式中「%」後的字元,每個字元都有其意義,也都有其作用。
二.優先順序
說道優先順序,有很多朋友都不是很了解或說很模糊。為此筆者想先通過一個例子讓各位有個概念。什麼叫優先順序?比方說,我們在公交車終點站排座隊時總會遇到70歲以上的老人不需要排隊就能上車的情景,這就是優先順序的涵義。C程序在運行時也象排隊坐車一樣,首先照顧那些優先順序高的運算符,若是優先順序相同,那麼就象遇到兩位(或兩位以上)70歲以上的老人那樣,讓他們依次上車。但是C語言中的優先順序的運算並不是千篇一律的,只能說是在大多數情況下,有些運算符的優先順序有其自己的特點,因此這點大家要注意。例如條件表達式:條件?結果1:結果2,這種表達式很多朋友都知道,它的作用與IF…ELSE…條件判斷語句很雷同,它運算時的優先順序就不是按照C語言的規則來完成的。所以說對於優先順序各位編程愛好者一定靈活掌握,不要死記硬背。
三.指針
就個人認為,C語言中的指針是最有特色的,當然也是最難學的。指針說穿了,其實是變數的一種表現形式,只不過這種變數記載的不是數值而是地址。就象一個人可以用姓名來表示自己,也可以用身份證號碼來表示自己一樣。筆者涉足編程已經有三年多了,在這期間曾經收到過很多網友的電子郵件詢問學習指針的方法。就本人感觸,學習指針最好是先學些計算機硬體工作的原理,例如:直接定址,間接定址等,只有了解了這些內容以後,你再學指針就比較容易理會,畢竟C語言是一門介於機器語言與高級語言中間的語言,沒有一些硬體工作知識是很難領悟它的真諦的。然而事事並非絕對,如果你沒有這些知識也不要緊,只要清楚知道以下筆者總結的二點再加上多練習便可:
1.指針是地址變數:它的值有兩種:其一是地址,其二是內容。不同的表達方式可以取不同的值,這有點象一個家庭地址在不同的場合標識的人物也不同。例如:父母親在他們的單位所登記的家庭地址就代表他們自己,而你在學校中登記的同樣的家庭地址就代表你自己。
2.指針是可以運算的,它的運演算法則與變數是一致的。
另外,在編寫一個程序時,除非萬不得已,一般不要使用指針變數。因為指針是比較複雜的,用不好就「當機」。所以筆者建議各位對於指針只要能看懂就行,當然如果你是準備參加考試的就另當別論了。
四.函數
雖說很多程序語言都有函數這一內容,但筆者覺得C語言的函數是最有魅力的。如果你能完全掌握C語言的函數,那麼學習C++就不成問題了(C++是一門建立在C語言上,但又不同於C語言的高級程序語言,它增添了很多函數。)。學習函數的方法是比較簡單的,只有兩個字「牢記」,即:牢記函數的功能,牢記函數的用途以及如何輸入輸出。有些朋友認為,程序語言中的函數沒有多大用處,其實這並不正確,函數從本質上講是一段通用程序,用它可以幫助我們節約很多編程的時間,一個聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數來代替的。筆者曾經作過一個比較字元串的實驗,用C語言中的strcmp()函數只要一句話,而自己編寫的話30句話都擺不平,可想而知函數是多麼實用呀!
原創文章,作者:UZJWO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329979.html