当前位置:首页 > 单片机 > 单片机
[导读]首先我们来看一段程序:  Tittle ‘Input.asm’ ;标题  ;这是一个简单的输入实验  include  COUNT EQU 20H ;定义20H寄存器名为COUNT  ORG 0 ;程序区将从0000H开始装载  GOTO START  ORG 4 ;

首先我们来看一段程序:

  Tittle ‘Input.asm’ ;标题

  ;这是一个简单的输入实验

  include

  COUNT EQU 20H ;定义20H寄存器名为COUNT

  ORG 0 ;程序区将从0000H开始装载

  GOTO START

  ORG 4 ;中断入口

  GOTO INTEN ;中断发生时跳转到INTEN

  ORG 10 ;START将从第10行开始

  START

  ……

  MAIN

  ……

  GOTO MAIN

  INTSEVER

  ……

  RETFIE ;中断返回

  END ;程序结束伪指令,不能少!

  事实上汇编程序并没有固定的格式,但是它的各部分是有一定的位置安排的,习惯上依次为:

  ①程序标题:用Tittle伪指令定义,可缺省;

  ②程序注释:请注意必须在程序说明及注释部分的内容前面用“;”号,否则将会出现编译错误。程序说明及注释部分均可缺省;

  ③调用到的.inc文件:用include伪指令来调用。通常.inc文件是与单片机型号相对应的,包括了一些特殊寄存器的定义等内容。PIC单片机各种型号的.inc文件在MPLAB目录中就能找到,不需要自己编写。如果被调用的.inc文件遗失,编译时将会出现编译错误;

  ④通用寄存器定义:用EQU伪指令定义,格式为“寄存器名称 EQU 寄存器标号”,寄存器名称要顶格写。这是程序编写人员为所用到的通用寄存器起的名字,对应了一个实际的通用积存器地址;

  ⑤宏定义:在上面的程序中没有用到宏,缺省;

  ⑥程序初始化:START部分;

  ⑦主程序:MAIN部分;

  ⑧子程序:如本程序的INTSEVER部分。有时候会将子程序放在初始化程序的前面,例如一些查表程序等;

  ⑨程序结束:END语句,不可缺省。

  以上的部分构成了一个完整的PIC汇编程序。在程序编写过程中需要注意的问题我认为有以下几点:

  1、编程中首先要避免使用直接地址对寄存器操作。使用直接地址来操作寄存器会使程序的可读性大大的降低,一来容易和数据发生混淆,二来也不容易更改。以上面的程序来说吧,寄存器“COUNT”的直接地址是20H。假如调试过程中我突然发现调用到COUNT的子程序中其它的寄存器都是在BANK1的,我为了调用它需要常常切换BANK极不方便,因此要将它的地址改为90H。那么现在我只要将定义的语句改为“COUNT EQU 90H ”就可以了,假如我没有这样定义,那么我只能去程序中查找20H然后一一改为90H……

  2、注意子程序标号的可读性。虽然这些标号在被编译之后是没有区别的(当然了,地址还是不一样的),只是编程人员用以识别的标记(比如:main通常被使用作为程序的主循环标号,而start则常被用做程序初始化的标号,可以说,标号的命名情况与程序的编译、运行是没有太大的影响的。假如你的main标号被改成loop,编译结果也是一样),但是它们的合理与否将会影响到程序的调试。通常来讲,标号最好是能一目了然,甚至要能概括这段程序处理的内容。比如延时程序用dealy,中断服务用intsever等等。这样一来程序的可读性高了,以后要修改调试起来也很方便。

  3、程序结构要合理。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭