C51语言编程基础.ppt
《C51语言编程基础.ppt》由会员分享,可在线阅读,更多相关《C51语言编程基础.ppt(77页珍藏版)》请在三一办公上搜索。
1、第3章 C51语言编程基础,1)机器语言定义:处理器能直接执行的二进制代码特点:效率高、但不易于使用,10110110 00000000 10110101 00000000,ADD A,#19,3.1 编程语言Keil C51简介,1、编程语言,2)汇编语言 定义:以助记符的形式表示机器语言 特点:速度快、体积小、但依赖于硬件体系,3)高级语言独立于机器、面向过程的、接近于人的自然语言。语言:FORTRAN、C语言特点:与硬件无关、易于交流和使用、运行效率低,X=X+1;,编译器链接器,X=X+1;,程序员,1001001010110010,高级语言程序,机器码,单片机如何执行程序指令?,Ke
2、il C51语言是在标准C的基础上,针对51单片机的硬件特点进行扩展,并向51单片机上移植的高效、简洁的实用高级语言。,与汇编语言相比的特点:(1)可读性好。(2)可模块化开发。(3)可移植性好。(4)生成的代码效率较低。,2、Keil C51语言简介,对于51单片机,目前广泛使用的是Keil C51语言,简称C51语言。,3、C51与标准C的区别,(1)库函数的不同。例如库函数printf和scanf,在标准C中,这两个函数通常用于屏幕打印和接收字符,而在Keil C51中,主要用于串行口数据的收发。,(3)C51的变量存储模式与标准C中的变量存储模式不一样。标准C是在通用计算机中只有一个程
3、序和数据统一寻址的内存空间。51单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。,(4)标准C语言没有处理单片机中断的方法。C51中有专门处理中断的中断函数。,(2)数据类型有一定的区别。在标准C的基础上又扩展了4种类型。,(5)头文件的不同。51头文件把单片机内部的硬件资源如定时器、中断、I/O等所相应的功能寄存器写入头文件内。(6)程序结构的差异。由于51单片机硬件资源有限,编译系统不允许太多的程序嵌套。其次,C51语言不支持标准C的递归特性。,4、Keil C51的开发工具Keil Vision3,Keil Vision3是德国Keil software公司开发的C51语
4、言开发软件。这个软件集成了文件编辑处理、编译链接等功能。,3.2 C51语言程序设计基础,1、数据类型与存储类型,1)数据类型,2)C51扩展的数据类型(4种扩展的数据类型),(1)位变量bit bit的值可以是1(true),或0(false)。,bit 变量名;,格式:,例如:,bit flag;flag=0;,(2)特殊功能寄存器sfr 地址单元80HFFH之间的片内数据存储区;“sfr”数据类型占用一个内存单元;利用它可以访问51单片机内部的所有特殊功能寄存器。,sfr P1=0 x90;/定义了P1为片内的P1口寄存器;P1=0 xff;/把P1口的所有输出引脚设置为高电平。,例如:
5、,sfr 寄存器变量名=字节地址常数;,格式:,sfr SBUF=0 x99;,习题:往串行发送数据缓冲寄存器SBUF写入80,SBUF=80;,习题:从P0口寄存器读取数据,存放到任意一个变量X。,sfr P0=0 x80;int x;,x=P0;,例如:,(3)特殊功能寄存器sfr16“sfr16”数据类型占两个内存单元;用于操作占两个字节的特殊功能寄存器。,sfr16 DPTR=0 x82;/定义了片内16位数据指针寄存器DPTR,/低8位字节地址为82H,/高8位字节地址为83H。DPTR=0 x1234;,sfr16 寄存器变量名=字节地址常数;,格式:,字节地址为82H、83H存放
6、的数据分别是多少?,(4)特殊功能位 sbit 片内特殊功能寄存器的可寻址位。,“”前是特殊功能寄存器的名字;“”的后面数字是特殊功能寄存器可寻址位在寄存器中的位置,取值必须是0-7。,sbit 位变量名=特殊功能寄存器 位位置;,格式:,sfr PSW=0 xd0;/定义PSW寄存器地址为0 xd0sbit FO=PSW 5;/定义F0位为PSW.5F0=0;,例如:,习题:片内I/O口P1口的P1.0寻址位置成高电平,sfr P1=0 x90;sbit P1_0=P10;P1_0=1;,习题:从P2口的P2.7读取数据,存放到任意一个位变量X。,sfr P2=0 xA0;sbit P2_7
7、=P27;bit x;x=P2_7;,sbit 位变量名=位地址常数;,sbit CY=0 xD7;/*CY位地址为0 xD7*/sbit OV=0 xD2;/*OV位地址为0 xD2*/if(CY=1),例如:,格式:,习题:片内I/O口P1口的P1.0寻址位置成低电平,sbit P1_0=0 x90;P1_0=0;,在头文件AT89X51.h中定义了常用的特殊功能寄存器和可寻址位。#include,sfr P1=0 x90;sbit P1_0=0 x90;两者区别?,6,3)数据存储类型,数据存储类型是指数据存放在51单片机的哪一个存储器空间。,bdata,data,idata,pdata
8、,xdata,code,(1)DATA区。DATA区指片内RAM的低128字节的空间,可直接寻址;寻址是最快的,应该把经常使用的变量放在DATA区。,unsigned char data system_status=0;unsigned int data unit_id8;,例如:,格式:数据类型【存储类型】变量名;,(2)BDATA区。BDATA区是内部RAM可位寻址的16字节存储区(字节地址为20H 2FH)中的128个位。在这个区中声明变量就可进行位寻址。,例如:,unsigned char bdata status_byte;unsigned int bdata status_word
9、;sbit stat_flag=status_byte4;if(status_word15)stat_flag=1;,(3)IDATA区。IDATA区是片内RAM的0-256字节的存储区,只能间接寻址,速度比直接寻址慢。,unsigned char idata system_status=0;float idata value;,例如:,(4)PDATA区和XDATA区。PDATA区和XDATA区位于片外存储区;PDATA区指的是外部数据存储区0256字节。XDATA区指的是外部数据区64KB内的任何地址。,unsigned char xdata system_status=0;unsigne
10、d int pdata unit_id8;,例如:,(5)程序存储区CODE。CODE区是程序存储区,储存的数据是不可改变的。,unsigned char code a9=0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08;,例如:,4)数据存储器模式C51编译器设定的存储器模式:SMALL、COMPACT和LARGE三种模式。,若声明 char var1;在SMALL模式下,var1被定位在data存储区;在COMPACT模式下,var1被定位在idata存储区;在LARGE模式下,var1被定位在xdata存储区中。,2、C51语言的
11、绝对地址访问,C51语言提供了两种比较常用的访问绝对地址的方法,对片内RAM、片外RAM及I/O进行访问。,绝对地址,1)绝对宏C51编译器提供了一组宏定义对code、data、pdata和xdata空间进行绝对寻址。这组宏定义放在absacc.h头文件中:,CBYTE 以字节形式对code区寻址;CWORD 以字形式对code区寻址;DBYTE 以字节形式对data区寻址;DWORD 以字形式对data区寻址;XBYTE 以字节形式对xdata区寻址;XWORD 以字形式对xdata区寻址;PBYTE 以字节形式对pdata区寻址;PWORD 以字形式对pdata区寻址。,#define 变
12、量名 绝对宏字节地址,格式,绝对宏,【例】片内RAM、片外RAM定义的程序如下:#include#define PORTE XBYTE0 xFFC0/*将PORTE定义为外部I/O,地址为0 xFFC0*/#define NRAM DBYTE0 x40/*将NRAM定义为片内RAM,地址为0 x40*/,main()PORTE=0 x3D;NRAM=0 x01;,/*数据3DH写入地址0 xFFC0的外部I/O PORTE*/,/*将数据01H写入片内RAM的40H单元*/,习题 使用绝对宏将片内RAM 20H的字节地址单元全部置1。,#include#define M DBYTE0 x002
13、0/*将M定义为外部RAM,地址为0 x0020*/,main()M=0 xff;,习题:使用绝对宏读取片外RAM F000H字节地址单元的内容。,#include#define WRAM XBYTE0 xF000,main()char x;x=WRAM;,7,2)_at_关键字使用关键字_at_可对指定的存储器空间的绝对地址进行访问。格式:存储类型 数据类型 变量名 _at_ 地址常数;,地址常数:指定变量的绝对地址,位于存储器空间之内;使用_at_定义的变量必须为全局变量。,【例】使用关键字_at_实现绝对地址的访问。data unsigned char y1 _at_ 0 x50;/*在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 语言 编程 基础
链接地址:https://www.31ppt.com/p-5417045.html