单片机的C语言应用程序设计 .ppt

上传人:心*** 文档编号:1028852 上传时间:2018-11-20 格式:PPT 页数:169 大小:3.10MB
下载 相关 举报
单片机的C语言应用程序设计 .ppt_第1页
第1页 / 共169页
单片机的C语言应用程序设计 .ppt_第2页
第2页 / 共169页
单片机的C语言应用程序设计 .ppt_第3页
第3页 / 共169页
单片机的C语言应用程序设计 .ppt_第4页
第4页 / 共169页
单片机的C语言应用程序设计 .ppt_第5页
第5页 / 共169页
点击查看更多>>
资源描述

1、第 7章 单片机的 C语言应用程序设计 第 7章 单片机的 C语言应用程序设计 7.1 C语言与 MCS-517.2 C51数据类型及在 MCS-51中的存储方式 7.3 C51数据的存储类型与 MCS-51存储结构7.4 MCS-51特殊功能寄存器 (SFR)的 C51定义7.5 MCS-51并行接口的 C51定义7.6 位变量的 C51定义7.7 C51构造数据类型 7.8 模块化程序开发过程7.9 MCS-51内部资源使用的 C语言编程7.10 MCS-51片外扩展的 C语言编程7.11 频率量测量的 C语言编程7.12 MCS-51机间通信的 C语言编程7.13 键盘和数码显示人机交互

2、的 C语言编程第 7章 单片机的 C语言应用程序设计 7.1 C语言与 MCS51 用汇编程序设计 MCS51系列单片机应用程序时,必须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器正确、合理的使用以及按实际地址处理端口数据。用 C语言编写MCS51单片机的应用程序,虽然不像用汇编语言那样具体地组织、分配存储器资源和处理端口数据,但在 C语言编程中,对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。用 C语言编写单片机应用程序与编写标准的 C语言程序的不同之处就在于根据单片机存储结构及内部资源定义相应的 C语言中的数据类型和变量,其它的语法

3、规定、程序结构及程序设计方法都与标准的 C语言程序设计相同。 第 7章 单片机的 C语言应用程序设计 用 C语言编写的应用程序必须经单片机的 C语言编译器 (简称 C51), 转换生成单片机可执行的代码程序。支持 MCS51系列单片机的 C语言编译器有很多种。如 American Automation、Auocet、 BSO/TASKING、 DUNFIELD SHAREWARE、KEIL/Franklin等。其中 KEIL/Franklin以它的代码紧凑和使用方便等特点优于其它编译器。本章是针对这种编译器介绍 MCS51单片机 C语言程序设计。 第 7章 单片机的 C语言应用程序设计 7.2

4、 C51数据类型及在 MCS-51中的存储方式7.2.1 C51的数据类型Franklin C51编译器具体支持的数据类型有:位型 (bit)、 无符号字符 (unsigned char)、 有符号字符 (singed char)、 无符号整型(unsigned int )、 有符号整型 (signed int )、 无符号长整型 (unsigned long )、 有符号长整型 (signed long )、 浮点型 (float)和指针类型等。第 7章 单片机的 C语言应用程序设计 表 7.1 Franklin C51的数据类型数据类型 长度 (bit) 长度 (byte) 值域bit 1

5、 1 0,1unsigned char 8 1 0255signed char 8 1 128127unsigned int 16 2 065535signed int 16 2 3276832767unsigned long 32 4 04294967295signed long 32 4 21474836482147483647float 32 4 1.176E383.40E+38(6位数字 )double 64 8 1.176E383.40E+38(10位数字 )一般指针 24 3 存储空间 065535第 7章 单片机的 C语言应用程序设计 7.2.2 C51数据在 MCS-51中的存

6、储方式位变量 (bit): 与 MCS-51硬件特性操作有关的可以定义成位变量。位变量必须定位在 MCS-51单片机片内 RAM的位寻址空间中。字符变量 (char): 字符变量的长度为 1 byte即 8位。这很合适MCS-51单片机,因为 MCS-51单片机每次可处理 8位数据。对于无符号变量 (unsigned char)的值域范围是 0255。对于有符号字符变量(signed char), 最具有重要意义的位是最高位上的符号标志位 (msb)。 此位为 1代表 “负 “,为 0代表 “正 “。有符号字符变量和无符号字符变量在表示 0127的数值时,其含义是一样的,都是 00x7F。 负

7、数一般用补码表示,即用 11111111表示 -1, 用 11111110表示 -2 。当进行乘除法运算时,符号问题就变得十分复杂,而 C51编译器会自动地将相应的库函数调入程序中来解决这个问题。第 7章 单片机的 C语言应用程序设计 整型变量 (int): 整型变量的长度为 16位。与 8080和 8086 CPU系列不同, MCS-51系列单片机将 int型变量的高位字节数存放在低地址字节中,低位字节数存放在高地址字节中。有符号整型变量 (signed int)也使用 msb位作符号标志位,并使用二进制补码表示数值。可直接使用几种专用的机器指令来完成多字节的加、减、乘、除运算。整型变量值

8、0x1234以图 7.1所示的方式存放在内存中。第 7章 单片机的 C语言应用程序设计 图 7.1 整型数的存储结构 0x120x34+0+1地址 0x120x340x560x78.+0+1+2+3地址 图 7.2 长整型变量的存储结构 第 7章 单片机的 C语言应用程序设计 浮点型变量 (float): 浮点型变量为 32位,占 4个字节,许多复杂的数学表达式都采用浮点变量数据类型。应用符号位表示数的符号,用阶码和尾数表示数的大小。用它们进行任何数学运算都需要使用由编译器决定的各种不同效率等级的库函数。 Franklin C51的浮点变量数据类型的使用格式与 IEEE-754标准有关,具有 24位精度,尾数的高位始终为 “1“,因而不保存,位的分布如下: 1位符号位。 8位指数位。 23位尾数。 第 7章 单片机的 C语言应用程序设计 符号位是最高位,尾数为低 23位,内存中按字节存储顺序如下:地址 +0 +1 +2 +3内容 MMMMMMMM MMMMMMMM EMMMMMMM SEEEEEEE其中, S为符号位, 1表示负, 0表示正; E为阶码; M为 23位尾数,最高位为 “1“。浮点变量值 -12.5的十进制为: 0xC1480000, 它按图 7.3所示方式存于内存中。

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。