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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2780|回復: 3
收起左側

求大神幫忙給這個程序加一下注釋啊

[復制鏈接]
ID:463893 發表于 2019-1-7 21:43 | 顯示全部樓層 |閱讀模式
300黑幣
本帖最后由 THISISME 于 2019-1-7 21:45 編輯

這是一個時鐘的程序,是別人編的,本人學生黨,再練習讀程序加自己編寫中,但是不是很能讀懂,尤其是主程序和中斷服務程序那部分,想把這個程序當做一個典型例子學習,希望有大佬可以給它從主程序開始寫個注釋(越詳細越好),非常感謝

程序如下:
ORG 0000H

LJMP MAIN
ORG 0003H
LJMP INT0INT0
ORG 0013H
LJMP INT1INT1
ORG 000BH
LJMP IT0P
ORG 0040H
BEEP  EQU P3.4 ;speaker
/**************主程序*******************/
MAIN:MOV P0,#0FFH
     MOV P1,#0FFH
     MOV P2,#0FFH
     MOV 30H,#14H
     MOV 40H,#00H
     MOV 41H,#00H
     MOV 42H,#00H
     MOV TCON,#05H
     MOV TMOD,#01H
     MOV IE,#87H
     MOV IP,#01H
     MOV TH0,#3CH
     MOV TL0,#0B0H
LOOP:   LCALL DISPLAYSECOND
        LCALL DISPLAYMINUTE
  LCALL DISPLAYHOUR
SECOND0:JNB P2.0,SECOND£
MINUTE0:JNB P2.1,MINUTE
HOUR0:  JNB P2.2,HOUR
CLEAR0: JNB P2.3,CLEAR
LAST:   LJMP LOOP
/**************秒調整*******************/
SECOND: LCALL DELAY100MS
        JNB P2.0,HAVES
  LCALL DELAY10MS;·À¶¶
  LJMP RETURNS
HAVES:  MOV A,#01H
        ADD A,42H
        DA A
        MOV 42H,A
        CJNE A,#60H,RETURNS
        MOV 42H,#00H
RETURNS:LCALL DISPLAYSECOND
        LJMP MINUTE0
/**************分調整*******************/
MINUTE: LCALL DELAY100MS
        JNB P2.1,HAVEM
  LCALL DELAY10MS
  LJMP RETURNM
HAVEM: MOV A,#01H
        ADD A,41H
        DA A
        MOV 41H,A
        CJNE A,#60H,RETURNM   
        MOV 41H,#00H
RETURNM:LCALL DISPLAYMINUTE
        LJMP HOUR0
/**************時調整*******************/
HOUR:   LCALL DELAY100MS
        JNB P2.2,HAVEH
  LCALL DELAY10MS
  LJMP RETURNH
HAVEH: MOV A,#01H
        ADD A,40H
        DA A
        MOV 40H,A
        CJNE A,#24H,RETURNH
        MOV 40H,#00H
RETURNH:LCALL DISPLAYHOUR
        LJMP CLEAR0
/**************清零*******************/
CLEAR:  LCALL DELAY100MS
        JNB P2.3,HAVEC
  LJMP RETURNC
HAVEC: CLR TR0
        MOV 40H,#00H
        MOV 41H,#00H
  MOV 42H,#00H
        CLR BEEP;speaker ring
        LCALL DL1S
        SETB BEEP
RETURNC:LJMP LAST
/**************秒顯示*******************/
DISPLAYSECOND:  
SECONDGE: SETB P1.0
          MOV A,42H
          ANL A,#0FH
          LCALL SEG
    LCALL DELAY1MS
    CLR P1.0
SECONDSHI:SETB P1.1
          MOV A,42H
    SWAP A
          ANL A,#0FH
          LCALL SEG
    LCALL DELAY1MS
    CLR P1.1
    RET
/**************·分顯示*******************/
DISPLAYMINUTE:
MINUTEGE: SETB P1.2
          MOV A,41H
          ANL A,#0FH
          LCALL SEG
    LCALL DELAY1MS
    CLR P1.2
MINUTESHI:SETB P1.3
          MOV A,41H
    SWAP A
          ANL A,#0FH
          LCALL SEG
    LCALL DELAY1MS
    CLR P1.3
    RET
/**************時顯示*******************/
DISPLAYHOUR:
HOURGE:   SETB P1.4
          MOV A,40H
          ANL A,#0FH
          LCALL SEG
    LCALL DELAY1MS
    CLR P1.4
HOURSHI:  SETB P1.5
          MOV A,40H
    SWAP A
          ANL A,#0FH
          LCALL SEG
    LCALL DELAY1MS
    CLR P1.5
    RET
/**************啟動int0終端服務*******************/
INT0INT0:CLR EA
         LCALL DELAY10MS
      JNB INT0,HAVEKEY1
      SETB EA
      RETI
HAVEKEY1:PUSH PSW
      PUSH Acc
      SETB EA
      SETB TR0
      CLR EA
      POP Acc
      POP PSW
      SETB EA
      RETI
/************暫停int1終端服務*******************/
INT1INT1:CLR EA
         LCALL DELAY10MS
      JNB INT1,HAVEKEY2
      SETB EA
      RETI
HAVEKEY2:PUSH PSW
      PUSH Acc
      SETB EA
      CLR TR0
      CLR EA
      POP Acc
      POP PSW
      SETB EA
      RETI
/*****************定時器0中斷服務*****************/
IT0P:PUSH PSW
     PUSH Acc
     CLR TR0
     MOV TH0,#3CH
     MOV TL0,#0B0H
     DJNZ 30H,RETURN
     MOV 30H,#14H
     MOV A,#01H
     ADD A,42H
     DA A
     MOV 42H,A
     CJNE A,#60H,RETURN
     MOV 42H,#00H
     MOV A,#01H
     ADD A,41H
     DA A
     MOV 41H,A
     CJNE A,#60H,RETURN   
     MOV 41H,#00H
     MOV A,#01H
     ADD A,40H
     DA A
     MOV 40H,A
     CJNE A,#24H,RETURN
     MOV 40H,#00H
RETURN:
     SETB TR0
     POP Acc
     POP PSW
     RETI
/*************查表***************/
SEG:MOV DPTR,#TAB
    MOVC A,@A+DPTR
CPL A
MOV P0,A
RET
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
/*************1mS*****************/
DELAY1MS:MOV R7,#04H
     D1: MOV R6,#7DH
         DJNZ R6,$
         DJNZ R7,D1
         RET
/*************10ms****************/

DELAY10MS:MOV R7,#28H
      D2: MOV R6,#7DH
          DJNZ R6,$
          DJNZ R7,D2
          RET
/*************100mS****************/
DELAY100MS:MOV R7,#02H
      DEL1:MOV R6,#0C8H
      DEL2:MOV R5,#7DH
      DEL3:DJNZ R5,DEL3
           DJNZ R6,DEL2
        DJNZ R7,DEL1
           RET
/***********蜂鳴器延時************/
DL1S: MOV R4, #10
DL3: LCALL DELAY10MS
     DJNZ R4, DL3
     RET      
     END

回復

使用道具 舉報

ID:290305 發表于 2019-1-12 12:07 | 顯示全部樓層
現在基本都用C語言編程了,不用這些匯編語言,樓主如果會C語言的話可以嘗試下C語言編程
回復

使用道具 舉報

ID:401564 發表于 2019-1-12 21:00 | 顯示全部樓層
這個沒有人能幫你寫注釋的,不是有多難,而是太簡單卻很大量,匯編和C不同,它是一條一條指令的執行下去的,光是一條指令是看不出什么的.
如果你要知道某個子程序是有什么用的.那就看著8051指令,一條一條的在后面加上去,當你加一個子程序的注釋了,你也就知道這個子程序是有什么用的了
不要覺得你對著這幾百行代碼,大概看一下你就能知道個大概,那是不可能的了
舉一個例子:
DELAY10MS:  MOV R7,#28H  ;把16進制數28H放到R7
      D2:         MOV R6,#7DH  ;把16進制數7DH放到R6
                    DJNZ R6,$        ;R6減去1,不為0就再跳到當前指令(地址)
                     DJNZ R7,D2    ;R7減去1,不為0就再跳到D2(地址)
RET

這個子程序就完成了一個延時的功能:R6不斷的減去1,只要不為0就一直減下去,最后一步為0 了就跳到下一條指令,R7不斷的減去1,只要不為0,就去D2,再給R6賦值7DH,再去減1,直到R7也減到了0,子程序就返回了,通過不斷的執行指令在達到一個延時的效果
回復

使用道具 舉報

ID:18297 發表于 2019-1-13 10:52 | 顯示全部樓層
個人認為匯編的程序每一句注釋意義不大,不如畫個程序框圖。
1)畫個框圖,搞懂程序結構。
2)搞懂每個程序的實現方法,入口數據,出口數據等等。
比如知道每個詞語的意思,還是不能寫出好的文章。必須知道文章的結構,目的,選用的手法等等。
初學者先看懂人家的程序意思。分析子程序的意思。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲精品美女久久久久久久久久 | www.99热这里只有精品 | 在线亚洲一区 | 精品国产一区二区三区久久久蜜月 | 久久久久久久久久久爱 | 亚洲精品一区二区三区在线 | 国产精品免费一区二区三区 | 日韩精品一区二区三区在线观看 | 国产一区二区美女 | 欧美激情国产精品 | 久久久久久一区 | 国产乱码精品1区2区3区 | 一级在线视频 | 精品欧美色视频网站在线观看 | 一区在线观看 | 色婷婷一区二区三区四区 | 538在线精品 | 成人性生交大片免费看r链接 | 久久精品电影 | 日本成人中文字幕 | 一本一道久久a久久精品蜜桃 | 成人在线免费视频观看 | 亚洲成a人片 | 色婷婷av99xx | 中文字幕一区二区三区精彩视频 | 精品久久久久香蕉网 | 日韩精品 | 精品网| 精品一区二区三区视频在线观看 | 三级欧美 | 久久久久久久久久久高潮一区二区 | 秋霞在线一区 | 99视频在线免费观看 | 中文字幕国产视频 | 奇米视频777| 最新日韩欧美 | 国产精品美女久久久久久久网站 | av先锋资源| 国产99久久精品一区二区永久免费 | 在线播放亚洲 | 成人免费一区二区三区视频网站 |