单片机的C语言编程推荐.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机的C语言编程推荐

存储区保留:DS DSB DSW DSD DBIT DS/DSB:当前数据段中预留指定字节(bytes)数 格式: [label: ] DS/DSB expression DSW:当前数据段中预留指定的字(words)数 DSD:当前数据段中预留指定双字(double words)数 DBIT:当前位段中预留指定的位数 注:当前数据段的类型由SEGMENT声明,见后。 段控制: SEGMENT RSEG BSEG CSEG DSEG ISEG XSEG 程序可分成数个段,如数据段和程序段。数据段可细分为DATA、XDATA或BIT等类型;程序段也可分为数个子程序段。 * SEGMENT:定义一个可重定位的段。 格式:segname SEGMENT class 段名segname为子程序段的名字; 段类型class:BIT CODE DATA IDATA XDATA等。 RSEG:选择一个由SEGMENT声明的可重定位段。 格式:RSEG segname BSEG:定义一个BDATA区中的绝对地址数据段。 格式:BSEG AT address DSEG:选择一个DATA区中的绝对地址数据段。 格式:DSEG AT address CSEG:选择一个CODE区中的绝对地址程序/数据段。 格式:CSEG AT address ISEG:选择一个IDATA区中的绝对地址数据段。 格式:ISEG AT address * XSEG:选择一个XDATA区中的绝对地址数据段。 格式:XSEG AT address 地址控制:ORG USING ORG:设置当前程序段(该伪指令)之后指令的地址。 格式:ORG expression 注:ORG用在由cseg声明的绝对段中时,表达式:expression表示一个绝对地址。此地址值不能低于cseg声明中at后面所指定的本段的起始地址。另外若表达式的值过小,可能会导致本段中ORG前面的几条指令被覆盖。 ORG用在由segment声明的可重定位段中时,表达式的值表示相对于本段起始地址的偏移。同样,若此偏移的值过小可能会导致本段中ORG前面的几条指令被覆盖。 * USING:设置定义的符号寄存器(AR0~AR7)地址,并为指定的工作寄存器组预留地址。 格式: SUING expression 注: USING不会改变当前的工作寄存器组R0~R7 ,其定义的符号寄存器(AR0~AR7)与EQU定义的符号类似,只是为方便编程时对相应工作寄存器的地址进行操作,所以AR0~AR7不等同于R0~R7。 例:设之前已经使用伪指令:USING 0 MOV A,AR3 ;机器码E503,对03单元直接寻址 MOV A,R3 ;机器码 EB,对R3寄存器寻址 PUSH R3 ;非法指令,汇编时报错 PUSH AR3 ;合法指令 USING在程序中可多次使用。通过PSW的RS0、RS1位改变工作寄存器组后,可马上使用USING指令,以方便通过AR0~AR7对相应寄存器地址操作。 * 程序链接:EXTRN/EXTERN NAME PUBLIC EXTRN/EXTERN:声明在其它源文件中定义的符号。 格式:EXTRN class (symbol1, symbol2, ...) 其中class指所引用符号对应的存储区类型,具体类型及标志符与段定义SEGMENT中的class一致。 NAME:指定当前模块汇编后目标文件的名字,建议与源文件名相一致。 格式:NAME modulename PUBLIC:声明本文件中被其它源文件引用的符号。 格式:PUBLIC symbol1, symbol2, ... * 汇编程序模块设计举例 前面步进电机的例子,三个模块全部用汇编实现。 延时子程序:DELAY.ASM PUBLIC DELAY DELAYPR SEGMENT CODE RSEG DELAYPR DELAY: MOV A, R6 ;延时外循环次数 JZ EXIT MOV R0, #250 ;延时内循环次数 DLY: NOP NOP DJNZ R0, DLY ;250×4?s =1000?s DJNZ R6, DELAY EXIT: RET END * 输出子程序:OUT.ASM EXTRN CODE(DELAY) PBLIC STATE, OUT

文档评论(0)

aena45 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档