MOV R0,#LIST MOV A,@R0 MOV MIN,A LOOP5:
INC R0 MOV A,@R0
__CJNE A,#0FFH______,LOOP3 RET LOOP3:
CJNE A,MIN,LOOP1 LOOP1:
_JNC_,___ LOOP2 MOV MIN,A LOOP2:
SJMP LOOP5
四、简答题(10分)
1、已知一MCS-51单片机系统使用8MHZ的外部晶体振荡器: 1)计算该单片机系统的机器周期为多少?(1分)
2)分别计算当单片机的定时器1(T1)工作在方式1、方式2时,T0的最大定时时间为多少?(2分)
答:1)机器周期为=(1/(8*1/12))us=1.5us (1分)
2) 方式1:
t=(65536-M)* 1.5us, 取M=0,则tmax=98304us (1分) 方式2:
t=(256-M)* 1.5us,取M=0,则tmax=384us (1分)
2. 当单片机应用系统中数据存储器RAM地址和程序存储器EPROM地址重叠时,它们内容的读取是否会发生冲突,为什么?(3分)
答:不会(1分)。由于80C51对ROM的读操作由PSEN控制,指令用MOVC
类;对RAM读操作用RD控制,指令用MOVX。(2分)
3.阅读下面的接口电路与程序,详细说明实现功能(4分)
MOV SCON,#0 MOV DPTR,#DATE MAIN: MOV R0,#0h MAIN1: MOV A,R0
MOVC A,@A+DPTR MOV SBUF,A WAIT: JNB TI,WAIT CLR TI INC R0
MOV A,#05H ACALL DELAY CJNE R0,#10H,MAIN1 AJMP MAIN
DELAY: MOV R7,2 DLY0: MOV R6,50 DJNZ R6,$ DJNZ R7,DLY0 DJNZ ACC,DELAY RET
DATE: DB 0C0H,0F9H,0A4H,0B0H,099H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH END
答:用单片机串行口扩展并行口输入接口电路及74LS164在数码管上实现循环依次显示0-F。
五、编程题(每题10分,共20分)
1、.已知内部RAM 30H单元开始存放20H个数据,将其传送到外部RAM的0000H单元开始的存储区,请编程实现。
ORG 0000H MOV R0,#30H MOV DPTR,#0000H MOV R2,#20H LOOP:
MOV A,@R0;取数 MOVX @DPTR,A;存数 INC R0 INC DPTR DJNZ R2,LOOP END
2.编写程序实现以下功能,单片机通过P3.5口对外部脉冲计数,每计到5个脉冲时使接在P1.0口的发光二极管就变换一次(由亮变灭或由灭变亮一次),用中断方式实现编程。
ORG 0000h SJMP MAIN ORG 001BH CPL P1.0 RETI ORG 0030H
MAIN: MOV TMOD,#60h ;T1计数,工作方式2
MOV TH1,#0FBH ;赋初值 MOV TL1,#0FBH
SETB EA SETB IT1
SETB TR1 ;启动
SJMP $ ; END