找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6018|回复: 1
打印 上一主题 下一主题
收起左侧

单片机新手proteus仿真图文件与汇编语言源程序

[复制链接]
跳转到指定楼层
楼主
单片机新手或教学使用。

单字节BCD码减法.doc:
实现R0指向的单元减去R1指向的RAM单元内容(十进制减法),结果存在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:
判断操作结果
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

多字节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单元内容传送到内部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

伪指令练习.doc

1、    建立表格,首地址为4300H,将0----9的平方值存放在表格中。并将0——9送给A,取出A 中对应 的平方值且送到外部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


开关控制的中断系统

              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时,左移还是右移?R0什么时候等于0?
2、 MOV IE,#10000001B,定义了哪些位?作用?
3、 中断服务程序主要完成什么任务?
4、 图中开关的电位如何变化?
5、 IT0是哪个寄存器中的?作用是什么?
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,在不改变表格的基础上如何改?
3、 如果秒表是2秒进一,程序如何改?
4、 如果要显示3,P2口的值?
5、 R7的作用是什么?
6、 R0的作用是什么?
7、 TMOD都设置了哪些位?这些位作用是什么?



全部资料51hei下载地址:
程序和图.zip (264.92 KB, 下载次数: 29)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:780328 发表于 2020-6-15 20:05 | 只看该作者
分享的很帮,很简单,很易学,对我有很大帮助
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表