流程控制语句不论对汇编语言还是C51都是程序设计中最重要的部分,C51同C语言一样是结构化程序设计语言。C51的结构化程序由若干个函数构成,函数由若干个基本结构构成,基本结构由若干条语句构成。结构化的C51程序设计语言有3种基本结构,即顺序结构、选择结构和循环结构。另外,在C51中还支持多分支结构,多分支结构既可以通过if和else if语句嵌套实现,也可用switch/case语句实现。......
2023-11-17
本章主要学习和了解AVR单片机C语言编程的一些语法问题。单片机硬件能执行的是二进制的机器代码,这些机器代码都是由人们用汇编语言或C语言等高级语言编制的代码转换得到的。早期的单片机编程都是用汇编语言进行的,汇编语言最突出的优点是它编译成机器语言的效率高,实时性好。但它的缺点也很突出,如开发周期长、可读性差、可移植性差等。而单片机的C语言编程则很好地解决了这些问题,并推动了单片机的广泛应用和长足的发展。单片机的C语言和计算机的C语言类似,基本遵循标准的C语言语法,但一些函数的实现只是标准C语言函数的简化版本。由于单片机编程与硬件联系紧密,所以每一种单片机以及同种单片机不同的C语言编译器的语法可能稍有不同。针对AVR单片机编程的C语言编译器也有很多种,如GCC、IAR、CVAVR等,本书选用的是编译效率较高,功能比较完善的CVAVR编译器。它是HP Info Tech专门为AVR系列单片机设计的C语言编译器。这个完整的集成开发环境(IDE)允许在PC机的Windows应用程序中进行单片机C程序的编辑、编译和调试,支持位变量,对许多常用的单片机外围扩展器件提供了大量的支持和函数。此外,它还有个特别好的优点是可以自动生成一些初始化程序,对初学者来说,十分有用。
下面是一个最简单的单片机C语言程序,通过这个例子,可以学习和了解单片机编程的特点及与PC机C语言编程的区别。
C语言程序是由函数构成的,每个程序至少包含一个函数,即main()函数,它是程序代码执行的起点。上面这段程序与在PC机学习C语言的入门程序类似,主要是向标准输出设备输出一个字符串。不同点是PC机上运行此程序时,字符串是输出到显示器上,而单片机C编译器的库函数通常把它输出到单片机的串行口。另外一个不同点是这段程序一般不能在PC机上运行,原因是程序结尾有一个无限循环结构。不管是计算机还是单片机,程序代码都是由CPU来执行的。计算机上有操作系统,某一程序运行时只是暂时取得了CPU的控制权,程序结束后要把控制权返还给操作系统。而单片机一般没有操作系统,不能任意结束程序。所以,所有的单片机应用程序通常都有一个无限循环,程序最终都要进入到这个死循环中,如上面的While(1),这样可以防止程序(CPU)无事可做或做不可预测的事情。当然,程序在这个无限循环中也不是无事可做,具体应用后面将会介绍。(www.chuimin.cn)
与计算机C语言编程类似的一些基本语法规则,这里不再重述。下面针对CVAVR编译器,介绍相关的单片机C语言编程的语法参考。
有关AVR单片机与传感器基础的文章
流程控制语句不论对汇编语言还是C51都是程序设计中最重要的部分,C51同C语言一样是结构化程序设计语言。C51的结构化程序由若干个函数构成,函数由若干个基本结构构成,基本结构由若干条语句构成。结构化的C51程序设计语言有3种基本结构,即顺序结构、选择结构和循环结构。另外,在C51中还支持多分支结构,多分支结构既可以通过if和else if语句嵌套实现,也可用switch/case语句实现。......
2023-11-17
要想在Proteus中对单片机的C程序进行调试与跟踪,单片机加载的程序必须要有可供调试的信息。Proteus软件支持的单片机仿真调试程序的格式有很多种,如ELF/DWARF、COFF、UBROF格式等,HEX格式的文件可以加载运行,但不能单步执行。请以上节中的仿真练习为例,初步学习Proteus中AVR单片机的C程序调试与跟踪,并在后面的编程学习过程中,能主动地通过C程序调试与跟踪来发现和解决程序中的问题。......
2023-11-26
◎内容提要本章讲述MCS-51单片机的C51程序的基础知识,主要包括C51数据类型及存储类型、C51运算符及其表达式、C51流程控制语句、C51构造数据类型、C51指针的定义及使用、C51函数的定义及使用和预编译的用法。◇C51函数的定义、调用及使用时应注意的事项。※重点及难点◇C51存储类型和存储模式的区别。◇C51函数中参数的传递问题。教学目标:掌握MCS-51单片机的C51程序设计的基础知识。通过编程实例,快速掌握C51程序设计的思路和方法。......
2023-11-17
用符合C语言规范的方式书写并保存的C程序称为源程序文件,源程序文件不能直接执行,需要将它翻译成计算机能够识别并执行的机器语言程序。编辑是指C语言源程序的输入和修改,程序保存时,文件名由用户自己选定,扩展名一般为“.c”,也可以使用开发环境默认的扩展名。图2.1表明了上述过程。图2.1C语言程序的执行过程本教材选用Microsoft Visual C++6.0 IDE作为教学环境,使用该环境处理C程序的方法请参考附录C。......
2023-11-20
程序存储器以程序计数器PC作为地址指针,通过16位地址总线,可寻址的地址空间为64KB,片内/外统一编址。根据单片机的类型及引脚的电平,CPU可从内部也可从外部程序存储器开始执行。而当EA=0时,内部程序存储器被忽略,程序直接从外部程序存储器的0000H开始执行。64KB程序存储器中有一些特殊的单元,在使用时应加以注意。0023H——串行口的中断服务子程序入口地址。......
2023-11-17
C语言共有30多个关键字,9种控制语句,程序书写形式自由。同时C语言包含整型、实型、数组类型、枚举类型等数据类型,丰富的数据类型使得C语言可以表达各种复杂的数据结构,具有很强的数据处理能力。C程序由3种基本结构组成,分别是顺序结构、选择结构和循环结构,这三种结构组合可以完成任何复杂的任务。C语言的语法限制不太严格,程序设计和书写形式自由度大。C语言程序生成目标代码质量高,程序执行速度快。......
2023-11-20
1.提示CVAVR中,为了减小代码体积和加快程序运行速度,最好遵循下述原则:尽可能使用无符号变量;使用最小的数据类型,例如位型和无符号字符型;通过“Project”→“Configure”→“C Compiler”→“Compilation”→“Bit Variables Size”命令分配的位变量空间要尽可能的小,以便空出寄存器用以分配给其他全局变量;尽可能使用TINY模式;使用flash关键字把常量放在Flash中;程序调试结束后要关闭“Stack End Markers”选项,把程序再编译一次;与时间有关的部分用汇编语言来写。......
2023-11-26
程序设计是指设计、编写和调试程序的方法与过程。由于程序是软件的本体,因此软件的质量主要通过程序的质量体现,因此,研究一种切实可行的程序设计方法至关重要。继承是面向对象程序设计方法的一个重要标志,利用继承机制可以大大提高程序的可重用性和可扩充性。......
2023-11-07
相关推荐