汇编程序模块共识标准编程的典型案例.pdf
《汇编程序模块共识标准编程的典型案例.pdf》由会员分享,可在线阅读,更多相关《汇编程序模块共识标准编程的典型案例.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 引言长期以来,一直不断有研究人员对汇编编程移植性进行探索。虽然目前 C 语言因其优良的移植性在编写程序中广泛采用,而汇编语言按理会萎缩消亡,但事实上是汇编语言有直接和简捷的优点,在编写控制程序时可更有效地访问、控制计算机诸如存储器、CPU、I/O端口等多种硬件设备,是 C语言不可替代的。汇编语言在大型编程上一直存在着编写比较冗长、复杂、容易出错,以及不同指令集的汇编程序不通用、移植性差等问题。既然汇编语言不可被为其他语言替代,且存在这样或那样的不足,就要求应有更多学者来做如何使汇编编程更加方便和更加容易的工作。笔者根据多年从事汇编编程教育及应用汇编语言从事开发工作的经验,提出一种移植性强的
2、汇编语言编程方法汇编程序模块共识标准编程,从汇编程序结构标准化和子程序模型标准化两个方面来规范汇编编程,以提高其移植性。这种编程方法的理论探讨已被写成了研究论文,发表在2011 年 2 月出版的 制造业自动化 杂志上。笔者在本文将根据“汇编程序模块共识标准”提出的编程原则给出一个典型的编写案例及讨论其编写特点。2 汇编程序模块共识标准的编程原则汇编程序模块共识标准包含了两个内容,一个是汇编程序结构标准化,另一个是子程序模型标准化。汇编程序结构标准化要求编程人员在编写程序时要按照汇编程序模块共识标准提出的汇编程序结构进行编写程序。程序的编写为什么要按照这一原则进行编写?优点是什么?等等问题,笔者
3、已在 2011 年2 月出版的 制造业自动化 杂志上,题为 汇编编程移植性的研究与实践 一文中进行了说明,在这里不再复述。子程序模型标准化要求按照规定好的三种子程序编写结构构造子程序,以使子程序编写功能化,更便于移植。三种基本的子程序功能化结构分别是函数功能结构、延时结构和混合结构。同样,其特点和要求已在 汇编编程移植性的研究与实践 一文中进行了说明,这里也不再重复。3 典型编程案例这里给出一个典型的单片机应用项目简易数控电源,根据上面提出的汇编程序模块共识标准的编程原则,介绍其实际的编程做法及展现其良好的移植性。3.1 简易数控电源项目说明(1)项目功能a.输出电压:范围 0+9.9V,步进
4、 0.1V;b.输出电压值由液晶显示;c.由+、-两键分别控制输出电压步进增减;d.输出电压可预置在 09.9V之间的任意一个值;e.用自动扫描替代人工按键,实现输出电压变化(步进0.1V不变)。(2)电路构成说明简易数控电源电路由单片机芯片、独立键盘、十键矩阵键盘、液晶 1602 和 DAC0832 及一些运算放大电路和与非门芯片组成,这部分电路除了要完成 100 步均匀线性输出外,还要将将电压输出稳定在 09.9V 上,以及在液晶 1602 上做对应的显示;简易数控电源电路还包括功率放大电路,这部分电路除了保证简易数控电源在 9.9V 输出时能获得 500mA 以下的输出工作电流,还能在输
5、出电流大于 700mA 时进行过流保护和发出报警声音。参考电路见图 1(驱动电路部分省去)。图 1 简易数控电源电路图3.2 汇编编程说明一般在汇编编程中,必须确定好电路才能进行编程。按汇编程序模块共识标准编程原则,则可绕过事先确定好电路。首先须要做的工作是分析项目需要分解成多少个模块,在这里需要分解成独立键盘、十键矩阵键盘、液晶 1602 显示,DAC0832控制及过流保护和发出报警声音等五个模块。接下来是按照原则构造这五个模块的独立、可移植的汇编主子程序,如独立键盘主子程序、十键矩阵键盘主子程序、液晶 1602 显示主子程序、DAC0832 控制主子程序、过流保护和发出报警声音主子程广西轻
6、工业GUANGXI JOURNAL OF LIGHT INDUSTRY计算机与信息技术2011 年 2 月第 2 期(总第 147 期)【作者简介】凌艺春(1964-),男,广西百色人,系副主任,副教授,研究方向:应用电子技术和电气自动化技术。汇编程序模块共识标准编程的典型案例凌艺春,黄飞(广西工业职业技术学院电子与电气工程系,广西 南宁 5 3 0 0 0 1)【摘要】在前期汇编编程移植性研究和实践的基础上,通过归纳汇编程序模块共识标准的编程原则,给出了一个实际应用的典型案例,以及论述其编程步骤。【关键词】汇编程序模块共识标准;汇编程序结构标准;主子程序;子子程序;移植性【中图分类号】TP2
7、73【文献标识码】A【文章编号】1003-2673(2011)02-77-0377序。这五个程序在目前国内的单片机教材中都含有,下面就以独立键盘子程序为例来说明主子程序的构建。根据项目需要,独立键盘有三键,设 K0 为选择键,K1 为加1 键,K2 为减 1 键。当 K1 闭合将 60H 单元内容加 1,K2 闭合将 60H 内容减 1;K0 闭合 1 次,选中 61H,按 K1 和 K2,则对61H 加 1 或减 1,再按一次 K0 则重新对 60H 加 1 或减 1。按上述要求程序结构图如图 2。图 2 独立键盘程序结构图由程序结构图可知,程序由程序定义部分、主程序、子程序群三大部分组成,
8、其中主程序由程序初始化部分和主程序循环体部分组成,而主程序循环体部分由独立键盘主子程序单独组成;子程序群则由 6 个子程序组成。要注意,这里所构建的子程序除了自身的程序外,还包含子程序的运行条件,如程序定义及初始条件设定。因此要进行子程序移植时,必须将子程序连同程序定义和初始条件设定一起打包移植。独立键盘主子程序程序部分程序清单如下:;-;程序定义部分;-;SIXTYEQU60HSIXTY_ONE EQU61HXZ_K0BIT P1.0;独立键盘选择键的定义ZY_K1BIT P1.1;独立键盘加 1 键的定义JY_K2BIT P1.2;独立键盘减 1 键的定义K0_FLAGBIT 38H;选择
9、键标号的定义K1_FLAGBIT 39H;加一键标号的定义K2_FLAGBIT 3AH;减一键标号的定义SIXTY_ONE_FLAG BIT 3CH;61 单元标号的定义PUSHDATAEQU42H;-;程序开始及主程序跳转;-;ORG0000H;-;START:CLR EA;程序初始化部分MOVPUSHDATA,#00H;-主程序循环体部分WAIT:;-;LCALL SINGLE _KEY;调用判别键入测试程序LJMPWAIT;有键输入则转去抖程序;-主程序群;独立键盘子程序;输入子程序 1:KEY_TEST,输入子程序 2=KEY-SCAN;输入:无;输出子程序 1=SELECT1,输出子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编程序 模块 共识 标准 编程 典型 案例
限制150内