单片机好创意:LED灯旋转时钟
时钟是人们生活中非常常见的物品,可以说是每天使用频率最高的物品之一。自从它被发明的那天起,就成为了人类的好朋友,随着科技的进步。人们从使用沙漏、水桶刻度开始粗略计时,到后面的机械发条时钟,再到先如今我们生活中随处可见的电子时钟。时钟的精度不断在提高,计时的成本不断减低。几乎是个消费电子产品,设计者都想给它加上个时钟功能。
LED旋转时钟
每个单片机爱好的心里都有一个时钟情结,搞起单片机都想着做一个时钟。这是因为时钟与单片机的工作节拍有关,学习单片机一般需要学会单片机的定时器。我们可以通过单片机的定时器定义出时钟需要的节拍,比如1毫秒。累计后就可以得到秒、分、时、日、月、年。所有做一个时钟对单片机爱好者来说不是什么难事。把摇摇棒的利用人眼滞留效应和时钟结合起来,大神门就发明了LED旋转时钟。
LED旋转效果
旋转LED的原理并不复杂,它是利用安装在高速旋转电机上的一条LED灯线旋转形成一个圆形的LED灯面。LED灯条在旋转到不同的角度时不同的LED亮灭,与前后时刻的LED状态形成图案显示在圆面上。一个圆面就是一个圆形的显示屏,旋转的LED灯就是圆形显示屏的像素点。在单片机上载入不同的图案,就能够显示不同的图案了。
LED旋转时钟原理图
可能大家会奇怪,LED灯条在高速地旋转,那么LED灯是怎么供电的呢?肯定不能像正常那样直接通过两根线给LED条供电,否则就旋转不起来了。能工巧匠参考了电机的电刷设计的下图的供电电刷,巧妙地解决了旋转过程中供电的问题。外部电刷作为LED灯条供电的正极,电机的转轴作为供电的负极。
LED旋转时钟供电电刷
控制方面选用了89C52单片机,出于降低旋转惯量的考虑,采用的是贴片是的芯片。时钟芯片选用DS1302经典时钟芯片,具有接口少,操作简单的特点。为了实现更酷的功能,加入了遥控功能,实现通过电脑上位机或者遥控器更改显示内容。为了使得转速控制更加均匀,在基板上增加控制系统控制电机的转速。通过黏贴在LED灯条上的霍尔传感器反馈电机的转速。
系统框图
原理图1
原理图2
动手做一个属于你自己的LED旋转时钟吧,相信自己可以的。
科技改变生活,关注搞搞单片机,增加生活乐趣。这里有单片机教程,有单片机好创意,有共同爱好的单片机达人。赶紧加入我们吧,一起搞搞单片机。
什么是什么单片机时钟?怎么设置
什么时钟?首先我们先讲讲什么是时钟。时钟就是单片机的心脏。每跳动一下。整个单片机的各个电路就同步的动作一下。就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234。。。。然后我们全部的同学就按照这个节奏进行一个个动作。节拍越快我们动作越快。节拍越慢我们动作的越慢。
内部时钟和外部时钟?
PIC单片机有许多型号可以设置成 用外部时钟(如外部接个4MHZ的石英晶振),也可以设置成用内部RC时钟。而且还有许多型号可以选择多种频率的时钟。
如 PICLF1823 内部时钟最高可以到达32MHZ 最低可以达到 31kHz. 这事实上提供了一条降低功耗的新路子。一般的单片机降低功耗常常用的睡眠,而睡眠期间CPU是什么都不做。如果希望降低功耗,而且CPU也能工作。降低时钟频率无疑是个非常好的选择。
时钟的设置?
时钟设置一般只和两处有关 一个是配置字,一个是振荡器控制寄存器 OSCCON 下面我们以PICLF1823为例子进行讲解。
PICLF1823 配置字设置 中与时钟有关的就是 FOSC<2:0>:振荡器选择位,和PLLEN:PLL使能位 。
OSCCON 是有关内部时钟频率选择,如果只用外部时钟一般不理会。以下是数据手册中OSCCON寄存器的详细介绍。
实例讲解:
使用内部时钟将时钟频率设置成8MHZ
开发环境:MPLAB X IDE
芯片型号:PICLF1823
#include
__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON&
CLKOUTEN_OFF&IESO_ON&FCMEN_ON);
__CONFIG(PLLEN_OFF&LVP_OFF) ;//将FOSC<2:0>:振荡器选择位设置成 INTOSC,
void init_fosc(void)
{
OSCCON = 0x70;//8MHZ IRCF<3:0>时钟频率选择位设置成8MHZ
}
int main(int argc, char** argv) {
init_fosc();
while(1);
}
PLL是用来做什么的呢?他的作用就是能将8MHZ的时钟频率X4变成32MHZ,记住只有8MHZ可以,其他频率是不行的。
使用内部时钟将时钟频率设置成32MHZ
开发环境:MPLAB X IDE
芯片型号:PICLF1823
#include
__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON
&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//这个要放到上一行去
__CONFIG(PLLEN_ON&LVP_OFF) ;//将FOSC<2:0>:振荡器选择位设置成 INTOSC,使能PLLEN
void init_fosc(void)
{
OSCCON = 0xF0;//32MHZ IRCF<3:0>时钟频率选择位设置成8MHZ ,使能4XPLL
}
int main(int argc, char** argv) {
init_fosc();
while(1);
}
相关问答
单片机的时钟 周期怎样计算(比如6MHZ的晶体振荡)_作业帮[最佳回答]如果是51单片机的话时钟周期是机器周期的12倍机器周期是晶振频率的倒数1/6MHz=1/6us那这样的就是51单片机的时钟周期就是12*(1/6us)=2us如果是51...
单片机 实现500KHZ 时钟 信号?500kz的时钟周期是2us在12M晶振的情况下,机器周期1us,不能用中断,因为进中断就要3个机器周期即3us就已经超出了时钟周期(另外退中断和高低电平切换也要花掉...
单片机时钟 频率为6MHZ,机器周期为多少是51单片机_作业帮[最佳回答]■\x09(1)振荡周期:也称时钟周期,是指为单片机提供时钟信号的振荡源的周期,一般实验板上为11.0592MHZ,12MHZ和24MHZ用的也比较多.■\x09(2)状态周期...
stc 单片机时钟 电路原理?时钟电路就是一个振荡器,给单片机提供一个节拍,单片机执行各种操作必须在这个节拍的控制下才能进行。因此单片机没有时钟电路是不会正常工作的。时钟电路本身...
单片机 定时的时间怎么改变?定时器实质是计数器。当计数脉冲周期一定时,就有定时功能。雅帆用水桶给你打个比方吧!一、向上计定时数器举例当一个255毫升的烧杯,提前放入155毫升水后,...1...
单片机 秒和分钟的进位是如何实现的?在单片机中,秒和分钟的进位通常通过计时器中断来实现。计时器会以固定的时间间隔触发中断,比如每秒触发一次。当计时器中断触发时,单片机会执行中断服务程序,...
单片机时钟 有哪些产生方式?单片机时钟产生方式主要有晶振、RC振荡器、DDS、PLL等方式。其中,晶振作为产生单片机时钟信号的主要方式,其具有稳定性高和频率精度高的特点,同时其成本也比较...
什么是 单片机的 数字 时钟 信号?单片机的数字时钟信号是指用于驱动单片机(微控制器)执行各种操作和计算的时钟信号。这些时钟信号通常由外部晶振或内部电路产生,并以固定的频率和周期性脉冲的...
在 单片机 电路中, 时钟 ,是指什么啊,看了很多资料,也听了很多好心人的解释,但是还是不知道- -?运算的时间基准,每条语句或功能都需要一定的时间来处理,就像CPU多少GHz就是代表其时钟,也代表了他处理数据的速度。运算的时间基准,每条语句或功能都需要一定...
单片机 里的 时钟 周期是什么意思?时钟周期就是单片机的时间,我们人类的常用的最小时间是秒,单片机的时间是微妙,每一个微妙执行一条指令,1秒钟可以执行很多程序,可以跑几圈了,没有时钟单片...