旋转时钟原理和程序
旋转时钟焊接实训报告

一、实训背景随着现代制造业的不断发展,焊接技术作为一项重要的工艺手段,广泛应用于各个领域。
为了提高学生的实践操作技能,培养具备一定焊接技能的应用型人才,我们组织了旋转时钟焊接实训。
本次实训旨在让学生掌握旋转时钟的焊接原理、工艺流程以及操作技巧,为今后的工作打下坚实的基础。
二、实训目的1. 使学生掌握旋转时钟的基本构造和焊接原理。
2. 培养学生熟练操作焊接设备的能力。
3. 提高学生的焊接工艺水平,确保焊接质量。
4. 增强学生的团队合作意识和沟通能力。
三、实训内容1. 旋转时钟基本构造认识旋转时钟主要由时钟机芯、外壳、齿轮、指针等部件组成。
在实训过程中,我们首先对旋转时钟的各个部件进行了详细的了解,掌握了它们的名称、功能以及相互之间的关系。
2. 焊接原理及设备操作本次实训主要采用手工电弧焊进行焊接。
我们学习了手工电弧焊的基本原理,包括焊接过程、焊接电弧的形成、焊接热源的产生等。
同时,我们还熟悉了焊接设备的操作方法,包括焊接电流、电压、焊接速度等参数的调节。
3. 焊接工艺流程旋转时钟的焊接工艺流程主要包括以下步骤:(1)准备工作:检查焊接设备、焊接材料、辅助工具等是否齐全,确保焊接过程顺利进行。
(2)焊接操作:按照焊接工艺要求,进行焊接操作。
注意控制焊接电流、电压、焊接速度等参数,确保焊接质量。
(3)焊接检查:焊接完成后,对焊接部位进行检查,确保焊接质量符合要求。
(4)后处理:对焊接部位进行打磨、抛光等后处理,提高外观质量。
4. 焊接技巧在实训过程中,我们学习了以下焊接技巧:(1)焊条角度:根据焊接部位和焊接材料,调整焊条角度,确保焊接质量。
(2)焊接速度:控制焊接速度,避免焊接过热或焊接不足。
(3)焊接顺序:按照焊接工艺要求,合理安排焊接顺序,提高焊接效率。
四、实训过程1. 分组讨论实训开始前,我们将学生分成若干小组,每个小组负责一个旋转时钟的焊接。
小组成员共同讨论焊接方案,明确各自分工。
2. 实际操作在指导老师的指导下,学生们按照焊接工艺流程进行实际操作。
旋转时钟实习报告

随着科技的发展,电子时钟逐渐取代了传统的机械时钟。
旋转时钟作为一种新型电子时钟,以其独特的显示方式、简洁的外观和环保的特点,受到了越来越多消费者的喜爱。
为了深入了解旋转时钟的制作原理和工艺流程,我们小组开展了旋转时钟的实习项目。
二、实习目的1. 了解旋转时钟的制作原理和工艺流程;2. 掌握旋转时钟的关键部件及其功能;3. 提高动手能力和团队协作能力。
三、实习内容1. 旋转时钟的制作原理旋转时钟主要利用视觉暂留原理,通过高速旋转的LED灯珠,在人眼视网膜上形成一幅动态的时钟画面。
当LED灯珠旋转速度足够快时,人眼无法分辨出单个灯珠的旋转,从而产生连续的视觉效果。
2. 旋转时钟的关键部件(1)LED灯珠:作为显示元素,LED灯珠的亮度和颜色决定了旋转时钟的显示效果。
(2)驱动电路:负责为LED灯珠提供稳定的电流,确保其正常工作。
(3)电机:驱动LED灯珠旋转,实现动态显示效果。
(4)控制电路:包括单片机、传感器等,负责控制电机转速和LED灯珠的显示内容。
3. 旋转时钟的工艺流程(1)设计阶段:根据实际需求,设计旋转时钟的外观、尺寸、功能等。
(2)选材阶段:选择合适的LED灯珠、电机、驱动电路等材料。
(3)组装阶段:将选好的材料按照设计要求进行组装。
(4)调试阶段:对旋转时钟进行调试,确保其正常工作。
1. 设计阶段:我们小组根据实际需求,设计了旋转时钟的外观、尺寸和功能。
在讨论过程中,我们了解到旋转时钟的显示效果与LED灯珠的亮度和颜色密切相关,因此选择了高亮度、高色彩饱和度的LED灯珠。
2. 选材阶段:我们根据设计要求,选用了高性能的LED灯珠、电机、驱动电路等材料。
3. 组装阶段:在组装过程中,我们严格按照设计要求进行操作,确保每个部件都能正常工作。
4. 调试阶段:我们对旋转时钟进行了详细的调试,包括电机转速、LED灯珠显示效果、控制电路等。
经过反复调试,旋转时钟最终达到了预期效果。
五、实习总结通过本次旋转时钟实习,我们小组掌握了旋转时钟的制作原理、工艺流程和关键部件。
DIY基于51单片机的旋转LED数字电子钟

标签:DIY基于51单片机的旋转LED数字电子钟(红外线遥控调时)在网上看到不少老外做的各种旋转LED显示屏,非常COOL,我也动手用洞洞板试做了一个类似的显示屏,结果感觉还不错。
于是再接再励继续努力,将作品进一步改进,完善后制成如今这个样子。
由于刚学51单片机,加上制作电路板软件也是从零开始,的确花了我不少的时间和精力。
不过也就是在这艰难的独立制作中,真正学到了不少实在的东西。
本项目的关键是如何解决高速旋转的电路板如何供电,如何调时的问题。
我采用电机电刷的原理,将旋转轴钻空,通过一只插头将电源的从反面引到前面的电路板上,而这个旋转的插头又与固定在背板上的两个铜片接触的。
调时的问题有些困难,一是让电路板在旋转前与PC机相接,由电脑传送调时数据,这虽然可行但不方便。
还有就是用遥控方法,但此方案在调试方面有很大的困难。
显示方式上,我采用平衡式的两排LED,这除了在旋转时能较好的保持平衡外,主要能利用两边交替显示方式,比单排要快一倍。
本装置不仅是一个时钟,它还可以动态显示汉字及图案,这就看如何发挥了。
其具体制作过程如下:一。
旋转电机的制作从制作成本与方便考虑,选用旧电脑用的大软驱上的直流无刷电机,只是对局部进行改造。
就是这种古董软驱软驱上的直流无刷电机拆开后的电机仔细拆开直流电机,将带圆盘的铝轴从中开孔,让它刚好能插入一个插头。
将旋转轴加工成这样装配好以后按拆开时的顺序,反序将轴安装直流电机上。
电机装配完成后用两片铜片做的电刷电刷装好后的侧面图将电路板上较突出的元件改焊在反面,电机的电源接法。
从电路板标注的符号看,“+”为电源正,“G”为电源负,“C”与“M”端分别与电源正相连匀可使电机运转将一张旧唱片按电机座的位置开孔,而定位用的挡光板应根据电路板上感光组件的位置确定。
二。
电路板的制作本制作品用51单片机控制,具体电原理图如下:用Protel 99设计制作了电路板。
最后得到完成的作品。
遥控器用的是松下车载机的,只用了其中的六个键。
led旋转时钟原理

led旋转时钟原理LED旋转时钟是一种利用LED光源和旋转装置来显示时间的装置。
它的外观设计独特,能够通过旋转的方式创造出立体感,给人一种时光流转的感觉,因此备受人们的喜爱。
本文将介绍LED旋转时钟的原理和工作方式。
一、LED光源LED(Light-Emitting Diode,发光二极管)是一种可以将电能转化为光能的半导体器件。
它具有小尺寸、低功耗、长寿命等特点,在照明、显示等领域得到广泛应用。
LED旋转时钟采用LED作为光源,通过控制LED的亮灭来显示时间。
二、旋转装置LED旋转时钟通过旋转装置将LED光源进行旋转,以实现时间的显示。
旋转装置一般采用电机加传动结构来驱动LED的旋转,使LED光源沿着特定路径进行循环运动。
旋转的速度和方向可以通过控制电机的转速和转向来实现。
三、显示时间原理LED旋转时钟能够利用LED光源的高亮度和高刷新率来显示数字。
它采用人眼视觉的暂留效应,通过快速的亮灭切换来创造出连续的数字图像。
LED光源通过旋转装置的运动,在一定角度上快速闪烁,形成一个圆形或椭圆形的轨迹。
在人眼视觉暂留的效应下,这些离散的亮点形成了一个完整的数字。
LED旋转时钟一般由多个LED模块组成,每个LED模块负责显示一个数字或其他字符。
LED模块在旋转过程中按照预设的顺序亮灭,通过不断刷新的方式呈现出数字的变化。
通过控制LED的亮灭时间和顺序,可以实现各种数字图案的显示。
四、时间精度LED旋转时钟的时间精度取决于旋转装置的稳定性和控制系统的精确度。
较高精度的LED旋转时钟可以做到秒级或毫秒级的时间显示,而较低精度的LED旋转时钟可能会有一定的时间误差。
五、附加功能除了显示时间,部分LED旋转时钟还可以提供其他附加功能,如闹钟、温湿度显示、音乐播放等。
这些功能通过内置的传感器和控制模块来实现,使LED旋转时钟成为一种功能更为强大的装置。
六、使用场景LED旋转时钟适用于家庭、办公室、学校等各种场景。
基于POV原理的旋转时钟图像显示

POV原理的实现方式
交互式技术:利用传感器或摄像头等设备, 捕捉用户的动作或指令,然后根据这些动作 或指令生成相应的动态图像。
基于POV原理的旋转时钟图像显示通常采用 投影技术来实现。通过将时钟的数字和刻度 绘制在纸上或透明材料上,然后使用投影仪 将这些图像投射到墙壁或其他介质上,再通 过连续旋转这些图像来创造出动态效果。同 时,为了使时钟的数字和刻度保持清晰和准 确,通常需要使用高分辨率的投影仪和精细
色彩丰富
通过使用不同颜色的LED灯,可以呈现出丰富多彩的时钟界面,增 加视觉吸引力。
立体感强
通过合理的布局和设计,旋转时钟图像能够呈现出较强的立体感,使 整个显示用户体验,可以增加触摸感应功能,使观众能够与旋转 时钟进行互动,如切换显示模式、调整时间等。
基于POV原理的旋转时钟图像显 示
目 录
• POV原理简介 • 基于POV原理的旋转时钟图像显示原理 • 旋转时钟图像显示的实现方法 • 效果展示与优化建议 • 结论
01 POV原理简介
POV原理的定义
• POV(Persistence of Vision)原理,即视觉持久性原理,是指当光线以一定速度连续不断地投射到视网膜上时,由于光线 在视网膜上停留的时间较长,使得大脑对连续的光线产生连续的感知,而不是对一个个独立的光线进行感知。
04
在实现过程中,还需要注意代码的优化和调试,以确保程序的稳定性 和性能。
03 旋转时钟图像显示的实现 方法
硬件设备选择与搭建
选择合适的POV材料
01
POV材料具有独特的性能,能够实现高速闪烁,是制作旋转时
钟图像的关键。
搭建硬件平台
02
包括电机、驱动电路、控制电路等,确保旋转时钟图像能够稳
闹钟是怎么旋转的原理

闹钟是怎么旋转的原理
闹钟旋转的原理取决于具体的闹钟设计和机械结构。
下面是一些常见的闹钟旋转原理:
1. 电动机原理:大多数电子闹钟使用电动机来旋转时针、分针和秒针。
电动机通常由一个磁体和一个线圈组成。
当电流通过线圈时,磁体受到电磁力的作用开始旋转。
通过齿轮或传动装置将旋转力传递至时针、分针和秒针。
2. 斗轮原理:斗轮是一种常见的机械闹钟旋转原理。
斗轮系统基于传统的机械装置,其中时钟发条提供了动力源,同时通过一系列齿轮传递力量。
斗轮系统以齿轮结构分配输出力量,并通过锁爪和旋转齿轮的相互作用实现旋转。
3. 石英晶体原理:石英晶体闹钟是利用石英晶体的振荡信号来驱动闹钟指针转动的。
石英晶体闹钟内部有一个石英晶振器,该振器通过电流激励使石英晶体振动。
石英晶体的振动频率非常稳定,通常为32768赫兹,因此可以用作准确的时间基准。
驱动电路将石英晶体上的振动频率转化为电信号,然后通过适当的机械装置将电信号转化为旋转力,从而驱动闹钟的指针旋转。
需要注意的是,不同的闹钟可能采用不同的旋转原理,这只是一些常见的原理。
此外,还有其他一些高级闹钟可能采用电子技术或无线电控制来实现指针的旋转。
旋转时钟原理

旋转时钟原理
旋转时钟,又称为陀螺仪式时钟,是一种独特的钟表设计,它在时间显示方面采用了旋转的方式。
与传统的时钟不同,旋转时钟通过旋转机械结构来显示时间。
旋转时钟的原理是利用陀螺仪的物理原理,即角动量守恒定律。
陀螺仪是一种能够保持自身稳定旋转的装置,当其受到外力作用时,会产生与外力相反方向的力矩,从而保持自身稳定旋转。
在旋转时钟中,钟表的指针部分被设计成陀螺仪的外部结构,通过内部的驱动装置将其与陀螺仪连接起来。
当驱动装置启动时,陀螺仪开始旋转,而钟表指针也随之旋转。
由于陀螺仪的稳定性,指针能够保持相对稳定的旋转状态。
为了显示时间,旋转时钟通常会在指针上标注小时和分钟的刻度。
当陀螺仪旋转时,指针就会相应地指向相应的刻度,从而实现时间的显示。
通过不同的刻度设计和指针长度,旋转时钟可以实现精确的时间显示。
除了时间显示,旋转时钟还可以结合其他功能,比如闹钟、定时器等。
通过调整驱动装置的工作模式,旋转时钟可以实现不同的功能操作。
总的来说,旋转时钟利用陀螺仪的物理原理,通过旋转的方式显示时间。
其独特的设计使其成为一种特别而有趣的钟表形式,受到很多人的喜爱。
机械钟的工作原理

机械钟的工作原理
机械钟是一种基于机械装置的钟表,其工作原理主要由以下几个部分组成:
1.钟摆系统:机械钟通过一个固定在一根轴上的钟摆实现时间
的计量。
钟摆的摆动周期由钟摆的长度和重力加速度决定。
在摆动过程中,钟摆的摆动频率保持稳定,使得机械钟的时间走动相对准确。
2.发条机构:机械钟的能量来源于弹簧发条机构。
通过旋转或
拉伸发条,将能量储存起来,以供机械钟的运转。
当发条释放能量时,能量逐渐传递给钟摆系统和其他相关装置。
3.逃逸装置:逃逸装置控制着时钟摆的摆动频率。
它包括一个
齿轮系列和一个锚石。
当钟摆摆动到一定程度时,锚石会与逃逸齿轮咬合,使得时钟摆停止摆动。
然后,逃逸齿轮再次脱离,释放能量给钟摆,使其重新摆动。
4.齿轮传动系统:齿轮传动系统是机械钟中的核心组件之一,
用于传递能量和精确地测量时间。
齿轮具有不同的大小,通过咬合和转动,将能量从发条机构传递给指针系统,同时保持特定的时钟步进。
5.指针系统:指针系统由小时指针、分钟指针和秒针组成,用
于指示时间。
指针通过齿轮传动系统与时钟机芯连接,随着时间的推移,指针按照特定比例和速度旋转以显示准确的时间。
综上所述,机械钟利用钟摆系统、发条机构、逃逸装置、齿轮传动系统和指针系统等组件相互配合,通过能量的储存和传递,最终实现准确地显示时间的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
POV即persistanc d of vision 利用单片机控制流水灯,通过流水灯移动以及人的视觉暂留效应产生各种图形或文字。
效果如下图:这张可以窥探其原理.原理比较简单,使用单片机很容易实现,转帖旋转LED电子钟制作详细过程。
关于作者提出的两个难点,个人观点,供电科采用电机单独供电,单片机供电加装在旋转的电路板上。
改进电路,使用电子钟芯片,加装备用电池,加装备用电池后也可以很容易解决调时问题。
本人打算在次基础上改进一下进行制作,另作者提供的源程序没有任何注释,对与我们新手很不方便,随后我将在电路改进后写出有详细注释的程序,以方便更多人制作,敬请期待。
以下内容转自“艺新工作室”在网上看到不少老外做的各种旋转LED显示屏,非常COOL,我也动手用洞洞板试做了一个类似的显示屏,结果感觉还不错。
于是再接再励继续努力,将作品进一步改进,完善后制成如今这个样子。
由于刚学51单片机,加上制作电路板软件也是从零开始,的确花了我不少的时间和精力。
不过也就是在这艰难的独立制作中,真正学到了不少实在的东西。
本项目的关键是如何解决高速旋转的电路板如何供电,如何调时的问题。
我采用电机电刷的原理,将旋转轴钻空,通过一只插头将电源的从反面引到前面的电路板上,而这个旋转的插头又与固定在背板上的两个铜片接触的。
调时的问题有些困难,一是让电路板在旋转前与PC机相接,由电脑传送调时数据,这虽然可行但不方便。
还有就是用遥控方法,但此方案在调试方面有很大的困难。
显示方式上,我采用平衡式的两排LED,这除了在旋转时能较好的保持平衡外,主要能利用两边交替显示方式,比单排要快一倍。
本装置不仅是一个时钟,它还可以动态显示汉字及图案,这就看如何发挥了。
其具体制作过程如下:一。
旋转电机的制作从制作成本与方便考虑,选用旧电脑用的大软驱上的直流无刷电机,只是对局部进行改造。
就是这种古董软驱软驱上的直流无刷电机拆开后的电机仔细拆开直流电机,将带圆盘的铝轴从中开孔,让它刚好能插入一个插头。
将旋转轴加工成这样装配好以后按拆开时的顺序,反序将轴安装直流电机上。
电机装配完成后用两片铜片做的电刷电刷装好后的侧面图将电路板上较突出的元件改焊在反面,电机的电源接法。
从电路板标注的符号看,“+”为电源正,“G”为电源负,“C”与“M”端分别与电源正相连匀可使电机运转将一张旧唱片按电机座的位置开孔,而定位用的挡光板应根据电路板上感光组件的位置确定。
二。
电路板的制作本制作品用51单片机控制,具体电原理图如下:用Protel 99设计制作了电路板。
最后得到完成的作品。
遥控器用的是松下车载机的,只用了其中的六个键。
三。
软件编程因学的是C51(不懂汇编)这里只提供C语言源程序。
#include <reg51.h>sbit gate11=P3^0;sbit gate12=P3^1;unsigned char BUFFER[]={0,0,0,0,1,1,7};unsigned char M[]={31,28,31,30,31,30,31,31,30,31,30,31};unsigned char maxnum[]={59,23,31,12,99};unsigned char minnum[]={0,0,1,1,0};unsigned char yy[34];unsigned char code NUM1[] ={0x80,0x7F,0xC0,0xFF,0x40,0x90,0x40,0x8C, // -0-0x40,0x82,0xC0,0xFF,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x81,0x80,0x81,0xC0,0xFF, // -1-0xC0,0xFF,0x00,0x80,0x00,0x80,0x00,0x00,0x80,0xE0,0xC0,0xF0,0x40,0x98,0x40,0x8C, // -2-0x40,0x86,0xC0,0xC3,0x80,0xC1,0x00,0x00,0x80,0x40,0xC0,0xC0,0x40,0x84,0x40,0x84, // -3-0x40,0x84,0xC0,0xFF,0x80,0x7B,0x00,0x00,0x00,0x0C,0x00,0x0E,0x00,0x0B,0x80,0x89, // -4-0xC0,0xFF,0xC0,0xFF,0x00,0x88,0x00,0x00,0xC0,0x47,0xC0,0xC7,0x40,0x84,0x40,0x84, // -5-0x40,0x8C,0x40,0xFC,0x40,0x78,0x00,0x00,0x00,0x7F,0x80,0xFF,0xC0,0x84,0x40,0x84, // -6-0x40,0x84,0x00,0xFC,0x00,0x78,0x00,0x00,0xC0,0x00,0xC0,0x00,0x40,0xF0,0x40,0xF8, // -7-0x40,0x0C,0xC0,0x07,0xC0,0x03,0x00,0x00,0x80,0x7B,0xC0,0xFF,0x40,0x84,0x40,0x84, // -8-0x40,0x84,0xC0,0xFF,0x80,0x7B,0x00,0x00,0x80,0x03,0xC0,0x87,0x40,0x84,0x40,0x84, // -9-0x40,0xC4,0xC0,0x7F,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63, // -:-0x00,0x63,0x00,0x00,0x00,0x00,0x00,0x00,};unsigned char code NUM2[]={0x00,0x00,0x7f,0x80,0xff,0xc0,0x82,0x40, // -0- 0x8c,0x40,0x90,0x40,0xff,0xc0,0x7f,0x80,0x00,0x00,0x00,0x00,0x20,0x40,0x60,0x40, // -1- 0xff,0xc0,0xff,0xc0,0x00,0x40,0x00,0x40,0x00,0x00,0x41,0xc0,0xc3,0xc0,0x86,0x40, // -2- 0x8c,0x40,0x98,0x40,0xf0,0xc0,0x60,0xc0,0x00,0x00,0x40,0x80,0xc0,0xc0,0x88,0x40, // -3- 0x88,0x40,0x88,0x40,0xff,0xc0,0x77,0x80,0x64,0x40,0xff,0xc0,0xff,0xc0,0x04,0x40,0x00,0x00,0xf8,0x80,0xf8,0xc0,0x88,0x40, // -5- 0x88,0x40,0x8c,0x40,0x8f,0xc0,0x87,0x80,0x00,0x00,0x3f,0x80,0x7f,0xc0,0xc8,0x40, // -6- 0x88,0x40,0x88,0x40,0x0f,0xc0,0x07,0x80,0x00,0x00,0xc0,0x00,0xc0,0x00,0x83,0xc0, // -7- 0x87,0xc0,0x8c,0x00,0xf8,0x00,0xf0,0x00,0x00,0x00,0x77,0x80,0xff,0xc0,0x88,0x40, // -8- 0x88,0x40,0x88,0x40,0xff,0xc0,0x77,0x80,0x00,0x00,0x70,0x00,0xf8,0x40,0x88,0x40, // -9- 0x88,0x40,0x88,0xc0,0xff,0x80,0x7f,0x00,0x00,0x00,0x00,0xc0,0x01,0x80,0x03,0x00, // -/- 0x06,0x00,0x0c,0x00,0x18,0x00,0x30,0x00,};unsigned char code HZ_12[] ={0x80,0x00,0x88,0x1F,0x30,0x48,0x00,0x24, //"调" 0xF0,0x1F,0x10,0x01,0x50,0x1D,0xF0,0x15,0x50,0x1D,0x10,0x41,0xF8,0x7F,0x10,0x00,0x00,0x02,0x00,0x41,0x80,0x41,0x60,0x31, //"分" 0x18,0x0F,0x00,0x01,0x00,0x21,0x38,0x41,0x40,0x3F,0x80,0x00,0x00,0x01,0x00,0x01,0xE0,0x1F,0x20,0x09,0x20,0x09,0x20,0x09, //"时" 0xE0,0x1F,0x40,0x00,0x40,0x01,0x40,0x26,0x40,0x40,0xF8,0x7F,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F, //"日" 0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0xF8,0x3F,0x10,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x10,0xF8,0x0F, //"月" 0x48,0x02,0x48,0x02,0x48,0x22,0x48,0x42,0x48,0x42,0xF8,0x3F,0x00,0x00,0x00,0x00,0x90,0x04,0x90,0x04,0xF0,0x7F,0x90,0x04,0x90,0x04,0x98,0x04,0x90,0x04,0x10,0x04};unsigned int disp1,disp2,key1,key2,key;unsigned int ii,jj;unsigned int i,w,n,xz,CM,TZ,BZ;void Delay(unsigned int ms){ms=ms*3;while(--ms);}void num_led(int aa, int bb){int kk;for(kk=0;kk<8;kk++){gate11=key1; gate12=key2;P2=~NUM1[aa+kk*2];P1=~NUM1[aa+1+kk*2];Delay(20);P1=0xff;P2=0xff;gate11=key2; gate12=key1;P2=~NUM2[bb+15-kk*2];P1=~NUM2[bb+14-kk*2];Delay(20);P1=0xff;P2=0xff;}}void display_clock(void){key1=key;key2=!key;disp1=BUFFER[3]/10;disp2=BUFFER[4]-(BUFFER[4]/10)*10; ii=disp1*16;jj=disp2*16;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);disp1=BUFFER[3]-disp1*10;disp2=BUFFER[4]/10;ii=disp1*16;jj=disp2*16;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);ii=160;jj=160;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);disp1=BUFFER[2]/10;disp2=BUFFER[5]-(BUFFER[5]/10)*10; ii=disp1*16;jj=disp2*16;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);disp1=BUFFER[2]-disp1*10;disp2=BUFFER[5]/10;ii=disp1*16;jj=disp2*16;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);ii=160;jj=160;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);disp1=BUFFER[1]/10;disp2=BUFFER[6]-(BUFFER[6]/10)*10; ii=disp1*16;jj=disp2*16;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);disp1=BUFFER[1]-disp1*10;disp2=BUFFER[6]/10;ii=disp1*16;jj=disp2*16;num_led(ii,jj);P2=0xff;P1=0xff;Delay(60);}void display_TZ(void){gate11=key;gate12=!key;for(jj=0;jj<16;jj++){P2=0xff;P1=0xff;Delay(40);}for(jj=0;jj<12;jj++){P2=~HZ_12[jj*2];P1=~HZ_12[1+jj*2];Delay(40);P1=0xff;P2=0xff;}for(jj=0;jj<12;jj++){P2=~HZ_12[TZ*24+jj*2];P1=~HZ_12[TZ*24+1+jj*2]; Delay(40);P1=0xff;P2=0xff;}for(jj=0;jj<8;jj++){P2=~NUM1[160+jj*2];P1=~NUM1[160+1+jj*2];Delay(40);P1=0xff;P2=0xff;}disp1=BUFFER[TZ+1]/10;for(jj=0;jj<8;jj++){P2=~NUM1[disp1*16+jj*2];P1=~NUM1[disp1*16+1+jj*2]; Delay(40);P2=0xff;P1=0xff;}Delay(60);disp1=BUFFER[TZ+1]-disp1*10;for(jj=0;jj<8;jj++){P2=~NUM1[disp1*16+jj*2];P1=~NUM1[disp1*16+1+jj*2]; Delay(40);P2=0xff;P1=0xff;}Delay(60);}void intersvr0(void) interrupt 0{key=!key;if(w==0) w=1;}void intersvr1(void) interrupt 2{TH1=0; TL1=0;}void timer1(void) interrupt 3 using 1{}void timer0(void) interrupt 1 using 1{TH0=-(5000/256);TL0=-(5000%256);TR0=1;BUFFER[0]=BUFFER[0]+1;if (BUFFER[6]%4==0) M[1]=M[1]+1;if (BUFFER[0]>201+xz){BUFFER[0]=0;BUFFER[1]=BUFFER[1]+1;if (BUFFER[1]==60){BUFFER[1]=0;BUFFER[2]=BUFFER[2]+1;if (BUFFER[2]==60){BUFFER[2]=0;BUFFER[3]=BUFFER[3]+1;if (BUFFER[3]==24){BUFFER[3]=0;BUFFER[4]=BUFFER[4]+1;if (BUFFER[4]>M[BUFFER[5]-1]){ BUFFER[4]=1;BUFFER[5]=BUFFER[5]+1;if (BUFFER[5]>12){BUFFER[5]=1;BUFFER[6]=BUFFER[6]+1;if(BUFFER[6]>99) {BUFFER[6]=0;M[1]=M[1]-1;}}}}}}}}void Jm(void){unsigned int kk,mm;CM=0x00;for(kk=0;kk<30;kk++){mm=0;while((P3&0x80)==0x00){};while((P3&0x80)==0x80){mm++;};if((mm>350)&&(mm<100)){CM=0x00; break;}; yy[kk]=mm;}for(kk=17;kk<22;kk++){CM=CM<<1;if((yy[kk]>65)&&(yy[kk+8]<65)) {CM=CM|0x01;}else {if((yy[kk]>65)||(yy[kk+8]<65)) {CM=0x00;break;}}}}void main(void){xz=8;TZ=1;BZ=0;key1=0;key2=1;EA=1;IT0=1;EX0=1;EX1=1;IT1=1;ET0=1;TMOD=0x11;TH0=-5000/256; TL0=-5000%256;TR0=1;TH1=0; TL1=0;TR1=1;for(;;){w=0;CM=0;Delay(50);if(w==2) {EX1=0;Jm();Delay(1200);EX1=1;w=0;};if(BZ==1) if(w==1) {display_TZ();n=1;}if(BZ==0) if(w==1) {display_clock();n=1;}if(CM==9) {BUFFER[1]=0;Delay(1200);BZ=!BZ;w=0;CM=0;}if(CM==11){Delay(1200);key=!key;w=1;BZ=0;w=0;CM=0;}if(CM==23) if(BZ==1) {if(BUFFER[TZ+1]<maxnum[TZ-1]) BUFFER[TZ+1]++; else BUFFER[TZ+1]=minnum[TZ-1];Delay(1200);w=0;CM=0;}if(CM==19) if(BZ==1) {if(BUFFER[TZ+1]>minnum[TZ-1]) BUFFER[TZ+1]--; else BUFFER[TZ+1]=maxnum[TZ-1];Delay(1200);w=0;CM=0;}if(CM==31) if(BZ==1) {if(TZ<5) TZ++; else TZ=1;Delay(1200);w=0;CM=0;}if(CM==15) if(BZ==1) {if(TZ>1) TZ--; else TZ=5;Delay(1200);w=0;CM=0;}n++;if(n>10) w=1;}}四。