(15)--[4.1]-Keil C51程序设计单片机设计及应用.ppt
《(15)--[4.1]-Keil C51程序设计单片机设计及应用.ppt》由会员分享,可在线阅读,更多相关《(15)--[4.1]-Keil C51程序设计单片机设计及应用.ppt(183页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Keil C51Keil C51程程 序序 设设 计计Keil C51程序设计主要内容:主要内容:nKeil C51Keil C51编程语言;编程语言;nC51C51语言程序设计方法;语言程序设计方法;4.1 Keil C51编程语言Keil C51(由美国Keil Software 公司推出)是目前最流行的51系列单片机C语言软件开发平台,具有程序的编辑、编译、连接、目标文件格式转换、调试和模拟仿真等功能。C51是其中的一个编译器,它具有ANSIC标准C所有的功能,并针对51系列单片机的硬件特点做了扩展。Keil uVision4是众多单片机应用开发软件中最新、最优秀的软件之一,它支持众多不
2、同公司的MCS51架构的芯片,甚至ARM系统,它集编辑,编译,仿真等多种功能于一体,它的界面和常用的微软VC+的操作界面相似,人机交互友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。4.1 Keil C51编程语言pKeil Vision4的使用方法p标准C的基本语法概括性介绍pC51的扩展功能4.1.1 Keil C51的简介Keil C51语言是在ANSI C的基础上针对51单片机的硬件特点进行的扩展,并向51单片机上移植,经过多年努力,C51语言已经成为公认的高效、简洁而又贴近5 1单片机硬件的实用高级编程语言。目前大多数的51单片机用户都在使用C51语言来进行程序设计。用C5
3、1进行单片机软件开发,有如下优点:可读性好。模块化开发与资源共享。可移植性好。代码效率高。4.1.1 Keil C51的简介4.1.2 Keil C51的开发环境pKeil公司目前已推出V7.0以上版本的C51编译器,为5 1单片机软件开发提供了全新的C语言环境,同时保留了汇编代码高效、快速的特点。4.1.2 Keil C51的开发环境p现在,Keil C51已被完全集成到一个功能强大的全新集成开发环境(IDE)Vision4中,该环境下集成了文件编辑处理、编译链接、项目管理、窗口、工具引用和仿真软件模拟器以及Monitor51硬件目标调试器等多种功能,这些功能均可在Keil Vision4环
4、境中极为简便地进行操作。本章用到Keil C51和Keil Vision4两个术语。分别是51单片机编程所用的C语言和51单片机的C51程序编写、调试的集成开发环境。4.1.2 Keil C51的开发环境4.1.3 Keil Vision4初步应用方法p使用汇编语言或C语言要用到编译器,以便把写好的程序编译为机器码,随后才能把HEX可执行文件写入单片机内。4.1.3 Keil Vision4初步应用方法pKeil Vision4是众多单片机应用开发软件中最新、最优秀的软件之一。支持众多不同公司的MCS51架构的芯片,甚至ARM系统;集编辑,编译,仿真等多种功能于一体;界面和常用的微软VC+的操
5、作界面相似,人机交互友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。运行Keil Vision4的首个画面:建立第一个建立第一个Keil Keil Vision4 CVision4 C语言项目语言项目4.1.3 Keil Vision4初步应用方法(1)在Project菜单,选择弹出的下拉式菜单中的New Project,创建新的 Vision项目。注意,这里的项目文件扩展名是uvproj。(2)选择所要的单片机,这里我们选择常用的MCU单片机芯片是Atmel公司的AT89C51。(3)创建新的程序文件如例4-1的串口输出字符串“Hello World!”程序。4.1.3 Keil
6、Vision4初步应用方法4.1.3 Keil Vision4初步应用方法【例例4-14-1】串口输出字符串串口输出字符串“Hello WorldHello World!”#include#include void main(void)SCON=0 x50;/串口方式串口方式1,允许接收允许接收TMOD=0 x20;/定时器定时器1定时方式定时方式2TCON=0 x40;/设定时器设定时器1开始计数开始计数TH1=0 xE8;/11.0592MHz 1200波特率波特率TL1=0 xE8;TI=1;TR1=1;/启动定时器启动定时器 while(1)printf(Hello World!n);
7、/显示显示Hello World!4.1.3 Keil Vision4初步应用方法(4)保存新建的C语言程序可以用File菜单的Save或快捷键Ctrl+S进行保存。如图4-3所示,我们把第一个程序命名为example401.c,保存在项目所在的目录中。4.1.3 Keil Vision4初步应用方法(4)保存新建的C语言程序如图4-3鼠标在屏幕左边project项目区域中的Target 1,点击其左侧的+号;然后,在Source Group1文件夹图标上右击弹出菜单,在这里可以实现在项目中增加减少文件等操作。4.1.3 Keil Vision4初步应用方法(4)保存新建的C语言程序我们点击A
8、dd File to Group Source Group 1弹出文件窗口,选择刚刚保存的example401.c文件,按ADD按钮,实现添加example401.c文件到项目工程,如图4-4所示;然后,点击CLOSE按钮,实现关闭文件窗口并退出。4.1.3 Keil Vision4初步应用方法(4)保存新建的C语言程序这时在Target 1项目文件夹下的Source Group1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。4.1.3 Keil Vision4初步应用方法(5)设置Options for Target Target1在Project下拉菜单中或者在
9、Target 1图标上点击右键,打开Options for Target Target1,弹出项目选项设置窗口。4.1.3 Keil Vision4初步应用方法(5)设置Options for Target Target1如图4-5所示,Output选项页中1是选择编译输出的路径,2是设置编译输出生成的文件名,3则是决定是否要创建HEX文件,选中它就可以输出HEX文件到指定的路径中。4.1.3 Keil Vision4初步应用方法(6)项目的编译运行 (7)进入调试模式在下拉菜单Debug中StartStop Debug Session,或者,快捷键为Ctrl+F5。点击下拉菜单Debug中的
10、Run,或者,快捷键F5,程序连续运行。4.1.3 Keil Vision4初步应用方法(6)项目的编译运行 (7)进入调试模式显示内容见图,在此画面中同时打开了了Serial Windows,以观察字符串的输出情况。4.1.3 Keil Vision4初步应用方法(6)项目的编译运行 (7)进入调试模式图中1为运行按钮,当程序处于停止状态时才有效,图中2为停止按钮,程序处于运行状态时才有效。图中3是复位按钮,模拟芯片的复位,程序回到最开头处执行。4.1.3 Keil Vision4初步应用方法(6)项目的编译运行 (7)进入调试模式按图中的Peripherals下拉菜单中我们可以打开串行调试
11、窗口,如图4所示。这个窗口我们可以看到从51芯片的串行口输入输出的字符,“Hello World!”。4.1.3 Keil Vision4初步应用方法(6)项目的编译运行 (7)进入调试模式最后我们要停止程序运行回到文件编辑模式中,就要先按停止按钮再按StartStop Debug Session开启关闭调试模式按钮。4.1.3 Keil Vision4初步应用方法4.2 MCS-51单片机C51语言程序设计方法p在单片机应用系统开发过程中,应用程序设计是整个应用系统开发的重要组成部分,它直接决定着应用系统开发周期的长短、性能。尽管采用汇编语言编写的应用程序可直接操纵系统的硬件资源,能编写出较
12、高运行效率的程序代码,程序运行速度快。4.2 MCS-51单片机C51语言程序设计方法p但因汇编语言学习困难、可读性差、修改调试困难,且编写比较复杂的数值计算程序非常繁复。因此,为了提高编制单片机系统和其应用程序的效率,改善程序的可读性和可移植性,最好采用高级语言编程,及类似于C语言的单片机开发语言。4.2.1 C514.2.1 C51与与MCS-51MCS-51汇编语言的比较汇编语言的比较C51要比MCS-51汇编语言的可读性好。程序由若干函数组成,为模块化结构。使用C51编写的程序可移植性好。编程及程序调试的时间短。C51中的库函数包含了许多标准的子程序对单片机中的寄存器分配、不同存储器的
13、寻址以及数据类型等细节可由编译器来管理。C51语言能直接对计算机的硬件进行操作,与汇编语言相比它具有如下优点:4.2.2 C51与标准C的主要区别(1)头文件的差异。Keil C51系列的头文件集中体现了各系列芯片的不同资源及功能。(2)数据类型的不同。51系列单片机包含位操作空间和丰富的位操作指令。(3)数据存储类型的不同。51系列单片机有片内、外程序存储器,还有片内、外数据存储器。(4)标准C语言没有处理单片机中断的定义。(5)Keil C51与标准C的库函数有较大的不同。(6)程序结构的差异。C51语言与传统的、通用的像K&R(Kernighan 和Ritchie)所著的C语言是有所区别
14、的。Thompson(左)和Ritchie(中)于1999年接受当时美国总统克林顿授予的国家技术勋章。4.2.2 C51与标准C的主要区别4.2.3 C51数据类型与MCS 51的存贮方式(1)字符集和词汇(2)标识符(3)关键字1C51的字符集、标示符与关键字4.2.3 C51数据类型与MCS 51的存贮方式以下是标准C规定的关键字:auto break case char const continue default do double else enum extern float for goto if int long register return short signed stat
15、ic struct switch typedef union unsigned void volatile while以下是C51扩展的关键字:_at_ alien bdata bit code compact data idata interrupt large pdata _priority_ reentrant sbit sfr sfr16 small _task_ using xdata4.2.3 C51数据类型与MCS 51的存贮方式数据类型数据类型长度(长度(bitbit)长度(长度(bytebyte)数据表示域数据表示域bit11/80,1unsigned char810255s
16、igned char81128127unsigned int162065535signed int1623276832767unsigned long32404294967295signed long32421474836482147483647float3241.176E383.40E+38(6位数字)double6481.176E383.40E+38(10位数字)指针类型243存贮空间0655364.2.3 C51数据类型与MCS 51的存贮方式2C51常量与变量的数据类型(1 1)常量)常量 整型常量:整型常量即整常数又称为标量,有3种表示形式:八进制整数,十六进制整数,十进制整数。字符
17、型常量普通字符和转义字符。常用转义字符及其含义见后页表:字符串常量 实型常量4.2.3 C51数据类型与MCS 51的存贮方式转义字符转义字符含义含义ASCII ASCII 码(码(16/10 16/10 进制数)进制数)0空字符(NULL)00H/0n换行符(LF)0AH/10r回车符(CR)0DH/13t水平制表符(HT)09H/9b退格符(BS)08H/8f换页符(FF)0CH/12单引号27H/39双引号22H/34反斜杠5CH/924.2.3 C51数据类型与MCS 51的存贮方式(2 2)变量)变量 变量定义格式51系列单片机有内部RAM、SFR、外部RAM/IO、程序存贮器等存贮
18、区域,为了能访问不同存贮区域的变量,C51对变量的定义增加了存贮器类型说明。4.2.3 C51数据类型与MCS 51的存贮方式(2 2)变量)变量 变量定义格式变量定义的一般格式为:存贮种类 数据类型 存贮器类型 变量名(或变量名表);定义格式中的方括号部分是可选项,可有可无。4.2.3 C51数据类型与MCS 51的存贮方式(2 2)变量)变量 整型变量:整型变量的类型符为int,有以下4种:有符号基本整型 signed int 无符号基本整型 unsigned int有符号长整型 long int 无符号长整型 unsigned long int 4.2.3 C51数据类型与MCS 51的
19、存贮方式(2 2)变量)变量 字符型变量有符号字符型 signed char 无符号字符型 unsigned char4.2.3 C51数据类型与MCS 51的存贮方式(2 2)变量)变量 实型变量C51支持单精度实型变量,长度为4字节,类型符为关键字float,又称为浮点型。4.2.3 C51数据类型与MCS 51的存贮方式C51语言运行的平台是MCS-51单片机。C51编译器要用一系列机器指令对其进行复杂的数据类型处理。在实际编程时最好采用无符号型数据和尽量少的数据变量类型,这样将明显提高代码的运行效率。3C51数据变量在MCS-51中的存贮方式4.2.3 C51数据类型与MCS 51的存
20、贮方式位型变量字符型变量整型变量长整型变量浮点数4.2.3 C51数据类型与MCS 51的存贮方式 浮点数变量数的表示方法可分为定点表示和浮点表示。浮点数则是小数点的位置是浮动的。通常,对于任意一个二进制数X,都可表示成:X=2EM4.2.3 C51数据类型与MCS 51的存贮方式 X=2EMM表示全部有效数字,称之为数X的尾数;E为数X的阶码,它指明了小数点的位置;2是阶码的底。M和E均为用二进制表示的数,它们可正可负。阶码常用补码表示法,尾数常为原码表示的纯小数。当E值可变时,表示是浮点数。4.2.3 C51数据类型与MCS 51的存贮方式(1)C51数据的存贮类型C51存贮类型与MCS-
21、51实际存贮空间的对应关系4.2.3 C51数据类型与MCS 51的存贮方式4C51数据的存贮类型与MCS51单片机的存贮关系存贮类型存贮类型与与MCSMCS 5151系列单片机存贮空间的对应关系系列单片机存贮空间的对应关系备备 注注data直接寻址片内数据存贮区,访问速度快片内RAM的00H7FH区域bdata位寻址片内数据存贮区,允许位与字节混合访问片内RAM的20H2FH区域idata间接寻址片内数据存贮区,可访问片内全部RAM,用R0,R1间接访问片内全部RAM,即00H0FFH区域pdata由MOVX R0,R1间接访问分页寻址片外数据存贮区,每页256字节,即00H0FFH区域xd
22、ata由MOVX DPTR访问的片外数据存贮区,64KB空间外部64K RAM 0000H0FFFFH区域code程序存贮区,64KB空间,由MOVC DPTR访问外部64K ROM 0000H0FFFFH区域4.2.3 C51数据类型与MCS 51的存贮方式C51允许在变量类型定义之前指定存贮模式。书写格式上,定义data char x与定义char data x是等价的,但应尽量使用后一种方法。在C51中有两种方法来指定存贮模式,例如,以下为两种方法来指定COMPACT模式:方法1:在编译时指定。如使用命令 C51 PROC.C COMPACT方法2:在程序的第一句加预处理命令#pragm
23、a compact4.2.3 C51数据类型与MCS 51的存贮方式(1)MCS-51系列单片机中,除了程序计数器PC,片内RAM低128个字节空间和4组工作寄存器组外。其它所有的寄存器均为特殊功能寄存器(SFR),离散地分布在片内RAM高128个字节中,地址范围为80H0FFH。SFR中地址为8的倍数的寄存器具有位寻址能力。5MCS-51特殊功能寄存器(SFR)及其C51定义方法4.2.3 C51数据类型与MCS 51的存贮方式为了能直接访问SFR,C51编译器提供了一种与标准C语言不兼容,而只适用于对MCS-51系列单片机进行C语言编程的SFR定义方法,其定义8位SFR语句的一般格式为:s
24、fr sfr-name=int constant;4.2.3 C51数据类型与MCS 51的存贮方式(2)由于SFR中地址为8的倍数的寄存器具有位寻址能力,在C51中规定了支持SFR位操作的定义,当然这也是与标准C语言不兼容的,使用“sbit”来定义SFR的位寻址单元。4.2.3 C51数据类型与MCS 51的存贮方式5MCS-51特殊功能寄存器(SFR)及其C51定义方法定义SFR的位寻址单元的语法格式有3种:第1种格式:sbit bit-name=sfr-name int constant第2种格式:sbit bit-name=int constant int constant第3种格式:
25、sbit bit-name=int constant4.2.3 C51数据类型与MCS 51的存贮方式(3)MCS-51位变量及其C51定义方法 位变量的C51定义的方法C51通过“bit”关键字来定义位变量,一般格式为:bit bit-name;5MCS-51特殊功能寄存器(SFR)及其C51定义方法4.2.3 C51数据类型与MCS 51的存贮方式 C51程序函数的参数及返回值C51程序函数可包含类型为“bit”的参数,也可以将其作为返回值。例如:bit func(bit b0,bit b1)/*位变量b0、b1作为函数的参数*/return(b1);/*变量b1作为函数的返回值*/4.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4.1 15-4.1-Keil C51程序设计单片机设计及应用 15 Keil C51 程序设计 单片机 设计 应用
限制150内