定时器t1,循环点亮8个发光二极管,每个持续时间1s,晶振频率12mhz,写出完整汇编程序

作者&投稿:利牵 (若有异议请与网页底部的电邮联系)
设单片机晶振频率是12MHz,试用中断技术,利用定时器控制一发光二极管LED闪烁,闪烁周期为1S,要求亮0.5S~

main ()
{
TMOD = 0x01;//使能T0定时器工作于16位定时/计数方式
TH0 = 0x3C;//T0定时器50mS定时初值,此值按照12MHz频率计算出来的(假定是51单片机)
TL0 = 0xC0;
ET0 = 1;//允许定时器T0中断
EA = 1;//开中断
TR0 = 1;//定时器T0开始计数
while(1);//在这里死循环,等待T0中断发生
}

Timer0_int() interrupt 1 //定时器T0中断函数,每中断1次50mS
{
static unsigned char i = 10;//定义1个用于中断次数计数的静态变量
if(i)i--;//如果变量为真,减量计数
else{ //中断次数达到10次,10 * 50mS = 0.5S
LED = ~LED;//LED的状态取反(由亮变灭或由灭变亮)//LED用那根I/O自己定义
i = 10;//为下1个0.5S的中断次数计数重新赋值
}
TH0 = 0x3C;//恢复定时器T0初值
TL0 = 0xC0;
}

  TH0=0XEC TL0=0X78 TMOD=0X01。
  人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。现在的不少家用电器都安装了定时器来控制开关或工作时间。
  1、 接通延时型定时器:接通延时型定时器是各种PLC中最常见最基本的定时器,这种定时器在 SIEMENS的PLC中,称为SD型定时器。
  2、 断开延时型定时器:这种定时器是当输入条件00000为ON时无延时作用,只有在输入条件00000为OFF时产生延时作用。在SIEMENS的PLC中,称为SF型定时器。
  3、保持型接通延时定时器:这种定时器是当输入条件00000为ON后,即产生锁存功能,即使输入条件00000又变为OFF,仍视输入条件为ON,当定时器的当前值等于设定值时,定时器动作,这种定时器在SIEMENS的PLC中,称为SS型定时器。
  4、脉冲型定时器:这种定时器是当输入条件00000为ON后,定时器即时动作,但经过定时器所设定的时间后,即使输入条件00000仍为ON,定时器却变为OFF状态。即这种定时器ON状态的维持时间是由设定值决定的。如果00000为ON的时续时间小于定时器的设定值,定时器的ON状态维持时间为输入条件00000为ON的持续时间。这种定时器在SIEMENS的PLC中,称为SP型定时器。
  5、扩张型脉冲定时器:这种定时器与脉冲型定时器的区别是,只要输入条件00000出现了ON状态,不管其持续时间多长,均可使定时器为ON的维持的时间与定时器的设定值一致。这种定时器在SIEMENS的PLC中,称为SE型定时器。

#include<reg52.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar tt,aa;

//sbit d1=P1^0;

void main()

{

TMOD=0x10; //选择定时器 t0的工作方式为1

EA=1;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET1=1;

TR1=1;

aa=0xfe;

while(1)

{

if(tt==2)

{

tt=0;

P1=aa;

aa=_crol_(aa,1);

}

}

}

void exter() interrupt 3

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

tt++;

}




基于51单片机的循环彩灯控制设计
ORG 001BH ;定时器T1中断入口地址 RETI ;中断返回(不开中断)ORG 0023H ;串行口中断入口地址 RETI ;中断返回(不开中断);;***;; 初始化程序 ;;***;;CLEAR: MOV 20H,#00H ;20H单元内存清0(闪烁标志清0)SETB 00H ;20H.0位置1(上电时自动执行闪烁功能1)RET ;子程序返回 ;;***;...

单片机汇编编程 设计一个计时器 用AT89S51 ~~着急啊~谢谢大家啦_百度知 ...
LJMP T1_ISR ORG 0030H ;主程序 MAIN: MOV TMOD,#10H ;定时器初始化 MOV TH1,#3CH ;设定时时间50ms MOV TL1,#0B0H SETB EA ;开中断 SETB ET1 SETB TR1 ;启动T1 MOV R0,#20 ;中断计数器(循环次数)MOV A,#00 ;显示计时初值 LCALL TRAN ;调转换显示程...

利用单片机定时器T1工作方式2,产生时间精确的1s定时,控制使p2.7控制的...
include<reg52.h> unsigned int a=0;\/\/累计中断次数 \/主程序 void main(){ TMOD=0x20;\/\/ 定时器1工作方式2 ET1=1;EA=1;TH1=(256-200);\/\/晶振12M时定时 200us TL1=(256-200);TR1=1;while(1);} \/\/中断子程序 void Timer1() interrupt 3 { a++;if(a==5000)\/\/5000...

计时器和定时器有什么区别?
区别就是用单片机软件定时,CPU循环执行一小段延时程序,浪费CPU的精力,用定时器定时,CPU就可以干别的。如果是程序延时的话,时间消耗在(延时程序+剩下的代码);计时器中断则相当于把延时程序交给定时器,此时CPU可以干别的事情,提高了效率。就类似于电脑打游戏时把图形处理任务交给显卡,CPU的压力就小...

单片机的T0和T1用作定时器时,其定时时间与哪些因素有关
1.与你设置的初值有关 定时器就好像一个水桶,设置初值就是往里面加水,你如果想要定时半桶水,你就往桶里加半桶水,也就是置初值,等到水桶满了就溢出,相应标志位置位,响应中断。2.与你设置定时器工作方式有关,说白了就是选择多大号的水桶,水桶越大盛的水越多,可以定时的时间越长。

三菱plc问题,求解答,为什么计时器t1不跳下去12那里
把Y1的常闭点去掉试一试

T1用作串行口波特率发生器时,设置为工作方式1时,如何初始化?波特率如何...
main(){ TMOD=0x22; \/\/T1模式2波特率,T0模式2定1\/3600秒 SCON= 0x52; \/\/串口工作方式1,允许接收,TI=1 TL1=256-Fosc\/12\/16\/Baud; \/\/波特率装初值 TH1=256-Fosc\/12\/16\/Baud;TR1=1; \/\/开启T1 IE=0x9A; \/\/开总中断,开定时和串口,关外部 ...这里用的定时器模式2,方式2虽然定时数...

关于单片机试题:定时器工作方式寄存器TMOD中的各位所代表的意义。_百度...
GATE=1时,“与门”的输出信号K由INTx输入电平和TRx位的状态一起决定(即此时K=TRx·INTx),当且仅当TRx=1,INTx=1(高电平)时,计数启动;否则,计数停止。当INT0引脚为高电平时且TR0置位,TR0=1;启动定时器T0;当INT1引脚为高电平时且TR1置位,TR1=1;启动定时器T1。GATE=0时,“或门...

利用mcs51单片机p1口控制8只发光二极管循环点亮,采用定时器t0,使之工作...
中断方式:ORG 0000H JMP MAIN ORG 000BH JMP T0_INT MAIN:MOV TMOD, #01H MOV TH0, #HIGH(65536-62500)MOV TL0, #LOW (65536-62500)SETB TR0 MOV A, #7FH MOV P0, A M_LOOP:SJMP M_LOOP ;--- T0_INT:MOV TH0, #HIGH(65536-62500)MOV ...

单片机问题
POP P1 POP PSW POP ACC RETI DELAY: ……;延时程序省略 RET END 六、设单片机的时钟频率为12MHz,用定时器T1定时方法,在P1.0产生频率为20KHz等宽矩形波,选择工作方式2编程实现,根据提示将程序补充完整。程序:ORG 0000H LJMP START ORG 001BH LJMP TIME1 ORG 0100H ...

新兴县18928631518: 定时器t1,循环点亮8个发光二极管,每个持续时间1s,晶振频率12mhz,写出完整汇编程序 -
穰谈银翘:

新兴县18928631518: 用定时/计数器T1产生定时时钟,P1口控制8个发光二极管使8个灯依次闪烁,闪烁频率10次/秒,循环 -
穰谈银翘: 用定时/计数器T1定时50ms,晶振频率取12MHz,定时器初值为3CB0H,采用中断方式,用变量计数中断次数.P1口控制8个发光二极管LED灯,每50ms中断,控制一个灯亮/灭一次,中断两次为100ms,闪一次,一秒钟闪10次,闪烁频率为10.仿真图如下图所示.

新兴县18928631518: 利用定时/计数器T1产生定时时钟, 由P1口控制8个发光二极管, 使8个指示灯依次一个一个闪动, -
穰谈银翘: 时器T0,却TR1=1启动定时器T1.#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char uchar temp; int t; void main() { TMOD=0x01; EA=1; ET1=1; TR1=1; TH1=(65536-50000)/256; TL1=(...

新兴县18928631518: 采用方式2,使用定时器T1定时1秒,循环点亮8盏LED灯,采用单片机c51,不要汇编程序. -
穰谈银翘: #include<reg51.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char uchar tt1,temp; void timer1() interrupt 3 { if(tt1=10) { tt1=0; temp=_crol_(temp,1); P0=temp; } } void main() { temp=0xfe; TH1=(256-100); TL1=(256-100); EA...

新兴县18928631518: 用定时中断控制8个发光二极管移位依次点亮,时间间隔300ms.即第一灯亮300ms然后第二灯又亮300m循环不止 -
穰谈银翘: 定时器,设置为10ms中断一次,中断中,每次进中断,都对一个全局变量加1,则加到30时,就是300ms,300ms到时,让一全局变量移位 则可达到一个灯亮的效果.假定8个发光二极管接在P1,并且是低电平点亮,部分程序如下:...

新兴县18928631518: 采用定时器T1的方式1,使P1口上的8盏灯间隔2秒依次循环点亮,汇编语言,求大神 -
穰谈银翘: ORG 0000H LJMP MAIN ORG 001BH LJMP T1ISR ORG 0030H MAIN: MOV TMOD,#10H MOV TH1,#HIGH(65536-50000) MOV TL1,#LOW(65536-50000) SETB TR1 SETB ET1 SETB EA MOV A,#0FEH MOV R2,#40 SJMP $ T1ISR: CLR TR0 MOV TH1,#HIGH(65536-50000) MOV TL1,#LOW(65536-50000) SETB TR1 DJNZ R2,T1E MOV P1,A RL A T1E: RETI END

新兴县18928631518: 单片机89c51 -
穰谈银翘: #include#define uchar unsigned char main() { uchar LED; TMOD=0x10; TH1=(65536-50000)/256; TL1=(65536-50000)%256; LED=0xfe; P0=LED; TR1=1; while(1) { if(TF1==1) { TF1=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; LED=(LED if(LED==0xff)LED=0xfe; } } }

新兴县18928631518: 采用定时器方式1使用8个发光二极管两个点亮循环,循环时间为2s -
穰谈银翘: #include<reg51.h>#define uchar unsigned char uchar num,times; uchar led[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7e}; void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; times++; if(times>=40) { times=0; P0=led[num++]; ...

新兴县18928631518: 控制8个发光二极管的闪烁,要求亮两秒,灭两秒,用T1定时,采用汇编语言中断方式编程. -
穰谈银翘: ORG 0000H SJMP MAIN ORG 001BH SJMP T111 ORG 0030H MAIN:MOV SP,#60H MOV R5,#0 MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB EA SETB ET1 SETB TR1 SJMP $ T111:MOV TH1,#3CH MOV TL1,#0B0H CJNE R5,#40,BB1 MOV A,P2 XRL A,#0FFH MOV P2,A MOV R5,#0 SJMP EXIT BB1:INC R5 EXIT:RET END 试试这代码,P2口接8个发光二极管,2秒闪烁

新兴县18928631518: 利用mcs51单片机p1口控制8只发光二极管循环点亮,采用定时器t0,使之工作在方式1中断实现2秒时间间隔编程/ -
穰谈银翘: unsigned char a,count;void main() {P1=0xff;a=0x01;count=0//**********************************// TMOD=0x21; /*每2.5mS产生定时0中断,时钟11.0592MHZ*/TH0=55536/256; //定时器0置为10ms定时器,TL0=55536%256;while(1){;} }...

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