单片机复习材料(10)
发布时间:2021-06-05
发布时间:2021-06-05
7-1如图7-2所示,P1接有8个发光二极管,编程使8个管轮流点亮,每个管亮100ms,设晶振为6MHZ 查询方式
ORG 0000H MOV TH1, #3CH SJMP AGAI
MOV TL1, #0B0H MOV A, #0FEH ; SHI:RL A SETB TR1 SJMP NEXT NEXT:MOV P1, A
MOV TMOD, #10H AGAI:JBC TF1, SH1 中断方式
ORG 0000H MOV TMOD, #10H IV1:RL A AJMP MAIN MOV TH1, #3CH MOV P1, A ORG 001BH MOV TL1, #0B0H MOV TH1, #3CH AJMP IV1 SETB TR1 MOV TL1, #0B0H ORG 0030H SETB EA RET1
SETB ET1 MAIN:MOV A, #0FEH
MOV P1, A WAIT:SJMP WAIT
7..2在P1.7端接一个发光二极管LED,要求利用定时器控制,使LED亮一秒灭一秒周而复始,设fosc=6MHZ
ORG 0000H SETB TR1 SJMP LOOP3
LOOP1:CPL P1.7 MAIN:CLR P1.7 LOOP4:CPL P1.0
SETB P1.0 LOOP2:MOV TH0,#3CH JBC TF1,LOOP1
AJMP LOOP2 MOV TMOD,#61H MOV TL0,#0B0H
SETB TR0 END MOV TH1,#0FBH
MOV TL1,#0FBH LOOP3: JBC TF0,LOOP4
例7-3 有P3.4引脚(T0)输入一低频信号(其小于0.5kHZ),要求P3.4每发生一次负跳变时, P1.0输出一个500us同步负脉冲,同时P1.1输出一个1ms的同步正脉冲。已知晶振频率为6MHZ。 解 按提意,设计方法如图7-5所示。
初态P1.1输出高电平(系统复位时实现),P1.1输出低电平,T0选方式2计数方式(计一个脉冲,初值为FFH)。当加在P3.4上的外部脉冲负跳变时,T0加1,计数器溢出,程序查询到TF0为1,改变T0为500 s定时工作方式,并使P1.0输出0,P1.1输出1。T0第一次定时500 s溢出后,P1.0恢复1,T0第二次定时500 s溢出后,P1.1恢复0,T0恢复外部脉冲计数。 设定时500 s的初始值为X,则:
(256-X)×2×10-6 = 500×10-6
解得 X=6 源程序如下:
BEGIN: MOV TMOD,#6H SETB P1.1
MOV TH0,#0FFH CLR P1.0 MOV TL0,#0FFH SETB TR0 CLR P1.1 DEL2: JBC TF0, RESP2 SETB TR0 AJMP DEL2
DELL: JBC TF0, RESP1 RESP: SETB P1.0
AJMP DELL DEL3: JBC TF0,RESP3
RESP1:CLR TR0 AJMP DEL3
MOV TMOD, #02H RESP3: CLR P1.1 MOV TH0, #06H CLR TR0 MOV TL0,#06H AJMP BEGIN