单片机应用技术 李海涛 第3章 MCS-51系单片机C语言程序设计新.ppt

单片机应用技术 李海涛 第3章 MCS-51系单片机C语言程序设计新.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 MCS-51系单片机C语言程序设计 实训任务3 LED显示电路 3.1 C语言与MCS-51单片机 3.2 C51的数据与运算 3.3 C51程序基本结构与控制语句 3.4 函数 3.5 C51构造数据类型 实训任务3 LED显示电路 任务:将0~9这十个数循环送P0口七段LED上显示 C51程序: #include reg51.h sbit P20=P2^0; void mDelay(unsigned int DelayTime) { unsigned int j=0; for(;DelayTime0;DelayTime--) { for(j=0;j125;j++) {;} } } 实训任务3 LED显示电路 void main() { unsigned char str[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char i; P20=1; while(1) {for(i=0;i10;i++) { P0=str[i]; mDelay(1000); /*延时1000毫秒*/ } } } 3.1 C语言与MCS-51单片机 在进行单片机应用系统的程序设计时,汇编语言是一种常用的软件工具。它能直接操作硬件,指令的执行速度快。但其指令系统的格式受硬件结构的限制很大,程序不易理解,且难于编写与调试,可移植性也差。目前在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种。采用C语言不必对单片机的具体硬件结构和指令系统有深入的了解,也能够编出符合硬件实际的程序。 3.1.1 C语言与MCS-51单片机 用C语言编写的MCS–51单片机应用程序(本书后面简称为C51程序),虽然不用像汇编语言那样须具体组织、分配存储器资源和处理端口数据,但在C51语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。 深入理解并应用C51对标准C的扩展是学习C51的关键之一。 3.1.2 C51程序结构 用C语言编写单片机应用程序与标准的C语言程序在语法规则、程序结构及程序设计方法等方面基本相同,但C51程序与标准的C程序在以下几个方面是不一样: (1)C51中定义的库函数和标准C语言定义的库函数不同。标准的C语言定义的库函数是按通用微型计算机来定义的,而C51中的库函数是按MCS-51单片机结构来定义的; (2)C51中的数据类型与标准C的数据类型也有区别,在C51中还增加了几种针对MCS-51单片机特有的数据类型; 3.1.2 C51程序结构 (3)C51变量的存储模式与标准C中变量的存储模式不一样,C51中变量的存储模式是与MCS-51单片机的存储器结构紧密相关; (4)C51与标准C的输入输出处理方式不一样,C51中的输入输出是通过MCS-51串行口来完成的,输入输出指令执行前必须要对串行口进行初始化; (5)C51与标准C在函数使用方面也有一定的区别,C51中有专门的中断函数。 3.2 C51的数据与运算 3.2.1 数据与数据类型 3.2.1 数据与数据类型 C51扩展的数据类型 (1) bit位型 bit是C51编译器的一种扩充数据类型,利用它可定义一个位变量,但不能定义位指针,也不能定义位数组。它的取值是一个二进制位,不是0就是1。 (2)sbit位型 sbit是也是C51编译器的一种扩充数据类型,利用它可从字节中定义一个位寻址对象,来访问片内RAM中的可寻址位或特殊功能寄存器中的可寻址位。 3.2.1 数据与数据类型 (3)sfr/sfr16特殊功能寄存器型 MCS-51单片机内部所有8位的特殊功能寄存器都可以用sfr数据类型来访问,占用一个内存单元,值域为0~255。而16位的特殊功能寄存器用sfr16类型来访问。对可位寻址的特殊功能寄存器中的位变量用sbit来定义。 3.2.2 常量与变量 常量是在程序运行过程中其值不能改变的量。而变量是在程序运行过程中其值可以不断变化的量。 一、常量 常量的数据类型可以有整型、浮点型、字符型、字符串型和位标量。常量可用在不必改变值的场合,如固定的数据表、字库等。 1.整型常量 整型常量可以表示为十进制形式、十六进制形式[加上前缀0(读作零)X或0x]或八进制形式[用数字0作前缀] 。长整型常量在数字后面加字母L。 2.浮点型常量 浮点型常量可表示为十进制形式和指数形式。 3.字符型常量

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档