① 关于单片机,用汇编语言
#include<reg51.h>
#defineucharunsignedchar
sbitled1=P0^0;
sbitled2=P0^1;
sbitkey=P3^0;
voiddelay(ucharx)
{
uchari,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
main()
{
ucharflag;
while(1)
{
if(key==0)
{
delay(30);
if(key==0)
{
while(key==0);
flag++;
flag%=4;
switch(flag)
{
case0:led1=1;led2=0;break;
case1:led1=0;led2=1;break;
case2:led1=0;led2=0;break;
case3:led1=1;led2=1;break;
default:break;
}
}
}
}
}
② 单片机汇编语言
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。
③ 单片机(汇编语言)程序
开发当然是用C,又快又易懂好维护,但是想要优化程序还是要懂汇编的,要不然实现同样一个功能的程序,好的程序员可以把程序设计得又短又快,而不做优化的可能会又臭又长,2K以下可以搞定的,你非要搞到4K以上去那最终产品的成本每个至少会相差几毛到一两块钱,而且成本升高时质量却是下降的,这样当然就不好了,所以我个人认为做单片机编程,应当是汇编和C都会才是最好的,次一点的是会C,且能大致看懂汇编,可以帮助优化C程序,
只会汇编,一个程序开发下来,得花几周到几个月,开发成本太高了,不值得
只会C完全不懂汇编,那也是很难做出高质量的单片机程序的
④ 单片机汇编语言程序
问题较多。
1. 延时程序:
DELAY:
DS1:MOV R4,#0X7F
DS2:MOV R5,#250
......
其中的#0X7F,#代表数字,0x7F代表16进制形式数字,即十进制127;
#250就简单了,就是数字,250。
2。DPTR增1是什么意思,是0100增1吗?
是的,DPTR的内容将变为0101。
⑤ 单片机汇编程序
SJMP $就是“原地踏步走”的意思,即当程序执行的该处时,什么事也不做。一般用来进行延时作用
SJMP $是在原地循环,一般都用在等待中断到来,然后进入中断处理程序。
处理完了,再继续在原地循环。
比如你的手机现在不用了,估计也在这里循环,你按下键,它就当是有中断
来了,就去处理,处理完了,它又开始循环等待你的操作了。
END是每个程序必须写的指令,如果你的程序走到了这条指令就停下来了。
一般的程序是不会让它走到这条指令的,因为走到了就结束了,不能去处理
你的实时中断了。
引用:http://..com/question/92880942.html
dxw0712的回答
⑥ 急求!单片机汇编语言写程序:
;本程序晶振为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
流程图为:
希望可以帮助你。
⑦ 单片机汇编语言程序的三种基本结构
汇编语言程序有顺序程序、分支程序、循环程序三种。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。
分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
(7)单片机汇编程序扩展阅读:
注意事项:
汇编指令不区分大小写,目的操作数是存结果的,原操作数是被操作的。
二进制数后跟b,十六进制数后跟h,十进制数不需特殊标记。
汇编源程序中,数据不能以字母开头,需要在前面加上0,如0a000h。
⑧ 单片机汇编语言实例
参考一下:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/8dd9ee9443f40e117af480ee.html
⑨ 单片机汇编语言是什么
要控制单片机,让单片机按照程序工作,就需要告诉单片机怎么工作,需要一种计算机语言(单片机=单片微型计算机),最基本的是机器语言,是一堆二进制代码。操作数,指令(控制单片机运行的命令)都用二进制代码表示。而汇编语言就是将二进制代码一对一的换成字母,十六进制数等易于理解,阅读的语言,用于控制单片机
当然,更深入的学习后会有伪指令(并不对应与二进制代码),这些伪指令在汇编(将汇编语言还原为二进制代码的过程)的时候会被去掉,然后利用其提供的信息进行汇编。
⑩ 单片机汇编语言
DATA1 BIT P1.0;DATA不能作为符号名定义,改为DATA1 BIT表示P1.0定义为DATA1
SCK BIT P1.1
noACK EQU 0;noACK 定义为0
ACK EQU 1