第8章CX51的数据类型及基本运算 用汇编语言对单片机进行编程其优点是目 标程序长度短、速度快,可直接对硬件进行操 作,因而在不太复杂的工业控制中得到广泛应 用。但使用汇编的麻烦在于它的可读性和可维 护性,特别是当程序没有很好注释的时候;汇 编程序的移植性也较差;并且,对复杂的控制, 汇编语言难以胜任。使用C语言可以很好的解 决这些问题 本章主要介绍国内比较流行的Ke公司 的编译器Cⅹ51所支持的数据类型、运算规
第8章 Cx51的数据类型及基本运算 用汇编语言对单片机进行编程其优点是目 标程序长度短、速度快,可直接对硬件进行操 作,因而在不太复杂的工业控制中得到广泛应 用。但使用汇编的麻烦在于它的可读性和可维 护性,特别是当程序没有很好注释的时候;汇 编程序的移植性也较差;并且,对复杂的控制, 汇编语言难以胜任。使用C语言可以很好的解 决这些问题。 本章主要介绍国内比较流行的 Keil 公司 的编译器 Cx51 所支持的数据类型、运算规 则
8.1C语言程序的基本结构 下面用实例说明C语言程序的基本结构 *filename: simple C *date: 04-Aug. -2006 include<stdio. h> t include <reg51.h> main unsigned char a, b,C, sum a=5 b=3 SCON = 0x52 TMOD=0×20 TCON 0x69: TH1=0X0F3; scanf (" %d", &c;/* input a decimal interger * sum a+ b+ Ci printf ("sum=%od\n", sum)i/output sum *
8.1 C语言程序的基本结构 下面用实例说明C语言程序的基本结构。 /* *filename: simple.c *date: 04-Aug.-2006 */ #include<stdio.h> #include<reg51.h> main() { unsigned char a,b,c,sum; a = 5; b = 3; SCON = 0x52; TMOD = 0x20; TCON = 0x69; TH1 = 0x0F3; scanf("%d",&c); /* input a decimal interger */ sum = a + b + c; printf("sum=%d\n",sum); /* output sum */ }
这个程序的功能是已知两个数a和b,输入第三 个数,然后求和并输出结果。 在C语言中,通过/*…*/作为程序的注 释部分,当不能满足注解要求时要另起一行, 般要求以*开头。注释可出现在程序的任何部分 为了编写程序和阅读程序方便,本书中的C语言 程序都有注释部分,一般在程序前后各有一部分 程序前面的注释一般表示程序的文件名、以及建 立的日期,这样便于从外存储器中找到文件;程 序后面的注解一般表示程序的运行情况,输入情 况,输出情况,标准的Cⅹ51编译器的输入输出 为单片机串行通信口
这个程序的功能是已知两个数a和b,输入第三 个数,然后求和并输出结果。 在C语言中,通过 /* …… */ 作为程序的注 释部分,当不能满足注解要求时要另起一行,一 般要求以*开头。注释可出现在程序的任何部分。 为了编写程序和阅读程序方便,本书中的C语言 程序都有注释部分,一般在程序前后各有一部分, 程序前面的注释一般表示程序的文件名、以及建 立的日期,这样便于从外存储器中找到文件;程 序后面的注解一般表示程序的运行情况,输入情 况,输出情况,标准的 Cx51 编译器的输入输出 为单片机串行通信口
在本例程序的开始处使用了预处理命令井 include,它 告诉编译器在编译时将头文件 stdio.h和reg51.h读入后 起编译。在头文件 stdio.h中包括了对标准输入输出函 数的说明,在头文件reg51.h中包括了对8051单片机特 殊功能寄存器的说明。所有的头文件说明均位于 kec51\NC\。 本程序的主体部分为 maino 其中main是一个函数,而且是一个特殊的函数,所有 C语言程序都包含main函数。它实质上是C语言程序的首 部。一般函数名后面为参数表,参数表在一对圆括号() 之中。main函数可以有参数。本程序中的main函数没有 参数,即参数表为空,但一对圆括号()必须有,不能省 去
在本例程序的开始处使用了预处理命令#include,它 告诉编译器在编译时将头文件stdio.h和reg51.h读入后 一起编译。在头文件stdio. h中包括了对标准输入输出函 数的说明,在头文件reg51. h中包括了对8051单片机特 殊功能寄存器的说明。所有的头文件说明均位于 \keil\C51\INC\。 本程序的主体部分为 main() { … } 其中main是一个函数,而且是一个特殊的函数,所有 C语言程序都包含main函数。它实质上是C语言程序的首 部。一般函数名后面为参数表,参数表在一对圆括号() 之中。main函数可以有参数。本程序中的main函数没有 参数,即参数表为空,但一对圆括号()必须有,不能省 去
{}是一对花括号,将构成函数的语句包括起来。C语言中的语句 夯为語句角粱點還糟蓊攉;,淡定肉箬的贫馨 本程序共有10个语句: unsigned char a,b,c,sum:是说明语句。它说明a、b、C、sum 四个变量都是 unsigned char(长度为8位)类型的变量 a=5;b=3;是两个赋值语句。等号≡作为赋值运算符,它们分别 将5和3赋给变量a和b; SCON=0x52: TMOD=0x20: TCON= 0x69: TH1 0x0F3;四句是对8051的串行口进行初始化,因为 Keil Cx51提供 的标准的输入输出函数都是通过8051的串口来进行的,因此必须首 先对串口迸行初始化 scanf("%d",&C),是一个输入语句。它按十进制(由d指明) 给变量c输入一个长度为8位的整数,在程序执行时等待用户输入 本程序中输入5 sum=a+b+C;是一个赋值语句。它将三个变量的值求和,再 赋值给sum。 > printf("sum=%dn"sum);,是一个输出语句。它首先输出字 符串sum=,然后按十进制(由d指明)输出变量sum的值。在本 程序中输出sum=13
{ }是一对花括号,将构成函数的语句包括起来。C语言中的语句 大致分为两类;一类为说明语句,用来描述数据,决定内存的分配; 另一类为执行语句,用来描述对数据进行的动作,决定内存的内容。 本程序共有10个语句: ➢ unsigned char a, b, c, sum;是说明语句。它说明a、b、c、sum 四个变量都是unsigned char(长度为8位) 类型的变量; ➢ a=5;b=3;是两个赋值语句。等号 = 作为赋值运算符,它们分别 将5和3 赋给变量 a 和b; ➢ SCON=0x52;TMOD=0x20;TCON = 0x69;TH1 = 0x0F3;四句是对8051的串行口进行初始化,因为Keil Cx51 提供 的标准的输入输出函数都是通过8051的串口来进行的,因此必须首 先对串口进行初始化。 ➢ scanf("%d",&c),是一个输入语句。它按十进制(由d指明) 给变量 c 输入一个长度为8位的整数,在程序执行时等待用户输入。 本程序中输入5。 ➢ sum = a + b + c;是一个赋值语句。它将三个变量的值求和,再 赋值给sum。 ➢ printf ("sum= %d\n", sum ); 是一个输出语句。它首先输出字 符串sum =, 然后按十进制(由d指明)输出变量 sum 的值。在本 程序中输出sum = 13