㈠ 单片机汇编语言是什么
要控制单片机,让单片机按照程序工作,就需要告诉单片机怎么工作,需要一种计算机语言(单片机=单片微型计算机),最基本的是机器语言,是一堆二进制代码。操作数,指令(控制单片机运行的命令)都用二进制代码表示。而汇编语言就是将二进制代码一对一的换成字母,十六进制数等易于理解,阅读的语言,用于控制单片机
当然,更深入的学习后会有伪指令(并不对应与二进制代码),这些伪指令在汇编(将汇编语言还原为二进制代码的过程)的时候会被去掉,然后利用其提供的信息进行汇编。
㈡ 单片机汇编程序
初始化程序:
MOV R0,#A0H; 设置片内RAM首地址,存放采集数据
MOV R2,#08H; 设置通道数8个
SETB IT1 ; 设外部中断1为跳沿触发,因为转换完成后EOC产生跳变
SETB EA ; 开总中断
SETB EX1 ; 开外部中断1
MOV DPTR,#0FEF0H ;设置通道IN0地址(根据外部连线,低电平有效)
LOOP:MOVX @DPTR,A ;启动AD转换(只要执行一条写语句即可A值无所谓)
HERE: SJMP HERE ;等待中断的到来,中断未来原地踏步来了就进入中断
中断服务程序:(一次转换完成EOC就有效,进入中断程序)
MOVX A,@DPTR ;读取IN0通道AD转换值
MOVX @R0,A ;AD转换值转存至内部RAM
INC DPTR ;DPTR指针加一,指向下一个通道
INC R0 ;R0加一,指向下一个RAM单元
DJNZ R2,INT1 ;当8个通道都采集完后,关闭中断,结束
CLR EA
㈢ 单片机汇编语言
DATA1 BIT P1.0;DATA不能作为符号名定义,改为DATA1 BIT表示P1.0定义为DATA1
SCK BIT P1.1
noACK EQU 0;noACK 定义为0
ACK EQU 1
㈣ 单片机汇编语言程序
问题较多。
1. 延时程序:
DELAY:
DS1:MOV R4,#0X7F
DS2:MOV R5,#250
......
其中的#0X7F,#代表数字,0x7F代表16进制形式数字,即十进制127;
#250就简单了,就是数字,250。
2。DPTR增1是什么意思,是0100增1吗?
是的,DPTR的内容将变为0101。
㈤ 单片机汇编语言
mov a,40h; A=50H
mov r0,a ;R0=50H
mov @r0,20h ;(50H)=30h
mov 50h,r0 ;(50H)=50H
mov a,@r0 ; A=50H
按照顺序执行最后的结果是:
(20H)=30H,(30H)=40H,(40H)=30H,(50H)=50H ,A=50H。
㈥ 关于单片机汇编语言
楼主的提问很正确。
用本程序来判断两个带符号数的大小,是不全面的。
两数相减后,首先要根据符号位(ACC.7)来判断结果是正、负,
正则X-Y>0、负则X-Y<0。
之后,再像上述程序,根据溢出位(OV)来判断结果是否溢出,
正:X-Y>0, OV=1, X<Y、 X-Y>0, OV=0, X>Y;
负:X-Y<0, OV=1, X>Y、 X-Y<0, OV=0, X<Y;
应该有两重判断。
㈦ 单片机用汇编语言编程
电路图就不画了,这么简单的电路自己搞掂吧,假设LED接P0口,低有效。
TIMES EQU 30H
SEC EQU 31H
FLAG BIT 00H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
CLR FLAG
LOOP:
MOV P0,#0FAH
JNB FLAG,$
CLR FLAG
MOV P0,#0F5H
JNB FLAG,$
CLR FLAG
MOV P0,#0AFH
JNB FLAG,$
CLR FLAG
MOV P0,#5FH
JNB FLAG,$
CLR FLAG
MOV P0,#0AAH
JNB FLAG,$
CLR FLAG
MOV P0,#55H
JNB FLAG,$
CLR FLAG
MOV P0,#00H
JNB FLAG,$
CLR FLAG
MOV P0,#0FFH
JNB FLAG,$
CLR FLAG
LJMP LOOP
END
㈧ 急求!单片机汇编语言写程序:
;本程序晶振为12MHZ
SWBITp0.0 ;存放按键值
CNTEQU30H ;存放1s计数值
DATEEQU31H ;存放数据值
ORG0000H
LJMPMAIN
ORG0030H
MAIN: MOVTMOD,#01H ;定时器为T0工作方式1
MOVTH0,#3CH;定时50ms
MOVTL0,#0B0H
MOVCNT,#20 ;1s初值
MOVDATE,#00H ;数据初始值为0
SETBTR0
MLOOP:JNBTF0,$;50ms?
CLRTF0
MOVTH0,#0F0H ;50mS定时重设
MOVTL0,#60H
SETBSW ;读I/O口之前先写1
JNBSW,ML01 ;判断按键
DJNZCNT,ML02 ;1s到了没?
MOVCNT,#20
INCDATE ;数据值加1
ML01: MOVDATE,#00H ;数据值清零
ML02: MOVA,DATE
MOVDPTR,#LED7 ;差数码管显示码
MOVCA,@A+DPTR
MOVP1,A ;七段码值送显示
AJMPMLOOP
;====LED段码表====
LED7: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
DB80H,90H,88H,83H,86H,0A1H,86H,8EH
流程图为:
希望可以帮助你。
㈨ 51单片机用汇编语言需要什么软件
先将汇编语言编译成HEX或BIN文件,再通过相应的下载手段把文件下载进去
编译的话比如WAVE软件就可以,很多的,下载的话要看什么型号的单片机了,有些支持在线ISP下载,那么电脑装个软件,通过232串口连接到板子上,就可以了,有些呢,是需要买专门的烧写器的
㈩ 单片机(汇编语言)程序
程序来中有RET语句时表明该自程序段是一个子程序,且第一条语句必须有标号(程序中没有),可在主程序或其它子程序中的LCALL (或ACALL)语句对其进行调用,返回时返回到调用语句的下一条指令。
若这是一个完整的程序,不能用RET指令,一定要用等待(结束)指令SJMP $ 。