|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
( t; f) B$ o0 D8 u0 [' U6 G+ b
[摘要]以Molorola 68HCO8系列单片机指令为例,利用堆栈传递参数的方法,介绍了在单片机汇编语言
+ ~! t% X' L0 s" Z& U级进行面向对象编程的方法,并运用于UPS的人机界面开发中。该设计方法增强了程序的模块化和结构1 y* u! Z+ L6 B' D. [
化,缩短开发周期和便于维护。
# l9 ^" @7 u* Q H7 d( y( D[关键词]面向对象 单片机语言设计 Motorola 单片机不间断 电源(UPS), M5 [# l" U' \$ J2 T
1、前离
; q3 E0 X0 L3 y9 d7 E近年来面向对象的程序设计(00P)技术越来越得到人们的6 M1 ?# L B! V8 h, D
青睐,在高级语言的程序设计中普遍采用,如Visual C+ +等。在5 l8 O0 U1 z- R8 b4 [( n* Y
单片机汇编语言级进行面向对象的设计未见报导,传统的汇编5 X/ c8 B$ U1 e# P) n3 m6 ^0 Y
语言设计是面向数据或过程的,这种设计方法中数据和过程是8 E# a$ H+ m$ G$ M$ P) ~
相互独立的,即忽略了数据和程序间的内在联系,无法真实反映
# f# F0 K8 P! C; E. J8 E7 D: ` v7 O现实世界的问题本质。面向对象的设计是将实际问题分解成- -( u2 j& a. J2 P3 J9 U8 f, G
些相互联系的事物(对象),并用描述事物的静态属性(数据)和" r$ b- y4 B/ |7 H+ j
对这些数据的操作(程序)这两个特征来描述对象。对象将数据/ l/ U$ K, N7 j/ c. Q% i! T8 b
和对数据的操作有机地构成一个整体,完整地反映问题的实# S/ d. A/ o# t* X, {2 K i: |
质。面向对象设计其另一个优点是可通过对象类的继承实现软2 u- A4 f+ A4 m9 K. w4 P* a
件的重用。由于在高级语言环境下进行面向对象程序设计,其灵
8 U* J7 T( f9 A( f8 k0 x活的表现方式是通过编译程序来实现。而本文是在汇编语言级) o4 }0 H+ R v. d7 N2 }
程序设计中,直接融人面向对象设计的概念,给出了类封装和类9 @6 p8 P0 a/ f9 f! \' ~
继承的实现方法,并以Molorola 68HC08系列单片机指令为例,* }' V( ?, t5 e' S) F7 b& u
给出具体的实现代码。最后以UPS的人机界面为设计实例,验证8 U Y0 g. @4 w, L: D
这种汇编语言设计方法比传统设计方法具有更强的程序模块化
+ D: `7 |: d+ _6 u和结构化,这给缩短了项目的开发周期,并便于维护。2 A5 a0 M( J, h0 ~7 r
2.设计思想
8 |- x' b2 H1 P* l% r类是对一-组具有相同数据和相同操作的对象的描述,是对象
2 }) o+ F9 q, R0 |; ]1 r. _2 D$ L的抽象概括。而对象是类的一个具体实例。类封装(Encapsulation)、* M# y( H( {& q9 a/ y
类继承(Inheritance)和多态性(Polymorphism)是面向对象程序设计( g7 n. b8 H" s, u6 q x
的三个重要特性。下面给出类封装和类继承的汇编语言实现。-般
6 ]1 n4 `& Q+ E2 y( w0 H8 e来说,类由属性声明和方法声明两部分组成,属性声明给出类的数+ i8 U f* O! p
据,而方法声明给出操作数据的函数声明。由于缺少了高级语言编
( L9 W5 W0 I# r( V$ b2 W译程序的解释,因此在类的声明中具有其特殊性,表现为属性和方
: U1 [( e0 Z& M6 Q v法并没有存取控制(高级语言中的存取控制有私有、保护和公有三, Z* B9 p/ M& d& _
种),这里我们规定类的属性的存取控制是在类及其派生类中可以
. T& M9 Z" o$ s访向,外界操作类的属性只能通过类的方法进行,而且为了定义类
" r4 D9 M' |+ p, @' ]实例,对类属性均定义为指针型变量。在类定义中,我们还需给出# S* k6 v& e8 ~9 k4 q
类的接口函数,这也是一个特别之处。/ C% \3 _; H G; t8 N7 b3 d ]
& n5 a" m% _+ D( P @/ x4 ?, N( u* \! J3 |! q' p0 C, K
- C9 o& \& g. D9 U9 X7 W, R4 C
附件下载:+ | k- n* e( j: z5 M! N0 L Q7 T0 B
& J9 H, @/ h5 W8 j |
|