LED电脑电子钟电路及控制程序

发布者:梦中的额吉最新更新时间:2018-02-19 来源: eefocus关键字:电脑电子钟  控制程序  LED 手机看文章 扫描二维码
随时随地手机看文章

        本例介绍一种用LED制作的电脑电子钟(电脑万年历)。其制作完成装潢后的照片如下图:

上图中,年、月、日及时间选用的是1.2寸共阳数码管,星期选用的是2.3寸数码管,温度选用的是0.5寸数码管,也可根据个人的爱好选用不同规格的数码管。原理图如下图所示:

上图中,CPU选用的是AT89C2051,时钟芯片选用的是Dallas公司的DS1302,温度传感器选用的是Dallas公司的数字温度传感器DS1820,显示驱动芯片选用的是德州仪器公司的TPIC6B595,也可选用与其兼容的芯片NC595或国产的AMT9595。整个电子钟用两个键来调节时间和日期。一个是位选键,一个是数字调节键。按一下位选键,头两位数字开始闪动,进入设 定调节状态,此时按数字调节键,当前闪动位的数字就可改变。

 

 

全部参 数调节完后,五秒钟内没有任何键按下,则数字停止闪动,退出设定调节状态。源程序清单如下(无温度显示程序):

start:do;
$include(reg51.dcl)
declare (sclk,io,rst) bit at (0b3h) register; /* p33,p34,p35 */
declare (command,data,n,temp1,num) byte;
declare a(9) byte;
declare ab(6) byte;
declare aco(11) byte constant (0fdh,60h,0dah,0f2h,66h,0b6h,0beh,

0e0h,0feh,0f6h,00h);
declare week(11) byte constant (0edh,028h,0dch,7ch,39h,75h,0f5h,
2ch,0fdh,7dh,00h);
declare da literally'p15',clk literally'p16',ale literally'p17',
mk literally'p11',sk literally'p12';

clear:procedure;
sclk=0;io=0;rst=0;
end clear;

send1302:procedure(comm);
declare (i,comm) byte;
do i=0 to 7;
comm=scr(comm,1);
io=cy;
call time(1);
sclk=0;
call time(1);
sclk=1;
end;
end send1302;
wbyt1:procedure(com,dat);/*字节写过程*/

declare (com,dat) byte;
call clear;
rst=1;
call send1302(com);
call send1302(dat);
call clear;
end wbyt1;
wbyt8:procedure;/*时钟多字节突发模式写过程*/
declare j byte;
call clear;
a(7)=A(6);a(6)=a(0);
rst=1;
call send1302(command);
do j=1 to 8;
call send1302(a(j));
end;
call clear;
end wbyt8;

 

 

RBYT1:PROCEDURE;
DECLARE I BYTE;
CALL CLEAR;
RST=1;
call send1302(0c1h);
IO=1;
DO I=0 TO 7;
SCLK=1;
SCLK=0;
CY=IO;
N=SCR(N,1);
END;
A(8)=N;
CALL CLEAR;
END RBYT1;
send595:procedure;
declare k byte;
do k=0 to 7;
data=scr(data,1);
da=cy;
clk=1;
clk=0;
end;
end send595;

send595_1:procedure;
declare k byte;
do k=0 to 7;
data=scr(data,1);
da1=cy;
clk1=1;
clk1=0;
end;
end send595_1;

rb1:procedure(abc,j);
DECLARE (I,j,abc) BYTE;
CALL CLEAR;
RST=1;
call send1302(abc);
IO=1;
DO I=0 TO 7;
SCLK=1;
SCLK=0;
CY=IO;
N=SCR(N,1);
END;
ab(j)=N;
ab(j)=dec(ab(j));
CALL CLEAR;
end rb1;

 

 

rbyt6:procedure;
call rb1(0f1h,0);
call rb1(0f3h,1);
call rb1(0f5h,2);
call rb1(0f7h,3);
call rb1(0f9h,4);
call rb1(0fbh,5);
call rb1(0fdh,6);
end rbyt6;

wbyt6:procedure;
call wbyt1(8eh,0); /* write enable */
call wbyt1(0f0h,ab(0));
call wbyt1(0f2h,ab(1));
call wbyt1(0f4h,ab(2));
call wbyt1(0f6h,ab(3));
call wbyt1(0f8h,ab(4));
call wbyt1(0fah,ab(5));
call wbyt1(0fch,ab(6));
call wbyt1(8eh,80h); /* write disable */
end wbyt6;
rbyt8:procedure;/*时钟多字节突发模式读过程*/
declare (i,j) byte;
call clear;
rst=1;
call send1302(command);
io=1;
do j=1 to 8;
do i=0 to 7;
sclk=1;
call time(1);
sclk=0;
cy=io;
n=scr(n,1);

end;
a(j)=n;
end;
call clear;
a(0)=a(6);a(6)=A(7);
a(0)=a(0) and 0fh;
if a(0)>6 then a(0)=0;
CALL RBYT1;
if (a(1)=0 and a(2)=0 and a(3)=0) then
do;
do num=0 to 35;
call time(250);
end;
temp1=1;
end;
if temp1=1 then
do;
temp1=0;
ab(4)=ab(4)+1;
if ab(4)>99h then
do;
ab(4)=0;
ab(5)=ab(5)+1;
if ab(5)>99h then ab(5)=0;
end;
call wbyt6;
end;
end rbyt8;


display:procedure; /*jieya,yima,fasong*/
declare (i,n,m) byte;
n=a(0) and 0fh; /* send week */
data=week(n);
call send595;

n=a(4); /* send date */
n=n and 0fh;
data=aco(n);
call send595;
n=a(4);
n=shr(n,4);
data=aco(n);
call send595;

do i=1 to 3; /* send second,minute,hour */
n=a(i);
n=n and 0fh;
data=aco(n);
call send595;
n=a(i);
n=shr(n,4);
data=aco(n);
call send595;
end;
do i=5 to 6; /* send month,year */
n=a(i);
n=n and 0fh;
data=aco(n);
call send595;
n=a(i);
n=shr(n,4);
data=aco(n);
call send595;
end;

 

 

n=a(8); /* send 19 or 20 */
n=n and 0fh;
data=aco(n);
call send595;
n=a(8);
n=shr(n,4);
data=aco(n);
call send595;
do m=0 to 5;
n=ab(m);
n=n and 0fh;
data=aco(n);
call send595_1;
n=ab(m);
n=shr(n,4);
data=aco(n);
call send595_1;
end;
ale=0;
ale=1;
end display;

beginset:procedure;
a(0)=06h;a(1)=58h;a(2)=59h;a(3)=23h;
a(4)=30h;a(5)=06h;a(6)=97h;a(7)=00;
a(8)=19h; /* set date/time (1997,7,1,8:00:00,week 3) */
call wbyt1(8eh,0); /* write enable*/
call wbyt1(80h,00h);/* start colock */
call wbyt1(0beh,0abh);/*两个二极管与8K电阻串联充电*/
command=0beh; /* write colock/date */
call wbyt8;
call wbyt1(0c0h,a(8));
call wbyt1(8eh,80h); /* set write protect bit */
end beginset;

key:procedure;
declare (i,time1,k1,tem) byte;
call time(100);
k1=7;time1=30;
if mk=0 then
do;
do while time1>0;
week: if k1=0 then
do;
do i=0 to 5;
/* call hz(a(0)); */
end;
do i=0 to 3;
/* call hz0; */
end;
end;

tem=a(k1);
if k1=7 then tem=a(8);
a(k1)=0aah;
if k1=7 then a(8)=0aah;
call display;
call time(254);
call time (254);
a(k1)=tem;
if k1=7 then a(8)=tem;
call display;
call time(254);
call time(254);
call time(254);
time1=time1-1;
if mk=0 then
do;call time(100); /*MOD KEY PROCESS*/
TIME1=30;
IF MK=0 THEN
DO;
k1=k1-1;
DO WHILE K1=0FFH;
K1=7;
END;
END;
end;
IF SK=0 THEN
DO;CALL TIME(100); /*SET KEY PROCESS*/
TIME1=30;
IF SK=0 THEN
DO;
tem=tem+1;
tem=dec(tem);
DO CASE K1;
DO WHILE tem=7;/*week*/
tem=0;
END;
DO WHILE tem=60H;/*scond*/
tem=0;
END;
DO WHILE tem=60H;/*minute*/
tem=0;
END;
DO WHILE tem=24H;/*hour*/
tem=0;
END;
DO WHILE tem=32H;/*date*/
tem=1;
END;
DO WHILE tem=13H;/*month*/
tem=1;
END;
DO while tem=100h; /* YEAR */
tem=00;
END;
DO WHILE TEM>=21H;
tem=19H;
END;
END;
A(K1)=tem;
if k1=7 then a(8)=tem;
END;
END;
END;
END;
end key;

 

main$program:
mk=1;sk=1;temp1=0;num=0;p32=1;
if sk=0 then call beginset;
clk=0;da=0;ale=1;
loop:
do while mk=1 ;
if a(0)>6 then a(0)=0;
command=0bfh;
call rbyt8;
call display;
do while mk=0;
call key;
call wbyt1(8eh,0);
command=0beh;
call wbyt8;
call wbyt1(0C0H,A(8));
call wbyt1(8eh,80h);
end;
end;
goto loop;
end start


关键字:电脑电子钟  控制程序  LED 引用地址:LED电脑电子钟电路及控制程序

上一篇:基于BU9435的嵌入式MP3播放模块方案
下一篇:基于TI达芬奇技术的高速网络摄像机设计方案

推荐阅读最新更新时间:2024-05-03 02:29

RGB LED提供了便携式医疗设备需要的照明条件下的理想性能
Lumex SML-LX0404 QuasarBri te RGB LED 提供了便携式医疗设备例如生命体征监控器和急救设备需要的各种照明条件下的耐用性、持久性和高性能。 凑的 1.0mm x 1.00mm x 0.25mm 封装是目前用于 RGB LED 的最小尺寸,可让设计师为有限空间内的应用创造多色彩指示灯解决方案。除较低的能源需求和较高的视觉表现之外,这些装置让向各种设备的集成更为简单,能够帮助扩展 电池 驱动设备的操作范围。QuasarBright RGB LED 以不同表面贴装外壳尺寸提供,称为 SMLLX1206、SML-LX0805、SML-LX0603或 SML-LX0402 系列。 随着保健和治疗日益延
[医疗电子]
RGB <font color='red'>LED</font>提供了便携式医疗设备需要的照明条件下的理想性能
Diode 公司线性 LED 驱动器有效提升 LED 灯条效率
eeworld网消息,Diode 公司推出的 BCR401U、BCR402U 及 BCR405U 恒定电流稳压器,有助于简化商业及工业照明领域中低电流 LED 灯条和灯板的驱动作业,深获照明设计人员的青睞。这些稳压器是针对 12V 及 24V 线性 LED 灯条而设计,能够有效提升照明输出效率,因仅需 1.4V 电力,可增加灯条中 LED 数量。 本系列稳压器可实现 ±10% 的调节效果,提供 10mA (BCR401U)、20mA (BCR402U) 及 50mA (BCR405U) 等默认选项 (最高可调整至 100mA),能够简化设计,彻底减少组件数量,并藉由整合驱动器来增进整体系统的可靠性。这类新型光源结合LED 更佳
[电源管理]
大功率LED台灯六大优势
  台灯是我们日常生活中的必备品,几乎所有家庭都会有这么一盏,床头摆上一盏可以方便夜间活动,另外,书桌也是一个经常可以看到它的地方。而随着科技的不断进步以及人们生活水平的不断提高,台灯的功能和样式变得多元化,台灯从原本单一的阅读功能发展到现在,已经成了一般家庭的装饰神器。而在台灯的光源上,也不再是原本单一的白炽灯,目前市场上普遍存在的还有卤钨灯、荧光灯和LED光源台灯,而四款光源也是各有利弊,下面,我们就来介绍一下LED大功率台灯的特点。    1、效率高   大功率LED的发光效率已超过45 lm/W,更由于LED的光谱几乎全部集中于可见光频段,光效率远远大于白炽灯并正在赶上节能灯和荧光灯。   2、光线质量高
[电源管理]
PCA9685设计的16路12位LED驱动控制方案
本文介绍了PCA9685主要特性和优势,方框图以及典型应用电路图和LCD背光应用电路图.NXP公司的PCA9685是16路12位PWM不是Fm+I2C总线LED控制器,每个LED输出有它独立的12位分辨率(4096步)固定频率PWM控制器,工作频率从40Hz到1000Hz,占空比从0%到100%.工作电压2.3 V 到5.5 V,主要用在RGB或RGBA LED驱动器,LED状态显示器,LED显示器,LCD背光和手机或手持设备的键盘背光. 图1.PCA9685方框图 图2.PCA9685典型应用电路图 图3.PCA9685 LCD背光应用电路图
[电源管理]
PCA9685设计的16路12位<font color='red'>LED</font>驱动控制方案
LED背光驱动有讲究:电流能力与电流平衡至关重要
对于讲究节能减碳的这个时代而言,发光二极管(Light-Emitting Diode, LED )已经是广为使用的一种光源,因为其具有相当优良的发光效率以及精巧的组件体积,且LED的电光转换效率相当的好,高于日光灯、冷阴极管(CCFL)或是灯泡等,所以当前之趋势为以LED来取代上述这些发光源。举例来说,现代的液晶屏幕(LCD panel),大都以 LED 来取代以往的CCFL来当作背光,LED几乎已经取代CCFL,成液晶面板(LCD panel)的 背光 光源。 通嘉推出背光驱动IC——LD7890主要为升压拓扑架构,可驱动4 Channel LED light bar, 10V MOSFETDRV输出电压,高转换效率,外置4 C
[电源管理]
<font color='red'>LED</font>背光驱动有讲究:电流能力与电流平衡至关重要
详解:超低压差LED驱动让LED显示屏节能32.8%
  LED显示屏为什么能够得到广泛使用,总结的原因有以下几点:   1. 可延展性:LCD屏做的越大,生产线设备投入越高。而LED显示屏尺寸的增大是很容易的,就像搭积木一样。分辨率也方便根据用户需求实现。   2. 全彩:灯泡,霓虹灯等都是单色的,LED实现了RGB三原色的组合。   3. 可靠性高:LED是固体照明,可靠性高,不像霓虹灯管,灯泡之类的需要真空管的。   4. 寿命长:LED芯片理论寿命可以达到10万小时,实际使用寿命在3万小时以上   5. 环境友好:LED本身是节能无污染的产品   LED目前遇到最大的问题是散热,LED显示屏也是一样。LED显示屏的功耗很大,相当一部分能源浪费在发热上。发热会带来以
[家用电子]
详解:超低压差<font color='red'>LED</font>驱动让<font color='red'>LED</font>显示屏节能32.8%
LED背光技术加快成熟 液晶膜片集成度更高
近一两年的液晶行业可以用跌宕起伏来形容。在金融危机的影响下,大家经历了减价减量的大萧条,又逐渐进入量价齐升的产业复苏。每次危机复苏都会伴随着新技术、新增长点的出现,这次也不例外。在厂家进行更为严格的成本控制的同时,我们看到了新技术、新应用以及高附加值的产品引发了新的市场需求。以液晶背光源为例:在笔记本背光中,原有的冷阴极系统被替换成轻薄的LED系统;在显示器背光中,传统的四灯管结构被节电一半的两灯管结构所替代;在电视中,动态背光的日趋成熟提供了更高的对比度和用电效率。    更为可喜的是,在此轮技术革新的风潮中我们看到了很多中国厂家的身影,这反映出已经有更多的中国企业参与到液晶产业链当中。    LED应用给背光带来颠
[电源管理]
消息称苹果Micro LED项目已投入数十亿美元 放弃后大部分员工将被裁
据媒体报道,苹果放弃已投资数十亿美元的Micro LED屏幕项目,团队少量成员会转岗到其他部门,而大部分会被裁员。 有爆料者称,苹果目前已经放弃寻找新的供应商,并且已经开始重组Micro LED开发工程团队。 而在此之前,苹果公司已投资数十亿美元开发Micro LED屏幕,计划首先在Apple Watch Ultra手表上使用。 今年2月,苹果供应商之一的欧司朗曾发布公告,宣布客户的一个“基石项目”意外被取消,市场研究机构Counterpoint Research认为就是用于Apple Watch的Micro LED屏幕项目。 3月初,分析师郭明錤曾发文称,欧司朗是苹果的Micro LED独家供应商,苹果与其取消合作,意味着已经没
[电源管理]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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