用PIC16C54做一个LED电子钟

发布者:EtherealJourney最新更新时间:2015-04-24 来源: laogu关键字:PIC16C54  LED  电子钟 手机看文章 扫描二维码
随时随地手机看文章
     对于很多电子爱好者来说,自己制作一款LED的电子钟,是很有意思的一件事情,LED的

电子钟虽然耗电一点,但在夜间也不用打开照明就可以看得清清楚楚,还是很方便的了.

     PIC16C54内部有512字节(准确的说是可以放512条指令)的指令空间,对于电子钟的

应用项目来说,资源已经足够了.它具有12个I/O口,刚好可以用来做一个四个数码管的电

子钟.其中PORTA口用作位码输出,PORTB用作段码输出和按键输入.

    54内部有一个8位的定时器,但没有中断溢出功能,对于用惯了中断的人来说,可能觉

得定时基准不好做,比如51系列的,只要设定好中断溢出时间,一般取整数指令周期,如每

次溢出时间为50mS,每次溢出时累加器加一,当加到20次时就有1S了,很方便进行系统时钟

的处理.但PIC16C54没有中断功能,只能用判断定时器溢出的方式来确定定时器的定时.判

断定量器溢出可以采用比较的方式,当采集到TMR0的计数值为0-5时,可以认为定时器溢出

了,另一种方式是测试TMR0的最高位是否为1,也就是把TMR0当作7位定时器来用,这样,就

不会出现前一种方式由于程序错过捕获到TMR0的值为0-5的时机而使定时出现误差了.比

较好的方法是用一个存储器X0跟踪TMR0的计数值,在正常情况下,X0总是会小于TMR0的计

数值,因为在读取TMR0的值并把这个值赋值给X0之后,TMR0的计数值又在累加了,但TMR0是

一个循环计数器,当加到255后,其值将会变为零,这样就为判断TMR0提供了依据,即只要测

试到X0>=TMR0,即可认为TMR0已经溢出,这样就可以进行相应的处理了.如时钟频率为

4MHz,则一条指令的执行时间为1uS,TMR0溢出对应于256uS,当测试到TMR0溢出之后,不对

TMR0进行任何赋值操作,因为对TMR0进行写入,会使TMR0延迟三个指令周期,而每次往

TMR0写入的时候,不可能它的计数值都是同一个值,所以只能采用加一个预定值的方法,如

果TMR0不采用分频器,则对TMR0执行 TMR0=TMR0+9的操作,将使每次TMR0的计数溢出周期

等效为250个指令周期,也就是250uS,需要注意的是,每次读入TMR0的值与X0进行比较时的

时间间隔一定不能大于TMR0的溢出时间,否则错过溢出时刻.判断TMR0溢出的最短指令为:

       MOVF TMR0,W

       SUBWF X0,F

       MOVWF X0

       SKPC

       GOTO 没有溢出...

       溢出处理...

   对应的C语言语句为:

       i=TMR0;

       x0=x0-i;

       x0=i;

       if(CARRY) 

          {TMR0+=9;
          } 
   这里借用了一个临时存储器i,如果没有它,则语句编译不会最短,程序执行会了出错

,不能保证每次溢出为250uS.

     如果选用32768晶振的话,程序的设计上,不需要再对TMR0作任何写入,只需用上述程

序判断TMR0溢出就可以了.因为TMR0每次溢出的时间为0.03125秒,再对其进行32分频即可

得到秒信号了.

     这样,整个程序的核心部分就完成了,剩下的应该不难写出来.

关键字:PIC16C54  LED  电子钟 引用地址:用PIC16C54做一个LED电子钟

上一篇:PIC单片机原理
下一篇:PIC16C5X的低功耗模式

推荐阅读最新更新时间:2024-03-16 13:59

PIC12F508单片机用按键控制LED灯C语言程序
#include htc.h #include main.h __CONFIG(MCLRDIS&WDTDIS&UNPROTECT&INTRC); //设置配置位(MCLR脚复位禁止,看门狗关,无代码保护,内部RC振荡) uint count=0; uchar Key_Flag=0; void Delay_US(uchar delay) { while(delay--); } void Delay_Ms(uchar delay) { uchar i; while(delay--) { for(i=0;i 165;i++); } } void Delay_Sec(uchar delay)
[单片机]
GPIO-点亮一个LED(JZ2440-S3C2440)
1、看电气原理图 GPF4--------(GPFCON =01; GPFDAT =1) GPF4引脚输出1(高电平):LED1灯灭。 GPF4引脚输出0(低电平):LED1电亮。 2、如何让引脚输出高/低电平 (1)配置引脚功能(2)输出引脚:写值到某个寄存器;输入引脚:读寄存器的值。 3、看芯片手册 GPIO包括A----J组。 这里要用到GPF组的寄存器: GPFCON寄存器:用来配置引脚的功能; GPFDAT:引脚的值。 GPFCON寄存器的可以设置引脚的功能为:输入、输出、中断和保留功能。 GPFDAT寄存器: 4、编写程序:GPFCON的地址为0x56000050。G
[单片机]
GPIO-点亮一个<font color='red'>LED</font>(JZ2440-S3C2440)
内田洋行发表用于MRI检查室的直管型LED照明
    近日,日本内田洋行开发出了首款用于核磁共振(MRI)检查室的直管型LED照明,与原来在MRI检查室内使用的卤素灯相比,功耗可削减70%,照度增至2倍。     内田洋行介绍,MRI检查室的照明之前大多采用卤素灯,主要是因萤光灯镇流器发出的噪声会影响到MRI装置。但卤素灯存在容易发热且功耗高等问题。因此,MRI检查室一直希望能有发白色光的明亮光源。      此次上市的LED照明将电源部分与器具分开,电源部分被设置在了检查室外。从而将噪声对MRI检查室内的影响降至最小限度。同时,灯具采用非磁性材料,在具有强磁场的地方也可放心使用。      同时,新的直管型LED照明的色温有3000K(灯泡色)、4000K(白色
[电源管理]
便携设备LCD背光LED驱动方案简述
进入二十一世纪,能源消耗日益成为整个人类社会关注的焦点。出于对于照明的基本需求,如何更有效的利用各种能源产生更多的照明,成为探索新的照明技术的巨大驱动力。从原始的燃料照明到白炽灯,从荧光灯到各种发光材料的探索,催生出LED照明技术。在如今社会,各种媒体设备照明环境需求的差异化,进一步促进了人类探索如何利用各种高亮度LED进行照明。LED在照明方面的应用已经吸引广泛关注。 LED基本原理及性能特点 首先我们来介绍一下LED的基本原理以及性能特点。LED的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。发光二极管的核心部分是由p型半导体和n
[电源管理]
便携设备LCD背光<font color='red'>LED</font>驱动方案简述
Catalyst针对大功率LED推出新款驱动器
Catalyst半导体针对建筑物、景观照明、汽车和通用LED照明应用,提供一款新型、简单易用、大功率组件。CAT4101是一款线性、定电流LED驱动器,为各式LED应用提供驱动长串LED并提供高电流解决方案。 该公司表示,由于CAT4101是一款线性LED驱动,因此不再需要电感器,可消除电感产生的噪声,减少组件数量和简化设计。LED电流透过一个外部电阻设置连接到RSET接脚,LED引脚兼容达25V高电压,使CAT4101可驱动串行式达10个LED。其电流可调为1A,该组件提供高速,高分辨率的PWM调光,实时PWM控制模式和发生过温故障情况时提供过热关机保护。 CAT4101是一款5接脚,TO-263封装产品,目前已
[电源管理]
TX2440裸机程序之-LED
一、GPIO说明 GPIO(General Purpose I/O ports)即通用输入/输出口。我们在实际应用中,不管是接LCD、接键盘,控制流水灯等等应用,都离不开对I/O的操作。可以说,GPIO的操作是所有硬件操作的基础。 S3C2440共有130个I/0端口,共分九组,分别为:GPA、GPB、...、GPJ。我们可以通过寄存器来操作这些IO。S3C2440共有三种寄存器,分别为GPxCON、GPxDAT、GPxUP。GPxCON用于选择引脚功能;GPxDAT用于读/写引脚数据;GPxUp用于确定是否使用内部上拉电阻。需要注意的是,A组没有GPAUP寄存器,即A组I/O口无上拉电阻选择功能 1、GPxCON
[单片机]
TX2440裸机程序之-<font color='red'>LED</font>
STM32点亮led的详细步骤
STM32 点亮LED灯的步骤1:先是在点亮LED灯那个引脚使能,相当于修路,比如是PIN5引脚,就要使能对应的GPIO。使能函数是 控制一个固件发挥作用:第一步就是把它对应的总线时钟使能,第二步配置对应的结构体里的成员,第三部调用函数初始化对应的寄存器地址,最后一步控制输入输出条件(设置高低电平) /*GPIO配置使用步骤 1.使能 RCC_APB2PeriphClockCmd( RCC_APB2Periph_外设名,ENABLE); 第一个参数是挂载在APB2总线下面的外设 第二个参数是允许(ENABLE)或不允许(DISABLE 然后就是配置引脚的工作方式,这是要配置的,配置的函数如下: 2.定义GPIO配置结
[单片机]
OK6410裸机汇编:1th_led
start.S文件: .globl _start _start: 1、硬件相关的设置: 把外设的基地址告诉CPU,因为内存和外设寄存器的访问方式不同,所以要告诉CPU外设地址范围: 0 ~ 0x6fff ffff为内存的地址空间,0x7000 0000 ~ 0x7fff ffff为外设寄存器的地址空间 ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15,0,r0,c15,c2,4 @ 256M(0x70000000-0x7fffffff) 2、关看门狗 ,往WTCON(0x7E004000)写0 ldr r0, =0x7E004000 mov r1,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved