定时器T1每0.05秒中断一次,单片机P1口接8个发光二极管LED0~LED7,编写程序,使发光

作者&投稿:石谭 (若有异议请与网页底部的电邮联系)
定时器T1每0.05秒中断一次,单片机P1口接8个发光二极管LED0~LED7,编写程序,使发光二极管有规律地循环点~

#include

unsigned char t,n,a[8]={0xfa,0xf5,0xaf,0x5f,0xaa,0x55,0x00,0xff};

void t0_init()
{
EA=1;
ET0=1;
TMOD=0X01;
TH0=0X3C;
TL0=0XB0;
TR0=1;
}

void t0_col() interrupt 1
{
TH0=0X3C;
TL0=0XB0;
if(++t>=20)
{
t=0;
if(++n>7)n=0;
P1=a[n];
}
}

void main()
{
t0_init();
while(1)
{
;
}
}

差不多就这样,你试试吧!

sanne()//显示函数
{
if(miao==1)
P1=0xfa;
else if(miao==3)
P1=0xf3;
else if(miao==5)
P1=0xaf;
else if(miao==7)
P1=0x3f;
}
void time(void) interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
if(++count==20)
miao++;
if(miao==16)
miao=0;
}
你可以试下这 其他的主函数你自己去写吧 。。。

太简单了,顺手做一个给你吧
//51单片机
//11.0592MHz
#include <reg51.h>
unsigned char temp;
main()
{
TMOD=0x10;//定时器1 方式1:16位
TH1=0x3C;//3CAF=15535=65535-50000
TL1=0xAF;
TR1=1; //打开定时器1
ET1=1;//允许定时器1中断
EA=1;//打开总中断
while(1);
}
void timer1() interrupt 3
{
statc unsigned char t;
t++;
TH1=0x3C; //重装
TL1=0xAF;
if(t==20)//定时器为50000us,即进来定时器20次为1秒
{
//没说明LED另一端接地或接VCC,假设接地
P1=0x03;//先亮前两个
temp=0x03;
temp<<=2;//temp左移两位给P1口循环点亮两个LED
}

}

这个用延时的话估计好写一点,我对定时器用的不是很熟,所以我建议你用一下延时看看,那样实现的话比较简单

0.05秒中断一次?


plc的计时器怎么用?
T0:T0到T199都是基数为0.1秒的计时器,所以T上面的K给多少就是0.1秒乘以多少。K1:T0上面是K10,就是0.1sX10=1s,也就是定时一秒。T1也一样。这里的程序,是M0接通以后,T0开始计时1秒,1秒到后T1开始计时。所以是M0接通后T1延时1秒开始计时。分类:1、整体式:是把PLC各组成部分安装在一起...

定时器T1定时250μs,工作方式设置为方式几?
51单片机中有两个定时器T0和T1,分别是由两个8位的专用寄存器组成,即定时\/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。单片机中的定时器溢出时申请的中断,达到计时或计数的目的。并使用定时控制寄存器控制它。其中的:TF1:定时器1溢出标志。定时\/计数器溢出时由硬件置位。中断处理时由硬件清除。或...

单片机的定时器t1用作定时方式时是
单片机的定时器t1用作定时方式时是由内部时钟频率定时,一个机器周期加。定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件,晶振经过12分频之后提供给单片机的只有1MHZ的稳定脉冲。

数字计时器如何使用
挡光片的宽度为δs。可按公式v1=δs/δt1,v2=s/δt2求出两个速度值,再按公式a=(v2-v1)/t 求出加速度a。选择功能4时,可进行简谐运动的周期测量。当第一个周期开始时,计时器自动开始计时,同时数码管的低位显示数字“10”,表示将要测量十个 周期。在简谐振动过程中,每测完一个...

51单片机的定时器t1是怎么进入的?
中断一般是在p3.2口有下降沿就进入?--是。那定时器中断是怎么进入的?--定时器,无论是定时或计数,加一,出现溢出时。t1的工作方式是00的时候TH0和TL0的值怎么改定时时间都是8毫秒!--办不到。--只能通过设置 TH1 和 TL1 的初值,才能改变 T1 的定时时间。

松下PLC的定时线圈怎么画?(时间继电器)
1.按F5,,出现各种定时器选择,,2,再按TMX100mS=F1;TMY1S=F2;TMR10mS=F3;TML1mS=F4;CT计数器=F6 图上按的是F1---再输入定时器地址0---回车 3.再输入定时器设定时间K10---再回车---在CTRL+F1转换

若设置定时器T1工作在方式1,定时模式,定时时间为5ms,启动由TR1(启动位...
void Init_Timer1(void){ TMOD |= 0x10;TH1=(65536-5000)\/256;TL1=(65536-5000)%256;EA=1;ET1=1;TR1=1;}

TMOD的值是怎么确定的 ?
TMOD可以同时设置定时器1和定时器0的工作方式即计数方式。由于定时器\/计数器的功能是由软件编程确定的,所以一般在使用定时\/计数器前都要对其进行初始化,使其按设定的功能工作。初始化的步骤一般如下:1、确定工作方式(即对TMOD赋值);2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1)...

plc用定时器t1设定时间15秒,设定值k=多少?
这里不知道题主用的是什么品牌的PLC,在这里我以三菱FX2N型号PLC为例,PLC用定时器T1设定时间为15秒时K值=150 PLC定时器T1~T199,这两百个点是以100ms为单位的,也就是说K=10代表定时1秒。PLC定时器T200~T245,这46个点是以10ms为单位的。

单片机中断关闭后计时器还计数吗
是TR1=1,不是TR0=1。当ET1=0,只是关中断,计数器T1并不停,还继续计数。只有TR1=0,才停止计数。是T1计数,不是TR1计数。

文水县18470355367: 求一个单片机定时器程序(用汇编) -
尉迟终活血: ORG 0000H AJMP START ORG 0040H START:MOV SP,#60H ABC:MOV DPTR,#TABLE CLR A STA:MOV R1,A MOVC A,@A+DPTR MOV P1,A ACALL DELA INC R1 MOV A,R1 CJNE A,#05H,STA AJMP ABC DELA:MOV R7,#250 DEL: MOV R6,#250 DJNZ R6,$ DJNZ R7,DEL RET TABLE:DB 05H,0AH,50H,0A0H,0FFH,00H END

文水县18470355367: 如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作 -
尉迟终活血: ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 SETB ET0 SETB EA MOV R2,#0 SJMP $ T0ISR: CLR TR0 MOV TH0,#HIGH(...

文水县18470355367: 这个汇编怎么编呢 -
尉迟终活血: ORG 0000H SJMP START ORG 001BH;定时器1中断矢量地址 SJMP TIMER0 ORG 0030H START:MOV SP,#60H;设置堆栈深度 MOV TMOD,#10H;设置定时器1,方式1 MOV TH0,#3C;计数初值 MOV TL0,#40H MOV A,#01H\ MOV R0,#08...

文水县18470355367: 单片机定时器应用实验用80C51内部定时器1,按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次.P1口的P1.0 - P1.7分别接八个发光二极管.... -
尉迟终活血:[答案] 完全一样的题目呀,真幸运,看我的吧(我的是8052的,没关系的):汇编程序:S1 EQU 30HS2 EQU 31H ORG 0000H AJMP MAIN&nb...

文水县18470355367: 定时器T1每0.05秒中断一次,单片机P1口接8个发光二极管LED0~LED7,编写程序,使发光二极管按延时1,3,5,7S -
尉迟终活血: sanne()//显示函数 {if(miao==1)P1=0xfa;else if(miao==3)P1=0xf3;else if(miao==5)P1=0xaf;else if(miao==7)P1=0x3f; } void time(void) interrupt 3 {TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(++count==20)miao++;if(miao==16)miao=0; } 你可以试下这 其他的主函数你自己去写吧 ...

文水县18470355367: 如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作由89C51内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次.P1... -
尉迟终活血:[答案] ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 SETB ET0 SETB EA MOV R2,#0 SJMP $ T0ISR: CLR TR0 MOV TH0,#HIGH(65536...

文水县18470355367: 单片机定时器代码设计(会得来,要钱的滚) -
尉迟终活血: 计数器跟定时器的区别是没有益出中断的功能.希望对你有帮助.

文水县18470355367: 51单片机定时中断问题 -
尉迟终活血: 中断过于频繁,会导致单片机堆栈溢出,程序跑飞. 如果定时又一次到了,当前PC指针、寄存器数值会存入堆栈,然后去相应新的中断....不停地中断,最终堆栈溢出

文水县18470355367: 51单片机中断定时 -
尉迟终活血: 51单片机定时器T1,直接定时30秒是不行的,但是,可以定时50ms,以晶振为12M为例,时间常数是:TH1=(65536-50000)/256; TL1=(65536-50000)%256; 开中断,在中断程序中计数,每中断计一个数,计数600次,就是30秒了,对一个引脚取反,就可以高低变化了,每隔30秒一变.

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