欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    汇编程序模块共识标准编程的典型案例.pdf

    • 资源ID:70003101       资源大小:618.72KB        全文页数:4页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汇编程序模块共识标准编程的典型案例.pdf

    1 引言长期以来,一直不断有研究人员对汇编编程移植性进行探索。虽然目前 C 语言因其优良的移植性在编写程序中广泛采用,而汇编语言按理会萎缩消亡,但事实上是汇编语言有直接和简捷的优点,在编写控制程序时可更有效地访问、控制计算机诸如存储器、CPU、I/O端口等多种硬件设备,是 C语言不可替代的。汇编语言在大型编程上一直存在着编写比较冗长、复杂、容易出错,以及不同指令集的汇编程序不通用、移植性差等问题。既然汇编语言不可被为其他语言替代,且存在这样或那样的不足,就要求应有更多学者来做如何使汇编编程更加方便和更加容易的工作。笔者根据多年从事汇编编程教育及应用汇编语言从事开发工作的经验,提出一种移植性强的汇编语言编程方法汇编程序模块共识标准编程,从汇编程序结构标准化和子程序模型标准化两个方面来规范汇编编程,以提高其移植性。这种编程方法的理论探讨已被写成了研究论文,发表在2011 年 2 月出版的 制造业自动化 杂志上。笔者在本文将根据“汇编程序模块共识标准”提出的编程原则给出一个典型的编写案例及讨论其编写特点。2 汇编程序模块共识标准的编程原则汇编程序模块共识标准包含了两个内容,一个是汇编程序结构标准化,另一个是子程序模型标准化。汇编程序结构标准化要求编程人员在编写程序时要按照汇编程序模块共识标准提出的汇编程序结构进行编写程序。程序的编写为什么要按照这一原则进行编写?优点是什么?等等问题,笔者已在 2011 年2 月出版的 制造业自动化 杂志上,题为 汇编编程移植性的研究与实践 一文中进行了说明,在这里不再复述。子程序模型标准化要求按照规定好的三种子程序编写结构构造子程序,以使子程序编写功能化,更便于移植。三种基本的子程序功能化结构分别是函数功能结构、延时结构和混合结构。同样,其特点和要求已在 汇编编程移植性的研究与实践 一文中进行了说明,这里也不再重复。3 典型编程案例这里给出一个典型的单片机应用项目简易数控电源,根据上面提出的汇编程序模块共识标准的编程原则,介绍其实际的编程做法及展现其良好的移植性。3.1 简易数控电源项目说明(1)项目功能a.输出电压:范围 0+9.9V,步进 0.1V;b.输出电压值由液晶显示;c.由+、-两键分别控制输出电压步进增减;d.输出电压可预置在 09.9V之间的任意一个值;e.用自动扫描替代人工按键,实现输出电压变化(步进0.1V不变)。(2)电路构成说明简易数控电源电路由单片机芯片、独立键盘、十键矩阵键盘、液晶 1602 和 DAC0832 及一些运算放大电路和与非门芯片组成,这部分电路除了要完成 100 步均匀线性输出外,还要将将电压输出稳定在 09.9V 上,以及在液晶 1602 上做对应的显示;简易数控电源电路还包括功率放大电路,这部分电路除了保证简易数控电源在 9.9V 输出时能获得 500mA 以下的输出工作电流,还能在输出电流大于 700mA 时进行过流保护和发出报警声音。参考电路见图 1(驱动电路部分省去)。图 1 简易数控电源电路图3.2 汇编编程说明一般在汇编编程中,必须确定好电路才能进行编程。按汇编程序模块共识标准编程原则,则可绕过事先确定好电路。首先须要做的工作是分析项目需要分解成多少个模块,在这里需要分解成独立键盘、十键矩阵键盘、液晶 1602 显示,DAC0832控制及过流保护和发出报警声音等五个模块。接下来是按照原则构造这五个模块的独立、可移植的汇编主子程序,如独立键盘主子程序、十键矩阵键盘主子程序、液晶 1602 显示主子程序、DAC0832 控制主子程序、过流保护和发出报警声音主子程广西轻工业GUANGXI JOURNAL OF LIGHT INDUSTRY计算机与信息技术2011 年 2 月第 2 期(总第 147 期)【作者简介】凌艺春(1964-),男,广西百色人,系副主任,副教授,研究方向:应用电子技术和电气自动化技术。汇编程序模块共识标准编程的典型案例凌艺春,黄飞(广西工业职业技术学院电子与电气工程系,广西 南宁 5 3 0 0 0 1)【摘要】在前期汇编编程移植性研究和实践的基础上,通过归纳汇编程序模块共识标准的编程原则,给出了一个实际应用的典型案例,以及论述其编程步骤。【关键词】汇编程序模块共识标准;汇编程序结构标准;主子程序;子子程序;移植性【中图分类号】TP273【文献标识码】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 独立键盘程序结构图由程序结构图可知,程序由程序定义部分、主程序、子程序群三大部分组成,其中主程序由程序初始化部分和主程序循环体部分组成,而主程序循环体部分由独立键盘主子程序单独组成;子程序群则由 6 个子程序组成。要注意,这里所构建的子程序除了自身的程序外,还包含子程序的运行条件,如程序定义及初始条件设定。因此要进行子程序移植时,必须将子程序连同程序定义和初始条件设定一起打包移植。独立键盘主子程序程序部分程序清单如下:;-;程序定义部分;-;SIXTYEQU60HSIXTY_ONE EQU61HXZ_K0BIT P1.0;独立键盘选择键的定义ZY_K1BIT P1.1;独立键盘加 1 键的定义JY_K2BIT P1.2;独立键盘减 1 键的定义K0_FLAGBIT 38H;选择键标号的定义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,输出子程序 2=ADD1,输出子程序 3=SUB1;输出:无;中间变量:R1=CY位,R2=K0-FLAG位,R3=K1-FLAG位,R4=K2-FLAG位。;-;键盘子程开始SINGLE_KEY:LCALL KEY_TEST;判断有无键被按下的判断子程序PRO_K2:LCALL SUB1;减 1 子程SJMP RETURE1RETURE1:RET;-;测键入子程序;输入:X1=XZ-K0,X2=ZY-K1,X2=JY-K2;输出:Y1=(C);中间变量:无。;-KEY_TEST:JNB JY_K2,KEY_TEST_OKSETBCRET;-;键盘扫描程序,每扫描一次,重新设置;对应键按下标志。;输入 X1=XZ_K0,X2=ZY_K1,X2=JY_K2,输出 Y1=K0_FLAG,Y2=K1_FLAG,Y3=K2_FLAG;中间变量:无;-KEY_SCAN:CLR K0_FLAGCLR K1_FLAGCLR K2_FLAGKEY_SCAN_END:RET;-;判断哪两位需要改变的子程序78(下转第 81 页);输入 X=PUSHDATA;输出 Y=SIXTY_ONE_FLAG;-SELECT1:CLR SIXTY_ONE_FLAG;选择 61H 单元标志INC PUSHDATAMOV PUSHDATA,#00HBACK_B:JNB XZ_K0,$RET;-;加 1 键修改子程序输入:X1=SIXTY-ONE-FLAG;输出:Y1=SIXTY,Y2=SIXTY-ONE;中间变量:R1=A。;-ADD1:JB SIXTY_ONE_FLAG,ADD1_1MOV A,SIXTYMOVSIXTY_ONE,AADD1_END:RET;-;减 1 修改子程序输入:X1=SIXTY-ONE-FLAG;输出:Y1=SIXTY,Y2=SIXTY-ONE;中间变量:R1=A。;-SUB1:JB SIXTY_ONE_FLAG,SUB1_1MOV A,SIXTYLJMP SUB1_ENDSUB1_END:RETEND按这种编程方式编出来的子程序适应性和移植性都很好,只要在程序定义部分对接口进行修改就可以把键盘移到其它接口使用,更重要的是可以将主子程序打包应用到其它含有独立键盘编程的单片机项目。以此方式构建十键矩阵键盘主子程序、液晶 1602 显示主子程序、DAC0832 控制主子程序和过流保护和发出报警声音主子程序。其中编码键盘由 4 个子程序组成,LCD 显示由 10个子程序组成,DAC0832 控制由 1 个子程序组成,过流保护和发出报警声音由 1 个子程序组成。有了上述这些独立的独立键盘子程序、编码键盘子程序、LCD 显示子程序、DAC0832 控制子程序和过流保护和发出报警声音子程序,下面就可以按照汇编程序模块共识标准编程原则构建项目程序。3.3 项目程序的构建根据上述项目要求,当电路出现过电流时,电路能进行过流保护和发出报警声音,因此这一功能要用中断来实现,相应的程序要设置成外部中断服务程序。具体步骤说明如下:(1)确定程序结构图如图 3。图 3 简易数控电源程序结构图(2)程序定义部分整合将独立键盘、编码键盘、LCD显示、DAC0832 控制、过流保护和发出报警声音五个子程序的程序定义部分指令进行合并,形成项目程序的程序定义部分,合并后的程序定义部分必须相互不冲突。(3)程序开始及主程序跳转整合程序这部分指令较为简单,任取上述五个子程序的程序开始及主程序跳转指令即可。(4)中断入口和中断服务程序跳转电路过电流保护用外部中断来实现,本例案外部中断采用INT1,中断入口为 13H,在此处放置一条中断跳转指令。(5)程序初始化部分整合这一部分整合较为重要,除了将将独立键盘、编码键盘、LCD显示、DAC0832 控制、过流保护和发出报警声音五个子程序的程序初始化部分指令进行合并外,必须保证所有程序融合的一致性,即独立键盘子程序的操作单元必须与编码键盘子程序、DAC0832 控制子程序、LCD显示子程序的操作单元相一致。(6)主程序循环体部分整合这一部分整合相当简单,只需要将独立键盘子程序、编码键盘子程序、LCD显示子程序、DAC0832 控制子程序的四个程序的主程序循环体部分合并即可。(7)中断服务程序 INT1将过流保护和发出报警声音子程序安排在中断服务程序里,快速地切断电路和发出报警声。(8)子程序及表格部分整合这一部分程序虽然很多、很长,但整合也相当简单,只要将独立键盘子程序、编码键盘子程序、LCD 显示子程序、DAC0832 控制子程序的子程序及表格部分合并即可,但要注意调用表格是否超出范围,如超出范围则要调整表格的位置。由于整个程序比较长,文章篇幅有限,故不能给出程序。79(上接第 79 页)4 结论就上述介绍的典型编程案例来看,汇编程序模块共识标准编程的关键在于构建各种通用子程序模块,只要构建好相应的子程序,就很容易编写项目的整个程序,这与 C 语言汇编程时以构建各种应用函数为关键有相同之处。因此汇编程序模块共识标准编程较好地解决原来汇编编程移植性差的问题,形成了一种相对简单、容易理解、操作方便、移植性好的编程方式。5 结束语要想使用好汇编程序模块共识标准编程,必须建立子程序库。通过积累和收集各种子程序使子程序库不断扩大,可为今后各种项目的汇编编程带来极大的方便。过去笔者使用汇编进行项目编程时,感觉每一次编程都要重新开始和重新考虑,整个过程非常痛苦,现在有了这种编程方法后,编程就像拼装东西,轻松多了。笔者一直从事高职单片机课程的教育工作,目前已用这一方法教授出一届学生,使学生受益匪浅,学生们都一致认为有了这种编程方式后,就能摆脱以往那些枯燥、繁杂的编程方式。参考文献1凌艺春.汇编编程移植性的研究与实践J.制造业自动化,2011,(2).2靳达.单片机应用系统开发实例导航M.北京:人民邮电出版社,20033曹巧媛.单片机原理及应用M.北京:电子工业出版社,2002.4施威铭研究室.PIC 单片机轻松入门M.北京:清华大学出版社,2001.5李朝青.行为引导教学法在高职实践课教学中的实践与研单片机学习辅导测验及解答讲义M.北京:北京航空航天大学出版社,2003.6侯伯民.单片机控制技术M.北京:中国电力出版社,2008.些交互性按钮,使操作起来得心应手;演示形象直观,动画效果生动活泼、界面符合使用者生理感受。以下为系统运行的部分界面截图:图 1 仿真系统初始界面图 2 润湿装置的仿真图 3 输纸装置的仿真图 4 印刷装置的仿真综上所述,本文作者通过具体的印刷设备系统仿真开发工作,介绍了计算机仿真技术在印刷设备行业的应用,经过印刷设备仿真系统的开发,加强了使用工具上的创新,更重要实践了的把这种计算机仿真技术与印刷设备相结合,推动整个印刷行业吸纳先进的计算机技术为行业服务。整个开发过程也是一个学习的过程,希望使用者能更直观清楚的了解印刷机械的运动原理,也希望这次的系统开发可以抛砖引玉,可以有更多更好的技术创新在今后的工作中涌现出来。软件开发是一个非常辛苦的工作,在整个研究过程中,发挥了团队协作的优势,把工程和软件结合,把培训和研究结合,这套系统推出以后,将极大地方便了印刷设备的培训和科研工作,具有非常好的市场前景。我们将首先用于内部实践,然后在实践过程中不断完善和扩展,经过一段时间的打磨后,这套软件将不断完善,对印刷设备行业的发展起到推动作用。81

    注意事项

    本文(汇编程序模块共识标准编程的典型案例.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开