单片机数字时钟原理

作者&投稿:索竿 (若有异议请与网页底部的电邮联系)
求单片机设计数字时钟的原理图及对应程序,~

原理图就不给你画了,下面是我根据89c51做的一个汇编程序,每1/20秒进入计时中断0,p0输出共阴极数码管码,p2.7\6\5控制6个数码管进行动态显示。程序可以运行,当然,后来也有改进版的,可惜不记得放哪了,将就着用吧
org 0000h
ajmp main
org 0003h
ajmp zhongduan0
org 000bh
ajmp jishi1
org 0013h
ajmp zhongduan1
org 001bh
ajmp jishi0
org 0100h
main:
mov 0a8h,#8fh ;开中断
mov 0b8h,#00h ;设优先级
clr it0
clr it1
mov 89h,#11h ; 开计时器
clr tr1
clr tr0
mov tl1,#0afh
mov th1,#3ch
mov tl0,#0afh
mov th0,#3ch
mov r3,#5ah
mov r4,#00h
mov 32h,#14h
mov r5,#5ah
mov r6,#00h
mov 42h,#14h
mov r0,#5ah
mov r1,#51h
ajmp xianshi

xianshi:
mov dptr,#zhuangma
mov a,r3
mov b,#0ah
div ab
movc a,@a+dptr
mov p0,#0ffh
mov p2,#0e0h
mov p0,a
mov a,b
movc a,@a+dptr
mov p0,#0ffh
mov p2,#0c0h
mov p0,a

mov a,r4
mov b,#0ah
div ab
movc a,@a+dptr
mov p0,#0ffh
mov p2,#0a0h
mov p0,a
mov a,b
movc a,@a+dptr
mov p0,#0ffh
mov p2,#80h
mov p0,a

mov a,r5
mov b,#0ah
div ab
movc a,@a+dptr
mov p0,#0ffh
mov p2,#60h
mov p0,a
mov a,b
movc a,@a+dptr
mov p0,#0ffh
mov p2,#40h
mov p0,a

mov a,r6
mov b,#0ah
div ab
movc a,@a+dptr
mov p0,#0ffh
mov p2,#20h
mov p0,a
mov a,b
movc a,@a+dptr
mov p0,#0ffh
mov p2,#00h
mov p0,a

ajmp xianshi

zhongduan0:
clr tr0
setb tr1
reti
zhongduan1:
clr tr1
setb tr0
reti
jishi0:
mov tl0,#0afh
mov th0,#3ch
djnz 32h,on5
mov 32h,#14h
cjne r4,#00h,loop1
cjne r3,#00h,loop2
clr ea
reti
loop1:mov a,#01h
xch a,r4
subb a,r4
xch a,r4
reti
loop2:mov a,#01h
xch a,r3
subb a,r3
xch a,r3
mov r4,#3ch
reti

jishi1:
mov tl0,#0afh
mov th0,#3ch
djnz 42h,on5
mov 42h,#14h
cjne r6,#00h,loop3
cjne r5,#00h,loop4
clr ea
reti
loop3:mov a,#01h
xch a,r6
subb a,r6
xch a,r6
reti
loop4:mov a,#01h
xch a,r5
subb a,r5
xch a,r5
mov r6,#3ch
reti
on5:reti
zhuangma:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh
end

tmod=0x01;
//启用定时器工作模式1
th0=(65536-50000)/256;//装定时器初值高8位,50ms中断一次
tl0=(65536-50000)%256;//装定时器初值低8位,50ms中断一次
ea=1;
et0=1;
tr0=1;
void
int0()
interrupt
1
//这是中断函数
{
unsigned
char
i;
i++;
if(i==5)//判断是否到了50*5=250ms
i=0;//若到了,得清0
}

给你个程序看看,主要是看时分显示哪里!这个程序已经调试通过了,在走时的同时流水灯进行流动,时分之间有一个小数点作为分隔。还有整点报时功能,在早上八点到中午十二点以及下午三点到晚上八点两个时间段内逢整点报时,其他时间不报时(是因为考虑到人们要午休及晚间休息),除此之外还有调时、调分功能。整个程序基于单片机AT89S52(可用C51、C52、S51等代替)。

#include <reg52.h>
#define uint unsigned int
sbit P3_0=P3^0;
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P3^4;
sbit K4=P3^5;
uint count,min,hour,i,j=0;
uint code tab1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint code tab2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
uint code tab3[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0x00,0xff,0x00,0xff,
0xfe,0xfb,0xef,0xbf,0xfd,0xf7,0xdf,0x7f,0x7e,0x3c,0x18,0x00,0x81,
0xc3,0xe7,0xff,0xe7,0xdb,0xbd,0x7e,0xff,0x7e,0xbd,0xdb,0xe7,0xff,
0x00,0xff,0x00,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,
0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0x00,0xff,0x00,0xff,0xfe,0xfc,
0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,
0xff,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,0x00,0xff,0x00,0xff};//流水灯

void adjust(void)
{
if(!K3) //分调整
{
for(i=0;i<20000;i++);min++;
if(min==60)min=0;
}
if(!K4) //时调整
{
for(i=0;i<20000;i++);hour++;
if(hour==24)hour=0;
}
}

void display(void)
{
P0=tab1[min%10];P2=0xf7;for(i=0;i<5;i++);P2=0xff;//分个位显示
P0=tab1[min/10];P2=0xfb;for(i=0;i<5;i++);P2=0xff;//分十位显示
P0=tab2[hour%10];P2=0xfd;for(i=0;i<5;i++);P2=0xff;//时个位显示
P0=tab1[hour/10];P2=0xfe;for(i=0;i<5;i++);P2=0xff;//时十位显示
}

void ring(void)
{
if(hour/10==0&&(hour%10>=8&&hour%10<=9))P3_0=0;//早上7:00到晚上7:00自动整点报时,其中13、14点不报时
if(hour/10==1&&(hour%10>=0&&hour%10<=2))P3_0=0;
if(hour/10==1&&(hour%10>=5&&hour%10<=9))P3_0=0;
}

void update(void)
{
if(count==1200)
{
count=0;min++;
if(min==60)
{
min=0;hour++;
if(hour==24)hour=0;
ring();
}
}
}

void main(void)
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
ET0=1;
while(1)
{
if(count==120)P3_0=1;//报时六秒后自动关闭蜂鸣器
adjust();
display();
}
}

void timer0_rupt(void) interrupt 1 // 定时器0中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count%10==0)
{
P1=tab3[j];
j++;
if(j>99)j=0;
}
update();
}

wo
可以

什么


基于MCS-51单片机的数字时钟系统设计
利用MCS-51单片机的汇编指令或C51编写程序.用DS1302做的时钟芯片,我要设计原理图和程序.我邮相是13721059129@139.com因为是做多路时钟 而51单片机只能做两路 所以要用到DS1302时钟芯片 :(1)具有时钟和日历的显示和调整功能,并可互相切换,时钟以24小时制控制时间;(2)具有闹钟功能,并设有闹钟启用标志;(3)具有多...

利用CPU的定时器定时,设计一个电子时钟
(1)电路原理和器件选择本实例相关的关键部分的器件名称及其在数字钟电路中的主要功能:89S52:单片机,控制LED的数据显示。LED1--LED6:用于显示单片机的数据,其中三个采用7段显示用于显示时、分、秒的十位,另三个采用8段显示用于显示时、分、秒的个位。74LS273:锁存器,LED显示扩展电路中的段码和位码使用了两...

求一个纯硬件数字电子时钟的电路图
选50Hz时接Vss、选60Hz时悬空。27 CR输入。停电后自动由电池供电时,片子内部的时钟振荡器立刻工作,代替50\/60Hz输入,控制时间计数器继续计时,但不显示,来电时自动转为交流供电,恢复显示。在CR输入端接的R和C的数值,决定片内时钟振荡器频率。28 12\/24小时选择,接Vss显示24小时格式。

时钟频率的来龙去脉
早期主板上内存总线时钟信号也是由频率合成器产生的,不过较新的主板已经撇开了主板上的频率合成器芯片,而由北桥芯片完成内存总线时钟频率的设定,这在业界被称作“内存异步”。与CPU频率的自动设置原理相似,北桥芯片内的频率合成器也是通过一定的手段实现自动设置频率的。内存的频率由内存条上的SPD(Serial Presence Detect...

影钟是什么
投影仪是一种用来放大显示图像的投影装置。目前已经应用于会议室演示以及在家庭中通过连接DVD影碟机等设备在大屏幕上观看电影。在电影院也同样已开始取代老电影胶片的数码影院放映机,被用作面向硬盘数字数据的银幕。说到投影仪显示图像的原理,基本上所有类型的投影仪都一样。投影仪先将光线照射到图像显示...

数字电子钟可设报告
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。单片机具有体积小、...

大学数字电子技术的课程设计:数字式电子钟的设计或交通灯控制电路设计...
(1) 数字时钟基本原理的逻辑框图如下图3所示: 由图3我们可以看出,振荡器产生的信号经过分频器作为产生秒脉冲,秒脉冲送入计数器,计数结果经过“时”、“分”、“秒”,译码器,显示器显示时间。其中振荡器和分频器组成标准秒脉冲信号发生器,由不同进制的计数器,译码器和显示电路组成计时系统。秒信号送入计数器进行...

钟表为什么放上电池指针就会走这是什么原理
这种物理现象称为“压电效应”。当在石英晶片的极板上接上交流电场。当外加交变电压的频率与石英晶片的固有频率相等时,就会产生共振。这种现象称为“压电共振”。利用这种稳定的振荡特性,人们就创造出了精度极高的电子表和石英钟。电子表可分为数字式石英电子手表、指针式石英电子手表及自动石英表和光...

数字电子技术课程设计---数字显示电子钟
《数字钟设计报告》指导老师:姓名:学号:电子设计 一、 引言 大屏幕数字钟套件采用6位数字(二十四小时制)显示,格式为“时时:分分:秒秒”,电路板尺寸为330MM*70MM,是以前大屏幕数字钟的改进版,解决了以前大屏幕数字钟显示数字“6”和“9”不美观的现象;解决了发光二极管引脚焊盘间距过大容易...

石英钟原理
自40年代以来,它一直是这些设备中的重要频率基准元件。更具体来说,石英晶体的一个独特之处在于,当在两侧交替导入正负电流时,它会根据这种振荡特性计时。例如,在个人电脑中,内置的石英晶体每秒钟能振荡1431万8180次。这就是石英钟运作的基本原理,它依赖于晶体的精确振荡来保持时间的精准度。

惠水县13035624812: 单片机数字时钟原理 -
锁步怡那: 给你个程序看看,主要是看时分显示哪里!这个程序已经调试通过了,在走时的同时流水灯进行流动,时分之间有一个小数点作为分隔.还有整点报时功能,在早上八点到中午十二点以及下午三点到晚上八点两个时间段内逢整点报时,其他时间...

惠水县13035624812: 单片机时钟电路的工作原理 谁知道啊? 能告诉我吗/ 谢谢 -
锁步怡那: 原理就是一个振荡器

惠水县13035624812: 基于单片机的电子时钟 -
锁步怡那: 去百度文库,查看完整内容> 内容来自用户:啊宝1688 绪论 单片机在多功能数字电子钟中的应用已是非常普遍,人们对电子时钟的功能及工作顺序都已非常熟悉了,但是却很少知道它的内部结构以及工作原理.由单片机作为电子时钟的核心控...

惠水县13035624812: 时钟电路的工作原理以及作用是什么?菜鸟求解释 -
锁步怡那: 时钟电路的工作原理是单片机外部接上振荡器(也可以是内部振荡器)提供高频脉冲经过分频处理后,成为单片机内部时钟信号,作为片内各部件协调工作的控制信号.作用是来配合外部晶体实现振荡的电路,这样可以为单片机提供运行时钟. ...

惠水县13035624812: 51单片机 用按键设定时钟时间的原理 -
锁步怡那: 给你个思路.程序自己写 void intterupt0(void) interrupt 0 { while(k4==1){if(k1==0){delay(10);while(k1==0);p++;}else if(k2==0){delay(10);while(k2==0);*p=*p++;}else if(k3==0){delay(10);while(k3==0);*p=*p--;}DISPLAY(); //显...

惠水县13035624812: 单片机上的计时器是如何实现的? -
锁步怡那: 这是数字电路的知识,如果要得到根本的回答可能要涉及到比较广的范围,那我就从逻辑门电路开始说起吧,逻辑门电路是一种半导体材料做成的电子器件,其工作原理可以参考模拟电路这一本书.它可以通过输入不同的高低电平来输出高\低电...

惠水县13035624812: 单片机系统中时钟电路,复位电路,是如何工作的 -
锁步怡那: 简单说时钟电路就是个振荡电路,然后是分频或者倍频电路,得到所需要的时钟信号; 复位电路,看外部电路,包括上电复位,手动复位,主要是产生个低电平(或者高电平)信号.在内部,监控程序(由厂家写入的)侦测到这个信号后,就去执行寄存器、RAM、端口等等的清零工作,然后再跳转到用户程序,实现控制权的移交;

惠水县13035624812: 明天就要毕业答辩了,帮忙解释下这个单片机电子钟原理图,谢谢!详细点,把问题都回答下谢谢!!!十分. -
锁步怡那: 电路原理:就是单片机产生4位二进制码(BCD码),通过74L147 解码后送给给led显示0~9的数字(低电平有效),然后通过74L138进行led段选(单片led的片选信号),这就构成了led扫描显示,利用人眼的视觉效应就能看清显示的数字.74L147是BCD码到7段解码器,是单片机输出变得很简单,74L138是译码器,能节约单片机I/O口.工作原理:就是通过编程在单片机内写入相应代码(时钟秒程序可用一个定时器T0实现,然后循环扫描键盘信号),当相应的案件被按下,单片机就输出相应的数据

惠水县13035624812: 用单片机制作的时钟能实现什么功能 -
锁步怡那: 时间,日期,星期,定时闹钟(可选铃声),定时提醒,报时,可以说,实现一个万年历的功能都是没问题的.最重要的是你怎么编程吧,还有一个是看你用什么显示的,比如说数码管,可能会麻烦一点.显示也不是很直接,建议你使用液晶来显示,用起来方便.补充一下哦,如果只是用单片机内部的定时器的话,完成之后可能精确度不是说特别高

惠水县13035624812: 第一次弄单片机,想实现一个数字时钟 -
锁步怡那: 做电子时钟,首先要设计电路啊,是用数码管显示,还是用LCD屏显示.要做实物还要焊接板子.这些电路做完了,才开始写程序的.没有电路是不好写程序的. 至于时钟就好写了,用定时器定时20ms,或50ms,采用中断方式,然后对中断计数,中断50次,或20次就是1秒. 有了1秒,就好办了,计60秒,为1分,计计60分,为1小时,计24小时,为1天.计时后再显示出来,就成了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网