首页 > 编程知识 正文

单片机中定时器计数器(单片机定时器方式0和方式1)

时间:2023-05-03 10:26:25 阅读:76954 作者:3218

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /

一、实验目的

1、掌握单片机定时器/计数器的工作方式;

2、掌握单片机定时器/计数器的编程方法。

二.实验内容

1、学习单片机定时器/计数器的工作方式、初始化及应用等;

2、用单片机定时器/计数器编写程序驱动开发板上的LED灯按一定规则运行。

基本要求:

订单编号:计时器0控制LEDB闪烁,闪烁频率为1Hz。

(二)计时器1控制LEDG闪烁,闪烁频率为2Hz。

三.实验设备

1、STC单片机开发板;

2、PC及串行电缆。

四.实验分析和关键代码

1、实验分析:定时器1控制LEDG灯,LEDG灯为实验实验,接口为p2 ̄5,闪烁频率为2Hz和0.5秒。 计时器工作方式的选择方式1、计数初始值的确定:因为我是第二个同学,所以我程序的闪烁频率为2Hz,0.5秒,也就是500ms。 所以我把初始值设定为50ms,循环10次。 TH1访问高8位,TL1访问低8位,并且晶体频率计算为12MHz。 计算结果为TH1=0x3c、TL1=0xb0。 interrupt n,n=3时,中断源为定时器/计数器1。

2 .重要代码:

# includereg 52.h # defineuintunsignedint; uint i; sbit LEDG=P2^5; main () { LEDG=0; TMOD=0x01; //T1为方式1,16位定时器TH1=0x3c; TL1=0xb0; //初始值EA=1; //总中断接通ET1=1; //计时器中断TR1=1; //启动时机while(1() 1; //等待中断}voidintt0(interrupt3using2//计时器中断函数({ TH0=0x3c; TL0=0xb0; I; if(I==10 ) { LEDG=! EDG; //输出取反i=0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。