久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3422|回復: 2
收起左側

求助!求大神幫忙把一段匯編語言翻譯為C語言!

[復制鏈接]
ID:50123 發表于 2013-5-8 09:43 | 顯示全部樓層 |閱讀模式

這是段直流電機閉環調速的程序,求大神幫忙啊!跪謝!!!

ORG    0000H
SJMP  DISPLAY
ORG   0003H  
LJMP  BUTTON                ;  外部0中斷入口地址
ORG   000BH
LJMP  DINGSHI                ;  定時中斷T0入口地址
RS    EQU    P3.0
RW    EQU    P3.1
E     EQU    P3.4
ORG    0030H                 ;  此次直流電機的設計以LCD字符夜晶的
                              ;  顯示程序為主程序
DISPLAY: 
SETB   EA                   ;  打開中斷總開關
SETB   EX0                  ;  打開外部中斷0開關
SETB   IT0                   ;  打開外部中斷0下降沿觸發
MOV    TMOD,#01H          ;  設置定時工作方式
MOV    TL0,#0FFH           ;  設置定時初值
MOV    TH0,#0FFH
SETB  ET0                   ;  打開定時中斷T0開關  
CLR   P0.5        
CLR   P0.6
CLR   P0.7
SETB  TR0                   ;  定時器T0開始定時
MOV   DPTR,#TAB            ;  夜晶顯示的字符首地址
MOV   R0,#00H               ;  脈寬的初值
MOV   R1,#16                 ;  "SET SPEED PLEASE"的字符個數
MOV   R3,#00H
MOV   R4,#00H
LP9:
LCALL CHUSHI
LP2:
ACALL BUSY
MOV   A,#00H
MOVC  A,@A+DPTR
MOV   P1,A
ACALL DATAS
INC   DPTR 
DJNZ  R1,LP2 
LP3:
CJNE  R3,#00H,LP4
CJNE  R4,#00H,LP4
SJMP  LP3 
LP4:  MOV   R7,#00H         ;  中斷的標志
MOV   R5,#09H               ;  CURRENT : 的字符個數
ACALL BUSY
MOV   P1,#0C0H
ACALL ENABLE
MOV   DPTR,#MMTAB
ACALL BUSY
LP5:   
MOV   A,#00H
MOVC  A,@A+DPTR
MOV   P1,A
INC   DPTR
ACALL DATAS
ACALL BUSY
DJNZ  R5,LP5  
MOV   DPTR,#STAB
MOV   A,R2
MOV   P1,A
ACALL DATAS
ACALL BUSY
MOV   A,R3                  ;  顯示速度的十位
MOVC  A,@A+DPTR
MOV   P1,A
ACALL DATAS
ACALL BUSY
MOV   A,R4                   ;  顯示速度的個位
MOVC  A,@A+DPTR
MOV   P1,A
ACALL DATAS                 ;  使夜晶始終顯示當前電機的速度
LP8:                        
CJNE   R7,#00H,LP7           ;  速度不變時等待
LJMP  LP8                    ;  速度變時重新讀入速度
LP7:
SJMP  LP4
CHUSHI:                      ;  使夜晶顯示的一些初始設置
ACALL BUSY            
MOV   P1,#00000001B         ;  清屏并光標復位
ACALL ENABLE        
ACALL BUSY
MOV   P1,#00111000B         ;  設置顯示模式:8位2行5×7點陣
ACALL ENABLE
ACALL BUSY
MOV   P1,#00001111B         ;  顯示器開、光標開、光標允許閃爍
ACALL ENABLE
ACALL BUSY
MOV   P1,#00000110B         ;  文字不動,光標自動右移
ACALL ENABLE
ACALL BUSY
MOV   P1,#80H               ;  寫入顯示起始地址
ACALL ENABLE         
RET
ENABLE:                     ;  寫入控制命令的子程序
SETB  E
CLR   RS
CLR   RW
CLR   E
RET
DATAS:                      ;  寫入數據子程序
SETB  E
SETB  RS
CLR   RW
CLR   E
RET
BUSY:                       ;  準備寫入數據
CLR   E
MOV   P1,#0FFH
CLR   RS
SETB  RW
SETB  E
JB    P1.7,BUSY
RET
ORG 2000H
DINGSHI:                    ;  定時中斷服務程序
CPL P0.7    
JNB P0.7,Z1                  ;  周期一定
MOV A,#0FFH
SUBB A,R0      
MOV TH0,A
SETB TR0
RETI
Z1:  MOV TH0,R0             ;  脈寬
SETB TR0
RETI  
BUTTON:                     ;  從控制鍵盤中讀取操作命令
PUSH ACC          
CLR EX0
CLR EA
INC  R7   ;
MOV A,#0FFH
MOV P2,A
MOV A,P2
JNB ACC.0,AA0   
JNB ACC.1,KK0
JNB ACC.2,ZZ
JNB ACC.3,FF
JNB ACC.4,WW0
AJMP QQ
AA0:   CJNE R0,#0FFH, AA1     ;  加速操作
AJMP QQ 
AA1:   MOV A,R0
ADD A,#5
MOV R0,A
AJMP QQ
KK0:   CJNE R0,#00,MM        ;  減速操作
AJMP QQ 
MM:    MOV A,R0
SUBB A,#5
MOV R0,A
AJMP QQ
QQ:    MOV A,R0         
MOV B,#5         
DIV AB
MOV B,#10
DIV AB
MOV R3,A
MOV R4,B
SETB EX0
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB  EA
POP  ACC
RETI
ZZ:    SETB P0.5               ;  正轉操作
CLR  P0.6 
MOV  R2,#2BH                 ;  正轉標志 "+"
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EX0
SETB  EA
POP  ACC
RETI
FF:    CLR P0.5                 ;  反轉操作 
SETB P0.6
MOV  R2,#2DH                  ;  反轉標志 "-"
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EX0
SETB  EA
POP  ACC
RETI
WW0:    CLR P0.5               ;  停止操作
CLR P0.6
LCALL DELAY
LCALL DELAY
LCALL DELAY
SETB EX0
SETB  EA
POP  ACC
RETI
DELAY:                          ;  延時子程序
MOV R5,#0E0H
MM0:   MOV R6,#30H   
MM1:   DJNZ R6,MM1
DJNZ R5,MM0
RET
TAB:   DB  53H,45H,54H,20H   
DB  53H,50H,45H,45H              ;  "SET SPEED PLEASE" 代碼
DB  44H,20H,50H,4CH
DB  45H,41H,53H,45H
STAB:   DB  30H,31H,32H,33H
DB  34H,35H,36H,37H              ;  "0,1,2,3,4,5,6,7"  代碼
DB  38H,39H,41H,42H              ;  "8,9,A,B,C,D,E,F"
DB  43H,44H,45H,46H
MMTAB:   DB  43H,4FH,52H,52H
DB  45H,4EH,54H,20H              ;  " CURRENT : "  代碼
DB  3AH
END

回復

使用道具 舉報

ID:7485 發表于 2013-5-8 13:07 | 顯示全部樓層

為什么呢?

 

匯編程序的代碼效率、執行速度、時間的精確度都不是c語言能比的。

 

但是由于其編寫存在一定的難度,沒有c語言顯得簡易。

 

但是既然匯編程序已經編寫好了,不存在編寫的問題了,為什么要走回頭路呢??

 

如果想作為一個模塊插入其他工程中,也一點問題都沒有!!有人說匯編語言不易實現模塊化(甚至有些教程也如是說),那是瞎說!!

 

看看有些工程包含的.A51或.asm就知道了。

 

其實匯編模塊的調用和c語言模塊的調用沒多少不同。

[此貼子已經被作者于2013-5-8 13:10:48編輯過]
回復

使用道具 舉報

ID:50123 發表于 2013-5-8 13:28 | 顯示全部樓層

 這個程序要給別人看,C語言更直觀,別人容易讀懂。  大神,求幫忙啊!

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人久久综合影院 | 精品免费视频一区二区 | 亚洲国产成人精品女人久久久 | 欧美日韩在线一区二区三区 | 国产美女一区二区 | 中文字幕精品视频 | 羞羞视频在线观看 | 亚洲视频在线观看免费 | 久久人人网 | 精品久久久久久久久久久久久久久久久 | 久久久久久久久久久久久9999 | 久久成人人人人精品欧 | 乱码av午夜噜噜噜噜动漫 | 久久精品国产免费 | www.一级片 | 密室大逃脱第六季大神版在线观看 | 久久精品99久久 | 久久小视频 | 成人免费观看网站 | 亚洲精品一区二区三区在线 | 99久久精品免费看国产小宝寻花 | 久久精品97 | 综合天天久久 | 亚洲精品视频在线观看免费 | 搞av.com| 日韩超碰在线 | 欧美a v在线 | 一级全黄视频 | av高清 | 欧美一级欧美三级在线观看 | 国产目拍亚洲精品99久久精品 | 欧洲亚洲一区二区三区 | 最近中文字幕免费 | 久久国产精品一区 | cao在线| 亚洲午夜视频在线观看 | www国产亚洲精品 | 黄色精品 | 国产在线一区二 | 黄色毛片黄色毛片 | www.47久久青青 |