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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4210|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

豆?jié){機(jī)Proteus單片機(jī)匯編源碼轉(zhuǎn)化成C代碼 求翻譯

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
求大神幫我把這份匯編語(yǔ)言的代碼轉(zhuǎn)化成C語(yǔ)言的代碼,可以在KEIL里面用的。
這代碼是我找的豆?jié){機(jī)Proteus仿真源碼,但是我匯編語(yǔ)言不會(huì),求翻譯。。。。。

ORG   0000H           
LJMP   MAIN            
ORG  0003H           
LJMP   INT0_RD     ;INT0口中斷(液位溢出和液位過(guò)低中斷)入口   
ORG  0013H           
LJMP   INT1_RD     ;INT1口中斷(超液位中斷)   
ORG  0030H        ;置初始狀態(tài)      
MAIN: MOV  SP,#70H            
SETB  IT0           ;INT0口中斷觸發(fā)方式為跳變觸發(fā)`           
SETB  IT1          ;INT1口中斷觸發(fā)方式為跳變觸發(fā)           
SETB  EA           ;開(kāi)放中斷            
MOV  IE,#85H       ;開(kāi)中斷            
MOV  IP,#01H       ;INT0中斷源為高優(yōu)先級(jí),INT1中斷源為低優(yōu)先級(jí)  
CLR  P3.0           ;設(shè)初值              
CLR  P3.1            
MOV  30H,#00H       ;設(shè)置時(shí)間單元清零            
MOV  31H,#00H       ;顯示模式單元清零            
MOV  34H,#00H       ;顯示定時(shí)時(shí)間單元清零           
MOV  32H,#00H       ;計(jì)時(shí)顯示十位清零         
MOV  33H,#00H       ;計(jì)時(shí)顯示個(gè)位清零
SCAN_RD:LCALL  XS_RD        ;開(kāi)始無(wú)鍵按下,顯示00           
LCALL  SCAN_KEYB    ;模式選擇               
JZ   SCAN_RD      ;有鍵按下 向下               
LCALL  KEY_PRSD            
MOV  DPTR,#JMP_RD  ;設(shè)置轉(zhuǎn)移表首地址            
MOV  A,R5            ;取鍵值              
RL  A               ;鍵值乘以2              
INC  R5              
JMP  @A+DPTR   
JMP_RD:AJMP  PRO_00       ;模式0            
AJMP  PRO_01       ;模式1           
AJMP  PRO_02       ;模式2      
PRO_00:MOV  30H,#06       ;定時(shí)時(shí)間為6s            
AJMP  LOOP_W     PRO_01:MOV  30H,#09       ;定時(shí)時(shí)間為9s        
AJMP  LOOP_W     PRO_02:MOV  30H,#12       ;定時(shí)時(shí)間為12s      
AJMP  LOOP_W              ;模式選擇后閃爍3次     
LOOP_W:MOV  34H,30H         ;調(diào)入定時(shí)時(shí)間顯示數(shù)據(jù)            
MOV  R7,#3            ;閃爍3次   
LOOP_RD:MOV  R6,#30           ;延時(shí)20MS的次數(shù)
LOOP0_RD:LCALL  XS_RD         ;調(diào)顯示程序           
LCALL  DL20MS            
DJNZ  R6,LOOP0_RD   ;1S              
MOV  R6,#25          ;延時(shí)20MS的次數(shù)
LOOP1_RD:LCALL  XS0_RD           
LCALL  DL20MS            
DJNZ  R6, LOOP1_RD   ;0.5S            
DJNZ  R7,LOOP_RD    ;閃爍3次
;開(kāi)始工作            
MOV   R6,#02           ;粉碎次數(shù)         
LCALL  JR_RD
G00N_GZ:LCALL  
FS_RD         
LCALL  JR_RD            
DJNZ   R6, G00N_GZ         
LCALL  BAOJ_WRD    ;加熱子程序   
JR_RD: MOV  34H,30H          ;給顯示單元置數(shù)            
SETB  P3.0             ;加熱            
MOV  R4,#50           ;20MS程序循環(huán)50次
GOON_JR:LCALL  TIME_19MS     ;調(diào)用定時(shí)20MS子程序         
LCALL  XS_RD          ;顯示            
DJNZ   R4,GOON_JR      ;到1S了            
MOV   R4,#50          ;20MS程序循環(huán)50次           
DJNZ   34H,GOON_JR    ;倒計(jì)時(shí)完成            
CLR   P3.0             ;停止加熱            
RET            ;粉碎子程序      
FS_RD: MOV  34H,30H          ;重新給顯示單元置數(shù)            
SETB  P3.1             ;粉碎            
MOV  R4,#50           ;20MS程序循環(huán)50次
GOON_FS:LCALL  TIME_19MS     ;調(diào)用定時(shí)20MS子程序           
LCALL  XS_RD         ;顯示            
DJNZ  R4,GOON_FS    ;到1S            
MOV  R4,#50         ;20MS程序循環(huán)50次           
DJNZ  34H,GOON_FS   ;粉碎完畢            
CLR  P3.1            ;停止粉碎            
RET            ;鍵盤(pán)子程序  
SCAN_KEYB:MOV  P2,#0EFH      ;掃描有無(wú)按鍵按下            
MOV  A, P2            
ANL   A, #0EFH            
XRL   A, #0EFH               
JZ   NO_KEY         
ACALL   DL20MS            
ANL  A, #0EFH            
XRL  A, #0EFH               
JZ  NO_KEY      
NO_KEY:RET  
KEY_PRSD: MOV  R4, P2            
MOV  R5, #00H            
MOV  DPTR,#KEY_TAB   
CAL_VAL: MOV  A,R5
MOVC  A,@A+DPTR    ;查鍵值表            
XRL  A,R4               
JZ  FIXED               
INC  R5            ;鍵值加1            
SJMP  CAL_VAL      
FIXED: MOV  A,P2          ;判斷按鍵是否釋放            
ANL  A, #0EFH            
XRL  A, #0EFH            
JNZ   FIXED         
ACALL  DL20MS            
MOV  A, P2              
ANL  A, #0EFH            
XRL  A, #0EFH            
JNZ  FIXED            
RET  
KEY_TAB: DB 0EBH, 0EDH, 0EEH
DL20MS: MOV  R3, #20      
DD1: MOV  R4, #200      
DD2: NOP            
     NOP      
     NOP      
DJNZ  R4, DD2      
DJNZ  R3, DD1        
RET             ;顯示子程序   
XS_RD: MOV  31H,R5           ;調(diào)入模式顯示數(shù)據(jù)         
MOV  R0,#31H           ;顯示緩存區(qū)數(shù)據(jù)           
MOV  P1,#00000010B     ;第三個(gè)燈為顯示位置        
ACALL  DISP_RD          ;顯示一位  
XS0_RD: MOV  A,34H            ;將定時(shí)數(shù)據(jù)分為兩位         
MOV  B, #10           
DIV  AB            
MOV  32H,A            ;十位         
MOV   33H,B            ;個(gè)位           
CJNE  A,#00H,XS1_RD0  ;十位是否為0         
AJMP  XS1_RD
XS1_RD0:MOV  R0,#32H           
MOV  P1,#00000100B     ;第五個(gè)為顯示位置        
ACALL  DISP_RD          ;顯示一位   
XS1_RD: MOV  R0,#33H           ;顯示緩存區(qū)數(shù)據(jù)         
MOV  P1,#00000101B     ;第六個(gè)燈為顯示位置        
ACALL  DISP_RD          ;顯示一位           
RET   
DISP_RD:MOV  DPTR,#LED_RD   ;字型碼表首地址
MOV  A,@R0           ;取顯示數(shù)據(jù)            
MOVC  A,@A+DPTR     ;求顯示數(shù)據(jù)的字型碼         
MOV  P0,A            ;輸出字型碼        
ACALL  DL1MS          ;穩(wěn)定顯示1ms            
RET                  ;返回           
;延時(shí)小程序   
DL1MS: MOV  R3, #200   
DDD1: NOP      
      NOP   
      NOP           
DJNZ  R3, DDD1      
RET              
;字型碼表  
LED_RD: DB 3FH, 06H, 5BH, 4FH, 66H; '0, 1,2, 3,4’         
DB 6DH, 7DH, 07H, 7FH, 6FH; '5, 6, 7, 8,9’            ;定時(shí)19MS子程序  
TIME_19MS:MOV  TMOD,#01H      ;設(shè)置工作方式1和定時(shí)模式            
MOV  TH0,#0B5H       ;計(jì)數(shù)初值為46536(O)           
MOV  TL0, #0C8H            
SETB  TR0              ;啟動(dòng)定時(shí)器  
CONT_RD: JBC  TF0,OVER_RD    ;是否溢出            
SJMP  CONT_RD   OVER_RD: MOV  TH0,#0B5H      ;重新設(shè)計(jì)數(shù)初值為46536(O)  
MOV  TL0, #0C8H            
RET                                     ;溢出中斷和液位過(guò)低中斷         
ORG  0200H   
INT0_RD:LCALL  BAOJ_WRD      ;直接報(bào)警并關(guān)發(fā)熱器和電動(dòng)機(jī)電源            
RETI                                     ;超液位中斷            
ORG  0300H     
INT1_RD:CLR  EA               ;關(guān)中斷           
PUSH  ACC             ;保護(hù)現(xiàn)場(chǎng)           
PUSH  PSW            
SETB  EA              ;開(kāi)中斷            
SETB  RS0             ;把工作寄存器切換到1區(qū)            
MOV  P1,#00000111B    ;報(bào)警燈亮            
JNB  P3.0,INT0_FS     ;判斷是否在加熱            
CLR  P3.0             ;停止加熱
WAIT_RD: JNB   P3.3,WAIT_RD     ;液位是否下降           
SETB  P3.0             ;繼續(xù)極熱           
LJMP  OK     
INT0_FS:CLR  P3.1            ;停止粉碎  
WAIT0_RD:JNB  P3.3,WAIT0_RD  ;液位是否下降
SETB  P3.1            ;繼續(xù)粉碎        
OK:CLR  EA               ;關(guān)中斷            
POP  PSW             ;恢復(fù)現(xiàn)場(chǎng)            
POP  ACC            
SETB  EA              ;開(kāi)中斷           
RETI             ;報(bào)警子程序  
BAOJ_WRD:CLR  P3.0             ;關(guān)電源            
CLR  P3.1            
MOV  P1,#00000110B    ;蜂鳴器響         
LCALL  DL1MS            
MOV   P1,#00000111B   ;報(bào)警燈亮         
LCALL  DL1MS            
AJMP  BAOJ_WRD

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:209932 發(fā)表于 2017-6-10 20:50 | 只看該作者
有點(diǎn)復(fù)雜,有點(diǎn)困難
回復(fù)

使用道具 舉報(bào)

板凳
ID:34643 發(fā)表于 2017-6-11 06:39 | 只看該作者
轉(zhuǎn)換,不如重新寫(xiě)出個(gè)。
回復(fù)

使用道具 舉報(bào)

地板
ID:208751 發(fā)表于 2017-6-11 14:16 | 只看該作者
51mcu 發(fā)表于 2017-6-11 06:39
轉(zhuǎn)換,不如重新寫(xiě)出個(gè)。

我不會(huì)寫(xiě),看電路圖寫(xiě)代碼不會(huì)呀,我是小白,什么都不懂得那種
回復(fù)

使用道具 舉報(bào)

5#
ID:208751 發(fā)表于 2017-6-11 14:19 | 只看該作者
TopXia 發(fā)表于 2017-6-10 20:50
有點(diǎn)復(fù)雜,有點(diǎn)困難

那怎么辦??我急需這個(gè)哎,找了半天豆?jié){機(jī)的源碼只有這個(gè)匯編的沒(méi)有找到C,都快哭了~~o(>_<)o ~~
回復(fù)

使用道具 舉報(bào)

6#
ID:82765 發(fā)表于 2017-6-11 23:53 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

7#
ID:208751 發(fā)表于 2017-6-12 08:14 | 只看該作者
cjjcjj1 發(fā)表于 2017-6-11 23:53
你好!這個(gè)改寫(xiě)有點(diǎn)麻煩,而且你設(shè)計(jì)的功能要求也沒(méi)提,c語(yǔ)言程序什么時(shí)間要

功能:
1.當(dāng)接通電源且沒(méi)有按鍵選擇模式時(shí),電源指示燈亮。顯示器顯示“0  0”,表示處于等待狀態(tài)
2.在等待狀態(tài)下按下鍵1、鍵2或鍵3時(shí),就會(huì)選擇工作模式1、模式2或模式3。后面的12表示加熱時(shí)間,閃3次豆?jié){機(jī)開(kāi)始工作
3.當(dāng)顯示器上模式“3”閃三次后,豆?jié){機(jī)開(kāi)始第一次加熱,加熱指示燈(紅燈)亮,計(jì)時(shí)顯示器開(kāi)始倒計(jì)數(shù)
4.當(dāng)?shù)谝淮渭訜嵊?jì)時(shí)到0時(shí),加熱結(jié)束,開(kāi)始第一次粉碎。計(jì)時(shí)顯示器重新開(kāi)始倒計(jì)時(shí),粉碎指示燈(黃燈)亮。之后又進(jìn)行第二次加熱,第二次粉碎。
5.當(dāng)兩次粉碎,三次加熱結(jié)束后,豆?jié){機(jī)工作完畢。此時(shí)豆?jié){機(jī)主動(dòng)關(guān)電源,同時(shí)報(bào)警燈亮,蜂鳴器響

注:當(dāng)在工作中液位超過(guò)安全位置時(shí),豆?jié){機(jī)暫停工作,報(bào)警燈亮。待液位回落后,繼續(xù)接著執(zhí)行之前的操作。
我急用,最遲明天就要用的。求大神幫個(gè)忙。
回復(fù)

使用道具 舉報(bào)

8#
ID:781022 發(fā)表于 2020-6-17 13:20 | 只看該作者
你好,可以發(fā)一下電路圖和代碼的文件嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色婷婷综合久久久中文字幕 | 亚洲精品一区二区三区中文字幕 | av在线播放国产 | 久久成人一区二区三区 | 精品视频一区二区三区 | 久久久影院 | 国产成人精品久久二区二区 | 国产1区 | 欧美中文字幕一区二区 | 午夜激情在线 | 国户精品久久久久久久久久久不卡 | 成人午夜免费视频 | 中文字幕乱码亚洲精品一区 | 久久综合久久久 | 美女视频黄的 | 性欧美xxxx | 国产一区日韩在线 | 成人免费视频 | 精品久久精品 | 精品区| 一二区成人影院电影网 | 国产日韩视频 | 日日夜夜免费精品视频 | 久草青青草 | 日韩三级一区 | 毛片一级片 | 亚洲精品久久久 | 欧美日韩视频 | 国产欧美日韩在线观看 | 亚洲a一区二区 | 日韩国产在线观看 | 色综久久 | 成人av免费播放 | 99伊人 | 亚洲一区二区中文字幕 | 最近中文字幕第一页 | 精品在线一区 | 99精品免费在线观看 | 亚洲午夜精品久久久久久app | 亚洲精品一区二区三区蜜桃久 | 激情五月婷婷综合 |