文档库 最新最全的文档下载
当前位置:文档库 › 时钟与定时器

时钟与定时器

时钟与定时器

时钟与定时器

时间过的挺快的,一晃眼就到五月了。那么我们是根据什么来知晓时间的呢?今天就来说说时钟吧。

不得不先提起钟表了,最为熟悉的便是表了,小巧方便。钟表的应用范围很广,品种甚多,可按振动原理、结构和用途特点分类。但咱们今天要说的是时钟及它的构成组件时钟分配集成电路(IC)和时钟发生IC,它们是用于用于无线基础设施、仪器仪表、宽带、自动测试设备(A TE)和其它要求亚皮秒性能的应用。优秀的时钟产品具有低抖动、低相位噪声和低杂散噪声特性,从而使它们适合用于要求高时钟性能的模数转换器(ADC)和数模转换器(DAC)。时钟IC采用小型芯片级(CSP)封装集成了锁相环(PLL)内核、分频器、相位偏移、偏差调整和时钟驱动电路。包括频率定时发生器、时钟分配IC、TIMEKEEPER谀鹔时时钟(RTC) IC,可满足电池供电设备、通信、网络和工业应用的需求。正是这些小小的组件,让我们能随时感觉时间的变化,不用像古时候那样,靠日照方向判断。

时间在往前,时代在变化,且行且珍惜。

高精度时钟芯片的测试方法介绍

高精度时钟芯片的测试方法介绍 中国电子科技集团公司第五十八研究所武新郑解维坤 摘要: 高精度时钟芯片是一种能够提供精确计时的芯片,相对于普通的时钟芯片,它的晶体和温度补偿集成在芯片中,为提高计时精度提供了保障,它同时还具备日历闹钟功能、可编程方波输出功能等。本文以DS3231芯片为例,以J750Ex测试机和相关仪表为测试环境,重点介绍以I2C总线协议为基础的内部寄存器功能和芯片各模块功能的测试。通过测试机测试保存在寄存器中秒、分、时、星期、日期、月、年和闹钟设置等信息,以及电源控制功能,通过测试机对示波器和频率计的程控实现对老化修正和输出频率的测试,同时还会重点介绍该芯片时钟精度的测试方法和测试环境。 关键词: 高精度时钟芯片;DS3231芯片;J750Ex测试机;I2C总线协议 Introduction of testing method of the extremely accurate RTC Wu Xin-zheng (China Electronic Technology Group Corporation, No.58 Research Institute , Jiangsu Wuxi 214035, China) Abstract: The extremely accurate real time clock is a piece of chip which can maintain accurate timekeeping, compared with the ordinary RTC chip, its integrated temperature compensated crystal oscillator and crystal are located in the center of the chip, which provides an assurance for promoting the exacticy, it also has two programmable time-of-day alarms and a programmable square-wave output. This paper takes DS3231 for instance, the environment with J750Ex and related instruments, introduces inner register with I2C and the testing method of every module. The ATE tests seconds, minutes, hours, day, date, month, and year information, the function of power. By means of OSC and frequency meter, it can test the output wave and register for aging trim, at the same time, also introduced the testing method and environment of accuracy. Key words:

基于单片机数字时钟的设计

基于单片机数字时钟的设计 第一章绪论 1.1数字时钟的背景 1.2数字时钟的意义 1.3数字时钟的应用 第二章整体设计方案 2.1 单片机的选择 2.2 单片机的基本结构 第三章数字是中的硬件设计 3.1最小系统设计 3.2液晶显示电器 3.3键盘控制电路 第四章数字时钟的软件设计 4.1系统软件设计流程图 4.2数字是中的原理图 4.3主程序 4.4时钟设置子程序 4.5定时器中断子程序 4.6液晶显示子程序 4.7按键控制子程序 第五章系统仿真 1.1数字时钟的背景 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能及一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化,低功耗,小体积,大容量,高性能,低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势单片机应用的重要意义还在于,他从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次改革。

单片机模块中最常见的是数字时钟,数字钟是一种用数字电路实现时,分,秒计时的装置,与机械时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 1.2数字时钟的意义 数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 1.3数字时钟的应用 数字时钟已成为人们日常生活中必不可少的,广泛用于个人家庭以及车站,码头,剧场办公室等公共场所,给人们的生活,学习,工作,娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确,性能稳定,携带方便等优点,它还用于计时,自动报时以及自动控制等各个领域。 第二章整体设计方案 2.1单片机的选择 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称微控制器 通常,单片机由单块集成电路芯片构成,内部包含计算机的基本功能部件;中央处理器,存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,成为一个单片机控制系统。 单片机经过1,2,3,3代的发展,正朝着多功耗CMOS化,微型单片化,低电压,低功耗,主流与多品种共存等方向发展。其发展趋势不外乎以下几个方面:, 1.低功耗CMOS化 MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径 2.微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。 3.主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容

简单51单片机数字时钟设计

题目:简单51单片机数字时钟设计 院系: 物理与电气工程学院 专业:自动化专业 班级:10级自动化 姓名:苏吉振 学号:2 老师:李艾华

引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个 人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

定时器中断程序设计实验

实验一定时器/中断程序设计实验 一、实验目的 1、掌握定时器/中断的工作原理。 2、学习单片机定时器/中断的应用设计和调试 二、实验仪器和设备 1、普中科技单片机开发板; 2、Keil uVision4 程序开发平台; 3、PZ-ISP 普中自动下载软件。 三、实验原理 805l 单片机内部有两个 16 位可编程定时/计数器,记为 T0 和 Tl。8052 单片机内除了 T0 和 T1 之外,还有第三个 16 位的定时器/计数器,记为 T2。它们的工作方式可以由指令编程来设定,或作定时器用,或作外部脉冲计数器用。定时器 T0 由特殊功能寄存器 TL0 和 TH0 组成,定时器 Tl 由特殊功能寄存器 TLl 和 TH1 组成。定时器的工作方式由特殊功能寄存器 TMOD 编程决定,定时器的运行控制由特殊功能寄存器 TCON 编程控制。T0、T1 在作为定时器时,规定的定时时间到达,即产生一个定时器中断,CPU 转向中断处理程序,从而完成某种定时控制功能。T0、T1 用作计数器使用时也可以申请中断。作定时器使用时,时钟由单片机内部系统时钟提供;作计数器使用时,外部计数脉冲由 P3 口的 P3.4(或 P3.5)即 T0(或 T1)引脚输入。 方式控制寄存器 TMOD 的控制字格式如下: 低 4 位为 T0 的控制字,高 4 位为 T1 的控制字。GATE 为门控位,对定时器/计数器的启动起辅助控制作用。GATE=l 时,定时器/计数器的计数受外部引脚输入电平的控制。由由运行控制位 TRX (X=0,1)=1 和外中断引脚(0INT 或 1INT)上的高电平共同来启动定时器/计数器运行;GATE=0时。定时器/计数器的运行不受外部输入引脚的控制,仅由 TRX(X=0,1)=1 来启动定时器/计数器运行。 C/-T 为方式选择位。C/-T=0 为定时器方式,采用单片机内部振荡脉冲的 12 分频信号作为时钟计时脉冲,若采用 12MHz 的振荡器,则定时器的计数频率为 1MHZ,从定时器的计数值便可求得定时的时间。 C/-T=1 为计数器方式。采用外部引脚(T0 为 P3.4,Tl 为 P3.5)的输入脉冲作为计数脉冲,当 T0(或 T1)输入信号发生从高到低的负跳变时,计数器加 1。最高计数频率为单片机时钟频率的 1/24。 M1、M0 二位的状态确定了定时器的工作方式,详见表。

PCF8563实时时钟高精度调整方法

广州周立功单片机发展有限公司 Tel: (020)38730976 38730977 Fax: 38730925 https://www.wendangku.net/doc/0512830892.html, PCF8563实时时钟高精度调整方法 一、概述 PCF8563是PHILIPS公司设计生产的经典工业级实时时钟芯片(RTC),I2C总线接口,具有功耗低、精度高等特点,广泛应用于电表、水表、气表、电话等产品。本文将介绍如何调整PCF8563时钟精度的方法。 二、电路原理 图1 PCF8563高精度调整 三、相关说明 如图1所示,R3、R4为I2C总线上拉电阻,若总线速度高于100KHz,电阻阻值要更小。由于PCF8563的中断输出及时钟输出均为开漏输出,所以要外接上拉电阻(如图1的R1、R2),若不使用这两个信号,对应的上拉电阻可以不用。 对于PCF8563芯片,需外接时钟晶振32768Hz(如图1的X1),推荐使用5ppm或更稳定的晶振。PCF8563典型应用电路推荐使用15pF的晶振匹配电容,实际应用时可以作相应的调整,以使RTC获得更高精度的时钟源。一般晶振匹配电容在15pF~21pF之间调整(相对于5ppm精度的32768Hz晶振),15pF电容时时钟频率略偏高,21pF电容时时钟频率略偏低。 四、操作方法 1. 设置PCF8563时钟输出有效(CLKOUT),输出频率为32.768KHz。 使用高精度频率计测量CLKOUT输出的频率。 2. 根据测出的频率,对JC1、JC2、JC3作短接或断开调整。频率比32768Hz偏高时, 3. 加大电容值;频率比32768Hz偏低时,减小电容值。 说明:图1中的C1、C2、C3的值在1pF~5pF之间,根据实际情况确定组合方式,以便于快速调整。推荐使用(3pF、3pF、3pF)、(1pF、2pF、3pF)、(2pF、3pF、4pF)。 - 1 -

基于单片机的时钟控制器设计论文

单片机原理与应用技术课程设计报告 基于单片机控制的时钟控制器 专业班级: _电气XX班_ __ 姓名:__ ___XXX__ ___ 时间:2013/11/25~12/15 指导教师: XXXX XXX 2013年12月11日

基于单片机控制的时钟控制器课程设计任务书1。设计目的与要求 设计出一个基于单片机控制的时钟控制器。通过向单片机输入不同的指令可以实现24小时制时钟的基本显示和连续的调时,调分和调秒的功能,同时又扩展了整点报时功能。该电路硬件较为简单、计时精度高、可控性好,可以随时调整和设定时间,并且调时间的误差小,操作简单、通用性强。 (1)基本功能 <1>、显示:可以显示时、分和秒 <2>、调时功能:时(0-24)、分和秒(0-60)可以连续可调 (2)性能:时间日误差< 2秒 (3)扩展功能 <1>.增加整点报时功能 <2>.增加闹钟任意设定功能 2.设计内容 (1)画出电路原理图,正确使用逻辑关系; (2)确定元器件及元件参数; (3)进行电路模拟仿真; (4)SCH文件生成与打印输出; 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。

目录 摘要 (1) 1. 引言 (1) 2. 设计目的和要求 (1) 3. 总体设计方案 (1) 3.1 方案设计要求 (1) 3.2 方案设计与论证 (1) 3.3 整体设计框图 (2) 3.4 系统设计流程图 (2) 4. 设计原理分析 (3) 4.1 外接晶振电路 (3) 4.2 复位电路 (3) 4.3 数码管显示电路 (3) 4.4 键盘控制电路 (4) 4.5 Proteus仿真电路 (4) 4.6 单片机程序的编写 (5) 4.7 电路的检测 (5) 4.8 CAD电路的连接及PCB电路布线并做出电路板 (5) 4.9 软件与硬件的调试 (5) 5. 总结与体会 (5) 6. 附录 (5) 6.1 CAD电路连接图 (5) 6.2 PCB电路布线图 (6) 6.3 时钟控制器参考源程序 (6) 7. 参考文献 (13)

linux内核定时器详解及实例

Linux内核定时器详解 80X86体系结构上,常用的定时器电路 实时时钟(RTC) RTC内核通过IRQ8上发出周期性的中断,频率在2-8192HZ之间,掉电后依然工作,内核通过访问0x70和0x71 I/O端口访问RTC。 时间戳计时器(TSC) 利用CLK输入引线,接收外部振荡器的时钟信号,该计算器是利用64位的时间戳计时器寄存器来实现额,与可编程间隔定时器传递来的时间测量相比,更为精确。 可编程间隔定时器(PIT) PIT的作用类似于微波炉的闹钟,PIT永远以内核确定的固定频率发出中断,但频率不算高。 CPU本地定时器 利用PIC或者APIC总线的时钟计算。 高精度时间定时器(HPET) 功能比较强大,家机很少用,也不去记了。 ACPI电源管理定时器 它的时钟信号拥有大约为3.58MHZ的固定频率,该设备实际上是一个简单的计数器,为了读取计算器的值,内核需要访问某个I/O端口,需要初始化 定时器的数据结构 利用timer_opts描述定时器 Timer_opts的数据结构 Name :标志定时器员的一个字符串 Mark_offset :记录上一个节拍开始所经过的时间,由时钟中断处理程序调用 Get_offset 返回自上一个节拍开始所经过的时间

Monotonic_clock :返回自内核初始化开始所经过的纳秒数 Delay:等待制定数目的“循环” 定时插补 就好像我们要为1小时35分34秒进行定时,我们不可能用秒表去统计,肯定先使用计算时的表,再用计算分的,最后才用秒表,在80x86架构的定时器也会使用各种定时器去进行定时插补,我们可以通过cur_timer指针来实现。 单处理器系统上的计时体系结构 所有与定时有关的活动都是由IRQ线0上的可编程间隔定时器的中断触发。 初始化阶段 1. 初始化间,time_init()函数被调用来建立计时体系结构 2. 初始化xtime变量(xtime变量存放当前时间和日期,它是一个timespec 类型的数据结构) 3. 初始化wall_to_monotonic变量,它跟xtime是同一类型的,但它存放将加在xtime上的描述和纳秒数,这样即使突发改变xtime也不会受到影响。 4. 看是否支持高精度计时器HPET 5. 调用select_timer()挑选系统中可利用的最好的定时资源,并让 cur_timer变量指向该定时器 6. 调用setup_irq(0,&irq0)来创建与IRQ相应的中断门。 时钟中断处理程序 1. 在xtime_lock顺序锁产生一个write_seqlock()来保护与定时相关的内核变量,这样防止中断让该进程被阻止。 2. 执行cur_timer定时器对象的mark_offset方法(记录上一个节拍开始所经过的时间,由时钟中断处理程序调用) 3. 调用do_timer_interrupt函数,步骤为 a) 使jiffies_64值增1 b) 调用updata_times()函数来更新系统日期和时间。

基于51单片机的电子时钟的设计

目录 0 前言 (1) 1 总体方案设计 (2) 2 硬件电路设计 (2) 3 软件设计 (5) 4 调试分析及说明 (7) 5 结论 (9) 参考文献 (9) 课设体会 (10) 附录1 电路原理 (12) 附录2 程序清单 (13)

电子时钟的设计 许山沈阳航空航天大学自动化学院 摘要:传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求。 单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而51系列的单片机是各单片机中最为典型和最有代表性的一种。,本次设计提出了系统总体设计方案,并设计了各部分硬件模块和软件流程,在用C语言设计了具体软件程序后,将各个模块完全编译通过过后,结果证明了该设计系统的可行性。该设计给出了以AT89C2051为核心,利用单片机的运算和控制功能,并采用系统化LED显示模块实时显示数字的设计方案,适当地解决了实际生产和日常生活中对计时高精确度的要求,因此该设计在现代社会中具有广泛的应用性。 关键字:AT89C2051,C语言程序,电子钟。 0前言 利用51单片机开发电子时钟,实现时间显示、调整和闹铃功能。具体要求如下: (1)按以上要求制定设计方案,并绘制出系统工作框图; (2)按要求设计部分外围电路,并与单片机仿真器、单片机实验箱、电源等正确可靠的连接,给出电路原理图; (3)用仿真器及单片机实验箱进行程序设计与调试;

(4)利用键盘输入调整秒、分和小时时刻,数码管显示时间; (5)实现闹钟功能,在设定的时间给出声音提示。 1总体方案设计 该电子时钟由89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,利用单片机内部定时计数器0通过软件扩展产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。闹钟和时钟的时分秒的调节是由一个按键控制,而另外一个按键控制时钟和闹钟的时间的调节。 图1 系统结构框图 该电子时钟由STC89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,晶振电路的晶振频率为12MHZ,使用的定时器/计数器工作方式0,通过软件扩展产生的一秒定时,达到时分秒的计时,60秒为一分钟,60分钟为一小时,24小时为一天,又重00:00:00开始计时。没有按键按键按下时,时钟正常运行,当按下调节时钟按键K1,就会关闭时钟,当按下闹钟按键K3时时钟就会进入设置时间界面,但是时钟不会停止工作,按K2键,,就可以对时钟和闹钟要设置的时间进行调整。 2硬件电路设计

单片机定时器时钟

思路 1.硬件准备。备齐所需硬件。 2.软件模拟或开发板演示。 3.软件编写。 4.问题提出与解决。 5.焊接电路。 一、硬件准备 1.四个按键。用于调时、分、秒,一个备用。 2.单片机一片。STC。 3.1602液晶电路。1个液晶屏,1个10K电阻,1个10欧电阻,1个可变电阻。 4.排阻,10K。 5.晶振电路。含1个晶振、2个30pF电容。 6.复位电路。含1个按键、1个10K电阻,1个1K电阻,1个10uF电容。 7.电源电路。电源接口、1个1K电阻,1个发光二极管,1个10uF电容。 购买: 10个按键,10个30pF电容,10个发光二极管,10个10uF电容,10个1K电阻,10个10K 电阻。 二、开发板模拟 1.初步设计:按直觉感受下设计过程,感知到存在的问题,以便提高关注度。 1)显示初始时间:给定初始显示值,如12:34:52,分别使用1、2、4、5、7、8数码管显示。2)时间递增:用计时器计时,秒60则分进1,分60则时进1,时24则归零。 3)调时按键:用四个独立按键分别调时、分、秒,留一个备用。 4)复位归零:按复位按钮,则全部归零。 2.过程实施:根据直觉设想,分别实现模块功能并实际验证与修改 1)自由显示数码管:参照现有程序,阅读理解后直接拷贝。 ①共阳极数码管如下图: 静态显示时,每个数码管需要1组8个I/O口,而实际需要六个数码管,显然不够。译码器可以解决该问题。

②译码器实现动态显示数码管。 译码器三个输入端的8种组合,可以有8个输出端。这样单片机的3个I/O口就可以完成一个数码管显示。但是,要同时显示两个数码管,一个译码器是不可以解决的,这就需要两个译码器并能控制其通断,这就需要额外的I/O口。为解决此问题,下面提出一个规划:功能:6个单片机I/O口,最多能同时显示8个数码管,这就需要9个译码器。 方法:3个单片机口用于控制1个译码器,这样就可以有8个接口,用于控制其它8个译码器通断,另外3个单片机口用于同时提供给8个译码器数值,而谁要显示,由1个译码器的输出口控制。另外给予适当延时,以实现动态显示。 问题:这样就需要9个译码器,硬件需求比较大。假设能控制数码管的接口,这样1个译码器就够了。 ③多个数码管动态显示。 1个74HC138译码器,用于控制共阴数码管的位选取;1个74HC573锁存器,用于提供数码管数值。控制开断时间,可实现多个数码管动态显示。原理图如下: 原理简介:数码管共阴极位选由74HC138译码器控制,数据端由74HC573锁存器控制,单片机P0口控制锁存器数据端。译码器输出互斥值以决定哪个数码管显示,依次循环来动态显示数码管。P0口在每次循环赋予不同值,通过位选以传递给对应的数码管。另外,也可以不用译码器,用P2口直接作位选控制。 2)程序编写:编写时钟显示程序,下载到开发板显示时钟。 ①显示初始时间:12-34-52 建立一个数组,给8个数码管分别赋予对应值。赋值给P0口,通过锁存器传递给数码管;再通过译码器以控制位选依次循环以动态显示。小问题:1. 每个数值对应的16进制码是多少?(可根据已有程序查询)2. 译码器动态位选时有没有次序要求?(理论上应没有,实验时加以关注) 程序主体如下: //数码管数值代码0-9 unsigned char code Disp_Tab[] =

DS3231高精度时钟模块程序

模块参数: 1.尺寸:38mm(长)*22mm(宽)*14mm(高) 2.重量:8g 3.工作电压:3.3--5.5V 4.时钟芯片:高精度时钟芯片DS3231 5.时钟精度:0-40℃范围内,精度2ppm,年误差约1分钟 6.带2个日历闹钟 7.可编程方波输出 8.实时时钟产生秒、分、时、星期、日期、月和年计时,并提供有效期到2100年的闰年补偿 9.芯片内部自带温度传感器,精度为±3℃ 10.存储芯片:AT24C32(存储容量32K) 11.IIC总线接口,最高传输速度400KHz(工作电压为5V时) 12.可级联其它IIC设备,24C32地址可通过短路A0/A1/A2修改,默认地址为0x57 13.带可充电电池LIR2032,保证系统断电后,时钟任然正常走动 接线说明,以Arduino uno r3为例: SCL→A5 SDA→A4 VCC→5V GND→GND 代码部分: #include #include #define uchar unsigned char #define uint unsigned int sbit SDA=P3^6; //模拟I2C数据传送位SDA sbit SCL=P3^7; //模拟I2C时钟控制位SCL sbit INT=P3^2; sbit RESET=P3^3; sbit led0=P1^0; sbit led1=P1^1; sbit led2=P1^2; sbit led3=P1^3; sbit led4=P1^4;

sbit led5=P1^5; sbit led6=P1^6; sbit led7=P1^7; bit ack; //应答标志位 #define DS3231_WriteAddress 0xD0 //器件写地址 #define DS3231_ReadAddress 0xD1 //器件读地址 #define DS3231_SECOND 0x00 //秒 #define DS3231_MINUTE 0x01 //分 #define DS3231_HOUR 0x02 //时 #define DS3231_WEEK 0x03 //星期 #define DS3231_DAY 0x04 //日 #define DS3231_MONTH 0x05 //月 #define DS3231_YEAR 0x06 //年 //闹铃1 #define DS3231_SALARM1ECOND 0x07 //秒 #define DS3231_ALARM1MINUTE 0x08 //分 #define DS3231_ALARM1HOUR 0x09 //时 #define DS3231_ALARM1WEEK 0x0A //星期/日 //闹铃2 #define DS3231_ALARM2MINUTE 0x0b //分 #define DS3231_ALARM2HOUR 0x0c //时 #define DS3231_ALARM2WEEK 0x0d //星期/日 #define DS3231_CONTROL 0x0e //控制寄存器 #define DS3231_STATUS 0x0f //状态寄存器 #define BSY 2 //忙 #define OSF 7 //振荡器停止标志#define DS3231_XTAL 0x10 //晶体老化寄存器 #define DS3231_TEMPERATUREH 0x11 //温度寄存器高字节(8位) #define DS3231_TEMPERATUREL 0x12 //温度寄存器低字节(高2位) uchar code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0,1,2,3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; // 4,5,6,7,8,9,off

基于单片机电子时钟的设计

单片机课程设计 姓名:刘韶辉 学号:32 班级:自动化11402 成绩: 指导老师:吴玉蓉 设计时间:2016年12月26日~2017年1月5日目录

STC89C51是公司生产的一种低功耗、高性能CMOS8位微控制器,具有 4K 在系统可编程Flash存储器。STC89C51使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统不具备的功能。在单芯片上,拥有灵巧的8 位和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的。支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被 (5) 图5 单片机系统冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。 (5) 将所有数码管的8个显示段码"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,电路如下图: (5) 图6 数码管显示电路 (6) 一、设计要求 利用51单片机开发电子时钟,实现时间显示、调整功能。具体要求如下:(1)按以上要求制定设计方案,并绘制出系统工作框图; (2)按要求设计部分外围电路,并与单片机仿真器、单片机实验箱、电源等正确可靠的连接,给出电路原理图; (3)用仿真器及单片机实验箱进行程序设计与调试; (4)利用键盘输入调整秒、分和小时时刻,数码管显示时间; 二、系统总体方案

VC++实现微秒级的精确定时器

在工业生产控制系统中,有许多需要定时完成的操作,如定时显示当前时间,定时刷新屏幕上的进度条,上位机定时向下位机发送命令和传送数据等。特别是在对控制性能要求较高的实时控制系统和数据采集系统中,就更需要精确定时操作。 众所周知,Windows是基于消息机制的系统,任何事件的执行都是通过发送和接收消息来完成的。这样就带来了一些问题,如一旦计算机的CPU被某个进程占用,或系统资源紧张时,发送到消息队列中的消息就暂时被挂起,得不到实时处理。因此,不能简单地通过Windows消息引发一个对定时要求严格的事件。另外,由于在Windows中已经封装了计算机底层硬件的访问,所以,要想通过直接利用访问硬件来完成精确定时,也比较困难。所以在实际应用时,应针对具体定时精度的要求,采取相适应的定时方法。 VC中提供了很多关于时间操作的函数,利用它们控制程序能够精确地完成定时和计时操作。本文详细介绍了 VC中基于Windows的精确定时的七种方式: 方式一:VC中的WM_TIMER消息映射能进行简单的时间控制。首先调用函数SetTimer()设置定时间隔,如SetTimer(0,200,NULL)即为设置200ms的时间间隔。然后在应用程序中增加定时响应函数 OnTimer(),并在该函数中添加响应的处理语句,用来完成到达定时时间的操作。这种定时方法非常简单,可以实现一定的定时功能,但其定时功能如同Sleep()函数的延时功能一样,精度非常低,最小计时精度仅为30ms,CPU占用低,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,往往不能满足实时控制环境下的应用。只可以用来实现诸如位图的动态显示等对定时精度要求不高的情况。如示例工程中的Timer1。 方式二:VC中使用sleep()函数实现延时,它的单位是ms,如延时2秒,用sleep(2000)。精度非常低,最小计时精度仅为30ms,用sleep函数的不利处在于延时期间不能处理其他的消息,如果时间太长,就好象死机一样,CPU占用率非常高,只能用于要求不高的延时程序中。如示例工程中的Timer2。 方式三:利用COleDateTime类和COleDateTimeSpan类结合WINDOWS的消息处理过程来实现秒级延时。如示例工程中的Timer3和Timer3_1。以下是实现2秒的延时代码: COleDateTime start_time =COleDateTime::GetCurrentTime(); COleDateTimeSpan end_time=COleDateTime::GetCurrentTime()-start_time; while(end_time.GetTotalSeconds()< 2) //实现延时2秒 { MSG msg; GetMessage(&msg,NULL,0,0); TranslateMessage(&msg); DispatchMessage(&msg);

基于51单片机的电子时钟设计源程序

#include unsigned char DispBuf[6]; //时间显示缓冲区 unsigned char Disdate[6]; //日期显示缓冲区 unsigned char DisSec[6]; //秒表缓冲区 struct //设定时间结构体 { unsigned char Hour; unsigned char Min; unsigned char Sec; }Time; struct //设定日期结构体 { unsigned char Year; unsigned char Month; unsigned char Days; }Date; struct //设定毫秒结构体 { unsigned char Minite; unsigned char Second; unsigned char MilliSec; }Millisecond; unsigned char point=0; unsigned char point1=0; unsigned char point2=0; unsigned char Daymount; unsigned char Daymount1; unsigned char T0_Int_Times=0; //中断次数计数变量 unsigned char Flash_flag=0; //闪烁标志,每半秒闪烁 unsigned char Flash_flag1=0; //闪烁标志,每半秒闪烁 unsigned char DisPlay_Back=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char DisPlay_Back1=0; //显示缓冲区更新备份,如果显示缓冲区更新则跟闪烁标志不一致 unsigned char i,j; unsigned char SetMillisecond; //启动秒表 code unsigned char LEDCode[]={0x01,0xd7,0x22,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80}; //数码管显示代码 code unsigned char ErrorLEDCode[]={0x01,0xe7,0x12,0x82,0xc4,0x88,0x08,0xc1,0x00,0x80};//绘制错误图纸的数码管显示代码 void DisPlayBuf(); void ChangeToDispCode(); void ChangeToDispCode1(); void changedate(); // 调日期 void displaydate(); // 显示日期 void makedays(); //确定每个月的日期 void runSec();

基于DS12C887时钟芯片的高精度时钟的设计

华侨大学厦门工学院本科生毕业设计(论文) 时钟芯片地高精度时钟地设计基于DS12C887题目: 吴挺名:姓 0902106019 号:学 电气工程系别: 专业:电气工程及其自动化 年级:2009 指导教师:刘晓东 年月日 独创性声明 本毕业设计(论文)是我个人在导师指导下完成地.文中引用他人研究成果地部分已在标注中说明;其他同志对本设计(论文)地启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成.特此声明. 日期:论文作者签名: 关于论文使用授权地说明 本人完全了解华侨大学厦门工学院有关保留、使用学位论文地规定,即:学院有权保留送交论文地印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文地全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文.保密地论文在解密后应遵守此规定. 日期:指导教师签名:论文作者签名: 时钟芯片地高精度时钟地设计DS12C887基于摘要

随着社会地发展人们地生活节奏越来越快,每天地工作,学习,休息地时间都安排地很紧,需要一个时钟准确地报时.人们对时钟地要求越来越高,不仅要求每天地地时间误差小于几毫秒,还要求具有定时闹钟,具有万年历等功能.传统地日历电子钟元器件多、维修麻烦、误差大、功能更新不方便.DS12C887时钟芯片能够自动显示年、月、日、时、分、秒等时间信息,同时还具有校时,报时,闹钟等功能.DS12C887也可以很方便地由软件编程进行功能地调整或增加.所以设计基于DS12C877时钟芯片地高精度时钟地设计具有十分重要地现实意义和实用价值. 关键词:DS12C887,时钟芯片,单片机STC89C52,高精度时钟 Design of high precision clock based on clock chip DS12C887 Abstract With the development of society, people life rhythm faster and faster, a day's work, study and rest time arrangement is very tight, need a clock tell the time accurately. People is higher and higher requirement for the clock, every day not only requires the time error is less than a few milliseconds, also requires a timing alarm clock, a calendar, and other functions. Traditional electronic clock calendar components, maintenance trouble, big error, function more update is not convenient. Chip DS12C887 clock automatically display year, month, day, hours, minutes and seconds time information, but also with the school, the time, alarm clock, and other functions. DS12C887 can also be very convenient by the software programming to adjust function or to increase. So the design is based on DS12C877 clock chip design of high precision clock has very important practical significance and practical value. Keywords: DS12C887,clock chip microcontroller STC89C52,high-precision clock

电子综合设计-基于单片机多功能数字时钟的设计(附完整程序)

课题:基于51单片机的多功能数字时钟系统设计 一、概述、设计思路 该设计方案是以MC51单片机为核心,采用LCD液晶屏幕显示系统,辅以闹钟模块,温度采集模块、日期提醒、键盘时间调整预设置等模块,所构建的数字时钟系统,能动态显示实时时钟的时、分、秒,数据显示(误差限制在30每天),对闹铃方式与温度调节模块进行了重点设计实现SB0、SB1、SB2、SB3四个键实现时钟正常显示,调时,及闹钟时间设置。本系统设计大部分功能有软件来实现,使电路简单明了,系统稳定性也得大大提高。 二、系统组成与工作原理 1、工作原理: 本设计采用STC89C51单片机作为本次课程设计的控制模块。单片机可把由DS18B20、DS1302、AT24C02中的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历和闹铃的显示。以LCD液晶显示器为显示模块,把单片机传来的的数据显示出来,并且显示多样化,在显示电路中,主要靠按键来实现各种显示要求的选择与切换。 2、总是设计框架图:

图二:系统总体电路图 三、单元电路的设计与分析 整个电子时钟系统电路可分为六大部分:中央处理单元(CPU)、复位电路部分、显示部分、键盘输入部分、温度采集部分。 1、MCS-51单片机 VCC: 89S51 电源正端输入,接+5V。 VSS: 电源地端。

XTAL1: 单芯片系统时钟的反相放大器输入端。 XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在XTAL1 和XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET: 89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。 EA/Vpp: "EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。 ALE/PROG: 端口3的管脚设置: P3.0:RXD,串行通信输入。 P3.1:TXD,串行通信输出。 P3.2:INT0,外部中断0输入。

相关文档
相关文档 最新文档