跪求!汇编语言! 转成汇编语言!动态显示数码管!

作者&投稿:锐彬 (若有异议请与网页底部的电邮联系)
四位数码管动态显示 汇编语言~

必须知道这个数码管是共阴极或是共阳极的才程编出正确的程序来

使用中断就行了啊,C语言也是这样的,编译器会把C语言转换成汇编语言。然后再转换成HEX文件。下面是在你的程序上修改的,没试过,你编译一下看看有没错误
ORG 00H
LJMP MAIN
ORG 001BH ;定时器1入口地址
LJMP TIMER1_ISR
ORG 0100H

MAIN:
MOVTMOD,#10H
MOVTL1,#0F0H
MOVTH1,#0D8H ;赋初值,定时10毫秒
SETBTR1
MOVIE,#88H
MOVR2,#20 ;R2的值可以随时修改
MOVR3,#100;100 * 10MS = 1S

DISP:
MOVA,R2 ;南北方向显示初值R2=20秒
MOVB,#10
DIVAB
MOVP0,A ;段选
MOVP2,#01 ;位选
ACALLD1ms ;延时
MOV P2,#00 ;清零
MOV P0,B
MOV P2,#02
ACALL D1ms
MOV P2,#00 ;清零
LJMPDISP ;这个地方就一直循环,怎样实现定时器的作用??
;*********** 定 时 1 秒 中 断 ***********
TIMER1_ISR:
MOVTL1,#0F0H
MOVTH1,#0D8H ;赋初值,定时10毫秒
PUSHACC
PUSHPSW
DJNZR3,TIMER1_END
MOVR3,#100
MOVA,R2
DECR2
JNZTIMER1_END
MOVR2,#20
TIMER1_END:
POPPSW
POPACC
RETI
;************ 延 时 D1ms 程序***********
D1ms:
MOV R7,#02H
DL:
MOV R6,#0FFH
DL1:
DJNZ R6,DL1
DJNZ R7,DL
RET
;***************************************
END

我大致看了一下你的电路和c程序,我可以给你提供个思路,程序还是要你自己编,主要是我估计你的还要进行仿真吧,要出效果的话就比较麻烦了,而且我也确实没精力写,我的思路是你要点亮第一个数码的话你就往74hc138里送000,即p1口的第三位为0,这样为选就是第一个数码管,然后把你要显示的数据经过二进制转换十进制的子程序转换,再转换成八字码后送到段选端就好了,我这里有二进制到十进制转换程序和调用八字码显示程序,你要是用的话我可以发给你参考一下

:

    ORG  0000H

    LJMP START

START:

    MOV  B,  #0

    MOV  DPTR, #D_table

M_LOOP:

    MOV  P0,  #0

    MOV  P2,  B

    MOV  A,   B

    MOVC A,  @A+DPTR

    MOV  P0,  A

    INC  B

    ANL  B,   #7

    CALL Delay

    SJMP M_LOOP

Delay:

    MOV  R7,  #0

    DJNZ R7,  $

    DJNZ R7,  $

    RET

D_table:

    DB  0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f 

END 

用PROTEUS软件仿真运行效果如下图所示。




江城区15736445217: 怎样把汇编语言转化为C语言 -
大季卞乳糖: 只能你用C语言重新实现一次汇编程序已经实现的功能.汇编是低级语言,c语言是中级语言. 语言越低级越靠近机器思维,比如01010101二进制是最低级的编码方式. 反之越高级就越靠近人的思维. 编译器或虚拟机(相对于脚本语言),负责把人的语言(高级语言)变成机器能理解的超低级语言010011,, 目前并没有工具能把机器的语言变成人类能理解的高级语言. 所以你只能重新写.

江城区15736445217: 在吗?可以把汇编语言转换成C语言吗?要如何做? -
大季卞乳糖: 一般是不会这么转的,只有c语言转换成汇编语言,也就是高级语言转成低级语言,如果需要转的话只能同时精通两种语言,然后自己根据汇编语言所实现的功能,写成c语言了.

江城区15736445217: 将下面程序段的汇编语言翻译成C语言 -
大季卞乳糖: 程序段1: if ( a == 1 ) {b = -1; return 0;} if ( a == 2 ) {b = 0; return 0;} if ( a == 3 ) {b = 1; return 0;} b = 255; 程序段2: short a,b; b = 1; if ( b{a = b; a = a 记得给点分.我穷的要死...

江城区15736445217: C语言写的程序 怎么反汇编成汇编语言 -
大季卞乳糖: 静态反汇编的话最好的工具是IDA Pro 反汇编动态调试的话,目前比较强的是OllyDBG 不过OllyDBG只适用于32位并且工作在ring3层的PE程序 据OD官网说64位版的OllyDBG正在开发中,但不知何年何月了…… ring0层的驱动程序需要调试的话 可以用WinDBG双机互联进行调试 也可以用SoftICE进行本地内核调试 不过SoftICE不更新了,最新版是集成在DriverStudio中的,XP以上的系统未必能正常运行 而且只支持单核CPU……双核想用的话必须手动停掉一个内核……

江城区15736445217: 汇编语言转化为机器语言的整个过程.模拟视频或文字都行
大季卞乳糖: 汇编语言是机器语言的符号化表示,一般情况下,每条汇编语言指令都有一条对应的机器指令,比如X86的汇编指令MOV a,eax对应的机器指令可以在Intel公司的手册查询得到,实际使用中是由汇编器自动汇编成机器指令,所以就不需要记住机器指令的01代码了.

江城区15736445217: 求将下面的C语言转化成汇编语言.谢谢 -
大季卞乳糖: 兄弟,你写的C语言都这么长,汇编语言就更长了,我估计没有人会帮你写的,并且你没有说清楚是那种汇编,汇编语言很多,如Intel8086/8088、ARM汇编、MIPS汇编等等,并且各种汇编语言语法与指令都不完全相同.有一种最简单的方法,就是先把你的C语言编译,生成.EXE文件,再用反汇编软件将其反编译即可,这种方法很简单,但是其编译效果较差,编译出来的代码较长.放心,反汇编出来的代码是正确的,只不过它比手工写的代码要长一些.

江城区15736445217: 怎么把汇编代码自动转换成C语言内联汇编 -
大季卞乳糖: 如下即可:ORG0000HLJMPSTARTORG0003HLJMPX0_INTORG0013HLJMPX1_INTORG0030HSTART:SETBIT0SETBIT1SETBEX0SETBEX1SETBEA;----------------------MOVA,#0FEHLOOP:MOVP1,ACALLDELAYRLASJMPLOOP;-----------------...

江城区15736445217: 求助,将汇编语言转换成C语言! -
大季卞乳糖: 第一段 unsigned char XDATA *pData = (unsigned char *)0xFD00;*pData = 0xd0; pData++;*pData = 0x81; pData++;*pData = 0x28; pData++; pData++;*pData = 0x28; 第二部分 unsigned char CODE FreqL[] ={1,2,3,4,5}; unsigned char CODE ...

江城区15736445217: 怎样将C语言编译成汇编 -
大季卞乳糖: 1. 编译完了,反汇编.2. 你自己学汇编语言,把实现改成汇编,算法可能要调整. 3. 有一个在线编译器,可以直接编译成汇编: 很好用.

江城区15736445217: 怎么将汇编语言转化成机器语言 -
大季卞乳糖: 通过相应的编译器就 可以将你编制的程序转换为电脑可以识别和运行的机器语言了.

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