国产在线中文字幕亚洲,一区视频国产精品观看,欧美日韩国产高清片,久久久久久AV无码免费网站,亚洲无码一二三四五区,日韩无码www.,sese444

您好,歡迎來到維庫電子市場網(wǎng) 登錄 | 免費注冊

C51語言
閱讀�9061時間�2010-12-02 09:30:21

  單片�C51語言是由C語言繼承而來�。和C語言不同的是,C51語言運行于單片機平臺,而C語言則運行于普通的桌面平臺。C51語言具有C語言結構清晰的優(yōu)�,便于學�,同時具�匯編語言的硬件操作能�。對于具有C語言編程基礎的讀者,能夠輕松地掌握單片機C51語言的程序設��

主要特點

  單片機C51語言�?zhèn)湔Z言與低級語言的優(yōu)��

  語法結構和標準C語言基本一�,語言簡潔,便于學��

  運行于單片機平臺,支持的微處理器種類繁多,可移植性好。對于兼容的8051系列單片�,只要將一個硬件型號下的程序稍加修改,甚至不加改變,就可移植到另一個不同型號的單片機中運行�

  具有語言的特�,盡量減少底層硬件寄存器的操��

  單片機C51語言提供了完備的�(shù)�(jù)類型、運算符及函�(shù)供使��

  C51語言是一種結構化程序設計語言,可以使用一對花括號“{}”將一系列語句組合成一個復合語�,程序結構清晰明了�

  C51語言代碼�(zhí)行的效率方面十分接近匯編語言,且比匯編語言的程序易于理�,便于代碼共��

  “Hello world”程�

Hello world 程序

程序設計的基本技�

  C語言是一種程序設計語言,它提供了十分完備的�(guī)范化流程控制結構。因此采用C51語言設計單片機應用系�(tǒng)程序�,首先要盡可能地采用結構化的程序設計方法,這樣可使整個應用系�(tǒng)程序結構清晰,易于調(diào)試和維護。對于一個較大的程序,可將整個程序按功能分成若干個模�,不同的模塊完成不同的功�。對于不同的功能模塊,分別指定相應的入口參數(shù)和出口參�(shù),而經(jīng)常使用的一些程序編成函�(shù),這樣既不會引起整個程序管理的混亂,還可增強可讀�,移植性也好�

  在程序設計過程中,要充分利用C51語言的預處理命令。對于一些常用的常數(shù),如TRUE,F(xiàn)ALSE,PI以及各種特殊功能寄存�,或程序中一些重要的依據(jù)外界條件可變的常�,可采用宏定�"#define"或集中起來放在一個頭文件中進行定義,再采用文件包含命令"#include"將其加入到程序中�。這樣當需要修改某個參量時,只須修改相應的包含文件或宏定義,而不必對使用它們的每個程序文件都作修改,從而有利于文件的維護和更新?,F(xiàn)舉例說明如下�

  �1 對于不同的單片機晶振,程序取不同的延時時�,而且可根�(jù)外界條件的變化修改延時時間的長短。對于這樣的程�,可利用宏定義和條件編譯來實�(xiàn)。程序如下:

  #define     flag 1

  #ifdef     flag==1

  #define  fosc  6M

  delay=10;

  #elif     flag � � �

  #define   fosc    8M

  delay=12;

  #else

  #define    fosc   12M

  delay=20;

  #endif

  main()

  {

  for(I=0;I

  }

  這樣源程序不作任何修改就可適用于不同時鐘頻率的單片機系統(tǒng),并可根�(jù)情況的不同取不同的delay�,完成不同的目的�

與匯編語言程序的混合編�

  C51編譯器能對C語言源程序進行高效率的編譯,生成高效簡潔的代碼,在絕大多數(shù)場合采用C語言編程即可完成預期的目�。但有時為了編程直觀或某些特殊地址的處理,還須采用一定的匯編語言編程。而在另一些場合,出于某種目的,匯編語言也可�(diào)用C語言。在這種混合編程�,關鍵是參數(shù)的傳遞和函數(shù)的返回�。它們必須有完整的約�,否則數(shù)�(jù)的交換就可能出錯,� C語言程序與匯編語言程序的調(diào)�,其子程序如下:

  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�(zhuǎn)換的�

 ??;兩位保存在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�(zhuǎn)換的�

  �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

  在以上程序中,函�(shù)的返回值為一無符號整型數(shù),根�(jù)�(diào)用規(guī)則,返回值的高位必須在R6中,低位在R7�,這樣才可保證�(shù)�(jù)的傳遞不出錯。另外,在調(diào)用過程中,必須注意寄存器的入棧。這樣在以后用到A/D�(zhuǎn)換時,在C語言中調(diào)用匯編語言子程序AD()即可�

�(shù)�(jù)類型

  在C51語言中,每個變量或者常量在使用前都必須指明�(shù)�(jù)類型�

C51語言數(shù)據(jù)類型

維庫電子�,電子知識,一查百��

已收錄詞�168292