在 单片机汇编语言中 怎么调用宏定义?

作者&投稿:闾毅 (若有异议请与网页底部的电邮联系)
单片机汇编语言 宏定义 问题~

如果,两个18B20共存,可以:

ds18b20_2 equ p1.2
hbit_2 equ 05h
lbit_2 equ 06h

即可。

我的程序是KEIL编译的,如下
先申明
EXTRN CODE (_Send_CRC) ;Send_CRC是C中的函数,汇编中加了_
调用的时候
LCALL _Send_CRC

如果要使用C中的变量,那么CODE变成相应的DATA,XDATA等

在你编写的源程序第一行加入以下代码:
INCLUDE ow_18b20.inc


德昌县15962693168: 宏指令在汇编语言中要怎么使用?
唱陶亚洁: 在汇编语言中,宏指令(macroinstruction)在汇编程序处理过程中会扩展为多个指令(以编码过的源宏定义为基础)

德昌县15962693168: 汇编语言如何创建宏库并使用? -
唱陶亚洁: 建议将宏转换为子程序,将其编译成obj文件,在你的程序中需要调用时用external 指向它们即可.链接程序会自动链接它们.

德昌县15962693168: 51汇编 宏定义 -
唱陶亚洁: SET_EA 是宏名,可以通过他调用宏. MACRO 定义了一个宏(空开始) SETB EA 宏语句 ENDM宏结束

德昌县15962693168: 51单片机如何通过宏定义直接操作0x80地址 -
唱陶亚洁: 在51单片机内部,0x80 地址 对应的是 P0 端口.C51编程中 ,在 reg51.h 中 已经定义,可以直接使用 P0 .汇编语言中,可以直接使用 P0 .

德昌县15962693168: 汇编语言中 什么叫宏? -
唱陶亚洁: 宏意思是源程序中的一段有独立功能的程序代码 宏指令,用户自定义的指令.编程序时候,将多次使用的功能用一条宏指令来代替.

德昌县15962693168: 关于单片机中的宏定义如何定义多条语句. -
唱陶亚洁: 这个用法使用到了结构体,一定要在结构体后面才能使用,不然就会出错

德昌县15962693168: 单片机中的宏定义 -
唱陶亚洁: 我试过ATmega16的可以通过(codevisionavr环境)、看你现在用哪款AVR单片机,你这里是乘法乘的过程出现了溢出

德昌县15962693168: 单片机汇编指令 ACALL 怎么用? -
唱陶亚洁: ACALL是51汇编的子程序调用指令,其使用范围是±2K范围,超出这个范围的调用将会出错,这时可以使用LCALL即长调用语句. 调用格式如下: ACALL 标号(子程序名) 例程: ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR MAIN:MOV SP,#5FHACALL INIT ;调用初始化子程序SJMP $ INIT:MOV TMOD,#01HMOV TH0,#HIGH(65536-1000)MOV TL0,#LOW(65536-1000)SETB TR0SETB ET0SETB EARET T0ISR:CPL P1.0RETIEND

德昌县15962693168: 单片机汇编语言中怎么实现函数的调用啊? -
唱陶亚洁: 1要知道程序的入口地址,比如是A,把20h里的值给A,这个不多说:mov a,20h 2 lcall SQT 3 知道程序的出口,比如出口是a,b ,于是,mov 20h,a mov 21h,b ok!

德昌县15962693168: 51单片机汇编如何调用C函数? -
唱陶亚洁: 先声明,后调出.若C语言函数名为ABC,汇编的入口符号为_ABC.例:CALL _ABC ,就调用的了ABC涵数.至于如何声明,如何传函数参数,就要查编译器的使用说明了.我也没这么做过,一般是高级语言调用低级语言,只是一个建议.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网