单片机C语言-第2章51单片机硬件及C51编程基础-4课件

PPT
  • 阅读 44 次
  • 下载 0 次
  • 页数 12 页
  • 大小 235.000 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档10.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
单片机C语言-第2章51单片机硬件及C51编程基础-4课件
可在后台配置第一页与第二页中间广告代码
单片机C语言-第2章51单片机硬件及C51编程基础-4课件
可在后台配置第二页与第三页中间广告代码
单片机C语言-第2章51单片机硬件及C51编程基础-4课件
可在后台配置第三页与第四页中间广告代码
单片机C语言-第2章51单片机硬件及C51编程基础-4课件
单片机C语言-第2章51单片机硬件及C51编程基础-4课件
还剩5页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 12
  • 收藏
  • 违规举报
  • © 版权认领
下载文档10.00 元 加入VIP免费下载
文本内容

【文档说明】单片机C语言-第2章51单片机硬件及C51编程基础-4课件.ppt,共(12)页,235.000 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44624.html

以下为本文档部分文字说明:

2.4对单片机主要资源的控制•2.4.1特殊功能寄存器的定义•2.4.2绝对地址的访问•2.4.3位变量的定义1、采用关键字进行定义(1)sfr特殊功能寄存器名字=特殊寄存器地址80C51单片机片内RAM中与idata空间相重叠的高128字节(地址范围

80~FFH)称为特殊功能寄存器(SFR)区,单片机内部集成功能的操作都是通过特殊功能寄存器来实现的。为了能够直接访问80C51系列单片机内部特殊功能寄存器,C51编译器扩充了关键字sfr和sfr16,利用这种扩充关

键字可以在C51源程序中直接定义80C51单片机的特殊功能寄存器。例如:sfrP0=0x80;/*定义P0寄存器,地址为0x80*/sfrSCON=0x90;/*定义串行口控制寄存器,地址为0x90*/2.4.1特殊功能寄存器的定义•(2)sfr16:在80C51单片机中,特殊功能寄存

器经常组合成16位来使用。采用关键字sfr16可以定义这种16位的特殊功能寄存器。当SFR的高端地址直接位于低端地址之后,采用sfr16直接访问。•sfr16T2=oxcc;//定时器T2低8位地址为0xcc,•高8位地址为0xcd•2、通过头文件访问SFR:把头文#i

nclude<reg51.h>加入到程序中。(1)采用sbit定义关键字sbit用于定义可独立寻址访问的位变量,简称可位寻址变量。C51编译器提供一个存储器类型bdata,带有bdata存储器类型的变量定位在80C51单片机片内RAM的可位寻址区,带有bdata存储器类型的变量可以

进行字节寻址也可以进行位寻址,因此对bdata变量可用sbit指定其中任意位为可位寻址变量。3、SFR中位定义(2)定义方法有如下三种:1)sbit位变量名=特殊功能寄存器名^位置当可寻址位位于特殊功能寄存器中时可采用这种方法,“位位置”是一个0~7之间的常数。sfrPSW=0xD0;sb

itOV=PSW^2;2)sbit位变量名=字节地址^位置这种方法以一个常数(字节地址)作为基地址,该常数必须在0x80H~0xFF之间。“位位置”是一个0~7之间的常数。sbitOV=0XD0^2;3

)sbit位变量名=位地址这种方法将位的绝对地址赋给位变量,位地址必须位于0x80~0xFF之间。sbitOV=0XD0;2.4.2绝对地址的访问•两种方法:•1、绝对宏:采用头文件#include<absacc.h>,即可

使用其中的宏来访问绝对地址例题:•#include<absacc.h>•#definePAXBYTE[0xffec]•#defineNRAMDBYTE[0x40]•voidmain(void)•{PA=0x3A;•NRAM=0x01;•}2、_at_关键字•[存储类型]数据类型

变量名_at_地址常数;•例题:•dataunsignedcharx1_at_0x40;•xdataunsignedintx2_at_0x2000;•voidmain(void)•{x1=0xff;•x2=0x1234;•while(1);•}2.4.3SFR中的位及位变量的C51定义•

1、SFR的位定义•sbit位名=SFR名^位置;•如:sbitLED0=P1^0;•2、位变量的C51定义•(1)采用关键字bit进行定义•biti1;在C51程序中可以定义bit类型的变量、函数、函数参数及返回值。例如:staticbitdone_flag=0;/*bit类型变量*/bit

testfunc(/*bit类型函数*/bitflag1,/*bit类型函数参数*/bitflag2){……;return(0);/*bit类型返回值*/}所有bit类型的变量都被定位在80C51片内RAM的可位寻址区。(2)可位寻址对象:位变量的存

储类型只能是bdata,使用时先说明字节变量的数据类型和存储类型,然后采用bit定义可寻址访问的对象位。例如,可先定义变量的数据类型和存储器类型如下:intbdataibase;/*定义ibase为bdata整型变量*/charbdatabar

y[4];/*定义bary[4]为bdata字符型数组*/然后使用sbit定义可位寻址变量如下:sbitmybit0=ibase^0;/*定义mybit0为ibase第0位*/sbitmybit15=ibase^15;/*定义mybit15为ibase第15位*/sbit

Ary07=bary[0]^7;/*定义Ary07为bary[0]第7位*/sbitAry37=bary[3]^7;/*定义Ary37为bary[3]第7位*/•(3)对位变量定义的限制•1)位变量不能定义为指针,•例如,不能定义bit*bitpoi

nter•2)不存在位数组,•例如,不能定义bitb_array[]

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?