IDL编写程序!!!急求

IDL编写程序!!!急求,第1张

IDL支持面向对象的编程, 但是并不完整, 不支持对成员的可见性的设定.

可以通过定义单独文件的方式来定义IDL类, 比较容易管理, 定义的方式是:

pro <ClassName>__define

struct = {<className>, ...}

end

文件名是:<ClassName>__define.pro

在这个文件中, 还可以添加类成员函数的定义, 如:

pro <className>::hello

...

end

IDL不区分大小写, 所以类名/函数名/关键字等均可以不受大小写的限制

IDL对类提供一些专门的成员函数, 完成专用的任务. 比如: INIT为构造函数, CLEANUP为析构函数(在对象被释放时调用, 比如OBJ_DESTROY函数). 但是这些函数不能在外部被调用, 但是可以在函数内部看到, 主要是为了手工调用, 以实现父类的初始化函数被调用(IDL不会自动调用父类的INIT函数)

INIT函数可以带参数, 可以在调用OBJ_NEW生成对象时传入.

OBJ_NEW函数的调用形式如下:

Result = OBJ_NEW( [ObjectClassName [, Arg1......Argn]] )

IDL的函数和过程参数可以不完整, 比如函数A定义了5个参数, 可以用0-5个参数来调用. 对调用的参数情况可以用N_PARAMS和N_ELEMENTS来判断, 前者可以得到实际的调用参数的个数, 后者可以判断某个参数是否有值

sub Test::INIT, caption

print, N_PARAMS() 返回参与调用的参数个数

print, N_ELEMENTS(caption) 返回1为有值, 返回2为未定义

...

end

可以定义多个同名函数, 但只有最晚定义的那个有效, 前面的会被隐藏

第二章 单片机的基本结构与工作原理

2·1 80C51系列单片机在片内集成了哪些主要逻辑功能都件?各个逻辑部件的主要功能是什么?

答:80C51系列单片机在片内集成了以下主要逻辑功能部件及分别有如下的主要功能。

(l)CPU(中央处理器):8位

功能:中央处理器由中央控制器与运算器一起构成。中央控制器是识别指令,并根据指令性质控制计算机各组成部件进行工作的部件。

(2)片内RAM:128B

功能:在单片机中,用随机存取存储器(RAM)来存储程序在运行期间的工作变量和数据,

所以称为数据存储器。一般,在单片机内部设置一定容量(64B至256B)的RAM。这样小容

量的数据存储器以高速RAM的形式集成在单片机内,以加快单片机运行的速度。同时,这种结构的RAM还可以使存储器的功耗下降很多。

(3)特殊功能寄存器:21个

功能:特殊功能寄存器(SFR)是80C51单片机中各功能部件所对应的寄存器,用以存放相

应功能部件的控制命令、状态或数据的区域。这是80C51系列单片机中最有特色的部分。现在所有80C51系列功能的增加和扩展几乎都是通过增加特殊功能寄存器(SFR)来达到的。

80C51系列单片机设有128B内部数据RAM结构的特殊功能寄存器(SFR)空间区。除

程序计数器PC和4个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内。

(4)程序存储器:4KB

功能:80C51单片机的程序存储器用于存放经调试正确的应用程序和表格之类的固定常

数。由于采用16位的程序计数器PC和16位的地址总线,因而其可扩展的地址空间为64KB,而且这64KB地址空间是连续、统一的。

(5)并行I/O口:8位,4个

功能:为了满足"面向控制"实际应用的需要,80C51系列单片机提供了数量多、功能强、使用灵活的并行I/O口。80C51系列单片机的并行I/O口,不仅可灵活地选作输人或输出,而且还具有多种功能。例如,它既是I/O口,又是系统总线或是控制信号线等,从而为扩展外部存储器和I/O接口提供了方便,大大拓宽了单片机的应用范围。

(6)串行接口:全双工,1个

功能:全双工串行I/O口,提供了与某些终端设备进行串行通信,或者和一些特殊功能的器件相连的能力甚至可用多个单片机相连构成多机系统,使单片机的功能更强和应用更广。

(7)定时器/计数器:16位,2个

功能:在单片机的实际应用中,定时器/计数器提供精确的定时,或者对外部事件进行计

数。为了减少软件开销和提高单片机的实时控制能力,因而均在单片机内部设置定时器/计数器电路,通过中断,实现定时/计数的自动处理。

(8)片内时钟电路:1个

功能:计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个节拍地执行各种 *** 作的。各种计算机均有自己的固定时序和定时电路。同样,80C51系列单片机内部也设有定时电路,只须外接振荡元件即可工作。外接振荡元件一般选用晶体振荡器,或用价廉的RC振荡器,也可用外部时钟源作振荡元件。近来也有的单片机将振荡元件也集成在芯片内部,这样不仅大大缩小了单片机的体积,同时也方便了使用。

2·2 80C51系列单片机有哪些信号需要芯片引脚以第二功能的方式提供?

答:

第一功能 第二功能

串行口:

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

中断:

P3.2 INT0外部中断0

P3.3 INT1外部中断1

定时器/计数器(T0、T1):

P3.4 T0(定时器/计数器0的外部输入)

P3.5 T1(定时器/计数器1的外部输入)

数据存储器选通:

P3.6 WR(外部存储器写选通,低电平有效,输出)

P3.7 RD(外部存储器读选通,低电平有效,输出)

定时器/计数器(T2):

P1.0 T2(定时器T2的计数端)

P1.1 T2EX(定时器T2的外部输入端)

2.3 程序计数器PC作为不可寻址寄存器,它打哪些特点?地址指针DPTR有哪些特点?与程存计数器 PC有何异同?

答(1)程序计数器PC作为不可寻址寄存器的特点

程序计数器PC是中央控制器申最基本的寄存器,是一个独立的计数器,存放着下一条将程序存储器中取出的指令的地址。

程序计数器PC变化的轨迹决定程序的流程。程序计数器的宽度决定了程序存储器可以

寻址的范围。

程序计数器PC的基本工作方式有:

①程序计数器PC自动加1。这是最基本的工作方式,也是这个专用寄存器被称为计数

器的原因。

②执行条件或无条件转移指令时,程序计数器将被置入新的数值,程序的流向发生变化。

变化的方式有下列几种:带符号的相对跳转SJMP、短跳转AJMP、长跳转LJMP及JMP @A+DPTR等。

③在执行调用指令或响应中断时:

●PC的现行值,即下一条将要执行的指令的地址送入堆栈,加以保护

●将子程序的入口地址或者中断矢量地址送入PC,程序流向发生变化,执行子程序或中断服务程序

●子程序或中断服务程序执行完毕,遇到返回指令RET或RETI时,将栈顶的内容送到PC寄存器中,程序流程又返回到原来的地方,继续执行。

(2)地址指针DPTR的特点

地址指针DPTR的特点是,它作为片外数据存储器寻址用的地址寄存器(间接寻址)。

(3)地址指针DPTR与程序计数器PC的异同

①相同之处:

●两者都是与地址有关的、16位的寄存器。其中,PC与程序存储器的地址有关,而

DPTR与数据存储器的地址有关。

●作为地址寄存器使用时,PC与DPTR都是通过P0和P2口(作为16位地址总线)输

出的。但是,PC的输出与ALE及PSEN有关DPTR的输出,则与ALE、RD及WR相联系。

②不同之处:

●PC只能作为16位寄存器对待,由于有自动加1的功能,故又称为计数器

DPTR可以作为16位寄存器对待,也可以作为两个8位寄存器对待。

●PC是不可以访问的,有自己独特的变化方式,它的变化轨迹决定了程序执行的流程

DPTR是可以访问的,如MOV DPTR,#XXXXH,INC DPTP。

2. 4 80C51存储器在结拘上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内RAM和片外 RAM的指今格式有何区别?

答: (1)80C51存储器在结构上的特点

80C51采用将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)

结构。

(2)在物理上和逻辑上的地址空间

①在物理上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、

片外数据存储器。

②在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内

256B(或384B)数据存储器地址空间,片外64KB的数据存储器地址空间。

(3)访问片内RAM和片外RAM的指令格式

访问片内RAM采用MOV格式。

访问片外RAM采用MOVX格式。

2·5 80C51单片机的EA信号有何功能?在使用80C31时,EA信号引脚应如何处理?

答: (1)80C51单片机的EA信号的功能

EA为片外程序存储器访问允许信号,低电平有效在编程时,其上施加21V的编程电压

EA引脚接高电平时,程序从片内程序存储器开始执行,即访问片内存储器EA引脚接低电平时,迫使系统全部执行片外程序存储器程序。

(2)在使用80C31时,EA信号引脚的处理方法

因为80C31没有片内的程序存储器,所以在使用它时必定要有外部的程序存储器,EA 信号引脚应接低电平。

2·6 片内RAM低128单元划分为哪三个主要部分?各部分主要功能是什么?

答: 片内RAM低128单元的划分及主要功能:

(l)工作寄存器组(00H~lFH)

这是一个用寄存器直接寻址的区域,内部数据RAM区的0~31(00H~lFH),共32个单

元。它是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7。

(2)位寻址区(20H~2FH)

从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位,是可位寻

址的RAM区。这16个字节单元,既可进行字节寻址,又可实现位寻址。

(3)字节寻址区(30H~7FH)

从内部数据RAM区的48~127(30H~7FH),共80个字节单元,可以采用间接字节寻址

的方法访问。

2·7 80C51设有 4个通用工作寄存器组,有什么特点?如何选用?如何实现工作寄存器现场保护?

答: (1)通用工作寄存器组的特点

用寄存器直接寻址,指令的数量最多,均为单周期指令,执行速度快。

(2)通用工作寄存器组的选用

在某一时刻,只能选用一个工作寄存器组使用。其选择是通过软件对程序状态字(PSW

中的RS0、RSl位的设置来实现的。设置RS0、RSl时,可以对PSW进行字节寻址,也可以进行位寻址,间接或直接修改RS0、RSl的内容。若RSl、RS0均为0时,则选用工作寄存器组0若RSl、RS0为1时,则选用工作寄存器组1其他以此类推。

(3)工作寄存器的现场保护

对于工作寄存器的现场保护,一般在主程序中使用一组工作寄存器而在进人子程序或中断服务程序时,切换到另一组工作寄存器在返回主程序前,再重新切换回原来的工作寄存器。

2·8 堆栈有哪些功能?堆栈指示器(SP)的作用是什么?在程序设计时,为什么还要对 SP重新赋值?

答: (1)堆栈的功能

堆栈是内部数据RAM区中,数据先进后出或后进先出的区域。其具体功能有两个:保护断点和保护现场。

(2)堆栈指示器(SP)的作用

堆栈指示器(SP)是一个8位寄存器,存放当前的堆栈栈顶所指存储单元地址的。

(3)对SP的重新赋值

系统复位后,SP内容为07H。如不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放如需使用深度较大的堆栈时,将会影响到工作寄存器的使用。所以要对SP进行重新的赋值,使堆栈区设定在片内数据·RAM区中的某一空白区域内,堆栈深度以不超过片内RAM空间为限。

2·9 为什么说 80C51具有很强的布尔(位)处理功能7共有多少单元可以位寻址?采用布尔处理有哪些优点7

答 (1)80C51具有很强的布尔(位)处理功能

在80C5I单片机系统中,与字节处理器相对应,还特别设置了一个结构完整的布尔(位)

处理器。在该系统中,除了程序存储器和ALU与字节处理器合用之外,还有自己的:

①累加器CY:借用进位标志位。在布尔运算中,CY是数据源之一,又是运算结果的存

放处,是位数据传送中的中心。根据CY的状态,程序转移:JC rel,JNC rel,JBC rel。

②位寻址的RAM区:从内部数据RAM区的32~47(20H~2FH)的16个字节单元,共包含128位(0~127),是可位寻址的RAM区。

③位寻址的寄存器:特殊功能寄存器(SFR)中的可位寻址的位。

④位寻址的并行I/O口:P0、Pl、P2及P3各口的每一位都可以进行位寻址。

⑤位 *** 作指令系统:位 *** 作指令可实现对位的置位、清0、取反、位状态判跳、传送、位逻辑、运算、位输人/输出等 *** 作。

强大的布尔(位)处理功能,是80C5l系列单片机的突出优点之一。

(2)可以位寻址单元的数目

可以位寻址的单元共有228个。分布在:

①RAM区:20H~2FH字节中所有位,共计有128个单元。

②特殊功能寄存器区:P0、TCON、Pl、SCON、P2、IE、P3、1P.PSW、A、B、PCON及TMOD中的相应位,共计95个单元(IE中有两位无定义,IP中有三位无定义,PSW中有一位无定义,PCON中有三位无定义)。

(3)采用布尔处理方法的优点

利用位逻辑 *** 作功能进行随机逻辑设计,可把逻辑表达式直接变换成软件执行,方法简

便免去了过多的数据往返传送、字节屏蔽和测试分支,大大简化了编程,节省存储器空间,加快了处理速度还可实现复杂的组合逻辑处理功能。所有这些,特别适用于某些数据采集,实时测控等应用系统。这些给"面向控制"的实际应用带来了极大的方便,是其他微机机种所无可比拟的。

2·10 80C51单片机的时中周期、机器周期、指令周期是如何设置的?当主频为 12MHZ时,一个机器周期等子多少微秒(us)?执行一条最长的指令需多少微秒(us)?

答:1) 80C51中定时单位的设置为时序定时单位,共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。

●时钟周期:节拍是CPU处理动作的最小周期称为时钟周期。一个状态周期就包含两

个节拍,其前半周期对应的节拍叫Pl,后半周期对应的节拍叫P2.

●机器周期80C51采用定时控制方式,因此它有固定的机器周期。规定一个机器周期

的宽度为6个状态,并依次表示为Sl~S6。由于一个状态又包括两个节拍,因此一个

机器周期总共有12个节拍,分别记作SlPl、SlP2…S6P2。由于一个机器周期共有12

个振荡脉冲周期,因此机器周期就是振荡脉冲的12分频。

当振荡脉冲频率为12MHz时,1个机器周期为lus当振荡脉冲频率为6MHz时,1个

机器周期为2us。

●指令周期:执行一条指令所需要的时间称为指令周期。指令周期是最大的时序定时单

位。80C51的指令周期根据指令的不同,可包含有1、2、3、4个机器周期。

2)当主频为12MHz时,1个机器周期为1件s。

3)执行一条时间最长的指令-----MUI,和DIV指令,需要4个机器周期,即需要4us。

2·11 单片机有几种复往方法?复往后抗暴的初始状态如何,即各寄存器的状态如何?

答: (1)单片机复位方法

单片机复位方法有:上电自动复位、按键电平复位和外部脉冲三种方式,如题图2-1所示。

题图2-1

(2)复位后的初始状态

复位后机器的初始状态,即各寄存器的状态:PC之外,复位 *** 作还对其他一些特殊功能寄存器有影响,它们的复位状态如题表2-1所例.

2. 12 举例说明单片机在工业控制系统中低功耗工作方式的意义及方法。

答: 1. 低功耗系统设计的意义

按传统观念,低功耗系统只是便携式系统中考虑的问题。然而,从经典电子系统发展到现代电子系统,低功耗系统应是一切现代电子系统的普通取向。实现系统运行的低功耗是现代电子系统的普通取向,是"绿色"电子的基本要求。除了节省能源外,低功耗系统还具有显著的电磁兼容EMC(Electro Magnetic Compatiblily)效益和可靠性效益。

(1)实现"绿色"电子,节省能源

在许多现代电子系统,如家用电器和视频音像系统中,普遍采用遥控 *** 作,在不使用时大都处于待机状况下。据有关部门统计,目前,许多家用电器在备用状态下耗费的电量已超过实际使用中消耗的电量。据报道,美国家用电器每年在备用状态下浪费的能源达10亿美元。采用低功耗系统设计,不仅能减少使用中的功耗,而且可以减少备用状态下的功耗。

在节省能源的同时,许多低功耗设计采用的最大静态化设计有利于减少电磁污染。

(2)促进便携化发展

低功耗设计技术有利于电子系统向便携化发展。便携式电脑/笔记本电脑是低功耗系统

设计的成果。现代电子系统便携化拓宽了它的应用领域。

(3)诱人的可靠性效益

低功耗系统设计不可避免要走全CMOS化道路和功耗管理的道路。在数字电路中,

MOS电路有较大的噪声容限在功耗管理中,常采用休闲、掉电、睡眠、关断及电源关闭等方式,在这些方式下系统对外界噪声失敏,大大减少了因噪声干扰产生的出错概率。

2. CMOS电路是低功耗系统设计的首选

(1)CMOS电路的功耗特性

CMOS电路的功耗特性十分鲜明,表现在本质低功耗,静态与动态功耗的巨大差异及功耗可控性等因素上.

①本质低功耗:在题表2-2中,将高速CMOS逻辑电路与传统TTL逻辑电路的功耗进行了对比.

可以看出:CMOS器件有极低的静态功耗,并要求极小的输人驱功电流。因此,使用

CMOS电路器件可构成本质低功耗的电路系统。

②静、动态功耗的巨大差异:从题表2-1中看出,传统的TTL电路中,没有静、动态功耗差异,也就不存在利用无谓等待状态的低功耗运行方式。在CMOS电路中,静、动态功耗差异十分显著,而且动态功耗与时钟速度相关,随时钟频率加大,功耗急剧上升。由于CMOS电路中的静、动态功耗的巨大差异,形成了CMOS器件中形形色色的低功耗运行方式。各种低]耗方式的核心,就是CMOS电路的最大静态化控制。

③动态功耗相关参数多:根据动态功耗P"是瞬间导通功耗PTC与静态功耗PC之和,J

表达式为

PA=PTC+Pc=VDD×ITC+fCL×V2DD

动态功耗PA除直接与电源电压VDD、时钟频率土及输出电容CL有关外,导通电流ITC还与逻辑电平的跳变速率有关。这些相关因素都是CMOS电路系统中的重要运行参数。要设计最小功耗系统,就要在系统中根据实际的时、空运行状态来管理这些参数,保证系统有最小的运行功耗。

④静态功耗的温度特性:CMOS电路的静态功耗主要是保护二级管和PMOS、NMOS管

寄生二极管的泄漏电流。常温下,静态功耗极小,但随温度增高呈指数上升,对温度敏感。

多数CMOS电路在85 0C或125 0C 工作环境下,其静态功耗大约是常温下的30~50倍,相应的输人电流约增加10倍以上。

(2)降低CMOS电路功耗的途径

按照CMOS电路的功耗特性,降低功耗的途径如下:

①大力降低系统或器件的工作电压。随着器件工作电压的下降,功耗会显著下降。目

前,集成电路器件普遍从+5V电源向+3V电源过渡。有些低功耗的CMOS器件己出现

2.7V、1.8V的工作电压,表明了电压控制在CMOS电路中的重要作用。

②控制CMOS器件申的时钟频率。时钟宜低不宜高同时,时钟不用时应及时关断,实

现系统的最大时空静态化管理来降低系统功耗。在CMOS器件中,有许多低功耗方式就是基于系统时钟管理来实现的。

③在CMOS电路系统中实施最大限度的静态化运行管理。使无谓等待下的电路处于静

态功耗,关闭时钟,停止动态输人或关闭电源。

3. 低功耗系统中单片机的选择和应用

低功耗系统设计中,器件选择是基础。选择的器件不仅要求本质低功耗,而且要求具有良好的功耗控制功能。

(1)采用CMOS工艺制造的单片机

目前单片机已普遍采用高速CMOS工艺,应用系统设计时,不再选用非CMOS单片机。

在低功耗系统设计的单片机选择时,主要考虑单片机的本质低功耗与功耗管理性能。CMOS工艺制造的80C51系列单片机具有优良的功耗管理性能,

(2)低功耗运行方式

早期CMOS单片机的功耗控制主要是对系统时钟实施管理而出现的休闲ID(IDle)方式

和掉电PD(Power Down)方式。当通过编程控制IDL,位有效时,迸人ID方式,关闭进人CPU的时钟,CPU停止运行,只保留中断系统、定时器/计数器、串行口的 *** 作功能。要退出ID方式时,可采用申断或复位 *** 作。编程控制PD位有效时,时钟停振,单片机内部所有功能单元部停止 *** 作。因此,要退出PD方式只有通过复位,清除PD编程位。

题表2-3给出了80C51正常运行、ID、PD方式下的功耗数据。从表中可以大致看出,不同时钟频率及不同运行方式下的功耗状况可以明显地看出,CMOS单片机中时钟频率及时钟控制对功耗的重要影响。

题表2-3 80C51不同频率不同方式下的功耗状况

(3)单片机的电压及双时钟功耗控制

目前除了采用PD、ID的低功耗运行方式外,还可以采用降低电压和设置双时钟(主时钟、

子时钟)的方式来进一步降低功耗。例如,目前有许多带双时钟和宽电源电压的单片机,在正常运行时可以使用3V供电,降低功耗除了在工作时钟下的运行ID方式外,还可以在子时钟支持下运行慢速(SLOW)和睡眠(SLEEP)方式,以及使全部时钟停止的停振(STOP)方式。

题表2-4为东芝TLCS一870在不同方式下的功耗状况。TLCS一870可工作在2.7~6V,主

时钟为1~8MHz,子时钟为32.8kHz。双时钟的设置能使单片机高速运行或低速运行,实现控制功能.

题表2-4 TLCS-870不同方式下的功耗状况

有的单片机在设定了主时钟后,在其内部还可以对时钟进行分频,以降低系统运行速度来进一步降低功耗。

2·13 单片机"面向挂创"应用的特点,在硬件结拘方面有哪些体现?

答:单片机"面向控制"应用的特点,体现在硬件结构方面有以下几点:

①由于考虑到单片机"面向控制"的实际应用的特点,一般需要较大的程序存储器,因此

目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。这种结构称为哈佛(Harvard)结构。80C51单片机系列的存储器采用的就是这种结构,即将程序存储器和数据存

储器截然分开,程序存储器和数据存储器各有自己的寻址方式、寻址空间和控制系统。

这种结构对于单片机"面向控制"的实际应用极为方便、有利。

②为了满足"面向控制"实际应用的需要,单片机提供了数量多、功能强、使用灵活的并行I/O口。不同单片机的并行I/O电路在结构上稍有差异。有些单片机的并行I/I口,不仅而灵活地选作输人或输出,而且还具有多种功能。例如,它既是IO口,又是系统总线,或是控制信号线等,从而为扩展外部存储器和1/0接口提供了方便,大大拓宽了单片机的应用范围。

③在单片机的实际应用中,往往需要精确的定时,或者需对外部事件进行计数。为了减

少软件开销和提高单片机的实时控制能力,因而均在单片机内部设置定时器/计数器电路减

过中断,实现定时/计数的自动处理。

④在80C51单片机系统中,与字节处理器相对应,还特别设置了一个结构完整、功能极强的布尔(位)处理器。这是80C5l系列单片机的突出优点之一。这给"面向控制"的实际应用并来了极大的方便。

在位处理器系统申,除了程序存储器和ALU与字节处理器合用之外,还有自己的:

●累加器CY:借用进位标志位。在布尔运算中,CY是数据源之一,又是运算结果的存

放处,位数据传送中的中心。根据CY的状态,程序转移:

JC rel

JNCrel

JBCrel

●位寻址的RAM.:RAM区中的0~127位。

●位寻址的寄存器:特殊功能寄存器(SFR)申的可位寻址的位。

位寻址的并行I/O口:P0、Pl、P2及P3各口的每一位都可以进行位寻址。

2·14 80C51单片机运行出错或程序进入死循环,如何摆脱困境?

答:当由于程序运行出错或 *** 作错误使系统处于死锁状态时,需按复位键以重新启动。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12119603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存