C51语言是什么,第1张

C51语言继承了C语言。与C语言不同,C51语言运行在单片机平台上,而C语言运行在普通桌面平台上。C51语言具有C语言结构清晰、易学、具有汇编语言硬件操作能力的优点。

C51语言继承了C语言。与C语言不同,C51语言运行在单片机平台上,而C语言运行在普通桌面平台上。C51语言具有C语言结构清晰、易学、具有汇编语言硬件操作能力的优点。对于有C语言编程基础的读者来说,很容易掌握C51语言的编程。

C51语言是什么,C51语言是什么,第2张

主要特征

C51语言兼有高级语言和低级语言的优点。

语法结构基本和标准C语言一样,语言简单易学。

运行在单片机平台上,支持多种微处理器,移植性好。对于兼容的8051系列单片机,只要对一种硬件模式下的程序稍加修改甚至不变,就可以移植到另一种不同类型的单片机上运行。

利用高级语言的特性,底层硬件寄存器的操作被最小化。

C51语言提供完整的数据类型、运算符和函数供使用。

C51是一种结构化编程语言。一系列语句用一对花括号就可以组合成复合语句,程序结构清晰。

C51语言的代码执行效率非常接近汇编语言,比汇编语言更容易理解和共享代码。

“你好世界”节目

编程技能

c语言是一种高级编程语言,它提供了一个完整的标准化流程控制结构。因此,在使用C51语言设计单片机应用系统程序时,首先要尽可能采用结构化的编程方法,使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序,整个程序可以根据功能分为几个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,最好将一些常用的程序编译成函数,既不会造成整个程序管理的混乱,又增强了可读性和可移植性。

在编程过程中,要充分利用C51语言的预处理命令。宏定义可以用于一些常用的常量,如TRUE、FALSE、PI和各种特殊函数寄存器,也可以用于程序中一些可以根据外部条件改变的重要常量。#定义& # 8221;或者将它们放在一个头文件中进行定义,然后使用文件包含命令& # 8221;# include & # 8221添加到程序中。这样,当某个参数需要修改时,只需要修改相应的包含文件或宏定义,而不是修改每个使用它们的程序文件,有利于文件的维护和更新。例子如下:

例1对于不同的单片晶体振荡器,程序需要不同的延迟时间,延迟时间的长度可以根据外界条件的变化进行修改。对于这样的程序,可以通过宏定义和条件编译来实现。程序如下:

#定义标志1

#ifdef标志==1

#定义fosc 6M

延迟= 10;

#elif标志= = 0

#定义fosc 8M

延迟= 12;

#否则

#定义fosc 12M

延迟= 20;

#endif

main()

{

for(I = 0;我

}

这样,源程序无需任何修改即可应用于不同时钟频率的单片机系统,并可以根据不同的情况取不同的延迟值来完成不同的目的。

混合程序设计

C51编译器可以高效编译C语言源程序,生成高效简洁的代码。在大多数情况下,C语言编程可以达到预期的目的。但是有时候为了直观的编程或者处理一些特殊的地址,就需要使用一定的汇编语言来编程。在其他场合,出于某种目的,汇编语言也可以调用C语言。在这种混合编程中,关键是参数的传递和函数的返回值。他们必须有一个完整的协议,否则数据交换可能出错,例如C语言程序和汇编语言程序的调用,其子程序如下:

公共广告;入口地址

SEG_AD段代码;程序段

RSEG SEG_AD

使用0

广告:MOV·R6,#00

MOV R7,#00

SETB P1.1

ACALL DELAY

CLR P1.1

ACALL DELAY

MOV R0,#10

RR0: SETB P1.2

nototherwiseprovided(for)除非另有规定

CLR P1.2

DJNZ R0,RR0

ACALL DELAY

R6 MOV 30H;模数转换高度

;两位存储在R6

ACALL CIR

MOV R6,30H

SETB P1.2

nototherwiseprovided(for)除非另有规定

CLR P1.2

R6 MOV 30H

ACALL CIR

MOV R6,30H

MOV R0,# 8;模数转换下限

;R7中存储了8位

RR2: SETB P1.2

nototherwiseprovided(for)除非另有规定

CLR P1.2

MOV 30H,R7

ACALL CIR

MOV R7,30H

DJNZ R0,RR2

浸水使柔软

CIR: CLR C

MOV C,P1.0

MOV,30H

带进位循环左移

MOV 30H,A

浸水使柔软

目标

在上面的程序中,函数的返回值是一个无符号整数。根据调用规则,返回值的高位必须在R6,低位必须在R7,以保证数据传输无误。另外,在调用过程中,一定要注意寄存器的堆叠。这样以后使用A/D转换时,就可以用C语言调用汇编语言子程序AD()了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C51语言是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情