片机的C51语言简介.ppt
《片机的C51语言简介.ppt》由会员分享,可在线阅读,更多相关《片机的C51语言简介.ppt(56页珍藏版)》请在三一办公上搜索。
1、单片机原理与应用,第4章 MCS-51单片机 的C语言简介,TOPICS,C51的程序结构,1,C51的数据结构,2,3,4,5,6,C51的绝对地址访问,C51的输入输出,C51中断服务函数的定义方法,汇编语言与C51的混合编程,4.1 C51的程序结构,汇编语言与C51语言的区别:,汇编语言能直接操作单片机的硬件资源,即编程者必须具体地组织、分配存储器资源和处理端口数据。指令执行速度快,但其程序可读性差,且编写、移植困难。,C51语言特点:,结构化语言,代码紧凑效率可与汇编语言媲美 接近真实语言,程序可读性强易于调试、移植 库函数丰富,编程工作量小产品开发周期短,4.1 C51的程序结构,
2、C51语言编程者不用像用汇编语言那样具体地组织、分配存储器资源和处理端口数据。但对数据类型和变量的定义,必须要与单片机存储结构相关联,否则编译器不能正确地映射定位。,C51与标准C的比较:,相同点:语法规则、程序结构、编程方法,4.1 C51的程序结构,不同点:,用C51语言编写程序需根据单片机存储结构及内部资源定义相应的数据类型和变量。库函数、存储模式;中断处理;输入/输出处理。,C51与标准C程序结构完全相同。,程序由函数组成(一个主函数,或一个主函数和若干自定义函数);利用预处理命令对变量或函数进行集中定义或说明;函数和变量都需遵循先定义后使用的基本原则;主函数中的所有语句执行完毕,则程
3、序结束。,4.1 C51的程序结构,举例:LED灯的闪烁控制功能,4.1 C51的程序结构,预处理命令-,函数说明-,全局变量定义-,主函数-,调用函数-,局部变量定义-,程序体,程序体-,4.1 C51的程序结构,1.C51的变量,在程序执行过程中,数值可以发生改变的量称为变量。,例如,变量名与存储单元地址相对应;变量值与存储单元的内容相对应。,4.2 C51的数据结构,【存储种类】数据类型【存储类型】变量名,(标准C),(标准C),*括号项可以缺省(但需有缺省值),C51变量定义的四要素:,(C51),(标C+C51),4.2 C51的数据结构,【存储种类】数据类型【存储类型】变量名,au
4、to(自动型)extern(外部型)static(静态型)register(寄存器型),4.2 C51的数据结构 存储种类,存储种类是指变量在程序执行过程中的作用范围。,【存储种类】数据类型【存储类型】变量名,标准C语言的数据类型,*有符号数类型可以忽略signed标识符,4.2 C51的数据结构-数据类型,C51扩充数据类型:bit、sfr或sfr16、sbit,bit 型,bit用于定义一个位变量,语法规则如下:,bit bit_name=常数01;,例如:bit door=0;/定义一个叫door的变量且初值为0,4.2 C51的数据结构-数据类型,sfr或sfr16型,sfr或sfr1
5、6用于定义特殊功能寄存器变量,语法规则如下:sfr 或 sfr16 sfr_name=字节地址常数;,4.2 C51的数据结构-数据类型,用关键字“sfr16”来定义“=”后面的地址必须用16位SFR的低字节地址,即16位SFR的低地址作为“sfr16”的定义地址,其高位地址在定义中没有体现。sfr16 T2=0 xCC;/T2的低8位为0CCH,高8位为0CDH sfr16 T0=0 x8A;/错误,不能这样定义定时器/计数器0,4.2 C51的数据结构-数据类型,例如:sfr P0=0 x80;/定义P0口地址80H sfr PCON=0 x87;/定义PCON地址87H sfr16 DP
6、TR=0 x82;/定义DPTR,低端地址DPL=82H,高端地址DPH=83H,4.2 C51的数据结构-数据类型,sbit型,绝对位地址,相对位地址,字节地址,使用“sbit”来定义SFR的位寻址单元。,4.2 C51的数据结构-数据类型,sbit有三种定义方法:,1)将SFR的绝对位地址定义为位变量名sbit bit_name=位地址常数;例如,sbit CY=0 xD7;,2)将SFR的相对位地址定义为位变量名sbit bit_name=sfr字节地址 位位置;例如,sbit CY=0 xD07;,3)将SFR的07位直接定义为位变量名 sbit bit_name=sfr_name 位
7、位置;例如,sbit CY=PSW7;,4.2 C51的数据结构-数据类型,C51编译器在头文件“reg51.h”中定义了全部sfr/sfr16和sbit变量。,用#include 包含头文件到C51程序中,无需重定义即可直接使用它们的名称。,4.2 C51的数据结构-数据类型,应用举例:,4.2 C51的数据结构-数据类型,C51使用#define或typedef语句定义数据类型的别名。,#define 别名 C51固有的数据类型 typedef C51固有的数据类型 别名;,4.2 C51的数据结构-数据类型,具体格式为:,eg:#define uchar unsigned char#de
8、fine uint unsigned int typedef unsigned int WORD;这样,在其后的程序就可以用uchar代替unsigned char,用uint或WORD代替unsigned int来定义变量,从而节省书写时间、减少错误和增强可读性。如:uchar x;/定义变量x为无符号字符型变量 uint y;/定义变量y为无符号整型变量 WORD z;/定义变量z为无符号整型变量,4.2 C51的数据结构-数据类型,【存储种类】数据类型【存储类型】变量名,4.2 C51的数据结构 存储类型,C51存储类型与存储空间的对应关系,共有6种存储类型,4.2 C51的数据结构 存
9、储类型,4.2 C51的数据结构 存储类型,三种编译模式分别对应于三种缺省(默认)存储类型。,【存储种类】数据类型【存储类型】变量名,4.2 C51的数据结构 存储类型,变量名由字母、数字和下划线三种字符组成;第一个字符必须为字母或下划线;变量名长度随编译系统而定。变量名区分字母大小写。,【存储种类】数据类型【存储类型】变量名,4.2 C51的数据结构 变量名,强调:头文件中定义的变量都是大写的,若程序采取小写变量则需要重新定义。,变量名不得使用标准C语言和C51语言的关键字。,谭浩强C程序设计第三版 清华大学出版社,附录B中C语言中的关键字 37个,4.2 C51的数据结构 变量名,unsi
10、gned char data system_status=0;,/定义system_status为无符号字符型自动变量,该变量位于data区中且初值为0。,数据结构定义举例,变量名为system_status,位于片内RAM区,无符号字符型,自动型,初值为零,4.2 C51的数据结构 变量名,unsigned char bdata status_byte;,unsigned int code unit_id2=0 x1234,0 x89ab;,/定义status_byte为无符号字符型自动变量,该变量位于bdata区,/定义unit_id2为无符号整型自动变量,该变量位于code区中,是长度为
11、2的数组,且初值为0 x1234和0 x89ab。,4.2 C51的数据结构 变量名,2.C51的指针,数据类型【指向存储类型】【自身存储类型】变量名,用来存放变量地址的变量指针变量 C51指针变量也要先定义后使用。,可见,C51指针变量突出了两个问题:1)指针变量自身位于哪个存储区域;2)该指针的值指向的是哪个存储区域里的地址。,4.2 C51的数据结构 指针,定义的一般形式:,例1 若ptr是指向idata存储区的指针变量,该存储区将以无符号字符形式存放数据。要求ptr本身位于xdata存储区,值是位于idata存储区里的unsigned char型自动变量a(初值为A)的地址。试据此完成
12、相应变量的定义及初始化。,解:假想具体值量化如下:,4.2 C51的数据结构 指针,例如,用来存放变量地址的变量指针变量,在程序执行过程中,数值可以发生改变的量称为变量。,解:若编译器默认的存储类型为data,则指针pi自身被存放在data区内,它是指向 xdata 存储区的无符号字符型变量。,解:指针port自身被存放在idata区内,它是指向 code 存储区的无符号字符型变量。,例2unsigned char xdata*pi;,例3unsigned char code*idata port;,4.2 C51的数据结构 指针,4.3 C51的绝对地址访问,一、使用C51运行库中预定义宏,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 语言 简介

链接地址:https://www.31ppt.com/p-5007731.html