KEIL中的变量相关
例:sfr P0=0x80表示P0口地址为80H;(sfr是字节操作)
sfr16 T2=0xCC表示T2口地址的低地址为TL2=0XCC,高地址为TH2=0XCD(sfr16是字操作)
头文件reg51.h定义了所有8051的特殊功能寄存器
变量的链接属性(linkage)
链接属性决定如何处理在不同文件中现的标示符,链接属性有3种:
vexternal:属于此属性的标示符无论声明多少次、位于几个源文件都表示同一个实体;
vinternal:属于此属性的标示符在同一个源文件内的所有声明都指同一实体,但位于不同源文件的多个声明则分属不同实体;
none:没有链接属性的标示符(none)总是被当作单独的实体;
变量的作用域(scope)
当变量在程序的某个部分被声明时,它只有在程序的一定区域才能被访问,此区域称为该变量的作用域。变量声明的位置决定了它的作用域,变量声明的位置有3种:
一.在函数以外的地方声明:为全局变量,可被整个函数所使用,其视野遍布于整个程序;
二.在函数里面声明:为局部变量,只能给该函数所使用,其视野遍布于该函数内部;
三.函数的形式参数声明(函数体外的形参说明或在形参表列处说明):此变量用于接收调用者所传递来的参数,其视野和局部变量一样,只能在该函数内使用;
中断
void 函数名(void) interrupt n
{
// 中断函数体;
}
例:
void timer0_Interpt(void) interrupt 1
{
printf("I am TIMER0, I am ready \n");
}
注意:中断函数不能有入口参数或者返回值;不能直接在程序中调用;
用using函数属性说明符可以指定中断函数使用的寄存器组;
优点:
可避免用堆栈保存和恢复寄存器组,以节省处理时间;
? 当指定工作寄存器组时,保护工作寄存器组的工作可以被省略;C51默认使用寄存器组0,
缺点:
是所有被中断调用的过程都必须使用同一个寄存器组,否则参数传递会发生错误;
当有多个中断使能时,不建议各中断采用using指定寄存器组
KEIL中的变量相关的更多相关文章
- Linux中环境变量相关文件的区别
Linux下各种不同环境变量相关文件的作用: 1. /etc/environment 设置整个系统的环境,系统启动时,该文件被执行. 2. /etc/profile 设置所有用户的环境,当用 ...
- keil中for循环变量递减,无法跳出循环的问题
定义j时应注意其变量类型char,此循环当j=0时,再执行一次则keil中j=0XFF,而不是-1,所以无法跳出循环.但在vc6.0中是可以跳出循环的. 解决办法如下:不能让j的值为负数 uchar ...
- 关于Makefile.am中与Build相关的变量设置 AM_CPPFLAGS
http://tonybai.com/2010/10/26/about-variables-related-to-building-in-makefile-am/ 关于Makefile.am中与Bui ...
- 如何在KEIL中编写模块化的C程序
在KEIL中的模块化程序写法在使用KEIL的时候,我们习惯上在一个.c的文件中把自己要写的东西按照自己思路的顺序进行顺序书写.这样是很普遍的写法,当程序比较短的时候比如几十行或者一百多行,是没有什么问 ...
- KEIL中的一些细节
1.KEIL中的指针: 基于存储器的指针:数据类型 [指向存储区] *[ 指针存储区]指针变量 char xdata * px //px本身存在于自动分配的空间,一般位于data中,指向的内容位于x ...
- KEIL中启动文件详解(汇编语言)
原文在此:http://www.cnblogs.com/mddblog/p/4920063.html 概述 在嵌入式系统中,启动文件是整个系统非常关键的部分,它会进行一些底层的初始化,构建程序运行必要 ...
- PHP中的变量与常量详解
几乎所有的编程语言都会涉及到变量和常量这两个概念,PHP也不例外.本节将介绍PHP语言中的变量和常量的应用方法. 一.什么是变量和常量 在程序执行的过程中,变量存储的值可以随时改变,而常量存储的值是不 ...
- linux中Makefile文件相关内容
第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,m ...
- 浅谈JavaScript中的变量、参数、作用域和作用域链
基本类型和引用类型 在JavaScript中有两种数据类型值.基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指的是可能由多个值构成的对象.在JavaScript中有5种基本数据类型 ...
随机推荐
- android仿京东、淘宝商品详情页上拉查看详情
话不多说,直接上干货,基本就是一个scrollview中嵌套两个scrollview或者webview;关键点事处理好子scrollview和父scrollview的触摸.滑动事件已达到想要的效果.大 ...
- freeCMS学习网站
https://code.google.com/p/freecms/downloads/list
- cocos 的CCScheduler模块
scheduleSelector函数->查找m_pHashForTimers是否有存储回调的Obj类实例,否,创建新条目tHashTimerEntry,指向回调类实例,tHashTimerEnt ...
- 常用JS模板
var _win, _doc, _stt, _do = document.domain, _arr = _do.split("."); function _st() { try { ...
- JS 中的引用
首先有一个全局变量 JsonArry={"key":"value"}; 假设这个object为{"你好":"引用"} ...
- C#使用jmail组件发送邮件
1.安装 命令行环境下,到jmail.dll所在目录,运行regsvr32 jmail.dll 2.代码 #region 发送邮件 /// <summary> /// 发送邮件 ...
- php 回调函数
publicfunction transaction(Closure $callback){ $this->beginTransaction(); // We'll simply ...
- 四、Solr数据源配置(JNDI、DIH)及定时重做索引
简介 Solr支持很多种创建索引的方式,包括网页,xml以及数据库,因为我这边做的是企业级的搜索,所以用的是数据库建立索引.其实从数据库建立索引,很大程度上取决于原来的数据库设计. 从数据库建立索引, ...
- Android 推断当前Activity是不是最后一个Activity 以及 应用或Activity是否存在
推断当前Activity是最后一个Activity: 在Activity的方法中, 有一个方法isTaskRoot()方法, 这种方法能够推断当前Activity是否是最后一个Activity, 假 ...
- 【录音】Android录音--AudioRecord、MediaRecorder
Android提供了两个API用于实现录音功能:android.media.AudioRecord.android.media.MediaRecorder. 网上有很多谈论这两个类的资料.现在大致总结 ...