欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机C51程序设计.ppt

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

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

    单片机C51程序设计.ppt

    第三章 单片机C51程序设计,本章要点,了解Keil C51编译器的功能 掌握C51的数据类型及变量定义 掌握Keil C51编译环境的使用方法 单片机常用的编程语言有汇编语言和C语言。C语言的结构性、可读性和可维护性好,已成为单片机应用系统开发的主流语言。支持MCS-51用C语言编程的编译器主要有两种:1)Franklin C51编译器 2)Keil C51编译器,简称C51。其中:C51是专为MCS-51开发的一种高性能的C编译器,本章内容,C51程序结构C51的数据类型存储器类型及存储区C51对特殊功能寄存器的定义KeilC5指针与函数绝对地址访问宏定义与C51常用的头文件单片机的IO口编程,3.1 C51程序结构,C51程序结构与一般的C程序没有差别。C51源程序必须包含一个main()函数C51源程序文件,还可以包含若干个其他函数C51程序必须包含C51的库文件如果使用中断,需要单独编写中断函数如果使用中断、定时器和串口等外设或特殊功能模块,一般要先进行初始化设置主函数中,while(1)是必须的。,3.1 C51程序结构,预处理命令:#include/全程变量定义/函数声明/函数定义char funl()/函数定义/函数体/中断函数定义void 函数名()interrupt x/函数体,#include void main()/主函数/局部变量定义/单片机寄存器的初始化函数 while(1)/主函数体,关于While(1)是单片机程序必须的部分,C51对标准ANSI C的扩展,C51除ANSI C标准的32个关键字之外,C51还扩展以下的关键字:_at_、sfr16、alien、sfridata、bdata、pdatacode、bit、sbit、interrupt,3.2 C51的数据类型,表3-3 存储器类型关键字,3.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_status=0;unsigned int pdata unit_id2;char xdata inp_string16;float pdata outp_value;5.CODE段 unsigned int code unit_id2=1234;,存储模式指定缺省类型,这个模式选择是在Keil开发环境中设置的,3.4 C51对特殊功能寄存器(SFR)的定义,C51编译器使用sfr与sfr16两个关键词,将这些特殊功能寄存器的名字与其绝对地址联系起来;将单片机的硬件与C语言编程结合起来。,1.使用“sfr”关键字定义SFR,特殊功能寄存器C51定义的一般语法格式如下:sfr name=int constant【例3-1】使用“sfr”关键字定义SFR sfr SCON=0 x98;/声明SCON为串口控制器,地址为0 x98 sfr P0=0 x80;/声明P0为特殊功能寄存器,地址为0 x80/声明TMOD为定时器器的模式寄存器,地址为0 x89 sfr TMOD=0 x89;sfr PSW=0 xD0;/声明PSW为特殊功能寄存器,地址为0 xD0,这些寄存器,Keil提供的头文件默认都定义好,添加 头文件REGX51.H,图 3-1 加入REGX51.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_7=P27;/定义P2.7位为P2_7,3.5 Keil C51指针与函数,1.通用指针2.存储器指针3.Keil C51函数,1.通用指针,通用指针的声明和使用均与标准C相同,不过同时还可以说明指针的存储类型。如:char*s;/*字符指针*/int*numptr;/*整型指针*/long*state;/*长整型指针*/通用指针总是需要三个字节来存储:第一个字节表示存储器类型,第二个字节是指针的高字节,第三个字节是指针的低字节。,2.存储器指针,存储器指针或类型确定的指针在定义时包括一个存储器类型说明,并且总是指向此说明的特定存储器空间。例如:char data*str;/*str指向data区中char型数据*/int xdata*pow;/*pow指向外部RAM的int型整数*/。,3.Keil C51函数,格式:函数类型 函数名(形式参数)reentrant 函数的格式与标准C语言相同,3.6 绝对地址访问,使用“include”语句即可使用其中定义的宏来访问绝对地址。该文件中实际只定义了几个宏,以确定各存储空间的绝对地址,使用方法如下:1.绝对宏包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD。例如:rval=CBYTE 0 x0002;/指向程序存贮器的0002h地址rval=XWORD0 x0002;/指向外RAM的0004h地址,3.6 绝对地址访问,2._at_关键字直接在数据定义后加上_at_ const即可例如:idata struct link list _at_ 0 x40;/指定list结构从40h开始。xdata char text25b _at_0 xE000;/指定text数组从0E000H开始注意:(1)绝对变量不能被初使化;(2)bit型函数及变量不能用_at_指定。,3.7 宏定义与C51中常用的头文件,C51中常用的头文件通常有reg5l.h、reg52.h、math.h、ctype.h、stdio.h、stdlib.h、absacc.h、intrins.h 等。常用的却只有reg5l.h或reg52.h,math.h。例如:#include#include,3.7 宏定义与C51中常用的头文件,reg5l.h和reg52.h是定义51单片机或52单片机特殊功能寄存器和位寄存器的,这两个头文件中大部分内容是一样的,52单片机比51单片机多一个定时器T2,因此,reg52.h中也就比reg5l.h中多几行定义T2寄存器的内容。math.h是定义常用数学运算,比如求绝对值、求方根、求正弦和余弦等,该头文件中包含有各种数学运算函数,当我们需要使用时可以直接调用它的内部函数。平时常用如下头文件#include#include,3.8 C语言的数制与常用运算符,1.C语言的数制 计算机中常用的数制有三种十进制数是我们最熟悉的一种数制,基数为10,逢十进一。二进制数是计算机内的基本数制,其主要特点是:任何二进制数都只由0和1两个数码组成,其基数是2。进位规则是“逢二进一”。十六进制数是微型计算机软件编程时常采用的一种数制其主要特点:基数是16,“逢十六进一”。2.常用的C语言运算符与标准C相同,表3-5 常用的C语言的运算符,3.9 C51的流程控制语句,1.分支结构选择语句ifswitch/case语句 2.循环语句 while语句 do-while语句 for循环语句,3.10 单片机的I/O口编程语句介绍(重点),51系列单片机共有四个8位并行I/O口,分别是P0、P1、P2、P3。一条编程语句即可以操作单个引脚,也可以按字节来操作8个引脚。数字电路中只有两种电平特性,即高电平和低电平,因此单片机的引脚只有0、1两种逻辑状态。逻辑“0”的电压值是0V,逻辑“1”的电压值是5V。因为P1P3口内部有上拉电阻,所以引脚在没有外围电路时读时,单片机读端口的值是逻辑“1”。,表3-6 C51读写单片机的I/O端口,3.11 简单控制单片机引脚输出(实训二),1.实训题目:简单发光二极管流水灯程序2.实训内容练习写单片机的I/O口编程;理解如何编程发出逻辑信息,并控制外围电路;程序1:8个发光二极管L1L8分别接在单片机的P1.0P1.7接口,程序2:LED跑马灯,利用for语句编辑一个的延时函数,并使用该延时函数让第一个发光二极管亮灭闪动。,程序3:LED移位显示,下面程序可以使8个发光二极管动起来,点亮顺序为P1.0P1.1P1.2P1.3P1.7,并重复循环。,编程方法同样:编程使单片机引脚输出“0”、“1”逻辑电平。,3.12 使用C语言高级语句控制引脚输出,1.实训题目:发光二极管流水灯程序2.实训内容本程序主要练习写单片机的I/O口编程,将C语言的判断、循环语句与引脚输出结合起来。,3.13 Keil uVision5集成开发编程环境使用,实际操作演示,3.14 Keil C51编译器使用及程序下载,1.实训题目:控制LED灯闪烁2.实训目的:熟悉Keil C51编译器的使用方法3.实训原理电路图如图2-6所示。将电源最小系统板、发光二极管板用杜邦线连接起来。发光二极管使用单片机的P1.0引脚来控制。当控制信号为低电平时(逻辑0)发光二极管亮,控制信号为高电平(逻辑1)时发光二极熄灭。,思考与练习,1、C51编程与ANSIC编程主要有什么区别?2、51单片机能直接进行处理的C51数据类型有哪些?3、简述C51存储类型与51单片机存储空间的对应关系。4、C51中51单片机的特殊功能寄存器如何定义?试举例说明。5、C51中51单片机的并行口如何定义?试举例说明。6、C51中51单片机的位单元变量如何定义?试举例说明。7、C51中指针的定义与ANSI C有何异同?本章作业:3,6,7题,热释红外防盗报警器,(第3章演示例程1),实验用到的材料,人体热释红外防盗报警器,注:单片机型号换面任意一款51单片机都通用,人体热释红外防盗报警器,软件设计,51单片机,IAP15W4K61S4-带仿真功能的单片机,

    注意事项

    本文(单片机C51程序设计.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开