|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/ x3 A2 q/ `+ ^" `9 L
[摘要]以Molorola 68HCO8系列单片机指令为例,利用堆栈传递参数的方法,介绍了在单片机汇编语言
. C) Y2 ~& y3 w' x! s级进行面向对象编程的方法,并运用于UPS的人机界面开发中。该设计方法增强了程序的模块化和结构
" O& l$ t* b5 O+ T- _& V/ u化,缩短开发周期和便于维护。; ?, j- h, j1 i; C; x6 k7 C
[关键词]面向对象 单片机语言设计 Motorola 单片机不间断 电源(UPS)
: ]) j) ^* h1 y4 V3 n) h, _0 L# B1、前离/ K0 t- x0 B0 \4 m. p ^- M! \. n
近年来面向对象的程序设计(00P)技术越来越得到人们的
( R3 F5 K' l' }4 `# K2 H" h青睐,在高级语言的程序设计中普遍采用,如Visual C+ +等。在% Y ~) T) A* l
单片机汇编语言级进行面向对象的设计未见报导,传统的汇编/ c/ M3 ~+ v7 [% [$ S
语言设计是面向数据或过程的,这种设计方法中数据和过程是! k& Z. Z( \$ L0 L
相互独立的,即忽略了数据和程序间的内在联系,无法真实反映8 c# q, g: Y8 P
现实世界的问题本质。面向对象的设计是将实际问题分解成- -
! `. z# E& Q7 C, w( I6 X些相互联系的事物(对象),并用描述事物的静态属性(数据)和$ g* x5 n" q+ r- p g
对这些数据的操作(程序)这两个特征来描述对象。对象将数据
+ L1 Z7 L1 W J) Q. i7 @和对数据的操作有机地构成一个整体,完整地反映问题的实; ^3 ?9 P' [) q( w/ G( P
质。面向对象设计其另一个优点是可通过对象类的继承实现软+ h8 ~$ u2 a- ^3 ~$ z
件的重用。由于在高级语言环境下进行面向对象程序设计,其灵
; e# y: a6 x# [! H/ ~活的表现方式是通过编译程序来实现。而本文是在汇编语言级0 M8 @* e- M& h2 @, A
程序设计中,直接融人面向对象设计的概念,给出了类封装和类% b; b( c, l5 O2 m
继承的实现方法,并以Molorola 68HC08系列单片机指令为例,5 I4 V, _5 U6 H6 `1 D$ h* G* N
给出具体的实现代码。最后以UPS的人机界面为设计实例,验证
& q2 C# m" V0 _3 B6 X# K4 [1 K: f这种汇编语言设计方法比传统设计方法具有更强的程序模块化0 X; `5 s6 B4 i& @' q& `# C6 F
和结构化,这给缩短了项目的开发周期,并便于维护。
; f- |: q4 J7 v" I4 I! g# W! H2.设计思想9 e, c6 M! ?7 s
类是对一-组具有相同数据和相同操作的对象的描述,是对象
) r3 H$ F( S# a& ?: }; {( b的抽象概括。而对象是类的一个具体实例。类封装(Encapsulation)、; b& e1 n, G, ?; g+ W
类继承(Inheritance)和多态性(Polymorphism)是面向对象程序设计" d5 j6 n5 k! a* B, M; `
的三个重要特性。下面给出类封装和类继承的汇编语言实现。-般
, A0 t2 o# M% r9 C* E, B2 d; P( B来说,类由属性声明和方法声明两部分组成,属性声明给出类的数
% y! w! ?1 F$ t+ N0 M3 k/ H据,而方法声明给出操作数据的函数声明。由于缺少了高级语言编
& [. @ H+ m1 W7 G6 }( Y# H译程序的解释,因此在类的声明中具有其特殊性,表现为属性和方2 _, C% b8 N5 E# j7 O8 a
法并没有存取控制(高级语言中的存取控制有私有、保护和公有三$ V: L- ]+ |: e
种),这里我们规定类的属性的存取控制是在类及其派生类中可以
( c! e4 E V: u: m访向,外界操作类的属性只能通过类的方法进行,而且为了定义类
: u7 y% B& l: Q/ Y4 |实例,对类属性均定义为指针型变量。在类定义中,我们还需给出( k% M4 s; w. K! }* {( R T. s
类的接口函数,这也是一个特别之处。
" e# |. R$ E5 r g R
3 h9 H! x8 y9 M2 y9 K- N5 L6 B6 J
2 b! l3 ?5 j/ a
附件下载:
% ^& \( L+ ]' l# t F2 v8 w3 h
9 }0 \7 U8 ~+ W$ ]4 M4 y } |
|