当前位置:文档之家› 单片机的C51编程

单片机的C51编程


以写若干条语句,一个语句也可以写成几行,不
管一行写几个语句,每个语句须以“;”结尾。
2.程序由一个主函数和若干个其他函数组
成,主函数的名字必须为main。程序的执行总是
从main函数开始的,其位置无特殊规定。
3.C语言程序通过函数调用去执行指定的工
作。源程序文件需要包含其他源程序文件的内容
时,则要在本程序文件头部用包含命令#include
目前针对8051系列单片机开发出来的编译器有 多种,包括Franklin C51、Keil C51 for windows等
3
第二节 程序的格式
先从几个实例,了解C语言的程序格式。
例9-1 能输出“Welcome to use C51”的C语言程序 #include“stdio.h” main() { printf(“Welcome to use C51 \n”); }
其中main( )为主函数,printf为输出函数,stdio.h 为头文件,执行这个程序的目的,是在屏幕上输出以下 一行信息:
Welcome to use C51
4
例9-2 求三个数a、b、c的和。 #include“stdio.h”
main( )
/*主函数*/
{
int a,b,c,sum;
/*定义变量*/
m=max(a,b);
/*调用max函数,将返回值m*/
printf(“max=%d”,m); /*输出m的值*/
}
程序执行结果是在输入a,b值后,可求出较大的数并
赋予变量m 。如输入a=3,b=5,则执行结果可显示出 m=5。
7
从三个例子可看出C语言或C51源程序的基
本格式有如下特点:
1. C语言程序的书写格式比较自由,一行可
间接寻址片内数据存储区,可访问片内全部RAM地 址空间(256字节)
分页寻址片外数据存储区(256字节)由MOVX @R0, A指令访问
片外数据存储区(64K),由MOVX @DPTR,A指令 访问
代码存储区(64K),由MOVC A,@A+DPTR指令访

11
C51中定义变量除了定义数据类型外,还应 定义存储类型
例:int data x , y ; 表示变量x , y 为16位整数并 指定存储在片内数据存储区。 1.若未定义存储类型,则C51编译器自动选择默 认存储类型如下表:
存储模式
默认的存储类型
SMALL
默认的存储类型为data,最大为128字节
COMPACT 默认的存储类型为pdata,每页256字节
数据长度 1位 8位 8位 16位 16位 32位 32位 32位 8~24 ? 1 8 16
值域范围 0,1 -128~+127 0~255 -32768~+32767 0~65535 -231~231-1 0~232-1 3.4E-38~3.4E+38 对象地址 0或1 0~255 0~65535
制一些简单的单片机应用程序,并能在 Windows环境下使用C51编译器进行编译 操作。 • 了解C51编译器与标准C语言在存储模 式、片内硬件资源使用等方面的差别。
2
第一节 概述
随着开发工具及集成电路技术的发展,在开发 大型的单片机应用系统时,使用高级语言更加有利
专门针对8051系列单片机开发出来的C51编译 器(简称C51) 可编译生成能够在 8051系列单片机上 运行的目标程序。
10
二、存储类型
存储类型是指该数据在单片机系统中存放的位置,也
就是数据的定位方式。
表 C51存储类型
存储类型 data bdata idata pdata xdata code
与存储空间的对应关系
直接寻址片内数据存储区,访问速度快(128字节)
可位寻址片内数据存储区,允许位与字节混合访问 (16字节)
单片机的C51编程
第一节 概述 第二节 程序的格式 第三节 数据类型和存储类型 第四节 运算符和表达式 第五节 指针与函数 第六节 片内硬件资源的定义 第七节 程序的基本结构 第八节 C51程序举例 第九节 Windows环境下C51编译器的操作
1
本章要点
• 介绍C语言的基础知识。 • 掌握C语言程序的基本结构,学会编
整型、实型、字符、字符串
9
2.变量类型
变量名称 符号
位型量
ቤተ መጻሕፍቲ ባይዱ
字符型
有符号 无符号
整数型
有符号
无符号
长整型
有符号
无符号
浮点型
指针型
特殊位型
8位特殊功能寄存器型 16位特殊功能寄存器型
表 C51变量类型
类型 bit signed char unsigned char signed int unsigned int signed long unsigned long float 指针 sbit sfr sfr16
进行“文件包含”处理。
8
第三节 数据类型和存储类型
一、数据类型
C语言中的数据分为常量和变量,不论常量还 是和变量都有几种不同类型,不同类型的数据占用 的存储长度不同。
1.常量和符号常量的类型
常量指程序运行时其值不能被改变的量,常 量可以用一个标识符表示,并称为符号常量。C语言 中的常量分为如下几种类型:
a=12;b=34;c=56;
/*给变量赋值*/
sum=a+b+c;
/*求和*/
printf(“sum is %d\n”,sum);/*显示结果*/
} 执行以上程序,可在屏幕上输出a、b、c的和,并显示:
sum is 102
5
例9-3 从输入的两个数a,b中,求出较大的 数的程序。
#include“stdio.h”
int max(int x,int y) /*定义max函数,函数返回
值为整型;x,y为形式参
数,整型*/
{ int z;
if(x>y) z=x;
else z=y;
return(z);
/*将z的值返回到调用
处*/
}
6
main()
/*主函数*/
{
int a,b,m; /*定义三个整型变量*/ scanf(“%d,%d,”&a,&b);/*输入变量a和b的值*/
LARGE
默认的存储类型为xdata,最大为64K
12
2.选择变量类型时应尽量选用无符号型,可 以减少测试符号的额外操作,可以提高代码效率。
3.为使编程时书写简化,数据类型允许用缩 写。
例: #define uchar unsigned char #define ulong unsigned long
13
第四节 运算符和表达式
相关主题