历史上的今天
返回首页

历史上的今天

今天是:2025年07月09日(星期三)

正在发生

2021年07月09日 | 51单片机的程序设计中的C语言

2021-07-09 来源:eefocus

在实际工程应用中,51单片机的程序设计一般都是采用C语言编写,通过相应的编译器,得到可执行代码,以提高程序开发效率。但由于单片机的内部资源有限,并结合单片机的特点(如位操作),与标准C语言相比,有所不同,称为C51程序。


C语言的特点


语言简洁、紧凑,使用方便、灵活。

运算符丰富。

数据结构丰富。具有现代化语言的各种数据结构。

可进行结构化程序设计。

可以直接对计算机硬件进行操作。

生成的目标代码质量高,程序执行效率高。

可移植性好。

 


C语言程序采用函数结构,每个C语言程序由一个或多个函数组成,在这些函数中至少应包含一个主函数main(),也可以包含一个main()函数和若干个其它的功能函数。不管main()函数放于何处,程序总是从main()函数开始执行,执行到main()函数结束则结束。在main()函数中调用其它函数,其它函数也可以相互调用,但main()函数只能调用其它的功能函数,而不能被其它的函数所调用。


功能函数可以是C语言编译器提供的库函数,也可以是由用户定义的自定义函数。在编制C程序时,程序的开始部分一般是预处理命令、函数说明和变量定义等。


用C语言编写51单片机程序与用汇编语言编写51单片机程序不同,汇编语言必须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器的使用以及按实际地址处理端口数据。


用C语言编写的51单片机应用程序,则不用像汇编语言那样须具体组织、分配存储器资源和处理端口数据,但在C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。


用C语言编写单片机应用程序与标准的C语言程序也有相应的区别:C语言编写单片机应用程序时,需根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准的C语言程序不需要考虑这些问题。


C51包含的数据类型、变量存储模式、输入输出处理、函数等方面与标准的C语言有一定的区别。其它的语法规则、程序结构及程序设计方法等与标准的C语言程序设计相同。


现在支持51系列单片机的C语言编译器有很多种,如American  Automation、Avocet、BSO/TASKING、DUNFIELD SHAREWARE、KEIL/Franklin等。各种编译器的基本情况相同,但具体处理时有一定的区别,其中KEIL/Franklin以它的代码紧凑和使用方便等特点优于其它编译器,使用特别广泛。


推荐阅读

史海拾趣

绿宝石(BERYL)公司的发展小趣事

绿宝石公司注重品牌建设和形象提升。公司加大了广告宣传的投入力度,通过电视、网络、户外广告等多种渠道进行品牌推广。此外,绿宝石公司还积极参与社会公益活动,履行企业社会责任。这些举措不仅提升了公司的知名度和美誉度,也增强了消费者对绿宝石品牌的认同感和忠诚度。

Fortiming Corporation公司的发展小趣事

背景:在电子行业,优质的客户服务是建立品牌忠诚度和口碑的关键。

发展:Fortiming始终将客户放在首位,致力于为客户提供全方位的优质服务。公司建立了完善的售后服务体系,确保客户在使用过程中遇到任何问题都能得到及时解决。同时,Fortiming还通过举办技术交流会、提供定制化解决方案等方式,加深与客户的合作关系,提升品牌形象。这些努力使得Fortiming在客户心中树立了良好的品牌形象,为公司的长期发展奠定了坚实基础。

请注意,以上故事是基于Fortiming Corporation作为电子行业中晶振供应商的一般发展路径和趋势进行构想的,具体细节可能因实际情况而有所不同。

General Instrument公司的发展小趣事
根据设备说明书正确设置保护器的工作参数。
Chiplus Semiconductor Corp公司的发展小趣事

在21世纪初,全球半导体行业蓬勃发展,台湾地区的IC设计领域也呈现出勃勃生机。在这样的背景下,晶发半导体的创始人蒲文豪怀揣着对低功率SRAM领域的深厚热情,于2002年创立了Chiplus Semiconductor Corp.(晶发半导体)。蒲文豪曾在一家专攻低功率SRAM的公司工作,深知这一领域的潜力和市场需求。他立志要做低功率SRAM领域的领军者,为全球客户提供卓越的产品和服务。

爱特姆(ATOM)公司的发展小趣事

爱特姆在国内市场取得一定成绩后,开始积极拓展国际市场。通过与欧洲、美国等国家的知名企业建立合作关系,爱特姆的产品逐渐打入国际市场,并赢得了良好的口碑。同时,公司还积极参加国际电子展会,与全球同行交流学习,不断提升自身的国际竞争力。

GC Electronics公司的发展小趣事
将水位传感器或温度传感器安装在冷却系统的适当位置,确保能够准确监测到水量或水温。

问答坊 | AI 解惑

短距离无线通信技术zigbee协议栈c源码

大家可以下过去作为一个参考,还是不错的~~…

查看全部问答>

家电“吉祥三宝”遭遇发展天花板

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 几年,随着人民生活水平不断提高,新兴产品微波炉、电磁炉、豆浆机三大系列小家电,取得飞越式发展,堪称家电行业的“吉祥三宝”。但在经过前期的膨胀式发展后,未来也许会不可避免地遇到发展 ...…

查看全部问答>

evc 如何弹出另一窗口界面???

各位大侠,我想在一个界面上按一个按钮,弹出另一界面,请问应该使用什么函数去调用产生另一个界面呢?…

查看全部问答>

数码管

多位数码管的引脚关系,什么公共端之类的,还有就是那个连接一个hc573的芯片是什么意思~~…

查看全部问答>

【求助】[B]请问为什么仿真器下装程序时出现Connot load program because flash Emulation Toll not found

请问为什么仿真器下装程序时出现Connot load program because flash Emulation Toll not found,发现知识等不亮,芯片位置我已经放的正确了,请问这有可能是什么原因造成的,恳请高手解答!!…

查看全部问答>

分享smt电阻器阻值标示方法

本帖最后由 dontium 于 2015-1-23 13:25 编辑 电阻器阻值标示方法   1、直标法:用数字和单位符号在电阻器表面标出阻值,其允许误差直接用百分数表示,若电阻上未注偏差,则均为±20%。   2、文字符号法:用阿拉伯数字和文字符号两者有规律 ...…

查看全部问答>

动态显示屏

用g2553做的动态显示屏,用12864做的,外加温度传感器18b20和时钟芯片1302,大家有兴趣的看看,帮小弟完善完善…

查看全部问答>

在已有必要的基础时,掌握新的MCU,你主重看什么?

本帖最后由 dontium 于 2014-1-12 15:31 编辑 本议题的目的是了解一下大家为掌握新的单片机时从哪入手 --------二选一,是看你倾向,并不代表只看一方面的资料 …

查看全部问答>

f28035的epwm trip zone,按照软件强制中断方式,多长时间进入一次中断?怎么计算呢?

我是按照Ti中的epwm_trip_zone的例程设置的寄存器的,但是现在程序也能按照我的想法当满足条件时,软件触发中断后,指定的epwm1A强制输出低电平,不满足条件时,按原来情况输出。但是,我现在就是不能计算出多长时间进入一次epwm trip zone的中断? ...…

查看全部问答>

功放板子焊接好却不能正常使用

最近焊接了一块音响功放电路板,焊好发现不能正常工作。 原因不知道在哪里: 输入音频信号,喇叭不响,然后我把电源关掉,只能听到短暂的声音,然后又不想。等个10秒左右,我又打开电源,它又能响一下,反正声音总是在我关开电源那一刻能听到,不 ...…

查看全部问答>