当前位置:首页 » 编程语言 » c51汇编语言教程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c51汇编语言教程

发布时间: 2022-05-05 18:14:47

1. c51单片机中如何用汇编语言编写流水灯

51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果。以下是程序:
;假设晶振12MHZ,P1控制8个LED低电平亮
;启动入口========================
ORG 0000H ;复位启动
AJMP START ;
ORG 001BH ;T1中断
AJMP T1INT ;
;定义变量========================
YSJS EQU 30H;延时计数器
LED EQU 31H;LED控制缓冲器
;主程序==========================
START: MOV LED,#0FEH ;初始化数据
MOV YSJS,#0 ;
;
MOV TMOD,#10H ;定时器1工作于方式1,16位定时器
MOV TL1,#0B0H ;设置定时初值
MOV TH1,#3CH ;定时时间=50mS
SETB ET1 ;使能定时器1中断
SETB TR1 ;启动定时器1
SETB EA ;开总中断
MOV P1,LED ;初始化流水灯
;
LOOP: JMP LOOP ;循环等待中断
;
;
T1INT: PUSH PSW ;定时器1中断程序
PUSH ACC ;保护现场
;
MOV TH1,#3CH ;定时时间=50mS
MOV TL1,#0B0H ;
INC YSJS ;
PUSH ACC ;保护ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV P1,LED ;
MOV A,LED ;
RL A ;累加器A的值循环左移1位
MOV LED,A ;
MOV YSJS,#0 ;
;
QT1: POP ACC ;恢复现场
POP PSW ;
RETI ;返回主程序
END ;汇编程序结束

2. C51单片机汇编语言

DEL,DLYRAM是标记号,后面跟有:(冒号)
$是本汇编行的地址,举个例子:
SJMP $
这一句,就相当于
Loop:
AJMP Loop

3. 如何在C51语言程序中调用汇编语言程序

把汇编中的函数也在头文件中进行函数申明,引用这个头文件后,C语言就能调用这个函数了,跟调用C函数是一样的。

4. 单片机,c51汇编语言编写程序

SUBDATA:
CLRC
MOVA,41H
SUBBA,43H
MOVA,40H
SUBBA,42H
JCSUBD1
MOV44H,40H
MOV45H,41H
MOV46H,42H
MOV47H,43H
RET
SUBD1:
MOV44H,42H
MOV45H,43H
MOV46H,40H
MOV47H,41H
RET

5. 单片机C51汇编语言 怎么区分 汇编语言中出现的 数 和 地址

1、(R1)=20H 不是一条指令,而只是一种说明,表明R1寄存器中的内容是20H。这个20H是地址还是数据,与这个说明无关。

2、在指令 MOV @R1,#40H 中,@R1 是间接寻址方式,表明R1中的内容是地址,指令的功能表明是将立即数40H传送到R1指定的地址中。

3、在指令中容易混淆的是立即数与直接地址,立即数的特征是有一个前缀#,直接地址没有这个前缀。

6. 51单片机汇编教程

在网络搜索《mcs-51、96系列单片机原理及应用》,孙涵方着,32开本大小,北京航空航天大学出版社1988年出版。书虽老,但很经典,对汇编部份讲的最细致、最完整,还有许多常用子程序。
如果买不着,也可以在网络文库中下载PDF格式的电子版。

7. 汇编语言怎么写入单片机

利用编译软件,业界最常用功能最强大的是KEIL uv2/3,将你的源程序编译生成为.hex格式的文件。具体用法你可以先下载一个keil c51的软件。找一个教程看一下。keil c51可以编译C语言,也可以编译汇编语言,也可以把两者混合汇编。但是只有将他们转换成.hex格式(十六进制格式文件)的文件(或者二进制的文件,这种情况一般很少),单片机才能识别。
程序编译好后,剩下的工作就是将生成的.hex烧录到单片机中去啦。使用编程器将文件传到单片机中就行啦。
编程器(也即程序烧录器)现在网上有很多卖的(很便宜的,四五十就行了。我前一段时间在淘宝上买了一个。当然,也可以自己做一个,算了下自己做的话,单个的成本也在三十六块钱左右。单个做不合算,批量才有的赚),很多可以通过计算机串口直接将单片机烧录好。然后再将烧录好的单片机取下来,安装在你的MCU系统中。上电....

搞定收工!O(∩_∩)O~

8. 在C51语言中如何嵌入汇编语言

keil C 语言中嵌入汇编语言进行混合编程,方法如下:

1、在C 文件中要嵌入汇编代码片以如下方式加入汇编代码

#pragma ASM

; Assembler Code Here

#pragma ENDASM

2、在Project 窗口中包含汇编代码的C 文件上右键,选择“Options for ...”

4、编译,即可生成目标代码

实例:

#include<reg52.h>

#define uchar unsigned char

sbit LED1=P1^0;

//C 嵌入汇编例程

void delay_ms(void)

{

#pragma asm

MOV R0,#0FFH

MOV R1,#0FFH

D_LOOP1:

DJNZ R0,D_LOOP1

MOV R0,#0FFH

DJNZ R1,D_LOOP1

#pragma endasm

}

void main(void)

{

uchar i;

P1 = 0xFF;

while(1)

{

i++;

delay_ms();

if(i>=7)

{

LED1 =~LED1;

i=0;

}

}

}

9. 用keil C51怎么把C源程序转换成汇编代码

在编译时就可以自动生成asm文件,但需要在设置菜单中设置。
工程——选项——Listing——该选的选中(asm……)

如此将产生lst文件,打开.lst文件下拉到后面,可见到ASM部分代码,复制到editer,删除没有用的部分,留下ASM部分,把它编辑为asm 文件即可。

10. 在C51中,怎样嵌入汇编语言程序

voidfunc()
{
C语言代码……
#pragmaasm
MOVR6,#23
DELAY2:
MOVR7,#191
DELAY1:
DJNZR7,DELAY1
DJNZR6,DELAY2
RET
#pragmaendasm
C语言代码……
}