单片机C51程序设计.ppt
《单片机C51程序设计.ppt》由会员分享,可在线阅读,更多相关《单片机C51程序设计.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 单片机单片机C51程序设计程序设计本章要点本章要点u 了解了解Keil C51编译器的功能编译器的功能u 掌握掌握C51的数据类型及变量定义的数据类型及变量定义u 掌握掌握Keil C51编译环境的使用方法编译环境的使用方法 单片机常用的编程语言有汇编语言和单片机常用的编程语言有汇编语言和C C语言。语言。C C语言的结构语言的结构性、可读性和可维护性好,已成为单片机应用系统开发的主性、可读性和可维护性好,已成为单片机应用系统开发的主流语言。支持流语言。支持MCS-51MCS-51用用C C语言编程的编译器主要有两种:语言编程的编译器主要有两种:1)Franklin C511)F
2、ranklin C51编译器编译器 2)Keil C512)Keil C51编译器,简称编译器,简称C51C51。其中:其中:C51C51是专为是专为MCS-51MCS-51开发的一种高性能的开发的一种高性能的C C编译器编译器本章内容本章内容uC51C51程序结构程序结构uC51C51的数据类型的数据类型u存储器类型及存储区存储器类型及存储区uC51C51对特殊功能寄存器的定义对特殊功能寄存器的定义uKeilC5KeilC5指针与函数指针与函数u绝对地址访问绝对地址访问u宏定义与宏定义与C51C51常用的头文件常用的头文件u单片机的单片机的IOIO口编程口编程3.1 C51程序结构程序结构u
3、C51程序结构与一般的程序结构与一般的C程序没有差别。程序没有差别。uC51源程序必须包含一个源程序必须包含一个main()函数函数uC51源程序文件,还可以包含若干个其他函数源程序文件,还可以包含若干个其他函数uC51程序必须包含程序必须包含C51的库文件的库文件u如果使用中断,需要单独编写中断函数如果使用中断,需要单独编写中断函数u如果使用中断、定时器和串口等外设或特殊功能模如果使用中断、定时器和串口等外设或特殊功能模块,一般要先进行初始化设置块,一般要先进行初始化设置u主函数中,主函数中,while(1)是必须的。是必须的。3.1 C51程序结构程序结构预处理命令:预处理命令:#incl
4、ude#include /全程变量定义全程变量定义 /函数声明函数声明 /函数定义函数定义char funl()/char funl()/函数定义函数定义 /函数体函数体 /中断函数定义中断函数定义void void 函数名函数名()interrupt x()interrupt x /函数体函数体#include#include void main()/void main()/主函数主函数 /局部变量定义局部变量定义 /单片机寄存器的初始化函数单片机寄存器的初始化函数 while(1)while(1)/主函数体主函数体 关于While(1)是单片机程序必须的部分C51对标准对标准ANSI C的
5、扩展的扩展C51除除ANSI C标准的标准的32个关键字之外,个关键字之外,C51还扩展还扩展以下的关键字:以下的关键字:_at_、sfr16、alien、sfridata、bdata、pdatacode、bit、sbit、interrupt 3.2 C51的数据类型的数据类型表表3-3 存储器类型关键字存储器类型关键字关键字描述DATA片内RAM 的低128 个字节BDATA片内RAM 的DATA 区的16 个字节的可位寻址区IDATA片内RAM 区的高128 个字节PDATA外部RAM的1页(256字节),通过P0 口的地址对其寻址XDATA外部RAM的64KB存储区CODE程序存储区3.
6、3 存储器类型及存储区存储器类型及存储区1.DATA段段 unsigned char data sys=0;unsigned int data unit_id2;2.BDATA段段 unsigned char bdata status_byte;unsigned int bdata status_word;3.IDATA 段段 unsigned char idata system_status=0;unsigned int idata unit_id2;3.3 存储器类型及存储区存储器类型及存储区4.PDATA和和XDATA 段段 unsigned char xdata system_stat
7、us=0;unsigned int pdata unit_id2;char xdata inp_string16;float pdata outp_value;5.CODE段段 unsigned int code unit_id2=1234;存储模式指定缺省类型存储模式指定缺省类型存储模式说 明SMALL默认的存储类型是data,参数及局部变量放入可直接寻址片内RAM的用户区中(最大l28字节)。COMPACT默认的存储类型是pdata,参数及局部变量放入分页的外部数据存储区LARGE默认的存储类型是xdata,参数及局部变量直接放入片外数据存储区。用此数据指针进行访问效率较低,尤其对两个或多
8、个字节的变量,这种数据类型的访问机制直接影响代码的长度这个模式选择是在这个模式选择是在Keil开发环境中设置的开发环境中设置的3.4 C51对特殊功能寄存器对特殊功能寄存器(SFR)的定义的定义uC51C51编译器使用编译器使用sfrsfr与与sfr16sfr16两个关键词,将这些两个关键词,将这些特特殊功能寄存器殊功能寄存器的名字与其的名字与其绝对地址绝对地址联系起来;联系起来;uu将单片机的硬件与将单片机的硬件与C C语言编程结合起来语言编程结合起来。1.使用使用“sfr”关键字定义关键字定义SFR特殊功能寄存器特殊功能寄存器C51定义的一般语法格式如下:定义的一般语法格式如下:sfr n
9、ame=int constant【例例3-1】使用使用“sfr”关键字定义关键字定义SFR sfr SCON=0 x98;/声明声明SCONSCON为串口控制器,地址为为串口控制器,地址为0 x98 0 x98 sfr P0=0 x80;/声明声明P0P0为特殊功能寄存器,地址为为特殊功能寄存器,地址为0 x80 0 x80 /声明声明TMODTMOD为定时器器的模式寄存器,地址为为定时器器的模式寄存器,地址为0 x89 0 x89 sfr TMOD=0 x89;sfr PSW=0 xD0;/声明声明PSWPSW为特殊功能寄存器,地址为为特殊功能寄存器,地址为0 xD0 0 xD0 这这些寄存
10、器,些寄存器,Keil提供的提供的头头文件默文件默认认都定都定义义好好添加添加 头文件头文件REGX51.H 图图 3-1 3-1 加入加入REGX51.HREGX51.H的例子的例子2.使用使用“sbit”关键字定义关键字定义SFR的每一位的每一位语法格式如下:语法格式如下:sbit bitname=sfrnameint constant;【例例3-2】使用使用“sbit”关键字定义关键字定义SFR的每一位的每一位 sfr PSW =0 xD0;/定义定义PSW寄存器地址为寄存器地址为DOH sbit OV =PSW2;/定义定义0V位为位为PSW.2,地址为,地址为D2H sbit P2_
11、7=P27;/定义定义P2.7位为位为P2_73.5 Keil C51指针与函数指针与函数1.通用指针通用指针2.存储器指针存储器指针3.Keil C51函数函数1.通用指针通用指针 通用指针的声明和使用均与标准通用指针的声明和使用均与标准C相同,不过同时相同,不过同时还可以说明指针的存储类型。如:还可以说明指针的存储类型。如:char*s;/*字符指针字符指针*/int*numptr;/*整型指针整型指针*/long*state;/*长整型指针长整型指针*/通用指针总是需要三个字节来存储:第一个字节表示通用指针总是需要三个字节来存储:第一个字节表示存储器类型,第二个字节是指针的高字节,第三个
12、字存储器类型,第二个字节是指针的高字节,第三个字节是指针的低字节。节是指针的低字节。2.存储器指针存储器指针 存储器指针或类型确定的指针在定义时包括一个存储器存储器指针或类型确定的指针在定义时包括一个存储器类型说明,并且总是指向此说明的特定存储器空间。例如:类型说明,并且总是指向此说明的特定存储器空间。例如:char char char char datadatadatadata*str;*str;*str;*str;/*str/*str指向指向datadata区中区中charchar型数据型数据*/*/int int int int xdataxdataxdataxdata*pow;*pow
13、;*pow;*pow;/*pow/*pow指向外部指向外部RAMRAM的的intint型整数型整数*/*/。3.Keil C51函数函数u格式:格式:函数类型函数类型 函数名函数名(形式参数)(形式参数)reentrant u函数的格式与标准函数的格式与标准C语言相同语言相同 3.6 绝对地址访问绝对地址访问使用使用“includeincludeincludeinclude”语句即可使用其中定语句即可使用其中定义的宏来访问绝对地址。该文件中实际只定义了几个义的宏来访问绝对地址。该文件中实际只定义了几个宏,以确定各存储空间的绝对地址,使用方法如下:宏,以确定各存储空间的绝对地址,使用方法如下:1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 C51 程序设计
限制150内