c51语言把51单片机.ppt

  1. 1、本文档共144页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在单片机应用开发中软件编程占有非常重要的地位要求编程人员在短时间内编写出执行效率高运行可靠的程序代码同时由于实际系统的日趋复杂对程序的可读性升级与维护以及模块化的要求越来越高以方便多个工程师协同开发语言是近年来在国内外的单片机开发中普遍使用的一种程序设计语言能直接对单片机硬件进行操作既有高级语言的特点又有汇编语言的特点因此在单片机应用的程序设计中得到非常广泛的使用可在的开发环境中极为简便地进行操作完全兼容先前的版本公司目前已经推出了以上版本的编译器较新的版本为经常用到和两个术语一般简写为指的是单

在单片机应用开发中,软件编程占有非常重要的地位。要求编程人员在短时间内编写出执行效率高、运行可靠的程序代码。同时,由于实际系统的日趋复杂,对程序的可读性、升级与维护以及模块化的要求越来越高,以方便多个工程师协同开发。 C51语言是近年来在国内外的51单片机开发中,普遍使用的一种程序设计语言。C51能直接对单片机硬件进行操作,既有高级语言的特点,又有汇编语言的特点,因此在单片机应用的程序设计中,得到非常广泛的使用。 可在Keil μVision3的开发环境中极为简便地进行操作。 Keil μVision3完全兼容先前的Keil μVision2版本。Keil公司目前已经推出了v7.0以上版本的C51编译器,较新的版本为Keil C51 v8.08a。 经常用到Keil C51和Keil μVision3两个术语。Keil C51一般简写为C51,指的是51单片机编程所用的C51语言;而Keil μVision3,可简写为μVision3,指的是用于51单片机的C51程序编写、调试的集成开发环境。 μVision3内部集成了源程序编辑器,并允许用户在编辑源文件时就可设置程序调试断点,便于在程序调试过程中快速 (1)DATA区。寻址是最快的,应该把经常使用的变量放在DATA区,但是DATA区的存储空间是有限的,DATA区除了包含程序变量外,还包含了堆栈和寄存器组。DATA区声明中的存储类型标识符为data,通常指片内RAM的128字节的内部数据存储的变量,可直接寻址。 举例如下: unsigned char data system_status=0; unsigned int data unit_id[8]; char data inp_string[20]; (4)PDATA区和XDATA区。PDATA区和XDATA区位于片外存储区,PDATA区和XDATA区声明中的存储类型标识符分别为pdata和xdata。 PDATA区只有256字节,仅指定256字节的外部数据存储区。但XDATA区最多可达64KB,对应的xdata存储类型标识符可以指定外部数据区64KB内的任何地址。 对PDATA区的寻址要比对XDATA区寻址快,因为对PDATA区寻址,只需要装入8位地址,而对XDATA区寻址要装入16位地址,所以要尽量把外部数据存储在PDATA区中 do { 循环体语句; } while(表达式); do-while语句的特点是先执行内嵌的循环体语句,再计算表达式,如果表达式的值为非0,则继续执行循环体语句,直到表达式的值为0时结束循环。 由do-while构成的循环与while循环十分相似,它们之间的重要区别是:while循环的控制出现在循环体之前,只有当while后面表达式的值非0时,才可能执行循环体,在do-while构成的循环中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是0还是非0,循环体至少要被执行一次。 和while循环一样,在do-while循环体中,要有能使while后表达式的值变为0的操作,否则,循环会无限制地进行下去。根据经验do-while循环用的并不多,大多数的循环用while来实现会直观。 【例】实型数组sample存有10个采样值,编写程序段,要求返回其平均值(平均值滤波)。程序如下: float avg(float *sample) { float sum=0; char n=0; do for是C51的关键字,其后的括号中通常含有三个表达式,各表达式之间用“;”隔开。这三个表达式可以是任意形式的表达式,通常主要用于for循环的控制。紧跟在for(? )之后的循环体,在语法上要求是一条语句;若在循环体内需要多条语句,应该用大括号括起来组成复合语句。 for的执行过程如下: (1)计算“表达式1”,表达式1通常称为“初值设定表达式”。 (2)计算“表达式2”,表达式2通常称为“终值条件表达式”,若满足条件,转下一步,若不满足条件,则转步骤(5)。 本例的一个典型应用就是软件延时。、在程序的设计中,经常用到时间延迟,可用循环结构来实现,即循环执行指令,消磨一段已知的时间。AT89S51单片机指令的执行时间是靠一定数量的时钟周期来计时的,如果使用12MHz晶振,则12个时钟周期花费的时间为1μs。 【例】 编写一个延时1ms程序。 void delayms( unsigned char int j) { unsigned char i; while(j--) { for(i=0;i125;i++) {;} } } 【例】无限循环的结构实现。 编写无限循环程序段,可使用以下3种结构: (1)使用while(

文档评论(0)

wangsux + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档