历史上的今天
今天是:2025年08月12日(星期二)
2018年08月12日 | C51单片机定时器T0,T1的常用基本设置
2018-08-12 来源:eefocus
有时候带手机不方便,可以又想知道时间,这时候可以用蜂鸣器做一个音频的时间提醒器,每60秒发一声提醒
提醒器计时可以使用单片机的定时器T0、T1来做,计时的定时器用T1来做,工作在方式2(8位自动装载),系统运行提示的定时器用T0来做,工作在方式1(16位定时)
代码如下
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
#define time_set0 5000//设置定时器0的计时长度
#define th0 (65536-time_set0)/256//计算定时器高8位装入值
#define tl0 (65536-time_set0)%256 //计算定时器低8位装入值
#define time_set1 256-200//设置定时器1的计时长度
sbit P1_1=P1^1;//系统运行指示灯管脚
sbit beep=P1^7;//蜂鸣器管脚
uint cnt=0;//计数器
uint cnt2=0;//计数器
uint cnt3=0;//计数器
void delay(uint i)//延时函数
{
uchar k;
for(;i>0;i--)
for(k=0;k<200;k++);
}
timer0()interrupt 1 using 1//定时器0设置
{
cnt++;//每次中断增加一
if(cnt>100)//计数时间5ms*100=500ms
{
cnt=0;
}
TH0=th0;//重装定时器
TL0=tl0;
}
timer1()interrupt 3 using 2//定时器1设置
{
cnt2++;
if(cnt2>=5000)//计数时间0.2ms*5000=1s
{
cnt2=0;
cnt3++;//秒计数器增加一
P1_1=!P1_1;//指示灯每秒翻转一次
}
}
void main()
{
TMOD=0x21;//设置定时器1方式2(高4位0010,自动重装TH->TL,计满255),定时器0方式1(低4位0001,16位定时器,可计满65535)
TH0=th0;//装载定时器初始值
TL0=tl0;
TH1=time_set1;
TL1=time_set1;
EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;//开定时器1中断
TR0=1;//打开定时器0
TR1=1;//打开定时器1
while(1)
{
if(cnt3>=60)//计时60秒
{
cnt3=0;//计时清零
beep=0;//打开蜂鸣器
delay(100);//延时100
beep=1;//关闭蜂鸣器
}
}
}
上一篇:简单的按键继电器控制
史海拾趣
|
系统:wince 5.0 开发工具: vs C# 2008 SDK :.net compact framework 3.5 问题描述: 开始在windows xp 执行这段代码没有问题,能画图: &nb ...… 查看全部问答> |
|
一个划时代的伟大产品-超级硬件调试器横空出世 程序员中多年来一直流传着一种传说,除了市面上能够见到的为数不多的几种调试软件之外,还存在着一种神秘的硬件调试器,其功能强大无比。任何调试软件调不了的程序,硬件调试器都能搞 ...… 查看全部问答> |
|
PIC16单片机的C编译起哪儿下载?如何与MAPLAB一起使用? 找了很长时间,网上都没有PIC16单片机得C编译器(很多都是DEMO)。还有,如果有了这个单片机,如何在MAPLAB中使用这个编译器?… 查看全部问答> |
|
1.最近我用sci调试RS485的时候遇到一个怪现象: 有时候(不是全部,重新加载程序的时候一般都是)cpu明明有数据发出来,SCIRX,SCITX波形正常,可是485驱动芯片出来的两线信号发不出来,示波器只能看到负半波.只要我把与其通信的人机界面的通讯口拔出来 ...… 查看全部问答> |
|
MSP430Ware 入门介绍较以往其他版本,德州仪器 IDE CCS V5.1 程序更加简练有效,运行更加快捷,开发环境也更加直观。这里将着重介绍CCS v5.1一个新的组成部份- TI资源管理器(TI Resource Explorer)。TI资源管理器向客户提供一种直接简单的途径进 ...… 查看全部问答> |
|
/*来源于网络非原创*/ STM32-FSMC-LCD详解LCD有如下控制线: CS:Chip Select 片选,低电平有效 RS:Register Select 寄存器选择 WR:Write 写信号,低电平有效 RD:Read 读信号,低电平有效 RESET:重启信号,低电平有效 DB0-DB15:数据线 ...… 查看全部问答> |
|
最近车上的前阅读灯坏了,想用LED代替,又省电又明亮。 网上找了下关于AMC7135的电路,在计算供电电阻的时候发现一个小错误,分享出来免得大家碰到的时候浪费时间。 百度文库找了个文档,链接就不发了,百度一下很多的。这个是12V串三个的线路 ...… 查看全部问答> |




