某51单片机系统时钟频率为12MHZ,使用定时器0定时10ms方式,实现从P1.1输出周期为1s的方波。

供稿:hz-xin.com     日期:2025-01-14
单片机:若系统晶振频率是12MHZ,利用定时器/计数器1定时1ms,在方式0下的定时初值为


org
00h
sjmp
start
org
01bh
mov
th1,#1eh
mov
tl1,#0ch
cpl
p1.1
inc
r2
mov
a,r2
anl
a,#11b
jnz
exit
cpl
p1.0
exit:reti
start:
setb
ea
setb
et1
setb
tr1
sjmp
$

51单片机的定时器T0要工作在方式1,才能定时10ms。而TMOD=0x02,是方式2,定时最长只有256us,是不行的,应该是TMOD=0x01,才对。采用中断方式,对10ms定时中断计数50次为500ms,交替从P1.1输出高电平和低电平,即输出周期 为1S的方波信号了。如下的仿真图,示波器测试为1S的方法信号。



TMOD=0X02 是不行的
定时器0工作方式2一次最大只能定时256 us
工作方式1一次最大能定时65536 us
工作方式0一次最大只能定时8192 us

8051单片机系统中,已知晶振频率为12MHZ,用定时 计数器T1,编程实现从P...
void  time1 H_int(void)  interrupt 3 { TL0=(65536-50000)%256;TH0=(65536-50000)\/256;                        &#...

单片机时钟为12MHz 利用定时器T1 使P1.0引脚输出2ms 的矩形波,要求占空 ...
include <REG51.H> \/\/12MHZ sbit pause = P1^0;void main(void){ EA = 1;TMOD = 0x10;TH1 = (65536-1000)\/256; \/\/1ms定时 TL1 = (65536-1000)%256;ET1 = 1;TR1 = 1;pause = 0;while(1);} void timeint(void) interrupt 3 \/\/占空比例1:2 { static unsigned char i;...

某单片机系统,时钟频率是12MHz,定时器\/计数器T0用于20ms定时,T1用于10...
\/\/我自己一个字一个字敲出来的,已经调试过了。\/\/请选为最佳答案啊。\/\/计数的输入引脚在P3.5,低电平触发的。你自己在硬件上加上拉电阻。include "reg51.h"void main(){ \/\/Set T\/C Work Mode TMOD = 0X61;\/\/T1:counter, Auto-cover Mode.\/\/T0:Timer, 16bits.\/\/Set Timer\/Counter ...

急!89C51单片机频率12MHz,用定时器1及中断的方法,产生周期为1s的等宽...
include <reg51.h> sbit p11 = P1^1;void InitTimer1(void){ TMOD = 0x10;TH1 = 0x0FC;TL1 = 0x18;EA = 1;ET1 = 1;TR1 = 1;} void main(void){ InitTimer1();while(1);} void Timer1Interrupt(void) interrupt 3 { TH1 = 0x0FC;TL1 = 0x18;p11 = ~p11;} 我没有给...

51单片机 晶振为12Mhz,求算精确的延时时间 要是给出详细的计算过程的话...
应该是2mS左右 1void delay1(int x){while(--x);} delay(1)是14us 接下来执行--每个需8us delay1(50)为406us 2void delay2(int t){ int i;for(i=0;i<t;i++);} for(i=0;i<t;i++);这句需要36us ,每个循环需要16us ,delay2(100);=36+99*16=1620us delay1(50);delay...

在8051单片机的时钟频率为12MHz,用T0定时,试编程使P1.0和P1.1分别输出...
有很多方法的,第一种是用模拟PWM,设置好占空比为1\/2,根据周期设定好频率就可以了,你这个不需要变动的话,不用PWM也可以,可以这样写:define T0_delay 1000 sbit P10=P1^0;sbit P11=P1^1;unsigned int Pwm_Count=0;void Timer0_init();void main(){ Timer0_init();while(1);\/\/空循环...

设MCS-51单片机的晶振频率为12MHZ,使用定时器1工作方式1中断方式在P1...
include <reg51.h>void InitTimer1(void){ TMOD = 0x10;\/\/定时器1 方式1 TH1 = 0x3C;\/\/12Mhz晶振,定时50ms TL1 = 0x0B0; EA = 1; ET1 = 1; TR1 = 1;}void main(void){ P1=0xff; InitTimer1(); while(1);}void Timer1Interrupt(void) interru...

设MCS-51单片机使用的晶振是12MHz,欲使用定时器\/计数器1实现50ms定时中...
不管使用什么工作方式都是可以完成的,这个取决于你设置的定时\/计数器的初值。下面使用方式一和方式二来分别说明。一、使用方式一:晶振频率为12MHz,机器周期为1us,50ms时间需要计数50000次,故计数器初值为(65536-50000),65536是因为方式一中,定时\/计数器的最大值为65536(2^16),当然写程序时...

单片机:若系统晶振频率是12MHZ,利用定时器\/计数器1定时1ms,在方式0下...
1、系统晶振频率是12M,则机器周期=12\/12=1us;2、定时1ms=1*1000=1000us;3、工作在方式0下:最大计数值是2^13=8192;4、定时初值=8192-(1*1000)=7192;5、换算成十六进制数为:定时初值=1C18H。定时器中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。定时\/...

51单片机晶振频率为12MHz,利用中断在P1.1口输出50HZ的方波,C语言,哪...
include <reg51.h>sbit port=P1^1;void Timer0Init(void)\/\/10毫秒@12.000MHz{TMOD &= 0xF0;\/\/设置定时器模式TMOD |= 0x01;\/\/设置定时器模式TL0 = 0xF0;\/\/设置定时初值TH0 = 0xD8;\/\/设置定时初值TF0 = 0;\/\/清除TF0标志TR0 = 1;\/\/定时器0开始计时}void main(){ Timer0Init()...