这些单片机怎么编 急求

练习1:将内部RAM单元中20H单元到2FH单元的数传到外部RAM中的2000H到200FH单元中.
练习2:外部RAM3000H 开始有 50个数传送到内部RAM 30H开始的区域
练习3:设在外RAM的TAB处开始有一个ASCⅡ字符串,该字符串以0结尾,编程把他们从P1口输出。
练习4:2ms延时程序,已知晶振频率为12MHZ,则机器周期为1us。
练习5:编程通过P1.0线连续输出256个宽度为5个机器周期长的方波。
练习6 :将8051内部RAM的40H ~ 4FH单元置初值#A0H ~ #AFH。
练习7:设P1口的P1.0 ~ P1.3为准备就绪信号输入端,当该四位为全1时,说明各项工作已准备好,单片机可顺序执行(将R2里的数送给A),否则,循环等待。

练习1:将内部RAM单元中20H单元到2FH单元的数传到外部RAM中的2000H到200FH单元中.
ORG 0000H
MOV R0,#20H
MOV DPTR,#2000H
MOV R2,#10H
LOOP: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R2,LOOP
END

练习2:外部RAM3000H 开始有 50个数传送到内部RAM 30H开始的区域
;算法分析:取地址指针DPTR=3000H、 R0=30H、计数器R7=50
ORG 0000H
MOV DPTR,#3000H
MOV R0,#30H
MOV R7,#32H
LOOP: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R7,LOOP;
END

练习3:设在外ROM的TAB处开始有一串数字,该串数字以0结尾,编程把他们从P1口输出。
ORG 0000H
MOV DPTR,#TAB ;设字符串首地址指针
MOV A,#00H

SOUT: MOV B,A
MOVC A,@A+DPTR ;取字符
JZ NEXT ;整串结束则转跳
MOV P1,A
MOV A,B
INC A ;修改地址指针
SJMP SOUT ;没结束继续取数发送
NEXT: SJMP $ ;结束处理

TAB: DB 04H,05H ;定义数字串
DB 03,07H,0FH,00H ;以0结尾
END
练习4:2ms延时程序,已知晶振频率为12MHZ,则机器周期为1us。
ORG 0
DELAY2ms: MOV R7,#10 ;1T
DL1: MOV R6,#48 ;1T
DL2: NOP ;1T
NOP ;1T
DJNZ R6,DL2 ;2T
DJNZ R7,DL1 ;2T
END
;该段程序耗时为: 1+[1+(1+1+2)×48+2]×10+2 = 1953 (us)

练习5:编程通过P1.0线连续输出256个宽度为5个机器周期长的方波。
ORG 0
MOV R0,#00H
CLR P1.0
LOOP: CPL P1.0
NOP
NOP
DJNZ R0,LOOP
END
练习6 :将8051内部RAM的40H ~ 4FH单元置初值#A0H ~ #AFH。
ORG 0
MOV R0,#40H
MOV R2,#10H
MOV A,#0A0H
LOOP: MOV @R0,A
INC R0
INC A
DJNZ R2,LOOP
END

练习7:设P1口的P1.0 ~ P1.3为准备就绪信号输入端,当该四位为全1时,说明各项工作已准备好,单片机可顺序执行(将R2里的数送给A),否则,循环等待。
ORG 0
WAIT: MOV P1,#0FFH
MOV A,P1
ANL A,#0FH
CJNE A,#0FH,WAIT ;P1.0 ~ P1.3不为全1时,返 回WAIT
MOV A,R2
END

参考资料:http://zhidao.baidu.com/question/70871394.html?si=6

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网