.
CLR ET1 CLR TR1
MOV TMOD,#10H ;T1工作于定时方式1 MOV TH1,#0D8H ;装初值 MOV TL1,#0F0H SETB TR1
JNB TF1,$ ;查询等待10ms CLR TF1
CLR TR1 CLR P1.7
MOV TMOD,#60H ;T1工作于计数方式2 MOV TH1,#9CH ;装初值 MOV TL1,#9CH ;
SETB ET1 ;T1开中断 SETB TR1 ;启动T1 RETI END
11.利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次闪动,闪动频率为1次/秒(即,亮1秒后熄灭并点亮下一个,-----)。
答:采用定时20ms,计数50次实现1秒定时。编制1秒延时子程序,由主程序调用。 a、T0工作在定时方式1时,控制字TMOD配置:
M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;
b、计算计数初值X:
晶振为12 MHz,所以机器周期Tcy为1μs。 N=t/ Tcy =20×10/1×10=20000 X=2-N=65536-20000=45536=4E20H
16
-3-6
即应将4EH送入TH1中,20H送入TL1中。 c、实现程序如下:
ORG 0000H
AJMP MAIN ;跳转到主程序 ORG 0030H MAIN:CLR CY
MOV A,#01H
LP0:MOV P1,A .
.
CALL D1SEC RL A AJMP LP0
D1SEC:MOV R7,#50 ;计数50次
MOV TMOD,#01H DL:MOV TH0,#4EH MOV TL0,#20H SETB TR0
JNB TF0,$ CLR TR0 CLR TF0
DJNZ R7,DL RET END
.