欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第4章 7~10节 单片机的C语言.ppt

    • 资源ID:68701364       资源大小:287.50KB        全文页数:45页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章 7~10节 单片机的C语言.ppt

    4.7 函函 数数 C C C 语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。语言程序由函数组成,下面介绍函数的要点。4.7.14.7.1函数的分类及定义函数的分类及定义函数的分类及定义函数的分类及定义 从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为从用户使用角度划分,函数分为库函数库函数库函数库函数库函数库函数和和和和和和用户定义函数用户定义函数用户定义函数用户定义函数用户定义函数用户定义函数n nn库函数库函数库函数库函数库函数库函数是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列是编译系统为用户设计的一系列标准函数标准函数标准函数标准函数标准函数标准函数 (见本书附录二见本书附录二见本书附录二见本书附录二见本书附录二见本书附录二),用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面,用户只需调用,而无需自己去编写这些复杂的函数。如前面所用到的头文件所用到的头文件所用到的头文件所用到的头文件所用到的头文件所用到的头文件reg51.hreg51.hreg51.h等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要等,有的头文件中包括一系列函数,要使用其中的函数必须使用其中的函数必须使用其中的函数必须使用其中的函数必须使用其中的函数必须使用其中的函数必须先使用先使用先使用先使用先使用先使用#包含语句包含语句包含语句包含语句包含语句包含语句,然后才能调用。,然后才能调用。,然后才能调用。,然后才能调用。,然后才能调用。,然后才能调用。n nn用户自定义函数用户自定义函数用户自定义函数用户自定义函数用户自定义函数用户自定义函数是用户根据任务是用户根据任务是用户根据任务是用户根据任务是用户根据任务是用户根据任务编写的函数编写的函数编写的函数编写的函数编写的函数编写的函数。n nn从参数形式上从参数形式上从参数形式上从参数形式上从参数形式上从参数形式上函数分为函数分为函数分为函数分为函数分为函数分为无参函数无参函数无参函数无参函数无参函数无参函数和和和和和和有参函数有参函数有参函数有参函数有参函数有参函数。n nn无参函数无参函数无参函数无参函数无参函数无参函数:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。:函数中无参数定义。n nn有参函数有参函数有参函数有参函数有参函数有参函数:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用:函数中定义形式参数,在调用时,调用函数用实际参数实际参数实际参数实际参数实际参数实际参数代替代替代替代替代替代替形式参数形式参数形式参数形式参数形式参数形式参数,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。,调用完返回结果给调用函数。1 14.7.24.7.2函数的定义函数的定义函数的定义函数的定义n nn 无参函数的定义:无参函数的定义:无参函数的定义:无参函数的定义:无参函数的定义:无参函数的定义:返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 函数名函数名函数名函数名函数名函数名 ()()()函数体语句函数体语句函数体语句函数体语句函数体语句函数体语句 如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为如果函数没有返回值,可以将返回值类型设为voidvoidvoid 函数以函数以函数以函数以函数以函数以“”开始,以开始,以开始,以开始,以开始,以开始,以“”结束,结束,结束,结束,结束,结束,n nn 有参函数的定义:有参函数的定义:有参函数的定义:有参函数的定义:有参函数的定义:有参函数的定义:返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 函数名函数名函数名函数名函数名函数名 (形式参数表列形式参数表列形式参数表列形式参数表列形式参数表列形式参数表列)形式参数类型说明形式参数类型说明形式参数类型说明形式参数类型说明形式参数类型说明形式参数类型说明 /形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列形式参数类型说明可放在形式参数表列 函数体语句函数体语句函数体语句函数体语句函数体语句函数体语句 return(return(return(返回形参名返回形参名返回形参名返回形参名返回形参名返回形参名)2 2 也可以这样定义也可以这样定义 返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 函数名函数名函数名函数名函数名函数名 (类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列类型说明形式参数表列)函数体语句函数体语句函数体语句函数体语句函数体语句函数体语句 return(return(return(返回形参名返回形参名返回形参名返回形参名返回形参名返回形参名)其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用其中形式参数表列的各项要用 ,隔开,通过隔开,通过隔开,通过隔开,通过隔开,通过隔开,通过returnreturnreturn语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数语句将需返回的值返回给调用函数。4.7.3.4.7.3.函数的调用函数的调用函数的调用函数的调用n nn 函数调用的形式为:函数调用的形式为:函数调用的形式为:函数调用的形式为:函数调用的形式为:函数调用的形式为:函数名函数名函数名函数名函数名函数名 (实际参数表列实际参数表列实际参数表列实际参数表列实际参数表列实际参数表列);对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列对于无参函数当然不存在实际参数表列 实参实参实参实参实参实参和和和和和和形参形参形参形参形参形参的数目相等的数目相等的数目相等的数目相等的数目相等的数目相等类型一致类型一致类型一致类型一致类型一致类型一致。3 3函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种函数的调用方式有三种n nn 函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数调用语句:即把被调函数名作为调用函数函数名作为调用函数函数名作为调用函数函数名作为调用函数函数名作为调用函数函数名作为调用函数(无返回(无返回(无返回(无返回(无返回(无返回值)值)值)值)值)值)的一个语句,如的一个语句,如的一个语句,如的一个语句,如的一个语句,如的一个语句,如 fun1()fun1()fun1();n nn 被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的被调函数作为表达式的运算对象运算对象运算对象运算对象运算对象运算对象(有返回值)(有返回值)(有返回值)(有返回值)(有返回值)(有返回值)如如如如如如 rettrettrett=2*get(a,b)=2*get(a,b)=2*get(a,b);此时拿函数中的此时拿函数中的此时拿函数中的此时拿函数中的此时拿函数中的此时拿函数中的 a a a,b b b 应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的应为实参,其以返回值参予式中的运算。运算。运算。运算。运算。运算。n nn 被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的被调函数作为另一个数的实际参数实际参数实际参数实际参数实际参数实际参数(函数调用嵌套函数调用嵌套函数调用嵌套函数调用嵌套函数调用嵌套函数调用嵌套)如如如如如如 m=max(a,get(a,b)m=max(a,get(a,b)m=max(a,get(a,b);函数函数函数函数函数函数 get(a,b)get(a,b)get(a,b)作为作为作为作为作为作为max()max()max()的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。的一个实际参数被调用。4 44.7.4 对被调函数的说明对被调函数的说明 如果被调函数如果被调函数如果被调函数如果被调函数如果被调函数如果被调函数出现出现出现出现出现出现在主调函数在主调函数在主调函数在主调函数在主调函数在主调函数之后之后之后之后之后之后,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以,在主调函数前应对被调函数作以说明说明说明说明说明说明,形式为:形式为:形式为:形式为:形式为:形式为:返回值类型返回值类型返回值类型返回值类型返回值类型返回值类型 被调函数名被调函数名被调函数名被调函数名被调函数名被调函数名 (形参表列形参表列形参表列形参表列形参表列形参表列);例如:例如:例如:例如:例如:例如:intintint fun1(a,b);fun1(a,b);fun1(a,b);/*/*/*函数说明函数说明函数说明函数说明函数说明函数说明*/main()main()main()/*/*/*主函数主函数主函数主函数主函数主函数*/intintint d,u=3,v=2;d,u=3,v=2;d,u=3,v=2;d=2*d=2*d=2*fun1(u,v)fun1(u,v)fun1(u,v);/调用函数调用函数调用函数调用函数调用函数调用函数fun1(u,v)fun1(u,v)fun1(u,v)intintint fun1(a,b)fun1(a,b)fun1(a,b)/定义函数定义函数定义函数定义函数定义函数定义函数 intintint a,ba,ba,b;intintint c;c;c;c=c=c=a+ba+ba+b;return(c);return(c);return(c);上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明上例中被调函数在后、在主调函数前对被调函数进行明 5 5 被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单被调函数出现在主调函数之前,可以不对被调函数说明。下面以一个简单例子来说明。例子来说明。例子来说明。例子来说明。例子来说明。例子来说明。intintint fun1(a,b)fun1(a,b)fun1(a,b)/定义在前定义在前定义在前定义在前定义在前定义在前 intintint a,b;a,b;a,b;intintint c;c;c;c=a+b;c=a+b;c=a+b;return(c);return(c);return(c);main()main()main()intintint d,u=3,v=2;d,u=3,v=2;d,u=3,v=2;d=2*fun1(u,v);d=2*fun1(u,v);d=2*fun1(u,v);/调用在后调用在后调用在后调用在后调用在后调用在后 此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明此例中被调函数在主调函数前,不用说明6 64.8 4.8 单片机的单片机的单片机的单片机的 C C 语言编程实例语言编程实例语言编程实例语言编程实例 由于由于由于由于由于由于 C51 C51 C51 编译器是针对单片机的,因此编译器是针对单片机的,因此编译器是针对单片机的,因此编译器是针对单片机的,因此编译器是针对单片机的,因此编译器是针对单片机的,因此 ANSI C ANSI C ANSI C 中的中的中的中的中的中的 scanfscanfscanf (串口接受串口接受串口接受串口接受串口接受串口接受)和和和和和和 printfprintfprintf (串口发送串口发送串口发送串口发送串口发送串口发送)等对等对等对等对等对等对PCPCPC机的输入输出语句机的输入输出语句机的输入输出语句机的输入输出语句机的输入输出语句机的输入输出语句无效无效无效无效无效无效,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量,运算的数据可以通过变量置入或取出,这时置入或取出,这时置入或取出,这时置入或取出,这时置入或取出,这时置入或取出,这时 C51 C51 C51 会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。会自动安排使用的存贮单元。也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特也可以用户自行通过具体的内存地址置入数据或从特定地址取出数据。定地址取出数据。定地址取出数据。定地址取出数据。定地址取出数据。定地址取出数据。C C C 语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试语言的上机调试和汇编程序使用同一仿真调试软件(例如软件(例如软件(例如软件(例如软件(例如软件(例如 伟福集成环境伟福集成环境伟福集成环境伟福集成环境伟福集成环境伟福集成环境)。)。)。)。)。)。下面是一个下面是一个下面是一个下面是一个下面是一个下面是一个C C C语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对语言程序编译后生成的机器代码及对应的反汇编程序。应的反汇编程序。应的反汇编程序。应的反汇编程序。应的反汇编程序。应的反汇编程序。7 74.8.14.8.14.8.1、C C C语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序语言程序的反汇编程序(源代码源代码源代码源代码源代码源代码)【例例例例例例4-54-54-5】例例例例例例3-13-13-1曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完成了外部曾用汇编语言完成了外部RAMRAMRAM的的的的的的000EH000EH000EH单元和单元和单元和单元和单元和单元和000FH000FH000FH单元的内容单元的内容单元的内容单元的内容单元的内容单元的内容交换交换交换交换交换交换,现改用,现改用,现改用,现改用,现改用,现改用C CC语言编语言编语言编语言编语言编语言编 程。程。程。程。程。程。C CC语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以语言对地址的指示方法可以采用采用采用采用采用采用指针变量指针变量指针变量指针变量指针变量指针变量,也可以引用,也可以引用,也可以引用,也可以引用,也可以引用,也可以引用absacc.habsacc.habsacc.h头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访头文件作绝对地址访 问,下面采用绝问,下面采用绝问,下面采用绝问,下面采用绝问,下面采用绝问,下面采用绝对地址访问方法。对地址访问方法。对地址访问方法。对地址访问方法。对地址访问方法。对地址访问方法。#include#include#include main()main()main()char c;char c;char c;for(;)for(;)for(;)c=XBYTE14;c=XBYTE14;c=XBYTE14;XBYTE14=XBYTE15;XBYTE14=XBYTE15;XBYTE14=XBYTE15;XBYTE15=c;XBYTE15=c;XBYTE15=c;程序中为方便反复观察,使用了死循环语句程序中为方便反复观察,使用了死循环语句程序中为方便反复观察,使用了死循环语句程序中为方便反复观察,使用了死循环语句程序中为方便反复观察,使用了死循环语句程序中为方便反复观察,使用了死循环语句for(;)for(;)for(;)只要用只要用只要用只要用只要用只要用Ctrl+CCtrl+CCtrl+C即可即可即可即可即可即可退出死循环。退出死循环。退出死循环。退出死循环。退出死循环。退出死循环。8 8 上面程序上面程序上面程序上面程序上面程序上面程序(例例例例例例4-54-54-5)通过编译后机器代码和反汇编程序如下:通过编译后机器代码和反汇编程序如下:通过编译后机器代码和反汇编程序如下:通过编译后机器代码和反汇编程序如下:通过编译后机器代码和反汇编程序如下:通过编译后机器代码和反汇编程序如下:0000 020014 L JMP 0014H0000 020014 L JMP 0014H0000 020014 L JMP 0014H 0003 90000E MOV DPTR 0003 90000E MOV DPTR 0003 90000E MOV DPTR,#000EH#000EH#000EH ;设置单元地址设置单元地址设置单元地址设置单元地址设置单元地址设置单元地址0eh0eh0eh 0006 E0 MOVX A 0006 E0 MOVX A 0006 E0 MOVX A,DPTRDPTRDPTR ;取取取取取取000eh000eh000eh单元内容单元内容单元内容单元内容单元内容单元内容 0007 FF MOV R70007 FF MOV R70007 FF MOV R7,A A A ;保存保存保存保存保存保存000eh000eh000eh单元内容单元内容单元内容单元内容单元内容单元内容 0008 A3 INC DPTR 0008 A3 INC DPTR 0008 A3 INC DPTR ;指向指向指向指向指向指向000fh000fh000fh单元单元单元单元单元单元 0009 E0 MOVX A0009 E0 MOVX A0009 E0 MOVX A,DPTR DPTR DPTR ;取取取取取取000fh000fh000fh单元内容单元内容单元内容单元内容单元内容单元内容 000A 90000E MOV DPTR000A 90000E MOV DPTR000A 90000E MOV DPTR,#000EH#000EH#000EH;指向指向指向指向指向指向000eh000eh000eh单元单元单元单元单元单元 000D F0 MOVX DPTR000D F0 MOVX DPTR000D F0 MOVX DPTR,A A A ;000fh;000fh;000fh单元内容送单元内容送单元内容送单元内容送单元内容送单元内容送000eh000eh000eh单元单元单元单元单元单元 000E A3 INC DPTR000E A3 INC DPTR000E A3 INC DPTR ;指向指向指向指向指向指向000fh000fh000fh单元单元单元单元单元单元000F EF MOV A000F EF MOV A000F EF MOV A,R7R7R7 ;取回取回取回取回取回取回000eh000eh000eh单元内容单元内容单元内容单元内容单元内容单元内容0010 F0 MOVX DPTR0010 F0 MOVX DPTR0010 F0 MOVX DPTR,A A A ;000eh;000eh;000eh单元内容送单元内容送单元内容送单元内容送单元内容送单元内容送000fh000fh000fh单元单元单元单元单元单元0011 80F0 SJMP 0003H0011 80F0 SJMP 0003H0011 80F0 SJMP 0003H ;转到转到转到转到转到转到0003H(0003H(0003H(循环循环循环循环循环循环)0013 22 RET0013 22 RET0013 22 RET0014 787F MOV R00014 787F MOV R00014 787F MOV R0,#7FH#7FH#7FH;本行以下本行以下本行以下本行以下本行以下本行以下4 44行,行,行,行,行,行,00h7fh00h7fh00h7fh单元清单元清单元清单元清单元清单元清0 000016 E4 CLR A0016 E4 CLR A0016 E4 CLR A0017 F6 MOV R00017 F6 MOV R00017 F6 MOV R0,A AA0018 D8FD DJNZ R00018 D8FD DJNZ R00018 D8FD DJNZ R0,0017H 0017H 0017H ;0fdh=17h-1ah;0fdh=17h-1ah;0fdh=17h-1ah补补补补补补001A 758107 MOV SP001A 758107 MOV SP001A 758107 MOV SP,#07H#07H#07H;设置栈底设置栈底设置栈底设置栈底设置栈底设置栈底001D 020003 LJMP 0003H 001D 020003 LJMP 0003H 001D 020003 LJMP 0003H ;转到转到转到转到转到转到0003H(0003H(0003H(执行执行执行执行执行执行FORFORFOR循环循环循环循环循环循环)9 9例中可见:例中可见:例中可见:例中可见:例中可见:例中可见:一进入一进入一进入一进入一进入一进入C C C语言程序,首先执行将内部语言程序,首先执行将内部语言程序,首先执行将内部语言程序,首先执行将内部语言程序,首先执行将内部语言程序,首先执行将内部RAMRAMRAM的的的的的的0 0 07FH 7FH 7FH 128128128个单元清零个单元清零个单元清零个单元清零个单元清零个单元清零,然后,然后,然后,然后,然后,然后置置置置置置SPSPSP为为为为为为07H07H07H(视变量视变量视变量视变量视变量视变量 多少多少多少多少多少多少不同,不同,不同,不同,不同,不同,SPSPSP置不同值,依程序而定置不同值,依程序而定置不同值,依程序而定置不同值,依程序而定置不同值,依程序而定置不同值,依程序而定),因此如果要,因此如果要,因此如果要,因此如果要,因此如果要,因此如果要对内部对内部对内部对内部对内部对内部RAMRAMRAM置初值置初值置初值置初值置初值置初值,一定要在,一定要在,一定要在,一定要在,一定要在,一定要在执行了一条执行了一条执行了一条执行了一条执行了一条执行了一条 C C C语言语句后进行语言语句后进行语言语句后进行语言语句后进行语言语句后进行语言语句后进行。C C C语言程序设定的变量语言程序设定的变量语言程序设定的变量语言程序设定的变量语言程序设定的变量语言程序设定的变量,C51C51C51自行安排寄存器或自行安排寄存器或自行安排寄存器或自行安排寄存器或自行安排寄存器或自行安排寄存器或存贮器存贮器存贮器存贮器存贮器存贮器作参数传递区,通常作参数传递区,通常作参数传递区,通常作参数传递区,通常作参数传递区,通常作参数传递区,通常在在在在在在R0R0R0R7R7R7(一组一组一组一组一组一组 或两组,或两组,或两组,或两组,或两组,或两组,视参数多少定视参数多少定视参数多少定视参数多少定视参数多少定视参数多少定),因此,如果,因此,如果,因此,如果,因此,如果,因此,如果,因此,如果对具体地址置数据对具体地址置数据对具体地址置数据对具体地址置数据对具体地址置数据对具体地址置数据,应,应,应,应,应,应避避避避避避开开开开开开这些这些这些这些这些这些R0R0R0R7R7R7的地址。的地址。的地址。的地址。的地址。的地址。如果如果如果如果如果如果不不不不不不特别特别特别特别特别特别指定变量指定变量指定变量指定变量指定变量指定变量的的的的的的存贮类型存贮类型存贮类型存贮类型存贮类型存贮类型,通常被,通常被,通常被,通常被,通常被,通常被安排在安排在安排在安排在安排在安排在内部内部内部内部内部内部RAMRAMRAM中。中。中。中。中。中。10104.8.2、顺序程序的设计、顺序程序的设计【例例例例例例4-64-64-6】完成完成完成完成完成完成198052450319805245031980524503的编程的编程的编程的编程的编程的编程 分析:两个乘数比较大,其积更大,采用分析:两个乘数比较大,其积更大,采用分析:两个乘数比较大,其积更大,采用分析:两个乘数比较大,其积更大,采用分析:两个乘数比较大,其积更大,采用分析:两个乘数比较大,其积更大,采用unsigned longunsigned longunsigned long类型,类型,类型,类型,类型,类型,设设设设设设乘积乘积乘积乘积乘积乘积存放在存放在存放在存放在存放在存放在外部数据外部数据外部数据外部数据外部数据外部数据存贮存贮存贮存贮存贮存贮 器器器器器器0 0 0号开始的单元号开始的单元号开始的单元号开始的单元号开始的单元号开始的单元。程序如下:。程序如下:。程序如下:。程序如下:。程序如下:。程序如下:main()main()main()unsigned long unsigned long unsigned long xdataxdataxdata*p;/*p;/*p;/*设定指针设定指针设定指针设定指针设定指针设定指针p*/p*/p*/unsigned long a=19805unsigned long a=19805unsigned long a=19805;/*/*/*设置设置设置设置设置设置a aa的类型的类型的类型的类型的类型的类型*/unsigned long b=24503,c;unsigned long b=24503,c;unsigned long b=24503,c;/*/*/*设置设置设置设置设置设置b bb和积和积和积和积和积和积c cc为为为为为为unsigned longunsigned longunsigned long类型,并赋初值类型,并赋初值类型,并赋初值类型,并赋初值类型,并赋初值类型,并赋初值*/p=0;/*p=0;/*p=0;/*设地址指向设地址指向设地址指向设地址指向设地址指向设地址指向0 00号单元号单元号单元号单元号单元号单元*/c=a*b;c=a*b;c=a*b;*p=c;*p=c;*p=c;/*/*/*积存入积存入积存入积存入积存入积存入外部外部外部外部外部外部RAM 0RAM 0RAM 0号单元号单元号单元号单元号单元号单元*/上机通过软件仿真调试,在变量观察窗口看到运算结果上机通过软件仿真调试,在变量观察窗口看到运算结果上机通过软件仿真调试,在变量观察窗口看到运算结果上机通过软件仿真调试,在变量观察窗口看到运算结果上机通过软件仿真调试,在变量观察窗口看到运算结果上机通过软件仿真调试,在变量观察窗口看到运算结果 c=485281915c=485281915c=485281915,即为乘积的十进制,即为乘积的十进制,即为乘积的十进制,即为乘积的十进制,即为乘积的十进制,即为乘积的十进制 数。观察数。观察数。观察数。观察数。观察数。观察XDATAXDATAXDATA区区区区区区(外部外部外部外部外部外部RAM)RAM)RAM)的的的的的的0000H0000H0000H0003H0003H0003H单元分别为单元分别为单元分别为单元分别为单元分别为单元分别为1C EC D0 7B1C EC D0 7B1C EC D0 7B,即存放的,即存放的,即存放的,即存放的,即存放的,即存放的为为为为为为485281915 485281915 485281915 的十六进制数。的十六进制数。的十六进制数。的十六进制数。的十六进制数。的十六进制数。1111 观察观察观察DATADATADATA区:区:区:(例例例例例例4-64-64-6)单元地址:单元地址:单元地址:0B 0C 0D 0E 0F 10 11 12 13 14 15 160B 0C 0D 0E 0F 10 11 12 13 14 15 160B 0C 0D 0E 0F 10 11 12 13 14 15 16单元内容:单元内容:单元内容:00 00 00 000000 5F B7 5F B7 5F B7 00 00 4D 5D 1C EC D0 7B 00 00 4D 5D 1C EC D0 7B 00 00 4D 5D 1C EC D0 7B a a a变量变量变量变量变量变量 b bb变量变量变量变量变量变量 C CC变量(积)变量(积)变量(积)变量(积)变量(积)变量(积)可见定义为可见定义为可见定义为可见定义为可见定义为可见定义为unsigned longunsigned longunsigned long类型,给每个变量分配四个单元,类型,给每个变量分配四个单元,类型,给每个变量分配四个单元,类型,给每个变量分配四个单元,类型,给每个变量分配四个单元,类型,给每个变量分配四个单元,如果定义类型不对,将得不到如果定义类型不对,将得不到如果定义类型不对,将得不到如果定义类型不对,将得不到如果定义类型不对,将得不到如果定义类型不对,将得不到 正确的结果。正确的结果。正确的结果。正确的结果。正确的结果。正确的结果。如果如果如果如果如果如果未定义变量类型未定义变量类型未定义变量类型未定义变量类型未定义变量类型未定义变量类型,默认为,默认为,默认为,默认为,默认为,默认为内部内部内部内部内部内部 RAMRAMRAM,如,如,如,如,如,如a a a、b b b、c c c变量变量变量变量变量变量。对于对于对于对于对于对于复杂的运算复杂的运算复杂的运算复杂的运算复杂的运算复杂的运算通常采用通常采用通常采用通常采用通常采用通常采用查表的方法查表的方法查表的方法查表的方法查表的方法查表的方法。如同汇编程序设计。如同汇编程序设计。如同汇编程序设计。如同汇编程序设计。如同汇编程序设计。如同汇编程序设计一样,在程序存贮器建立一张表,一样,在程序存贮器建立一张表,一样,在程序存贮器建立一张表,一样,在程序存贮器建立一张表,一样,在程序存贮器建立一张表,一样,在程序存贮器建立一张表,在在在在在在C C C语言中语言中语言中语言中语言中语言中表格定义为数组表格定义为数组表格定义为数组表格定义为数组表格定义为数组表格定义为数组,表内数据表内数据表内数据表内数据表内数据表内数据(元素元素元素元素元素元素)的偏移量表现为的偏移量表现为的偏移量表现为的偏移量表现为的偏移量表现为的偏移量表现为下标下标下标下标下标下标。数组的使用如同变量一。数组的使用如同变量一。数组的使用如同变量一。数组的使用如同变量一。数组的使用如同变量一。数组的使用如同变量一 样,要先进行定义:即说明数组名、维数、数据类型和存贮类型,样,要先进行定义:即说明数组名、维数、数据类型和存贮类型,样,要先进行定义:即说明数组名、维数、数据类型和存贮类型,样,要先进行定义:即说明数组名、维数、数据类型和存贮类型,样,要先进行定义:即说明数组名、维数、数据类型和存贮类型,样,要先进行定义:即说明数组名、维数、数据类型和存贮类型,在定义数组的同时还可以在定义数组的同时还可以在定义数组的同时还可以在定义数组的同时还可以在定义数组的同时还可以在定义数组的同时还可以 给数组各给数组各给数组各给数组各给数组各给数组各元素赋初值元素赋初值元素赋初值元素赋初值元素赋初值元素赋初值。通过下例说明。通过下例说明。通过下例说明。通过下例说明。通过下例说明。通过下例说明C51C51C51数组的定义方法和用数组的定义方法和用数组的定义方法和用数组的定义方法和用数组的定义方法和用数组的定义方法和用C C C语言编查表程序的方法。语言编查表程序的方法。语言编查表程序的方法。语言编查表程序的方法。语言编查表程序的方法。语言编查表程序的方法。1212 例例例例例例4-74-74-7 片内片内片内片内片内片内RAM 20HRAM 20HRAM 20H单元存放着一个单元存放着一个单元存放着一个单元存放着一个单元存放着一个单元存放着一个0 0 005H05H05H的数,用查表的数,用查表的数,用查表的数,用查表的数,用查表的数,用查表法,求出该数的平方值放入内部法,求出该数的平方值放入内部法,求出该数的平方值放入内部法,求出该数的平方值放入内部法,求出该数的平方值放入内部法,求出该数的平方值放入内部RAM 21HRAM 21HRAM 21H单元。单元。单元。单元。单元。单元。main()main()main()char x,*p;char x,*p;char x,*p;/p/p/p为字符型通用存储型(一般为内部为字符型通用存储型(一般为内部为字符型通用存储型(一般为内部为字符型通用存储型(一般为内部为字符型通用存储型(一般为内部为字符型通用存储型(一般为内部RAMRAMRAM)指针。)指针。)指针。)指针。)指针。)指针。char code tab6=0,1,4,9,16,25;char code tab6=0,1,4,9,16,25;char code tab6=0,1,4,9,16,25;p=0 x20;p=0 x20;p=0 x20;/内部内部内部内部内部内部RAMRAMRAM中的中的中的中的中的中的20H20H20H单元内容为下标(即自变量)单元内容为下标(即自变量)单元内容为下标(即自变量)单元内容为下标(即自变量)单元内容为下标(即自变量)单元内容为下标(即自变量)x=tab*p;x=tab*p;x=tab*p;/求因变量(平方值),并存求因变量(平方值),并存求因变量(平方值),并存求因变量(平方值),并存求因变量(平方值),并存求因变量(平方值),

    注意事项

    本文(第4章 7~10节 单片机的C语言.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开