|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
$ s; Z2 `$ Y' s! `
[摘要]以Molorola 68HCO8系列单片机指令为例,利用堆栈传递参数的方法,介绍了在单片机汇编语言5 ^9 I7 a4 i7 O$ q
级进行面向对象编程的方法,并运用于UPS的人机界面开发中。该设计方法增强了程序的模块化和结构
8 m! L3 O; V$ b# R# ~1 T化,缩短开发周期和便于维护。
* Y3 G# ?! S ]5 l; A0 |[关键词]面向对象 单片机语言设计 Motorola 单片机不间断 电源(UPS)
4 x w% |. }4 ?1 F8 r# ]1、前离
+ x; U# S% `$ f近年来面向对象的程序设计(00P)技术越来越得到人们的8 E& d3 O, M5 l9 Y9 {
青睐,在高级语言的程序设计中普遍采用,如Visual C+ +等。在
# d8 M H0 R; f0 `* X4 i0 a7 p单片机汇编语言级进行面向对象的设计未见报导,传统的汇编/ g: J' J0 J2 t5 J
语言设计是面向数据或过程的,这种设计方法中数据和过程是) `# h$ t; h- `% [" b
相互独立的,即忽略了数据和程序间的内在联系,无法真实反映+ z$ V9 X0 r8 {9 V, u
现实世界的问题本质。面向对象的设计是将实际问题分解成- - ]% ?. T5 z' r# q( ^6 |5 w
些相互联系的事物(对象),并用描述事物的静态属性(数据)和: J0 T* u/ ~- z# O# G
对这些数据的操作(程序)这两个特征来描述对象。对象将数据
$ y, [; u1 q4 W' ?; p: Z和对数据的操作有机地构成一个整体,完整地反映问题的实
+ c: p% s$ c- k' y0 h5 D质。面向对象设计其另一个优点是可通过对象类的继承实现软/ h! ?* H/ w5 M, [! ^
件的重用。由于在高级语言环境下进行面向对象程序设计,其灵
6 t: S1 S8 @9 F7 ]/ i z4 I活的表现方式是通过编译程序来实现。而本文是在汇编语言级7 j! z% @3 i, x4 L
程序设计中,直接融人面向对象设计的概念,给出了类封装和类8 f7 s& {! x6 M& ]" D* F
继承的实现方法,并以Molorola 68HC08系列单片机指令为例,
3 o9 N) o0 ~. q! ]2 Z给出具体的实现代码。最后以UPS的人机界面为设计实例,验证' ], x: k& q; Q1 v8 s
这种汇编语言设计方法比传统设计方法具有更强的程序模块化: U$ q, C* O! L5 a6 o& _5 C
和结构化,这给缩短了项目的开发周期,并便于维护。
" q) j; G0 |: `8 ^' Z0 f2.设计思想
; @. ^4 f r/ x1 _+ Y* \* H类是对一-组具有相同数据和相同操作的对象的描述,是对象
% J4 d- C3 M, V3 W! E0 |- ?的抽象概括。而对象是类的一个具体实例。类封装(Encapsulation)、
- u5 m8 N* b* l" ^1 j: R类继承(Inheritance)和多态性(Polymorphism)是面向对象程序设计# @( u3 v6 B/ n/ V/ C) s- C
的三个重要特性。下面给出类封装和类继承的汇编语言实现。-般
+ `: m' F) S; E. h$ Q9 o: g) f来说,类由属性声明和方法声明两部分组成,属性声明给出类的数+ [: S1 w! F* T8 ^1 s# A
据,而方法声明给出操作数据的函数声明。由于缺少了高级语言编
) h( ]* m/ U2 Y! o译程序的解释,因此在类的声明中具有其特殊性,表现为属性和方( A0 \4 v0 x% P
法并没有存取控制(高级语言中的存取控制有私有、保护和公有三
7 m' c. S9 t# w+ z% @4 o种),这里我们规定类的属性的存取控制是在类及其派生类中可以
# _; u$ K; m- \1 v& @4 G8 b# i访向,外界操作类的属性只能通过类的方法进行,而且为了定义类( H8 U2 X/ ]# v. d/ @% G
实例,对类属性均定义为指针型变量。在类定义中,我们还需给出' d; `. _. p% u! B4 ~1 m/ `
类的接口函数,这也是一个特别之处。
3 e8 U' s3 H! q, V1 U) i+ Y$ Y- b" U
9 l! [" _$ P! @
& _ M/ S5 X* E2 x9 E% m/ i9 U" _
附件下载:
) Y" y, q A$ n
$ y' J; F& Y( O7 V: |: F' L |
|