永发信息网

使用定时器1以定时方法在P1.0输出周期为300us,占空比为40%的矩形脉冲,设单片机晶振为6MHz.。

答案:2  悬赏:30  手机版
解决时间 2021-03-15 06:56
  • 提问者网友:泪痣哥哥
  • 2021-03-14 23:59
希望有,懂单片机高手的盆友,帮帮忙,在此谢过!
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-03-15 00:49
周期为300us,占空比为40%方波周期 高电平定时时间 t1=T×0.4= 300×0.4=120微妙
低电平定时时间 t2=T×0.6= 300×0.6=180微妙
定时器1定时,工作在方式1时,高电平定时时间 t1=(216━ X)12/fosc
高电平时间常数 X 1=216━60=0FFC4H
低电平定时时间 t2=(216━ X)12/fosc
低电平时间常数 X 2=216━90=0FFA6H

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP ITTP
ORG 0100H
MAIN: MOV TMOD,#10H
LL0: SETB P1.0 ;输出高电平120微妙
MOV TL1, #0C4H
MOV TH1, #0FFH
SETB TR1
LL1: JNB TF1,LL1
CLR TF1

CLR P1.0 ;输出低电平 180微妙
MOV TL1, #0A6H
MOV TH1, #0FFH
LL2: JNB TF1,LL2
CLR TF1

SJPM LL0 ;循环连续输出矩形方波
全部回答
  • 1楼网友:英雄的欲望
  • 2021-03-15 01:22
unsigned char hflag; sbit pulse = p1^0; unsigned char aaa; #include<reg51.h> main() { tmod = 0x20; //定时方式2 th1 = (65536 - 50) / 256; //定时100us tl1 = (65536 - 50) % 256; ea = 1; tr1 = 1; et1 = 1; aaa = 0; while(1); } void t1_int() interrupt 3 { aaa++; if(aaa == 5) aaa = 0; if(aaa < 2) pulse = 0; else pulse = 1; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯