设单片机系统的晶振为12MHz,要求使用定时计数器1,用C语言 编写程序实现?

设单片机系统的晶振为12MHz,要求使用定时计数器1,用C语言 编写程序实现?,第1张

系统晶振为12MHz时,定时器的计数脉冲周期即为 1uS;

要求输出周期为200us,占空比为50% 的方波,即方波的高电平时间=100uS,低电平时圆仿滑梁间=100uS。

所以每定时100uS便产生一次中断,并将输出信号状态翻转一次;

sbit cp=P1^7;

void timer1 interrupt 3

{ cp=~cp}

void main()

{

TMOD=0x20// 定时器1采用方式2 进行定时;

TH0=256-100 //橘让纤定时100uS;

TL0=TH0

EA=1ET1=1TR1=1

cp=1

while(1){}

}

主程序里这样设置

TMOD=0x10//定时器1作为定时器用

TH1=(65536-50000)/256

TL1==(65536-50000)%256

EA=1//开总中断

ET1=1//允许定时器1中断

TR1=1//首皮启动者旅差定时器1

中断程序如下:

void

timer1()interrupt

3//注意:定时器1的中断序镇中号为3

{

TH1=(65536-50000)/256

TL1==(65536-50000)%256

P1.7=~P1.7

}

主程序如下:

uchar a=0

void main( )

{

TMOD=0X02/定时器0工作方式2

TH0=56TL0=56//定时200us

ET0=1//允许定时器圆森郑0中断

EA=1//开橘颂总中断

TR0=1//启动定时器

while(1)/等待

}

中断程序:

void timer0() interrupt 1

{

a++

if(a==50){a=0P0^0=!P0^0}中断50次是春昌10ms,周期20ms

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12235000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存