简介:在51单片机开发板上,用定时器做了一个流水灯程序,调整非常灵活,很实用拿出来和朋友们一起分享
#include
unsigned char sz[]={
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xbf,0xdf,0xef,0xf7,
0xfb,0xfd,
};
void main()
{
unsigned char cnt = 0; //声明定时器并赋值
unsigned char sec = 0; //声明计数器并赋值
TMOD = 0x01; //设置定时器模式为1
TH0 = 0xb8; //高位定时器并赋初值
TL0 = 0x00; //低位定时器并赋初值
TR0 = 1; //打开定时器
while (1)
{
if (TF0 == 1)
{
TF0 = 0; //定时器溢出后清零并赋初值
TH0 = 0xb8;
TL0 = 0x00;
cnt++;
if (cnt>=5) //改变数值可改变流水灯流动速度
{
cnt = 0;
P1 = sz[sec];
sec++;
if (sec>=14) //数组里有多少个元素就写多少数
{
sec = 0;
}
}
}
}
}
这是一个左右循环的程序,如果想要其他花样只需改变数组里元素排列顺序即可,很好玩的,也很简单。
关键字:定时器 流水灯 51单片机
引用地址:
用定时器做的流水灯
推荐阅读最新更新时间:2024-11-08 13:43
STM32 定时器产生PWM彻底应用
这次学习STM32花了很长时间,一个礼拜多,也有颇多收获,学习过程也有颇多曲折。这次的任务是:用STM32的一个定时器在四个通道上产生四路频率可调占空比可调的PWM波。 看到这个题,我先看STM32的数据手册,把STM32的定时器手册看完就花了一天,但是看了一遍任然不知道所云,就看库函数,略有点理解,就想一哈把这个程序调出来,于是就花了一天多时间仿照网上别人的程序来写,花了一天多写出来调试,结果行不通,做了无用功,于是静下心来想想,还是一步一步的来。 我先用STM32的通用定时器用PWM模式产生四路相同占空比,不同频率的PWM波,配置如下: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,E
[单片机]
PIC单片机入门_定时器/计数器TMR0详解与实例
1.前言: PIC 系列单片机内部配备有数量不等的定时器/计数器模块:例如PIC17CX系列和PIC18CX系列都都配置了4个定时器/计数器模块;而PIC16F87X系列都配置了3个定时器/计数器模块,分别记为TMR0、TMR1和TMR2。 TMR0、TMR1和TMR2在电路上均不相同,而且用途也各有所异,但是三者也存在许多共同之处。这里主要介绍的是TMR0,TMRl和TMR2将在后面介绍。 其实定时器都是一个由时钟信号触发的递增的计数器;都是从预先设定的初始值开始累计,在累计数超过最大值,或者超过预先设定的值时便产生溢出,并同时会建立一个相应的溢出标志(即中断标志位)。 2.TMR0的特性 ①核心部分是一个8位宽
[单片机]
STM32如何设置定时器
STM32如何设置定时器 下面以stm32的TIM2作为实例一步步配置成为定时器: 第一种 对定时器的基本配置 TIM_TimeBaseStructure.TIM_Period = 1000; //设置自动装载寄存器 TIM_TimeBaseStructure.TIM_Prescaler = 35999; //分频计数 TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //选择向上计数 TIM_TimeBaseInit(TIM2, &TIM_TimeBase
[单片机]
基于51单片机的1602+ADC0832烟雾报警系统
本设计基于51单片机,共有ADC0832数模转换模块,1602液晶显示模块,按键控制与声光报警模块4大模块组成!可实现对烟雾浓度的实时监测与反应 之后是仿真目录 下面是部分代码,想要了解,可以下载文末完整附件! //基于1602+ADC0832的烟雾/温度报警系统 //作者:科技小宅神 //创作时间:2020/09/20 //版权:科技小宅神原创!抄袭必究,仅供参考学习! #include reg51.h //包含51单片机寄存器的头文件 #include 1602.h //调用1602.h文件 #include intrins.h //包含_nop_函数定义的头文件 #define uchar unsigned char #
[单片机]
STM32CubeMX系列教程3:基本定时器
这一章我们在前一章GPIO的工程修改。复制GPIO的工程,修改文件夹名。点击 打开STM32cubeMX的工程文件重新配置。开启定时器TIM3,选择内部时钟。 定时器就相当于单片机的闹钟,下面我们以基本定时器为例简单介绍一下定时器。 从上图我们可以看到,基本定时器主要由下面三个寄存器组成。 计数器寄存器 (TIMx_CNT) 预分频器寄存器 (TIMx_PSC) 自动重载寄存器 (TIMx_ARR) 计数器寄存器 (TIMx_CNT)存储的是当前的计数值。预分频器 (TIMx_PSC)为多少个SK_PSC脉冲计数一次,如图192 预分频器的值为1(预分频寄存器默认为0,为不分频),则为两个脉冲计数一次。即为二
[单片机]
51单片机循迹小车Proteus仿真程序
51循迹智能小车仿真电路及程序 仿真原理图如下 单片机源程序如下: #include reg52.h #define uchar unsigned char #define uint unsigned int uchar temp,signal,tt1,t0,t1,t2,t3,t4,t5,t6; void delay_1ms(uint d) { uint i; while(d--) for(i=0;i 75;i++); } void motor_run() //电机起动 { P1=0x35; delay_1ms(200); P1=0x53
[单片机]
基于stm32f103zet6的定时器的学习1(理论知识)
之前就听到网友说定时器这部分比较复杂,难搞,实验室里有个同学也搞了一段时间,不过它属于哪种专研型的人!学着学者,我也来到了定时器这章。 在网上查看了一下,也翻阅了一些书籍,高级定时器,通用定时器,普通定时器这三种就从通用的开始学吧! 一、首先还是将定时器框图分解一下吧,那么令人窒息的框图着实让人恐怖!虽然窒息,但是还是有必要贴上去! 对上面框图中的寄存器名字解释如下 TIMx_ETR:TIMER外部触发引脚ETR:外部触发输入ETRP:分频后的外部触发输入ETRF:滤波后的外部触发输入 ITRx:内部触发x(由另外的定时器触发)TI1F_ED:TI1的边沿检测器。TI1FP1/2:滤波后定时器1/2的输入 TRGI:触发
[单片机]
MCS-51单片机与无线调制器的应用
GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和方法
[单片机]