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

QQ登錄

只需一步,快速開始

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

單片機(jī)新手proteus仿真圖文件與匯編語言源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
單片機(jī)新手或教學(xué)使用。

單字節(jié)BCD碼減法.doc:
實(shí)現(xiàn)R0指向的單元減去R1指向的RAM單元內(nèi)容(十進(jìn)制減法),結(jié)果存在R0指向的RAM單元中。
答案:
     ORG 0000H
     LJMP MAIN
     ORG 4100H
MAIN:MOV A,#9AH
       CLR C
       SUBB A,@R1
       ADD A,@R0
       DA A
       MOV @R0,A
       END
      
堆棧操作.doc:
判斷操作結(jié)果
ORG 0000H
     LJMP MAIN
     ORG 4100H
MAIN: MOV SP,# 2FH
       MOV A,#88H
       MOV R2,#5
       PUSH ACC
       PUSH 02H
       MOV R2,#10H
       MOV A,#80H
       ADD A,R2
       DA A
       MOV R0,A
       POP 02H
       POP ACC
       END

多字節(jié)BCD碼加法.doc
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN:MOV A,R7
     MOV R2,A
     ADD A,R0
     MOV R0,A
     MOV A,R2
     ADD A,R1
     MOV R1,A
     CLR  C
BCD: DEC R0
     DEC R1
     MOV A,@R0
     ADDC A,@R1
     DA A
     MOV @R0,A
     DJNZ R2,BCD
     END

例如:15362817+29436485=44799302
(R7)=4   (R0)=30H  (R1)=40H

外部RAM訪問.doc
1、    將片外RAM2000H單元內(nèi)容傳送到內(nèi)部RAM的30H中。
2、    將片外(2000H)傳送到2001H中。
答案:
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN:MOV DPTR,#2000H
MOVX A,@DPTR
MOV R0,#30H
MOV @R0,A
END


ORG 0000H
  LJMP MAIN
  ORG 4100H
MAIN:MOV DPTR,#2000H
      MOVX A,@DPTR
      MOV  DPTR,#2001H
      MOVX @DPTR,A
      END

偽指令練習(xí).doc

1、    建立表格,首地址為4300H,將0----9的平方值存放在表格中。并將0——9送給A,取出A 中對(duì)應(yīng) 的平方值且送到外部RAM的30H單元中。
ORG 0000H
     LJMP MAIN
     ORG 4100H
MAIN:MOV DPTR,#4300H
     MOVC A,@A+DPTR
     MOV R0,#30H
     MOV @R0,A
     SJMP $      
     ORG 4300H
     DB  0,1,4,9,16H,25H
     DB  36H,49H,64H,81H
     END


開關(guān)控制的中斷系統(tǒng)

              ORG0000H
              LJMPMAIN
              ORG  0003H
              LJMPINT_0
              ORG  4100H
MAIN:  MOVIE,#10000001B
SETB  IT0
              MOV  A,#7FH
              MOV  R0,#1
LOOP:  CJNER0,#0H,LEFT
       RL A
              AJMPDELAYS
LEFT: RR A
DELAYS:MOV P1,A
ACALL DELAY
              ACALLDELAY
              ACALLDELAY
              ACALLDELAY
              ACALLDELAY
              AJMP  LOOP
DELAY: MOV     R7,#82H
DL1:  MOV  R6,#0FFH
DL2:  NOP
       DJNZ R6,DL2
              DJNZR7,DL1
              RET
INT_0: CLR EX0
       ACALL DELAY
              SETBEX0
              CJNER0,#0H,SETR0_1;
              MOV  R0,#1
              RETI
SETR0_1:MOV R0,#0H
       RETI
              END

問題:
1、 R0=1時(shí),左移還是右移?R0什么時(shí)候等于0?
2、 MOV IE,#10000001B,定義了哪些位?作用?
3、 中斷服務(wù)程序主要完成什么任務(wù)?
4、 圖中開關(guān)的電位如何變化?
5、 IT0是哪個(gè)寄存器中的?作用是什么?
6、 R0在程序中的作用是什么?
7、 CJNE R0,#0H,SETR0-1 指令作用?R0為什么和0比較?

秒表

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_T0
ORG 0100H
MAIN: MOV TMOD,#00000001B
       MOV TH0,#3CH
       MOV TL0,#0B0H
       MOV R7,#0
       MOV DPTR,#TAB
       MOV R0,#0
       SETB EA
       SETB ET0
       SETB TR0
LOOP:MOV A,R0
     MOVC A,@A+DPTR
     MOV P2,A
     ACALL DELAY
     AJMP LOOP
INT_T0:INC R7
     CJNE R7,#10,RETURN
     MOV R7,#0
     INC R0
     CJNE R0,#10,RETURN
     MOV R0,#0
RETURN:MOV TH0,#3CH
       MOV TL0,#0B0H
       RETI
DELAY: MOV R2,#0FFH
DL:    DJNZ R2,DL
       RET
TAB:DB 40H,4FH,24H,30H,19H
    DB 12H,02H,78H,00H,10H
    END

1、 SETB EA 和SETB ET0兩條指令變成一條指令,如何編寫?
2、 如果秒表只顯示02468,在不改變表格的基礎(chǔ)上如何改?
3、 如果秒表是2秒進(jìn)一,程序如何改?
4、 如果要顯示3,P2口的值?
5、 R7的作用是什么?
6、 R0的作用是什么?
7、 TMOD都設(shè)置了哪些位?這些位作用是什么?



全部資料51hei下載地址:
程序和圖.zip (264.92 KB, 下載次數(shù): 29)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:780328 發(fā)表于 2020-6-15 20:05 | 只看該作者
分享的很幫,很簡(jiǎn)單,很易學(xué),對(duì)我有很大幫助
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表