已结贴√

问题点数:20 回复次数:2

汇编语言到C语言的转换

有没有人能帮忙把下面的程序用C语言翻译啊?

源程序:

**************************************

TEMP   EQU    30H

TEMP1 EQU    40H

TEMP2 EQU    41H

COM   EQU    50H

COM1  EQU    51H

LED4  EQU    52H

LED3  EQU    53H

LED2  EQU    54H

LED1  EQU    55H

LED44 EQU    56H

LED33 EQU    57H

LED22 EQU    58H

LED11 EQU    59H

K1    BIT    P1.1

K2    BIT    P1.2

K3    BIT    P1.3

K4    BIT    P1.4

FM    BIT    P3.7

;**************************************

ORG   00 00H

CLR    00H

CLR    01H

CLR    02H

CLR    03H

CLR    04H

CLR    05H

CLR    06H

MOV    DPTR,#TAB

MOV    R7,#32

MOV    R0,#50H

QINGLING:MOV    @R0,#00H

INC    R0

DJNZ   R7,QINGLING

MAIN:JB     06H,MAIN1

LCALL  W1820

ACALL  DISP

ACALL  BIJIAO1

AJMP   MAIN2

MAIN1:JB     01H,UPSET

JNB    02H,EE1

MOV    63H,#10

MOV    62H,LED2

MOV    61H,LED3

MOV  60H,LED4         ;

EE1:JNB    03H,EE2

MOV    63H,LED1

MOV    62H,#10

MOV    61H,LED3

MOV    60H,LED4

EE2:JNB    04H,EE3

MOV    63H,LED1

MOV    62H,LED2

MOV    61H,#10

MOV    60H,LED4

EE3:JNB    05H,EE4

MOV    63H,LED1

MOV    62H,LED2

MOV    61H,LED3

MOV    60H,#10

EE4:MOV    R0,#63H

ACALL  DIS

ACALL  DELAY300

MOV    R0,#LED1

ACALL  DIS

ACALL  DELAY300

AJMP   MAIN2

;**************************************

UPSET:JNB 02H,FF1                                MOV    73H,#10

MOV    72H,LED22

MOV    71H,LED33

MOV    70H,LED44

FF1:JNB    03H,FF2

MOV    73H,LED11

MOV    72H,#10

MOV    71H,LED33

MOV    70H,LED44

FF2:JNB    04H,FF3

MOV    73H,LED11

MOV    72H,LED22

MOV    71H,#10

MOV    70H,LED44

FF3:JNB    05H,FF4

MOV    73H,LED11

MOV    72H,LED22

MOV    71H,LED33

MOV    70H,#10

FF4:MOV    R0,#73H

ACALL  DIS

ACALL  DELAY300

MOV    R0,#LED11

ACALL  DIS

ACALL  DELAY300

MAIN2:JB     K1,KEY1

ACALL  DELAY10

JB     K1,KEY1

SETB   FM

JNB    K1,$

CLR    FM

INC    COM

MOV    A,COM

CJNE   A,#1,AA1

SETB   00H

SETB   06H

AA1:CJNE   A,#2,AA2

SETB   01H

AA2:CJNE   A,#3,KEY1

MOV    COM,#00H

CLR    00H

CLR    01H

CLR    06H

AA3:AJMP   MAIN

KEY1:JNB    00H,AA3

JB     K2,KEY2

ACALL  DELAY10

JB     K2,KEY2

SETB   FM

JNB    K1,$

CLR    FM

INC    COM1

MOV    A,COM1

CJNE   A,#1,BB1

SETB   02H

CLR    05H

BB1:CJNE   A,#2,BB2

SETB   03H

CLR    02H

BB2:CJNE   A,#3,BB3

SETB   04H

CLR    03H

BB3:CJNE   A,#4,KEY2

MOV    COM1,#00H

SETB   05H

CLR    04H

KEY2:JB     K3,KEY3

ACALL  DELAY10

JB     K3,KEY3

SETB   FM

ACALL  DELAY10

;JNB    K1,$

CLR    FM

ACALL  DELAY10

JB     01H,ONPLUS

JNB    02H,CC1

INC    LED1

MOV    A,LED1

CJNE   A,#10,CC4

MOV    LED1,#00H

CC1:JNB    03H,CC2

INC    LED2

MOV    A,LED2

CJNE   A,#10,CC4

MOV    LED2,#00H

CC2:JNB    04H,CC3

INC    LED3

MOV    A,LED3

CJNE   A,#10,CC4

MOV    LED3,#00H

CC3:JNB    05H,CC4

INC    LED4

MOV    A,LED4

CJNE   A,#10,CC4

MOV    LED4,#00H

CC4:AJMP   KEY3

ONPLUS:JNB    02H,DD1

INC    LED11

MOV    A,LED11

CJNE   A,#10,KEY3

MOV    LED11,#00H

DD1:JNB    03H,DD2

INC    LED22

MOV    A,LED22

CJNE   A,#10,KEY3

MOV    LED22,#00H

DD2:JNB    04H,DD3

INC    LED33

MOV    A,LED33

CJNE   A,#10,KEY3

MOV    LED33,#00H

DD3:JNB    05H,KEY3

INC    LED44

MOV    A,LED44

CJNE   A,#10,KEY3

MOV    LED44,#00H

KEY3:JB     K4,KEY4

ACALL  DELAY10

JB     K4,KEY4

SETB   FM

ACALL  DELAY10

;JNB    K1,$

CLR   FM

ACALL  DELAY10

JB     01H,ONDEC

JNB    02H,GG1

DEC    LED1

MOV    A,LED1

CJNE A,#0FFH,KEY4

MOV    LED1,#9

GG1:JNB    03H,CC2

DEC    LED2

MOV    A,LED2

CJNE A,#0FFH,KEY4

MOV    LED1,#9

GG2:JNB    04H,CC3

DEC    LED3

MOV    A,LED1

CJNE   A,#0FFH,KEY4

MOV    LED1,#9

GG3:JNB    05H,CC4

DEC    LED4

MOV    A,LED1

CJNE   A,#0FFH,KEY4

MOV    LED1,#9

KEY4:AJMP   MAIN

ONDEC:JNB    02H,HH1

DEC    LED11

MOV    A,LED11

CJNE   A,#0FFH,HH4

MOV    LED1,#9

HH1:JNB    03H,HH2

DEC    LED22

MOV    A,LED22

CJNE   A,#0FFH,HH4

MOV    LED1,#9

HH2:JNB    04H,HH3

DEC    LED33

MOV    A,LED33

CJNE   A,#0FFH,HH4

MOV    LED1,#9

HH3:JNB    05H,HH4

DEC    LED44

MOV    A,LED44

CJNE   A,#0FFH,HH4

MOV    LED1,#9

HH4:AJMP   MAIN

;***************************************

BIJIAO1:MOV    A,42H

CJNE   A,LED1,BIJIAO2

MOV    A,41H

CJNE   A,LED2,BIJIAO2

MOV    A,40H

CJNE   A,LED3,BIJIAO2

MOV    A,39H

CJNE   A,LED4,BIJIAO2

CLR    FM

AJMP   BACK

BIJIAO2:MOV    A,42H

CJNE   A, LED11,BACK

MOV    A,41H

CJNE   A,LED22,BACK

MOV    A,40H

CJNE   A,LED33,BACK

MOV    A,39H

CJNE   A,LED44,BACK

CLR    FM

BACK:RET

;**************************************

W1820:LCALL  RESET    ;ds18b20复位

MOV  A,#0CCH      ;发SKIP ROM命令

LCALL  WRITE

MOV    A,#44H

LCALL WRITE

LCALL DLY1S    ;延时

LCALL RESET

MOV A,#0CCH

LCALL WRITE

MOV A,#0BEH

LCALL WRITE

LCALL READ       ;读出温度值1

MOV TEMP2,TEMP      ;温度低8位存放41H

LCALL READ         ;读出温度值2

MOV TEMP1,TEMP      ;温度高8位存放在40H

;**************************开始数值转换

MOV A,41H

RR  A

RR  A

RR  A        ;把D3位右移到D0

ANL A,#01H    ;除D0位,其他全部置零

MOV B,#5

MUL AB        ;由于原D3位权值为0.5,故扩大10倍乘5后放十分位

MOV 42H,A         ;十分位转换结束,送42H保存

NOP               ;设置断点,方便修改和查阅

MOV     A, 40H

ANL     A, #0FH    ;把40H中高四位置零

RL      A

RL      A

RL      A

RL      A          ;40H左移4位

MOV     40H, A       ;40H中低四位移到高四位,低四位为零

;***************************************

MOV     A, 41H

ANL     A, #0F0H      ;把41H中小数点后的值全部置零

RR      A

RR      A

RR      A

RR      A           ;41H右移4位

MOV     41H, A      ; 把41H中高四位移到低四位,高四位置零

MOV     A, 40H

ORL     A, 41H        ;组成新的带符号无小数点的八位数字温度,最高位为符号位

MOV     43H,A    ;暂存温度值,原41H的高4位做43H的低4位,原40H的低4位做43H的高4位

;***************************************

ANL A,#80 ; 除最高位有效,其他置零

RR A

RR A

RR A

RR A

MOV 44H,A      ;判断温度值的符号位,把结果放44H,44H中要只有0和8。

NOP

MOV A,43H          ;恢复带符号八位无小数点温度

ANL A,#7FH          ;屏蔽符号位

MOV     B, #0AH

DIV     AB          ;无符号温度值除以10

MOV     40H, A      ;商送40H暂存

MOV     A, B      ;余数通过A送41H保存

MOV     41H, A     ;存个位十进制温度值

MOV     A,40H

MOV     B,#0AH

DIV     AB    ;商作为被除数再除以10

MOV     39H,A     ;商存入39H,存百位十进制温度值

MOV  A,B ;余数通过A送40H保存

MOV     40H,A       ;存十位十进制温度值

RET

;************************;初始化,复位操作

RESET:

L0: CLR     P1.0

MOV     R2, #120

L1: NOP

DJNZ R2,L1

SETB    P1.0   ;主机发置位脉冲持续600us

MOV R2,#15

L4: DJNZ R2,L4 ;等待60us

CLR C

ORL C, P1.0    ;数据线应变低

JC L0 ;没准备好,重来

MOV R6,#24

L5: ORL C, P1.0

JC L3 ;数据线变高初始化成功

DJNZ R6,L5 ;数据线低电平可持续240us

SJMP L0 ;初始化失败,重来

L3: MOV R2, #125

L2: DJNZ R2,L2 ;应答过程最少480us

RET

;***********************把从P1.0口数据读入寄存器

READ: MOV R6,#8

RE1: CLR     P1.0

MOV     R4, #4

LCALL  DELAY4US     ;低电平持续4us

SETB    P1.0        ;P1.0开始输入

RE2: DJNZ R4,RE2 ;等待12us

MOV     C, P1.0

RRC     A           ;按位读入

MOV     R5, #15

RE3: DJNZ R5, RE3 ;保证读过程持续60us

DJNZ R6, RE1

MOV   TEMP, A

SETB P1.0

RET

把寄存器数据通过P1.0口送给DS18B20

WRITE: MOV R3, #8

WR1: SETB    P1.0

MOV     R4, #5

RRC     A

CLR     P1.0

WR2: DJNZ R4,WR2 ;数据线变低16us

MOV     P1.0, C   ;命令字按位送

MOV     R4, #15

WR3: DJNZ R4,WR3 ;保证整个写过程持续60us

DJNZ R3,WR1

SETB P1.0

RET

DISP:MOV  DPTR,#TAB

MOV  R0,#42H

DIS:MOV  R7,#4

DISP1:MOV  A,@R0

MOVC A,@A+DPTR

MOV  SBUF,A

JNB  TI,$

CLR  TI

DEC  R0

DJNZ R7,DISP1

RET

;***************************************

DELAY:MOV  R6,#255           ;延时

DEL2:MOV  R5,#255

DEL3:NOP

NOP

DJNZ R5,DEL3

DJNZ R6, DEL2

RET

;*************10MS*********************

DELAY10: MOV    R7,    #10H

DS1: MOV    R6,    #0FFH

DS2: DJNZ   R6,   DS2

DJNZ   R7,   DS1

RET

;*************300MS********************

DELAY300: MOV   R7, #2

DSS1: MOV    R6,   0C8H

DSS2: MOV    R5,    #0E5H

DSS3: DJNZ   R5,    DSS3

DJNZ   R6,    DSS2

DJNZ   R7,     DSS1

RET

;*************100MS*******************

DELAY100: MOV   R7,   #0C8H

SS1: MOV   R6,   #0E5H

SS2: DJNZ   R6,   SS2

DJNZ   R7,    SS1

RET

DLY1S: MOV R7,#255

MOV R6,#0

DLYB: NOP

DJNZ R7,DLYB

DJNZ R6,DLYB

RET

TAB:DB 11H,7DH,32H,92H,0D4H,98H,18H,0D3H,10H,90H,0FFH

END

搜索更多相关主题的帖子:

C语言 源程序

汇编转换c语言,汇编语言到C语言的转换相关推荐

  1. 与汇编语言相比c语言,汇编语言与C语言有什么区别

    1.操作复杂程度的不同 c语言,与汇编语言相比,c语言在更加接近人的一般思维,因此在程序的设计过程中比较容易操作,此外在进行一些复杂的操作,运算时,c语言比汇编就要简单很多,尤其是c语言中的丰富的函数 ...

  2. python是什么语言汇编语言吗-python语言属于汇编语言吗?_后端开发

    c语言主函数名是什么?_后端开发 C语言主函数名是main,main函数又称主函数,是程序执行的起点,如果有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序. pyth ...

  3. 汇编语言属于C语言吧,汇编语言和c语言的区别是什么

    区别:汇编语言的效率高,对硬件的可操控性更强,体积小,不易维护,可移植性很差:c语言的效率比较低,硬件可操控性比较差,目标代码体积大,容易维护,可移植性很好. 汇编语言(Assembly Langua ...

  4. 单片机程序c语言 汇编语言,C语言能够实现单片机功能,为什么还要使用汇编呢?...

    如今C语言确实很强大,在嵌入式编程当中应用广泛,但是为什么还要学习汇编语言,难学又不易理解? 首先汇编语言和C语言都是编程语言,汇编是一种机器语言直接面对底层,与单片机底层硬件构架息息相关,相对于C语 ...

  5. c语言比汇编语言优点,C语言对比汇编的好处.doc

    C语言对比汇编的好处 C语言对比汇编的好处 简单来说,C语言对汇编语言进行了抽象,具有如下优点: 更符合人类思维习惯,开发效率高.时间短. 模块化. 可移植性好. 提供数学函数并支持浮点运算. 程序可 ...

  6. 采用汇编语言对c语言函数调用的方法求平均数 汇编实验报告,汇编语言调用c语言完成求平均值.docx...

    汇编语言调用c语言完成求平均值.docx <汇编语言程序设计>实验报告系别专业年级学号姓名2012年6月实验七汇编语言对C语言函数调用求平均值一.实验目的本实验主要达到以下目的:1.完成汇 ...

  7. C语言作业不足之处,C语言和汇编语言的优缺点分析-控制器/处理器-与非网

    本文主要是关于汇编和 C 语言的相关介绍,并着重对汇编和 C 语言的不同及其编程技巧进行了详尽的阐述. 汇编和 C 语言 C 语言和汇编语言的区别在于他们之间优缺点几乎是相反的. C 语言和汇编语言的 ...

  8. 机器码,汇编语言,C语言,C++发展的认识

    计算机是实现计算目的机器.计算?有数值计算(比如1+1等于2),图形计算(比如现在的人脸识别,图像处理),娱乐计算(各种游戏伤害数值的计算,各种精美画面在屏幕上的展示),行星运行轨迹的计算.(个人感觉 ...

  9. keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...

    Keil软件"C语言"与"汇编"混编 相关知识整理 用Keil在C中嵌入汇编1 在Keil中嵌入汇编2 介绍直接嵌入汇编代码的方法4 采用汇编可能会有的好处5 ...

最新文章

  1. ActiveMQ—安装配置及使用
  2. JVM启动的时候,默认加入的属性
  3. Cracer渗透视频课程学习笔记——信息搜集
  4. 用grep和cut做一些数据统计
  5. 第二次讲课内容(函数和快速幂)
  6. leetcode机器人运动范围Java_【LeetCode】面试题13. 机器人的运动范围
  7. IT项目管理-敏捷和传统
  8. magento 输出关联产品
  9. 3月28日晚中央电视台出现重大故障?!
  10. BZOJ-3207 花神的嘲讽计划Ⅰ
  11. php的一些编码问题
  12. Echert 缩放后切换再数据,缩放大小没还原的解决办法
  13. 手写Promise 封装Promise resolve reject then catch Promise.resolve Promise.reject
  14. learning bamboo flute
  15. 如果在魔兽世界中,做一个合格野性德
  16. 微信小程序自定义picker
  17. 2023最新大数据毕设题目推荐100例
  18. 树莓派提升计划 Android应用用MiniChatAppApp之AppServer构建
  19. 顺时针打印矩阵(旋转矩阵)
  20. html特效代码 枫叶,jQuery飘落的枫叶

热门文章

  1. 进计算机中级职称,怎么考试?考哪些内容?
  2. Quant工具箱:量化开发之事件驱动回测框架与实盘交易系统
  3. Android开发之国家列表分组排序显示
  4. SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)
  5. pygame-最易上手的2d游戏引擎
  6. c语言自己看入门(入门记)-第一节
  7. 解决 “_pickle.PicklingError: Can‘t pickle: it‘s not the same object as sqlalchemy.orm.session.Session“
  8. PHP实现在手机上选择完图片直接上传图片
  9. 2022山东健博会,中国大健康产业展,智慧健康展,健康科技展
  10. BSQ格式数据转换为RSD缺省的BIP格式数据