单片机的C51语言.ppt
《单片机的C51语言.ppt》由会员分享,可在线阅读,更多相关《单片机的C51语言.ppt(109页珍藏版)》请在课桌文档上搜索。
1、单片机的C51语言,1 C51的程序结构 2 C51的数据结构 3 C51仿真开发环境 4 C51初步应用编程,51汇编语言能直接操作单片机的系统硬件,指令执行速度快。但其程序可读性差,且编写、移植困难。,C51是为51系列单片机设计的一种C语言,其特点:,C51语言已成为51系列单片机程序开发的主流软件方法。,结构化语言,代码紧凑效率可与汇编语言媲美接近真实语言,程序可读性强易于调试、维护库函数丰富,编程工作量小产品开发周期短机器级控制能力,功能很强适合于嵌入式系统开发与汇编指令无关,易于掌握在单片机基础上上手快,C51与标准C语言对比相同之处:语法规则、程序结构、编程方法差异之处:数据类型
2、、存储模式、中断处理教学安排:介绍C51语言的数据结构及C51编程手段;介绍单片机I/O口的初步应用及C51编程方法。,1 C51的程序结构 2 C51的数据结构 3 C51仿真开发环境 4 C51初步应用编程,C51单片机软件系统结构,Project(可包含若干程序文件),Keil C51(Vionsion3),Main(函数),File_1(*.c),Func_k(函数),.,File_n(*.*),Func_1(函数),Func_n(函数),.,用户编程,编译系统,程序由函数组成(一个主函数,或一个主函数和若干自定义函数);利用预处理命令对变量或函数进行集中定义或说明;函数和变量都需遵循
3、先定义后使用的基本原则;主函数中的所有语句执行完毕,则程序结束。,C51与标准C程序结构完全相同,举例:LED闪烁控制功能,预处理命令-,函数说明-,全局变量定义-,主函数-,调用函数-,局部变量定义-,程序体,程序体-,1 C51的程序结构 2 C51的数据结构 1.C51的变量 2.C51的指针3 C51仿真开发环境 4 C51初步应用编程,在程序执行过程中,数值可以发生改变的量称为变量。,变量名与存储单元地址相对应,变量值与存储单元的内容相对应。,例如,在哈佛结构的存储空间中如何建立变量概念?,【存储种类】数据类型【存储类型】变量名,*方括号项可以缺省,C51变量定义的四个要素:,自动变
4、量(auto)在函数内部定义的变量,退出函数后,分配给该变量的存储单元即自行消失(局部变量)。,【存储种类】数据类型【存储类型】变量名,外部变量(extern)在函数外部定义的变量,可始终保持变量的数值(全局变量)。【强调】一个外部变量只能被定义一次,在定义文件之外的地方使用时需用extern进行声明。,静态变量(static)静态局部变量/静态全局变量 寄存器变量(register)以寄存器为存储空间的变量,*若省略存储种类选项,则变量默认为自动变量,数据的不同格式叫做数据类型,*有符号数类型可以忽略signed标识符,标准C语言的数据类型,【存储种类】数据类型【存储类型】变量名,C51扩充
5、数据类型:bit、sfr或sfr16、sbit,bit 型,用bit 定义一个位变量,语法规则如下:,bit bit_name=常数01;,例如:bit door=0;/定义一个叫door的变量且初值为0,与标准C的变量定义及初始化用法是一致的,例如:int a=5;unsigned char sum=0 x10;,Sfr或sfr16型,sfr定义特殊功能寄存器SFR,语法规则如下:sfr 或 sfr16 sfr_name=字节地址常数;,例如,sfr P0=0 x80;/定义P0口地址80Hsfr PCON=0 x87;/定义PCON地址87H sfr16 DPTR=0 x82;/定义DPT
6、R的低端地址82H,sbit型,将SFR范围内的位地址(0 x800 xFF)定义为位变量,1)sbit bit_name=位地址常数;将位于SFR字节地址内的绝对位地址定义为位变量名。例如,sbit CY=0 xD7;,2)sbit bit_name=sfr_name 位位置;将已有定义的SFR的07位定义为位变量名。例如:sfr PSW=0 xD0;sbit CY=PSW7;,3)sbit bit_name=sfr字节地址 位位置;将SFR字节地址的相对位地址定义为位变量名。例如:sbit CY=0 xD07;,C51编译器在头文件“reg51.h”中定义了全部sfr/sfr16和sbit
7、变量。,用一条预处理命令#include 把这个头文件包含到C51程序中,无需重定义即可直接使用它们的名称。,应用举例:,51系列单片机有三个逻辑存储空间:,【存储种类】数据类型【存储类型】变量名,片内数据存储器,片外数据存储器和程序存储器。,建立C51存储类型与存储空间的对应关系,data区,xdata区,code区,bdata区,C51的存储类型与存储空间对应关系表,C51编译器指定了三种默认存储类型:,【存储种类】数据类型【存储类型】变量名,C51编译器的三种编译模式:小编译模式(SMALL)、紧凑编译模式(COMPACT)和大编译模式(LARGE),变量名可以由字母、数字和下划线三种字
8、符组成,且第一个字符必须为字母或下划线,变量名长度随编译系统而定。,变量名具有字母大小写的敏感性,如SUM和sum代表不同的变量。强调:头文件中定义的变量都是大写的,【存储种类】数据类型【存储类型】变量名,C51扩展的若干关键字一览表,变量名不得使用标准C语言和C51语言的关键字。,unsigned char data system_status=0;,/定义system_status为无符号字符型自动变量,该变量位于data区中且初值为0。,数据结构定义举例,变量名为system_status,位与片内RAM区,无符号字符型,自动型,初值为零,unsigned char bdata stat
9、us_byte;,unsigned int code unit_id2=0 x1234,0 x89ab;,static char m,n;,/定义status_byte为无符号字符型自动变量,该变量位于bdata区,/定义unit_id2为无符号整型自动变量,该变量位于code区中,是长度为2的数组,且初值为0 x1234和0 x89ab。,/定义m和n为2个位于data区中的有符号字符型静态变量。,1 C51的程序结构 2 C51的数据结构 1.C51的变量 2.C51的指针3 C51与汇编语言的混合编程 4 C51仿真开发环境 5 C51初步应用编程,C51的指针与标准C的指针几乎是一样的
10、,都可以简单理解为“存储地址的变量”,例如:,2.C51的指针,int*b=,int a;/定义一个整型变量a,/定义一个整型指针变量b,其初值为a的地址,在C51里定义指针,还需要额外指明两个问题:1)指针变量自身位于哪个存储区域;2)该指针的值代表的是哪个存储区域里的地址。,以SMALL编译模式(默认data区存储类型)为例:,例1 char xdata a=A;/定义xdata区里的变量a,初值A char*ptr=,解:ptr是一个char型的指针变量,它本身位于data存储区,它的初值是位于xdata区里变量a的地址。,【存储种类】数据类型【存储类型】变量名,解:unsigned c
11、har idata a=A;,例2 若ptr是一个unsigned char型指针变量,它本身位于idata存储区,它的初值是位于idata存储区里的unsigned char型自动变量a(初值为A)的地址。试据此完成相关变量的定义和初始化。,unsigned char*idata ptr=,C51提供两种指针:通用指针和具体指针通用指针 占用3字节 而对于data idata pdata 数据类型,实际只需要2字节。通用指针代码比具体指针代码的执行速度要慢。具体指针 使用者规定指针指向存储区段的指针:Char data*str;指针指向data区中的char型数据 1字节 int xdata
12、*prt;指针指向xdata区中的int型数据 2字节 使用具体指针可节省存储空间,代码执行速度快。,1 C51的程序结构 2 C51的数据结构 3 C51仿真开发环境 1、Keil的编译环境 Vision3 2、Vision3的基本使用方法4 C51初步应用编程,Keil是德国Keil Software公司的51单片机开发软件包,包括C编译器、宏汇编、连接器、库管理及仿真调试器,通过一个集成开发环境(uVisoin3)组合起来。,Vision3的软件界面包括四大组成部分,即菜单工具栏,项目管理窗口,文件窗口和输出窗口。,Vision3中共有11个下拉菜单。工具栏的位置和数量可以通过设置选定和
13、移动。,项目管理窗口用于管理项目文件目录,它由五个子窗口组成,可以通过子窗口下方的标签进行切换,它们分别是:文件窗口,寄存器窗口,帮助窗口,函数窗口,模版窗口。,项目管理窗口:,输出窗口:输出窗口用于编译过程中的信息交互作用,由三个子窗口组成,可以通过子窗口下方的标签进行切换,它们分别是:编译窗口,命令窗口,搜寻窗口。,信息窗口:观察窗口(Watch&Call Statck Windows)输出窗口(Output Windows)存储器窗口(Memory Window)反汇编窗口(Dissambly Window)串行窗口(Serial Window),1 C51的程序结构 2 C51的数据结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 C51 语言
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-246791.html