C51单片机C语言程序设计文档.pptVIP

  • 16
  • 0
  • 约1.62万字
  • 约 71页
  • 2018-02-27 发布于湖北
  • 举报
C51单片机C语言程序设计文档

嵌 入 式 系 统 C51单片机C语言程序设计 1 本章内容: C51语言概述 C51数据类型和数据存储类型 C51运算符和表达式 C51程序结构 C51函数 2 【任务导入】 基于C51语言的静态LED显示系统的实现:利用AT89C51单片机的I/O端口驱动两个八段数码管从“00”到“99”流水显示,即通电后,显示“00”,间隔一段时间后,显示“01”,再间隔一段时间后,显示“02”,直到“99”,然后再显示“00”,往复循环。 【任务分析】 要实现用两个数码管循环显示数字00~99的功能,我们可把两个数码管的段选线分别连接到单片机的两组I/O口的共16根I/O口线上,再通过程序让单片机的两组I/O口分时输出0~9对应的段码就可以了。 3 C51语言概述 1、C语言和C51语言 (1)C语言是由早期的BCPL语言发展而来的。 1967年,剑桥大学的理查兹(Martin Richards)在对CPL语言进行简化的基础上设计了BCPL(Basic Combined Pogramming Language)语言。 1970年,美国贝尔实验室的汤普森(Ken Thompson)以BCPL语言为基础,设计出简单且接近硬件的B语言 。 1972年,美国贝尔实验室的里奇(D. M. Ritchie)又以B语言为基础,最终设计出了C的语言 1978年,美国电话电报公司(ATT)贝尔实验室正式发表了C语言。 1983年,美国国家标准化协会制定了一个C语言标准通常称为ANSI C。ANSI C在被国际标准化组织ISO所接受后,又经过多次修正,形成了目前的C语言标准。 4 (2)C51语言 用C51编写单片机程序时,需要根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准的C语言不需要考虑这些问题。另外,C51包含的数据类型、变量存储模式、输入输出处理、函数等方面与标准的C语言也有一定的区别。其他的语法规则、程序结构及程序设计方法则与标准的C语言相同。 C语言编译调试工具效率高,数据类型及运算符丰富,经过不断完善,能满足单片机的开发要求,形成了单片机C语言。为了和ANSI C区别,把51单片机C语言称为C51语言。 5 (3)C51特点 ● 编程者不需要了解单片机的指令系统,仅要求对单片 机的存储器结构 有初步的了解,至于存储器的分配、寻址方式及数据类型等完全由编译器管理。 ●程序有规范化的结构,可以分为不同的函数,这种方式可以使程序结构化,将可变的选择与特殊操作组合在一起,增强程序的可读性。 ●编程和程序的调试时间显著缩短,从而提高了编程的效率,提供的库函数包含许多标准的子程序,具有较强的数据处理能力,可以将编好的程序很容易地移植到新程序。 C51作为一种非常方便的语言得到了广泛的支持,目前已经成为单片机开发的主要编程语言。 6 简单C51程序介绍 【例1】 如图1所示,在P1.0口上接有一个LED发光二极管, 要求让发光二极管发光。 图1 接有LED的单片机基本电路 7 #include reg51.h sbit P1_0=P1^0; void main( ) { P1_0=0; while(1); } 程序如下: 程序的开始是一个文件包含处理。这段程序中包含的是reg51.h文件,以.h为后缀的称为头文件,该头文件的作用是把特殊功能寄存器中的符号和地址对应起来,这里主要是应用到P1这个符号,如果没有包含reg51.h文件,C51编译器不知道P1具体指什么,在编译过程中就会发生错误。 给P1.0取名为P1_0,是通过编译器中增加的关键字sbit来定义的 程序最后是主函数,每一个C51程序有且只有一个主函数,函数后面使用一对大括号“{}”,在“{}”中书写具体内容。 8 【例2】 如图1所示,要求P1.0口上接的LED发光二极管能闪烁发光。 #include reg51.h #define uchar unsigned char #define uint unsigned int sbit P1_0=P1^0; void Mdelay (uint Delay); /* 被调函数申明*/ void main(void ) { for(;;) { P1_0=!P1_0; // 对P1_0取反 Mdelay(1000); } } void Mdelay (uint Delay) // 延时子程序,由Delay参数确定延时时间 { uchar i; for( ;Delay0; Delay--) { for (i=0

文档评论(0)

1亿VIP精品文档

相关文档