单片机初学者,单片机汇编语言不懂,谁能帮我看下,谢谢 ORG 0000H MOV P1,#0FFH ;P1.0=1,内部上拉(0FFH

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-07
刚学单片机,汇编语言中,MOV P1,0FFH与MOV P1,0F0H都是什么意思啊,求指教

前面一个指令是读引脚端口置1,在读引脚之前必须先向端口写1,是T2截止,才能正确读到引脚内容;后面一个指令是保留P1端口高四位的信息

程序很简单,就是让P1口全高电平一小段时间(执行DELAY延时子程序所需时间)后,再让P1口全低电平持续20倍的时间,不断重复上述过程。
ORG 0000H
START: MOV P1,#0FFH ;让P1口全高电平
ACALL DELAY ;一小段时间(调用一次DELAY延时子程序)
MOV R2,#14H ;20倍
MOV P1,#00H ;再让P1口全低电平
LOP: ACALL DELAY ;持续20倍的时间(直到R2为零即执行20次DELAY延时子程序)
DJNZ R2,LOP
SJMP START ;不断重复上述过程

STA DELAY: MOV TMOD,#01H ;设置定时器0模式为1模式即16位定时器
MOV TL0,#0B0H ;定时器0装入初值15536(即3cb0H)
MOV TH0,#3CH
SETB TR0 ;启动定时器0
LOOP: JBC TF0,NEXT ;等待定时器0计满溢出(即计数65536-15536=50000次)则清溢出标志并重装初值15536后返回
SJMP LOOP
RET
NEXT: MOV TL0,#0B0H;重装初值15536后
MOV TH0,#3CH
RET ;返回
END

ORG 0000H ;ORG是汇编伪指令,定位程序地址用,这里是程序入口0000H
MOV P1,#0FFH ;给P1口赋值FFH,即P1口全部置1
P1.0=1;P1.0口置1,这里单独给P1口的第一位置1.

;这个程序没写完,至少应该结尾处有一个END,为了使程序可控,结束前加一个死循环较好。因此需要加如下两句:
SJMP $ ;原地循环,这样可以保持以前的状态
END ;程序结束,这也是伪指令,通知编译器,所有程序到此完结。

ORG表示程序开始执行的地址,一般来说,为了不影响中断向量地址的内容,我们会在后面做一个无条件的跳转,第二条指令指的是将P1口全部提到高电平,主要是防止内电流太大而损坏单片机

ORG 0000H  ----程序起始地址
MOV P1,#0FFH ;---在P1的8个引脚,输出8个1

  • 单片机初学者,单片机汇编语言不懂,谁能帮我看下,谢谢 ORG 0000H MOV...
    答:单片机初学者,单片机汇编语言不懂,谁能帮我看下,谢谢 ORG 0000H MOV P1,#0FFH ;P1.0=1,内部上拉(0FFH 10 嘉应学院陈伟真 | 浏览767 次 |举报 我有更好的答案推荐于2017-12-16 18:13:43 最佳答案 ORG 0000H ;ORG是汇编伪指令,定位程序地址用,这里是程序入口0000HMOV P1,#0FFH ;给P1口赋值FFH,...
  • 应该怎样学好单片机以及汇编语言啊?
    答:关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器,...
  • 学习单片机,如果不大懂编程语言(C++),汇编语言也不懂,可以吗?
    答:我认为可以先学习一下pascal,这个语言比较严谨,适合初学者。pascal它被称为教学语言,结构严谨,不像C语言那么灵活,易于理解和学习。 然后可以继续学习C语言,这个语言比较灵活。有了pascal的基础,在进行C语言编程就不会因为C语言的灵活而有问题 。后面的就可以学习VC什么的了。C语言的书推荐谭浩强的,...
  • 怎么才能学好单片机汇编语言?本人是初学者,想请教各位学哥学姐,谢谢...
    答:至于仿真软件我建议用protues,专用的单片机仿真软件。如果是自学,那么不懂的地方可以上网收索或者上论坛询问,这里有个单片机的QQ群,是官方建的你可以加上一起学习讨论群号是:7344883 还有在了解指令的同时你要了解你的板子的结构亦即电路连接才能写好你的程序。当你学到一定程度的时候你可以学习一下单...
  • 单片机(汇编语言)好难啊就像C语言一样,怎么学呢?
    答:按照模式: 硬件接口→指令介绍→软件编程→单片机接口技术→应用实例,先学懂难懂的硬件接口,边理论、边实践、学一样、会一样、别学了,后忘,边学边用!!才是关键!!!罗嗦了这么多,最后还是看自己有没有毅力,靠自己努力!!!
  • 请问如何学设计单片机程序的汇编语言
    答:首先,汇编对芯片依赖性很强,所以,你首先要下载这个芯片的详细资料 了解每一个寄存器的作用。其次,记住常用的汇编助记符,add del mov乱七八糟的,51汇编中寻址有n多种要着重理解。再次,将c中简单的程序用汇编写出来,实验。(这个过程比用c吃力的多)其实,以上每个过程都非常吃力,汇编不是随随...
  • 单片机汇编程序 看不懂了
    答:JMP FUWU1 ORG 0013H JMP FUWU2 START: SETB EA SETB EX0 ;开启外部中断0中断 SETB EX1 MOV R1,#OF0H设置初始值 MOV R2,#OF2H MOV R3,#OF3H MOV R4,#OF3H LOOP0: MOV TMOD,#10H设置中断工作方式 MOV TH1,#00H中断计时器复位。清冷 MOV TL1,#00H SETB TR1 计时器开始 JNB TF1,...
  • 想学习单片机汇编语言,怎样学入门比较快呢
    答:指令字长和指令运行周期等即可。当然,上述要求只是初步要求。汇编语言是与硬件紧密联系的编程语言,没有电子硬件基础,学起来有种学天书的感觉,所以,硬件扫盲是必须的;另外,要先从51单片机的汇编学比较好,因为它的资料多,硬件相对简单,指令丰富,最主要它是一款“大众”机,提供帮助的资源很吩咐!
  • 单片机汇编语言不懂,这个是我自己写的,调试不出来,求指教啊
    答:;SETB ET0;这个不行,你没编写定时器中断程序,用查询的办法就不要中断了,注释掉 SETB IT1 SETB EX1 MOV A,#01H MOV P1,#00H SETB EA LOOP:JBC TF0,PTF0 SJMP LOOP PTF0:CPL P3.3 MOV TH0,#9EH MOV TL0,#58H SJMP LOOP SJMP $;上面已经是死循环了,这句没用 INT_X1: MOV ...
  • 如何学习单片机的汇编语言
    答:我也学习单片机寻址有很多方式:(举几个例子给你吧)1. 寄存器寻址 寄存器寻址就是操作数存放在寄存器中,指令中指定的寄存器的内容就是操作数。2. 直接寻址 直接寻址方式就是在指令中直接给出操作数所在存储单元的地址。此时,指令中操作数部分是操作数所在地址。3. 立即数寻址 立即数寻址就是操作数...