标题: 单片机新手proteus仿真图文件与汇编语言源程序 [打印本页]
作者: yangshunyao2016 时间: 2018-3-7 20:54
标题: 单片机新手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)
作者: fgdssdgsd 时间: 2020-6-15 20:05
分享的很帮,很简单,很易学,对我有很大帮助
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |