单片机汇编。。菜鸟。。想问下哪里出现问题了。。单片机为at89s51

作者&投稿:巢肯 (若有异议请与网页底部的电邮联系)
关于AT89S51单片机入门的问题!~

建议你学汇编学到知道原理就行了,如果懂计算机原理汇编就不要学了.因为换个mcu汇编指令完全不一样,学了半天的指令全作废.而且汇编的高效率优势是要求经验的,一般人写不出比优化后的C更好的.不存在那个必须先学的问题,很多东西是互通的,多做点项目才好.

你用的编程器对不对啊?
而且编程器通常支持多种芯片,你得把型号选对才行。

首先,格式写的不对。
开头要跳过复位、中断区,否则有可能烧进程序,执行起来有时有作用,有时无作用。
其次,结尾要加上“END”伪指令;
第三,
至于程序想要干什么,全靠你自己写了。
正如四级九级二位兄弟所言,你程序中有错误。
单个字节值范围是:#00h-#0ffh;即0~255,你写288,太大了。
CPL 1.0 错了,应该是 CPL P1.0
最好在程序的开始前先命名每个你要操作的引脚名称,这样在今后修改起来,比较方便,例如:
LED_R EQU P1.0
LED_G EQU P1.1
然后把程序中的p1.0,p1.1直接替换成LED_R,LED_G,
这样写的好处是,只要在开头处修改一次就可实现全程序中的统一改动,比较方便;
且易读懂。
你自己体会下。
修改程序如下:
LED_R EQU P1.0
LED_G EQU P1.1

ORG 0000H
LJMP START
ORG 0100H
CLR LED_G
SETB LED_R
START:
DELAY1: MOV R7,#199
DL: DJNZ R7,DL
CPL LED_R
DELAY2: MOV R6,#49
DLL: DJNZ R6,DLL
CPL LED_G
DELAY3: MOV R5,#99
DLLL: DJNZ R5,DLLL
CPL LED_G
DELAY4: MOV 30H,#255
DL0: MOV 32H,#173
NOP
DL1: DJNZ 30H,DL1
DJNZ 32H,DL0
LJMP START

end

CPL 1.0?1.0是什么?你想一下怎么对1.0清零?
DELAY4:MOV 30H,#288 288超过了255!

你第六行的 CPL 1.0 错了,应该是 CPL P1.0
还有
DELAY4:MOV 30H,#288 这个中的288溢出了,最好改到255以下


汇编指令和机器码是怎么样转换的??我是菜鸟
为你正确解答:汇编指令和机器码的转换: 是通过查表完成的。可以手工查表 也可以由计算机的软件查表 由计算机程序自动查表翻译完成。因为汇编指令 实际就是助记符,CPU 有一条机器指令 就用一个便于记忆的助记符表示成一个汇编指令 所以 二者是一一对应的 例如: 空操作的汇编指令是 ...

菜鸟求救~汇编高手请进~~一个简单的问题~
DATAS SEGMENT ORG 3500H NUM DW 20ABH ORG 350AH ASCINFO DB 0,0,0,0,"$"DATAS ENDS STACKS SEGMENT DB 100 DUP(?)STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AX MOV CX,4 MOV AX,[NUM]MOV SI,OFFSET ASCINFO AG: PUSH CX MOV ...

汇编语言高手帮帮忙 解决下菜鸟问题
命题:从1开始,连续 n 项奇数等差数列求和,可以得到 n^2。证明:1 + 3 + 5 + ... + (2n-1) = (1 + (2n-1))*(n\/2) = n^2 求解思路:从完全平方数 N 中,依次减去:1、3、5、...,减到0为止,减去了多少次?平方根就是几。程序的核心部分如下:MOV AX, [data] ...

汇编语言问题,菜鸟请求高手
dos功能调用9号功能:显示以ds:dx开始的字符串,当遇到一个$时,结束显示。楼主程序中,lea si,aa add si,5 mov byte ptr [si],'$'把字符串中第4个字符改为:$,致使显示前3个字符之后,结束显示,这是导致“只是输出前3个”的症结所在。把这三条指令的后两条删掉即可。下面,我就从lea ...

菜鸟求助汇编!
一 般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指 向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的 表,在这...

菜鸟提问:汇编中出现 0 Error(s), 3 Warning(s).其中3Warning(s)如何解...
Warning(警告)那是指你的代码中,有一些不合规范的语句。 但又不影响代码的生成。如1)对一些变量没初始化就使用其中的值,或是2)一些变量赋了值,但没有使用。等等。有些这些警告是可以接受的,上述2), 但也有一些警告会影响代码的运行,得到不正确的结果,如1).所以,对这些警告,要一条条看...

本人汇编菜鸟用masmplus写了一段程序,却提示有严重错误,不能打开KERNE...
kernel32.lib 是导入库文件 在 masm32\\lib\\ 你要把了路径设置对 不要用 softice 用 ollydbg

问个很菜鸟的问题 刚接触汇编 JMP NEAR PTR OPD 中的PTR是什么意思?_百...
ptr是临时的类型转换,相当于C语言中的强制类型转换 cmp word ptr[si],'#'是用si所指向的内存的连续两个字节与#比较 要是改成 cmp byte ptr[si],'#'那就是用si指向的那个存储单元的内容(一个字节)与#比较了 jmp near ptr opd 是无条件转移指令,转移到段内的标号opd所标识的位置(临时...

菜鸟求助高手 汇编语言编程序 1+2+3+...+100=?
程序如下:code segment assume cs:code,ds:code start:mov ax,data mov ds,ax xor ax,ax ;给ax赋初值 mov cx,100 lop:add ax,cx; 最终的结果就在AX中 loop lop ;循环 mov ah,4ch int 21h code ends end start

菜鸟提问:GCCE编译环境下,汇编函数如何使用C全局变量
首先要在C程序中用extern申明该变量为全局变量,再在汇编程序中用extern "变量名"来导入,注意,汇编中如果直接使用"mov eax,变量名"表示的是将该变量的地址移入eax,若想取得该变量的值请使用[变量名]

三山区19844205019: 初学习单片机汇编语言,各位推荐点好书籍? -
磨魏拉克: 想学汇编的用《单片机基础》北京航空航天大学出版社的,绝对经典,俺就是用的这本.世面上的介绍单片机的书内容都一样.要学,一本足矣,要掌握关键还是实践.

三山区19844205019: 想学汇编语言的初学者 -
磨魏拉克: 其实学习汇编语言的要从单片机的内部结构开始入手,在把内部结构都弄的差不多的情况下,再开始学习指令.推荐你使用《单片机原理与应用》主编:倪云峰 西安电子科技大学出版社.只要把这本书得前四章熟练掌握你就已经人们了.希望可以帮到你.

三山区19844205019: 单片机汇编软件有那些 -
磨魏拉克: keil,wave等等,还有不少汇编的编译器. 建议你从keil开始,逐渐过渡到c.

三山区19844205019: 你说学习汇编要结合单片机 那单片机开发板哪里有卖.多少钱能买到
磨魏拉克: 淘宝...两百以内

三山区19844205019: 单片机(汇编语言)需要的软件? -
磨魏拉克: 51单片机是Keil 软件 pic单片机是MPLAB软件 汇编要将编辑文件要保存为.asm为后缀的文件(c语言则是.c为后缀) avr单片机是avr studio 或iccavr软件 汇编要将编辑文件要保存为.s为后缀的文件(c语言则是.c为后缀)51单片机可以很多下载软...

三山区19844205019: 谁能告诉我单片机的汇编用哪个软件写呀?51单片机应该看哪些书入门呀? -
磨魏拉克: 1. 书写的话,任何一款文本编辑器都可以.至于汇编/连接则可以使用Keil.2. 先把原版的8051硬件手册看懂,然后看看8051单片机指令集,之后再看各种应用实例.

三山区19844205019: 请问有哪位高手可以提供一个单片机汇编语言程序 -
磨魏拉克: 你说的是什么程序?1.在标准8051单片机P1.0口产生一个占空比50%的方波 2.方波频率为精确的50KHZ 3.8051单片机系统时钟12MHZ 方波频率为精确的50KHZ ,方波周期为20微妙, 占空比50%,半周期为10微妙 模式2就比较方便 MOV TMOD,#02H ;T0模式2(8位自动重装载) MOV TH0,#ECH ;10us溢出(晶振12MHZ的初始值) MOV TL0,#ECH SETB TR0 ;启动定时器T0 LOOP: JNB TF0,$ ;T0没有溢出等待 CLR TF0 ;产生溢出,清除标志 CPL P1.0 ;P1.0口取反输出 SJMP LOOP ;循环

三山区19844205019: 单片机的汇编用什么软件
磨魏拉克: 51一般都是用KILE,但具体要看你用的什么单片机了.

三山区19844205019: 普中科技51单片机开发仪光盘里有C程序没有汇编程序请问怎样找到汇编程序? -
磨魏拉克: 我觉得现在学校的教学真的很跟不上时期,在360问问里很多问汇编程序的,现在公司基本都是用C语言,用汇编的只有两种情况,1种是单片机资源非常少,可能就1⑵k的Flash.这类单片机都是做便宜电子产品的,还有种就是做最低层的驱动程序,这些都是某些芯片的厂商提供的,为了最求速度用汇编,那是非常高真个1级.1般的也就是用uboot回用到,但是基本是了解及可.主要还是学习C语言.不要总是甚么汇编

三山区19844205019: 单片机汇编程序 -
磨魏拉克: ORG 0000H 这是一个从0000开始执行; LJMP START 跳转语句 ORG 000BH INTTO的起始地址 LJMP INTTO 跳转语句 ORG 0060H 这是程序代码的起始地址

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