已知单片机晶体振荡器的频率是12MHz,利用定时器0采用方式1在P1.0脚上输出

已知单片机晶体振荡器的频率是12MHz,利用定时器0采用方式1在P1.0脚上输出0.2秒的方波

第1个回答  2016-07-10
#include  
sbit out = P1^0;
void main()
{
  TMOD = 0x01; //定时器0 16位定时器

  TH0 = (65536-20000)/256;
  TL0 = (65536-20000)%256; //0.02秒中断一次
  EA=1; //开总中断

  ET0=1; //开定时器0中断

  TR0=1; //允许计数

  while(1);
}

void Time0() interrupt 1
{
static num = 0;
TH0 = (65536-20000)/256;
  TL0 = (65536-20000)%256; //重新填初值 保证下次中断时间0.02s
num++;

if(num>=10) //到0.2s

{
num = 0;

out ~= out; //输出取反

}

}

对于初值的计算
用12M晶振 单片机内部12分频 也就是说计数器每增加一个数的时间为 1/(12M/12) = 1us
对于定时器来说最大定时时间为65536*1us=65.536ms <0.2s=200ms
所以程序中设置定时时间为20ms 中断10次就是0.2s 然后输出引脚输出电平取反

对于原理图 搭建一个最小系统就行

以上程序现写的 你自己测试一下 应该没什么问题
第2个回答  2016-07-09
主程序中这样设置:
unsigned char a=0;
TMOD=0x01;
ET0=1;
EA=1;
TH0=(65536-10000)/256;//定时10ms
TL0=(65536-10000)%256;
TR0=1;
中断程序:
void timer0() interrupt 1
{
TH0=…
TL0=…
if(a==10)
{
a=0;
P1入0=~P1入0;
}
}本回答被网友采纳

...的fosc=12MHz,采用T0定时方式1在P1.0脚上输出周期为1ms的方波._百 ...
T0定时方式1在P1.0脚上输出周期为1ms的方波。T1定时方式1在P1.1脚上输出周期为2ms的方波。要求T0使用查询法,T1使用中断法。ORG 0000H LJMP START ORG 001BH LJMP T1_INT ORG 0030H START:MOV TMOD, #11H MOV TL1, #LOW(65536 - 1000)MOV TH1, #HIGH(65536 - 10...

假设单片机的晶体振荡器的频率是12mhz,利用定时器1工作方式0定时500ms...
单片机晶振12M,一个机器周期是1us,定时500ms需要500000个机器周期,一次中断无法完成定时,需要多次定时才能实现,一次中断最大定时时间是65.536ms,可以取一个整数,比如50ms,那么定时器的初值为:TH0=(65536-50000)\/256;TL0=(65536-50000)%256;初始化和方波程序如下:include<reg51.h> sbit pl...

单片机的fosc=12MHZ,要求在P1.0脚上输出周期为2ms的方波,为什么要求定时...
周期为2ms的方波,意思就是高电平持续1ms,低电平再持续1ms,这是一个周期,1+1=1ms;接着是下个周期,又是高1ms,低1ms。。。所以定时器间隔要1ms,这样电平1ms翻转一次,周期才是2ms。如果定时器是2ms,那么高电平2ms,低电平2ms,周期就成4ms了。定时器间隔是周期的一半。

设单片机的fosc=12MHz,要求在P1.0脚上输出周期为2ms的.如下程序,怎么...
例如 周期改为4ms=4000us, 4000\/2=2000, 那两处的1000改为 2000

...12MHZ,用T0在单片机的P1.0和P1.1脚分别输出周期为2MS和6MS的方波...
ORG00H AJMPMAIN ORG0BH AJMPT0INT ORG30H MAIN:MOVR0,#3 ACALLINIT_INT0 AJMP INIT_INT0:MOV TMOD,#01H MOV TH0,#0FCH MOV TL0,#18H SETB EA SETB ET0 SETB TR0 RET T0INT:MOV TH0,#0FCH MOV TL0,#18H CPLP1.0 DJNZR0,RTI MOVR0,#3 CPLP1.1 RTI:RETI END ...

假设单片机的晶体震荡器的频率是11.0592MHz,利用定时器1采用方式1定时2...
【例7-3】设STC12C5A60S2单片机的系统时钟频率为12MHz,编程实现从P1.1引脚输出周期为1s的方波。分析:根据题目要求知,P1.1引脚的输出应每隔500ms取反一次,即定时时间为500ms。用一个定时\/计数器无法实现,可用定时\/计数器T1进行10ms的定时,然后用寄存器R7对10ms定时中断次数计数50次来实现。...

...1.0管脚上产生一周期为2ms的方波,时钟频率为12MHz
out=0; \/\/ P1.0输出为0 TMOD=0x01; \/\/工作方式1,16位计数 TH0=0x03; \/\/给定时器初值,周期为2ms,则半个周期为1ms TL0=0xe8; \/\/给定时器初值 EA=1; \/\/打开中断 ET0=1; \/\/允许中断 TR0=1; \/\/启动定时器 while(1); \/\/等待 } void Time0(void) ...

单片机上机考试,河北工业大学 大三
A.ADC 0890芯片是m路模拟输入的n位A\/D转换器,m、n是A。8、8 A.ALU表示D。算术逻辑部件BB.比较转移指令是B。CJNE A,direct rel B.8031 单片机若晶振频率为fosc=12MHz,则一个机器周期等于 C。1 µS。B.8031单片机的定时器T0用作定时方式时是D。由内部时钟频率计数,一个机器周期加1 B.8031单片机的...

使用51单片机定时器,晶振是22.1184M,采用P1.0脚控制定时器产生10分钟的...
10分钟的产生用定时器0实现,方波信号的产生用定时器1实现即可,2个定时器,关键在于定时器的使用,没你想像的那么难吧...可以百度下:51定时器和51用定时器产生PWM波

若单片机的fosc=10MHz,要求在P1.0脚上输出周期为2.5us,占空比20%的波 ...
设单片机的fosc=10MHz,要求在P1.0脚上输出周期为2μs的方波单片机 \/*第一种方法:用定时器0的方式1编程,采用查询方式。*\/ include <reg51.h> sbit P1_0=P1^0;void main(void){ TMOD=0x01; \/\/定时器0方式1 TR0=1; \/\/启动T\/C0 for(;;){ TH0=(65536-1000)\/256; \/\/...

相似回答
大家正在搜