电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

计算机结构及单片机PPT第4章--C语言程序设计

48页
  • 卖家[上传人]:小萌新****ao
  • 文档编号:367615567
  • 上传时间:2023-11-09
  • 文档格式:PPTX
  • 文档大小:770.01KB
  • / 48 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第4章 单片机C语言程序设计2023/11/81C51对标准C的扩展4.1C51的变量4.2C51的指针4.3C51的绝对地址访问4.4C51的函数4.5C51与汇编语言混合编程4.64.1 C51对标准C的扩展 数据类型定义了数据的格式,主要包括数据的值域范围、占用存储单元的个数及能参与何种运算。C51数据类型可分为通用数据类型和51单片机的特殊数据类型两大类。2023/11/824.1.1 C514.1.1 C51的数据类型的数据类型基本数据类型有字符型char、短整型short、整型int、长整型long、浮点型float和双精度型double,均分无符号和有符号两种情况。但short型与char型相同,double型与float型相同。C51 常用数据类型2023/11/83基本数据类型名称长度取值范围unsignedchar无符号字符型1字节0255signedchar有符号字符型1字节-128+127unsignedint无符号整型2字节065535signedint有符号整型2字节-32768+32767unsignedlong无符号长整型4字节04294967295si

      2、gnedlong有符号长整型4字节-2147483648+2147483647float浮点型4字节1.175494E-383.402823E+38bit位型1位0或1sbit特殊位型1位0或1sfr8位特殊功能寄存器型1字节0255sfr1616位特殊功能寄存器型2字节0655352023/11/84a)标准C语言中存放格式 b)C51中存放格式int数据0 x3456存放格式 注意:1、整型和长整型数据的存放格式2023/11/85注意:1、整型和长整型数据的存放格式a)标准C语言中存放格式 b)C51中存放格式long数据0 x12345678存放格式2023/11/86注意:2、C51的特有数据类型特殊功能寄存器型 访问MCS-51单片机的特殊功能寄存器。分为sfr和sfr16两种类型:sfr为字节型特殊功能寄存器类型,占一个内存单元,可以访问MCS-51内部的所有特殊功能寄存器;sfr16为双字节型特殊功能寄存器类型,占两个字节单元,可以访问MCS-51内部的所有两个字节的特殊功能寄存器。2023/11/87注意:2、C51的特有数据类型位类型 访问MCS-51单片机的可寻址

      3、的位单元。在内存中都只占一个二进制位,其值可以是“1”或“0”。支持两种位类型:bit型和sbit型。bit定义的位变量在用C51编译器编译时,不同的时候分配的位地址不一样。sbit定义的位变量必须与MCS-51单片机的一个可以位寻址的位单元联系在一起,在C51编译器编译时,其位地址是不可变化的。2023/11/884.1.2 C514.1.2 C51的数据存储器类型的数据存储器类型存储器类型用于指明变量所处的单片机的存储器区域与访问方式。C51编译器的存储器类型有data、bdata、idata、pdata、xdata和code。存储器类型存储器类型描描 述述 data直接寻址的片内直接寻址的片内RAM低低128B,访问速度快,访问速度快 bdata片内片内RAM的可位寻址区的可位寻址区(20H2FH),允许字节和位混合访问,允许字节和位混合访问 idata间接寻址访问的片内间接寻址访问的片内RAM,允许访问全部片内,允许访问全部片内RAM pdata用用Ri间接访问的片外间接访问的片外RAM低低256B xdata用用DPTR间接访问的片外间接访问的片外RAM,允许访问全部,允许访

      4、问全部64KB片外片外RAM code程序存储器程序存储器ROM64KB空间空间2023/11/894.1.2 C514.1.2 C51的数据存储器类型的数据存储器类型【例4-1】C51变量的定义:bitbdataflags;/位变量flags定位在片内RAM的位寻址区chardatavar;/字符变量var定位在片内RAM区floatidatax,y;/实型变量x,y定位在片内间址RAM区unsignedcharpdataz;/无符号字符变量z定位在片外分页间址RAM区charcodechr3=1,2,3;2023/11/8104.1.3 C514.1.3 C51的编译模式的编译模式编译模式也叫做存储器模式,决定代码和变量的规模。当变量未标明存储类型时,C51编译器将按存储模式默认变量的存储类型。C51中,变量支持三种存储模式:SMALL模式、COMPACT模式和LARGE模式。1.SMALL模式SMALL模式称为小编译模式,在SMALL模式下,编译时变量被默认在片内RAM中,存储器类型为data。COMPACT模式称为紧凑编译模式,在COMPACT模式下,编译时变量被默认在片外RA

      5、M的低256B空间,存储器类型为pdata。2.COMPACT模式2023/11/8114.1.3 C514.1.3 C51的编译模式的编译模式LARGE模式称为大编泽模式,在LARGE模式下,编泽时变量被默认在片外RAM的64B空间,存储器类型为xdata。3.LARGE模式注:程序中变量存储模式的指定通过#pragram预处理命令来实现,如果没有指定,则系统都隐含为SMALL模式。2023/11/8124.1.4 C514.1.4 C51的标识符和关键字的标识符和关键字标识符是用来标识源程序中某个对象的名字的,这些对象可以是语句、数据类型、函数、变量、常量、数组等。一个标识符由字母、数字和下画线等组成,第一个字符必须是字母或下画线。1C51的标识符2C51的关键字关键字则是编程语言保留的特殊标识符,有时又称为保留字,它们具有固定名称和含义,2023/11/813C51编译器扩展的关键字关键字用途说明bit位标量声明声明一个位标量或位类型的函数sbit位变量声明声明一个可位寻址变量sfr特殊功能寄存器声明声明一个特殊功能寄存器(8位)sfr16特殊功能寄存器声明声明一个特殊功能寄存器

      6、(16位)data存储器类型说明直接寻址的内部数据存储器bdata存储器类型说明可位寻址的内部数据存储器idata存储器类型说明间接寻址的内部数据存储器pdata存储器类型说明“分页”寻址的外部数据存储器xdata存储器类型说明外部数据存储器code存储器类型说明程序存储器interrupt中断函数声明定义一个中断函数reetrant再入函数声明定义一个再入函数using寄存器组定义定义工作寄存器组2023/11/8144.2 C51的变量C51中变量定义的总体格式具体如下:存储种类数据类型说明符存储类型变量名=初值;存储种类是指变量在程序执行过程中的作用范围。C51变量的存储种类与标准C语言一样,有4种,分别是自动(auto)、外部(external)、静态(static)和寄存器(register),默认类型为自动(auto)。类型说明符用来指明变量的数据类型,与标准C语言一样,可以是系统已有的数据类型说明符,也可以是用typedef或#define定义的类型别名。C51定义变量时注明存储类型,用于指明变量的存储器区域,以便编译系统为它分配相应的存储单元与访问方式,2023/11/

      7、8154.2.1 C514.2.1 C51的特殊功能寄存器变量的特殊功能寄存器变量sfr或或sfr16特殊功能寄存器变量名特殊功能寄存器变量名=地址;地址;【例4-2】特殊功能寄存器的定义。为了与一般变量相区别,特殊功能寄存器变量名一般用大写为了与一般变量相区别,特殊功能寄存器变量名一般用大写字母表示。地址一般用直接地址形式。为了使用方便,特殊字母表示。地址一般用直接地址形式。为了使用方便,特殊功能寄存器变量名取名时一般与相应的的特殊功能寄存器名功能寄存器变量名取名时一般与相应的的特殊功能寄存器名相同。相同。格式:格式:sfrPSW=0 xc0;sfrSCON=0 x56;sfrTMOD=0 x65;sfrPl=0 x80;sfr16DPTR=0 x82;sfr16T0=0 x8B;2023/11/8164.2.2 C514.2.2 C51的位变量的位变量bit用于用于定义一般的位变量定义一般的位变量bit位变量名位变量名;【例4-3】bit型变量的定义。bit data a1;/*正确*/bit bdata a2;/*正确*/bit pdata a3;/*错误*/bit xdata

      8、a4;/*错误*/格式:格式:注意:注意:定义的位变量定义的位变量必须必须位于片内数据存储器的位寻址位于片内数据存储器的位寻址区。区。2023/11/8174.2.2 C514.2.2 C51的位变量的位变量sbit位类型符用于定义位地址确定的位变量位类型符用于定义位地址确定的位变量sbit位变量名位变量名=位地址;位地址;格式:格式:【例4-4】sbit型变量的定义:sbitOV=Oxd2;sbitCY=0 xd7;unsignedcharbdataflag;sbitflag0=flag0;sfrPl=0 x90;sbitPl_0=P10;sbitPl_l=Pl1;sbitPl_2=P12;sbitPl_3=P13;sbitPl_4=P14;sbitPl_5=P15;sbitPl_6=P16;sbitP1_7=P17;2023/11/8184.3 C51的指针 使用指针可以方便有效地表达复杂的数据结构;可以动态地分配存储器,直接处理内存地址。分为“存储器型指针”和“一般指针”两种。1)存储器型指针存储器型指针 定义时指明了所指向的数据的存储器类型。char idata*p;/指针变量

      9、p指向idata空间的字符型数据2)通用指针)通用指针定义时没有指明所指向的数据的存储器类型。C51通用指针的存储分区编码(清华和李全力两本书不同)存储器类型bdata/data/idataxdatapdatacode编码0 x000 x010 xfe0 xff2023/11/8194.4 C51的绝对地址访问 在C51中,可以通过绝对地址访问方式来实现对MCS-51单片机系统中确定的存储单元进行访问。C51绝对地址访问方式有三种:关键字“_at_”、预定义宏和指针。4.4.1用用_at_定义变量绝对地址定义变量绝对地址 在C51中,可以使用_at_关键字定位全局变量存放的首地址,一般格式如下:存储器类型 数据类型说明符 变量名_at_地址常数;2023/11/820【例4-5】通过_at_实现绝对地址访问:idatainty_at_0 x40;/idata中定义全局变量y的首地址为40Hy=0 xaa;/整形变量y赋值aaHxdatacharstring20_at_0 x2000;/xdata中定义字符型数组string的首地址为2000H2023/11/8214.4.2预定义宏实现

      10、绝对地址访问预定义宏实现绝对地址访问为了编程方便,C51编译器还提供了一组宏定义以实现对51系列单片机的绝对地址访问。这组宏定义原型放在absacc.h文件中,该文件包含如下语句:#defineCBYTE(unsignedcharvolatilecode*)0)#defineDBYTE(unsignedcharvolatiledata*)0)#definePBYTE(unsignedcharvolatilepdata*)0)#defineXBYTE(unsignedcharvolatilexdata*)0)#defineCWORD(unsignedintvolatilecode*)0)#defineDWORD(unsignedintvolatiledata*)0)#definePWORD(unsignedintvolatilepdata*)0)#defineXWORD(unsignedintvolatilexdata*)0)访问形式如下:宏名地址2023/11/822【例4-6】将20H2FH共16个RAM单元初始化为“33H”。【解】实现过程如下:#include#includevo

      《计算机结构及单片机PPT第4章--C语言程序设计》由会员小萌新****ao分享,可在线阅读,更多相关《计算机结构及单片机PPT第4章--C语言程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.