嵌入式时钟系统结构

嵌入式时钟系统结构
嵌入式时钟系统结构

嵌入式时钟系统结构

【摘要】

时钟是嵌入式系统的脉搏,处理器内核在时钟驱动下完成指令执行,状态变换等动作.外设部件在时钟的驱动下完成各种工作,比如串口数据的发送、A/D转换、定时器计数等等。因此时钟对于计算机系统是至关重要的,通畅时钟系统出现问题也是致命的,比如振荡器不起振、振荡不稳、停振等。由于从事波分软件开发的工作,对于硬件知识并不是很了解,而时钟系统在嵌入式设计占有很重要的作用。因此,通过ARM中常用的LPC2000系列的时钟系统结构为例,来对嵌入式时钟系统中常见概念和器件进行学习总结。

本文主要描述典型的嵌入式系统设计中的时钟系统结构以及时钟系统常用的器件功能和原理介绍,以及如何通过PLL的结构来推导PLL各项参数的值,为日后软件开发的同事来了解时钟的结构和功能提供借鉴和帮助。

1概述

如下图1所示,ARM的时钟系统包括4部分,分为晶体振荡器、唤醒定时器、锁相环(PLL)和VPB分频器。其中晶体振荡器为系统提供基本的时钟信号(频率为Fosc)。当复位或者处理器从掉电模式唤醒时,“唤醒定时器”要对输入的时钟信号做计数延时,使芯片内部的部件有时间进行初始化。然后Fosc被PLL提高到一个符合用户需要的频率Fcclk,Fcclk用于CPU内核。因为CPU内核通常比外设部件的工作速度要快,用户可以通过设置VPB分频器,把Fcclk信号降低到一个合适的值Fpclk,该信号用于外设部件。以下是对各个部件和常见概念的介绍。

图1__ARM 系统的时钟发生系统

2晶体振荡器

晶体振荡器可以使用外部时钟源,也可以使用外接晶体和片内振荡电路产生时钟,其中使用外部时钟源时,称为“从属模式”,使用外部晶体时,称为“振荡模式”,其中在采用振

荡模式时,需要根据微控制器内部的振荡电路支持的频率来选择晶体,例如:ARM 的振荡电路仅支持1~30MHz 的外部晶体。其中ARM 的时钟Fosc 的选择可以按照以下图2流程进行处理,

图2_Fosc 的选择

3

唤醒定时器

唤醒定时器的用途是:确保振荡器和芯片所需的电路在处理器开始执行指令之前有足够的时间能够让其开始正确工作,它是通过监测晶振状态来判断是否能开始可靠的执行代码,工作原理如下图3所示,

图3_唤醒定时器工作原理

当给芯片加电或者因为某个事件退出掉电模式后,振荡器开始工作,但需要一段时间来产生足够振幅的信号驱动时钟逻辑。时间的长短取决于许多因素,包括Vdd 的上升速率,晶振的类型及其电气特性,任何其他外部电路和振荡器在现有环境下自身的特性,振荡的波形大致如下图4所示,当检测到有效时钟,并且外部复位信号撤销后,唤醒定时器开始时钟计数,此时可以使Flash 等外围器件完成初始化,当初始化完成后,处理器开始执行指令,但是当使用外部时钟源时,振荡器的启动延时可能就很短甚至没有,唤醒定时器的设计就避免了芯片的某些部件因为系统复位太快而来不及准备好的现象。它在处理器从掉电模式中唤醒或者发生了任何复位时激活。唤醒定时器完全由硬件自动控制,不需要用户干预,在系统

正常工作后将不再起任何作用。

图4_上电后时钟波形及其唤醒定时器的作用

4锁相环PLL

ARM内部具有PLL电路,振荡器产生的时钟频率Fosc通过PLL升频,可以获得更高的系统时钟Fcclk。PLL的输出时钟信号Fcclk是由电流控制振荡器(CCO)分频的到的,CCO的振荡频率由“相位频率检测”部件控制,该部件会比较Fosc信号和CCO输出的反馈信号的相位和频率,并根据误差输出不同的电流值,该电流值再控制CCO的振荡频率。这样的环路可以保证“相位频率检测”部件的两路输入信号非常接近。PLL的内部结构图可以简化为图5所示,但是通常CCO的受控范围是有限的,超出这个范围则无法输出预期的时钟信号。

图5_PLL功能原理结构简化图

图中的2P分频器部件是为了保证CCO工作在正常范围内而设计的,该分频器可以设置为2、4、8或者16分频,该分频器另外的一个作用是保证PLL输出的波形为50%的占空比(一个信号周期中高地电平的宽度相等)。CCO进行过分频后就获取了系统所需的系统时

钟,其频率应当限制在芯片厂家规定的范围内,而不要尝试在嵌入式系统中使处理器处于超频工作状态。需要注意的是CCO 的输出控制在需要频率的过程并不是一蹴而就的,而是一个反复的反馈控制过程,可以简单的用图6来表示,这个稳定的过程就是“PLL 锁定的过程”,锁定之前的频率是不稳定的,不能用于处理器,因此图5中存在PLL 连接开关的原因,锁定前,开关向下方,系统使用Fosc 作为时钟信号,锁定后,开关向上,使用PLL 的输出作为时钟信号。另外需要注意的是,PLL 在芯片复位和进入掉电模式时会被关闭并从时钟系统切换出去,芯片从掉电模式被唤醒后,PLL 并不会自动使能和连接,只能通过软件使能。程序必须在配置并激活PLL 后等待其锁定,然后再连接PLL 。

图6_PLL 锁定过程示意图

下面对PLL 的频率配置计算过程介绍,在此之前先把等式中用来的符合做一个定义,其中Fosc 表示晶体振荡器的输出频率,即PLL 的输入功率,Fcco 表示PLL 电流控制振荡器的输出频率,Fcclk 表示PLL 最终的输出频率,即处理器的时钟频率,M 表示PLL 配置寄存器中倍增器值,P 表示分频器值。CCO 输出的频率Fcco 首先经过2P

分频部件后得到Fcco/2P 的频率,该信号经过

M 分频部件,得到Fcco/2PM 的频率,而在PLL 锁定后,该信

号频率应当与Fosc 是相等的,所以可以依此推导出如下等式,

由以上等式可以得出PLL 的输出频率为:

CCO 输出频率为:

其中PLL 输入和设定必须满足各自约束的条件。

在实际使用PLL 时,要对其进行相应的配置,可以按照以下步骤进行:

1)选择处理器的时钟频率Fcclk,这可以根据实际处理器的整体要求,UART波特率的支

持等因素来决定。

2)选择振荡器频率Fosc,Fcclk一定是Fosc的整数倍

3)计算M值配置PLL。

4)选择P值配置PLL。

实际工程应用中,配置代码的流程图7可参照如下进行编码:

图7_PLL配置处理流程图

5VPB分频器

VPB总线是芯片中一个重要的内部总线,绝大部分的外设都挂接在VPB总线上,然而大部分的外设工作速度相对与CPU内核来说都是比较慢的,所以在时钟系统中设置了VPB 分频器,它决定处理器时钟CCLK与外设器件所使用的时钟PCLK之间的关系,它的用途主要如下:

1)将处理器时钟分频,以便让外设在合适的速度下工作。

2)降低系统功耗,系统工作频率越大,功耗越大。

6推广建议

通过本文的例子可以了解典型的嵌入式时钟系统的结构和常见器件的概念和理解;此外希望对开发人员进行培训,在日后的嵌入式开发设计和故障维护中可以参照此文进行对时钟系统进行分析,一方面提高软件开发人员的知识面,另一方面也加强定位解决故障时的能力提升,希望大家提供反馈意见,提高单板的健壮性。

参考资料

1.【嵌入式系统介绍】上海交大PPT 2.【ARM 嵌入式系统基础教程】周立功2010 3.【嵌入式系统编程与设计】王继进

单片机简易时钟课程设计

目录 1.概论 (1) 2.整体设计思路 (2) 2.1硬件各部分所能完成的功能 (3) 2.2系统工作原理 (4) 2.3时钟各功能分析及图解 (4) 2.4.1电路各功能图解分析 (4) 2.4.2电路功能使用说明 (7) 3. 软件设计思路 (8) 3.1 主程序模块 (8) 3.2 数码管动态扫描模块 (9) 3.3 当前时间计时模块 (9) 3.4 闹钟输入输出模块 (10) 3.5 当前时间调整模块 (12) 3.6复位模块 (13) 4.系统的调试和性能分析 (14) 4.1系统的调试方法 (14) 4.1.1输入按键的调试 (14) 4.1.2复位电路的调试 (14) 4.1.3显示电路的调试 (14) 4.1.4整个系统的联调 (14) 4.2心得体会 (15) 参考文献 (15) 附录 (16) 附录A 系统原理图 (16) 附录B 程序源代码 (17) 电气信息学院课程设计评分表 (28)

1.概论 单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件——Proteus,则不用制作具体的电路板也能够完成以上工作。数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便[4]。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。 数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。

电子时钟设计报告

电子时钟设计报告Last revision on 21 December 2020

电子时钟设计报告 1 设计任务与要求 设计任务 用STM32设计一个数字电子钟,采用LCD12864来显示并修改,时间或闹铃。 设计要求 1)显示功能:可显示时间等基本功能。 2)具有闹铃功能。 3)按键改变时间。 4)按键改变闹铃。 5)温度的显示。 2 方案设计与论证 整个系统用stm32单片机作为中央控制器,由单片机执行采集内部RTC 值,时钟信号通过单片机I/O口传给TFT彩屏,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出。系统设有按键模块用于对时间进行调整及扩展多个小键盘。

显示电路 方案一:TFT彩屏。显示质量高,没有电磁辐射,可视面积大,应用范围广,画面效果好,数字式接口,“身材”匀称小巧,功耗小。 方案二:数码管动态显示。动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。利用人的视觉暂留功能可以看到整个显示,但须保证扫描速度足够快,人的视觉暂留功能才可察觉不到字符闪烁。显示器的亮度与导通电流、点亮时间及间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O 口,降低了能耗。 从节省单片机芯片I/O口和降低能耗角度出发,本数字电子钟数码管显示选择设计采用方案一,既TFT彩屏显示。 电源电路 本数字电子钟设计所需电源电压为直流、电压值大小5V的电压源直接用mini USB通过电脑USB接口供电。 按键电路 本数字电子钟设计所需按键用于进行显示时间的调整与设置扩展的小键盘。 单片机芯片4个I/O口可与按键直接相连,通过编程,单片机芯片即可控制按键接口电平的高低,即按键的开与关,以达到用按键进行显示时间的调整与设置扩展的小键盘的设计要求。

单片机电子时钟的设计报告

目录 1 引言 (1) 2 设计任务与要求 (2) 2.1. 设计题目 (2) 2.2. 设计要求 (2) 3 系统的功能分析与设计方案 (3) 3.1. 系统的主要功能 (3) 3.2. 系统的设计方案 (3) 3.3. 数码管显示工作原理 (4) 3.4. 电路硬件设计 (5) 3.4.1. 设计原理框图 (5) 3.4.2. 电源部分 (5) 3.4.3. 复位电路 (6) 3.4.4. 指示灯电路 (6) 3.4.5. 按键电路 (7) 3.4.6. 时钟电路 (7) 3.4.7. 驱动电路 (8) 3.4.8. 数码管连接电路 (8) 3.4.9. 主控模块AT89S52 (9) 3.4.10. 材料清单 (10) 3.4.11. 电路原理图、PCB图及实物图 (11) 3.5. 软件设计 (13) 3.5.1. 软件设计流程 (13) 3.5.2. 完整源程序 (15) 4 系统安装与调试 (21) 4.1. 硬件电路的安装 (21) 4.2. 软件调试 (21) 5 课程设计总结 (22) 参考文献 (23) 致谢 (24)

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面。这次课程设计通过对它的学习、应用,以AT89S52芯片为核心,辅以必要的电路,设计了一个简易的单片机电子时钟,包括硬件电路原理的实现方案设计、软件程序编辑的实现、电子时钟正常工作的流程、硬件的制作与软件的调试过程。电子时钟由5.0V直流电源供电,数码管能够比较准确显示时间,通过按键能够调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机;AT89S52;电子时钟;数码管;按键

#基于单片机AT89C51的电子时钟的课程设计

苏州市职业大学 课程设计任务书课程名称:单片机原理和使用课程设计 起讫时间:2011年6月22日----6月28日 院系:电子信息工程系 班级:09电子3班 指导教师:金小华 系主任:张红兵 一、课程设计课题 基于单片机的电子时钟的设计

1.掌握使用proteus软件的方法。 2.理解单片机的时钟显示方法。 3.明确设计指标,写出设计方案,设计出硬件原理图。 4.基于硬件的软件设计和调试。 5.将结果向指导教师演示,由教师提问验收通过; 6.打印程序清单,撰写程序说明,完成课程设计报告书,进行分组讨论 设计心得。

1.第一天:明确课程设计任务和目标,熟悉单片机系统调试软件仿真实 现。 2.第二天:明确设计指标,设计电路原理图。 3.第三、四天:基于硬件的软件设计和调试。 4.第五天:学生演示设计调试结果,教师提问验收。打印程序清单,撰 写程序说明,完成课程设计报告书。 四、课程设计说明书内容(有指导书的可省略) 1,单片机结构、原理。 2,电子时钟硬件设计(原理图,原理图分析)。 3,软件设计(软件简介,调试过程)。 4,硬件、软件程序清单。

苏州市职业大学课程设计说明书 名称基于单片机的电子时钟的设计 2011年6月22日至2011年6月28日共一周院系电子信息工程系 班级09电子3班 姓名于宁 学号097302340 系主任张红兵 教研室主任陆春妹 指导教师金小华

目录 第一章电子时钟 (1) 1.1电子时钟简介 (1) 1.2电子时钟的基本特点 (1) 1.3电子时钟的原理 (1) 第二章单片机识的相关知识 (2) 2.1单片机简介 (2) 2.2单片机的发展史 (2) 2.3单片机的特点 (3) 2.489C51单片机介绍 (3) 第三章控制系统的硬件设计 (6) 3.1单片机型号的选择 (6) 3.2数码管显示工作原理 (6) 3.3键盘电路设计 (7) 3.4系统工作原理 (7) 3.5整个电路原理图 (9) 第四章控制系统的软件设计 (10) 4.1程序设计 (10) 4.2程序流程图 (13) 4.3伟福硬件仿真器简介 (14) 4.4仿真图及结果分析 (15) 第五章附录程序 (17) 第六章结束语 (19) 参考文献 (20)

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

课题:基于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输入。

嵌入式电子闹钟()时钟课程设计

#include //头文件 #include #define uchar unsigned char //宏定义 #define uint unsigned int //位定义 sbit rs=P2^5; //液晶位定义 sbit lcden=P2^7; sbit s1=P2^0; //时间功能切换按键 sbit s2=P2^1; //按键加 sbit s3=P2^3; //按键减 sbit s4=P2^4; //闹钟功能切换键 sbit rst=P1^5; //ds1302引脚定义 sbit io=P1^6; sbit sclk=P1^7; sbit beep=P3^0; //蜂鸣器 uchar num,count,shi,fen,miao,s1num,s2num, year,month,day,week,flag,flag1,year1,month1, day1,week1,shi1,fen1,miao1,year2,month2, day2,week2,shi2,fen2,miao2,year5,month5, day5,week5,shi5,fen5,miao5,wk,ashi,afen; //参数定义 uchar code table[]="20 - - "; //液晶固定显示 uchar code table1[]=" : : 00:00"; /* uchar time_dat[7]={12,1,6,6,12,59,59}; //年周月日时分秒 uchar write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; uchar read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81}; */ void write_com(uchar com); //液晶写指令函数 void write_data(uchar date); //液晶写数据函数 void write_ds1302(uchar add,uchar dat); //ds1302芯片写指令函数void set_rtc(); //ds1302时间设置函数void time_pros(); //ds1302进制转换函数void read_rtc(); //ds1302读时间函数void alarm(); //闹钟函数 void delay(uint z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

基于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();

基于嵌入式系统的LCD电子时钟设计

目录 前言 (1) 第一章课题目标及总体方案 (2) 第二章系统设计 (3) 1、系统结构原理 (3) 2、硬件组成与设计 (4) 3、软件组成与设计 (4) 第三章实验结果 (5) 心得体会 (5) 参考文献 (5) 附录 (6)

前言 嵌入式系统反映了当代最新的技术水平。嵌入式系统不仅和一般的PC机上的应用系统不同,就是针对不同的具体应用而设计的嵌入式系统之间差别也很大。嵌入式系统一般功能单一,简单而且兼容性方面要求不高,但是在大小和成本方面限制较多。在本实验中以arm7处理器S3C44B0X和液晶显示屏LRH9J515XA STN/BW为基础,设计实现了带农历的实时时钟电路。当有外部中断产生时,串口与S3C44B0X进行通信,实现更改时钟时间,且应用公历转农历的算法,实现将农历时间实时显示在LCD上。另外还具有闹铃、星期提示功能,基本上能够满足人们的需求。 关键字:arm7 S3C44B0X LCD 农历串口

第一章课题目标及总体方案 一、目的 ●了解实时时钟的硬件控制原理及设计方法。 ●掌握S3C44B0X处理器的RTC模块程序设计方法。 ●初步掌握液晶显示屏的使用及其电路设计方法。 ●掌握S3C44B0X处理器的LCD控制器的使用。 ●通过实验掌握液晶显示文本和图形的方法以及程序设计的方法。 二、设备 1. 硬件:Embest EDUKIT —Ⅱ/Ⅲ实验平台,Embest ARM标准/增强型仿真器套件,PC机。 2. 软件:Embest IDE Pro 2004集成开发环境,Windows 98/2000/NT/XP操作系统。 三、内容 通过运用S3C44B0X的RTC模块、串口模块和LCD模块,编写应用程序,在LCD上实时显示当前时间及农历时间。 四、研究方法 1. 将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务。 2. 连接PC和Embest EDUKIT —Ⅱ/Ⅲ实验箱,进行整个实验环境搭建。

电子时钟的设计及程序

电子时钟的设计及程序 一.设计目的: 1.理解掌握定时/计数器和中断的使用方法。 2.掌握微机常用的输入输出方式及接口技术。 3.掌握一定的汇编语言知识,培养自己的动手操作能力。 4.学习程序设计的基本思路和方法。 二.程序内容: 第一部分:定义显示界面。 第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。 第三部分:将存在系统内存区的时间数用显示字符串的形式显示出来。 第四部分:获取键盘的按键值,以ESC键退出系统返回DOS。三.程序设计原理: 首先在数据段开辟一显示缓冲区,用来存储系统时间。调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。调用DOS字符串显示功能将时间显示 出来。并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。由于获取了的系统时间不会自动刷

新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。调用延时TIME延时中断服务程序,累加到存放秒值的寄存器DL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒值进行比较,秒不能等于60,分不能等于60,时不能等于24。秒等于限制值时,则使秒值为0分值加1;分等于限制值时,则使分值为0时值加1;时等于限制值时,则使时值为0;时、分、秒值都不超过限制值时,就转显示屏输出。时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序。利用BIOSS设计窗口,选择适当的背景和前景等,使屏幕显示更加完美。程序一旦进入运行,就将不间断地在显示屏显示时间,要想程序停止运行,可同时在键盘按下ESC键返回DOS系统。四.程序流程图如下: DATA SEGMENT ;设置数据段 BUF1 DB 'THE TIME IS NOW: $' BUF5 DB ' @@@@@ ^^^^^^^ @@@@@@ $' BUF6 DB ' &&&&&& ####### &&&&&& $' BUF7 DB ' 00 >o o < 00 $' BUF8 DB ' 00 (::) 00 $' BUF9 DB ' 00 ~~ 00 $' BUF10 DB ' 00 !! 00 $' BUF3 DB 'CLASS:040402206 $' BUF4 DB 'NAME:hu ling wei $' BUF2 DB 10 DB 10 DUP(?) DATA ENDS STACK SEGMENT STACK ;设置堆栈段

基于ARM和LCD的电子时钟设计

指导教师评定成绩: 审定成绩: 重庆邮电大学移通学院 课程设计报告 设计题目:基于LCD的电子时钟实验 学校:重庆邮电大学移通学院 学生姓名:曹相凯 专业:电气工程与自动化 班级:05131004 学号:0513100432 指导教师:陈龙灿 设计时间:2013 年12 月 重庆邮电大学移通学院

前言 时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED 显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。 本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机AT89S51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。 系统设计 课题目标及总体方案 通过S3C44B0X处理器的学习,可以利用其内部的RTC单元和LCD控制器,外接LCD模块、晶振和(后备)电源实现电子实时时钟的功能。主要实现方法为:通过电源和晶振保证处理器的正常工作和时钟来源,通过编程设定RTC单元的工作模式,实现实时时钟的功能;然后根据所要求显示的图形效果,编写程序设定LCD控制器的相应寄存器,将RTC单元和LCD控制器合理有效地结合起来;最终由LCD模块作出相应动作,完成实时时钟的显示功能。本课程设计设计一种基于ARM7的嵌入式微处理器S3C44B0X和LCD显示器的电子时钟,实现电子时钟的功能,并在LCD上显示类似的时钟界面;动态显示当前的时间,包括:

电子时钟系统设计

《嵌入式系统》课程设计说明书 电子时钟系统 院部: 学生姓名: 指导教师:职称 专业: 班级: 学号:

湖南工学院嵌入式系统课程设计课题任务书 2.显示的时间为开发板当前的系统时间,显示的结果随着系统时间变化而变 I

摘要 嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统( 包括硬、软件系统) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等Browser 。嵌入式操作系统具有通用操作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序。与通用操作系统相比较,嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。嵌入式技术已成为信息产业中发展最快、应用最广的计算机技术之一,并被广泛应用于网络通信、消费电子、医疗电子、工业控制和交通系统等领域。 本次设计采用QT程序开发框架开发的模拟时钟程序,使用Linux系统到嵌入式终端移植和交叉编译环境搭建,最终成功实现了在嵌入式终端的运行。 关键词:嵌入式系统;QT;模拟时钟;Linux系统

目录 1绪论 (1) 1.1 设计背景 (2) 1.2 设计目的和意义 (2) 2 嵌入式Linux系统 (2) 2.1 嵌入式Linux概念 (2) 2.2 嵌入式Linux组成 (2) 3 Qt工具 (3) 3.1 Qt简介 (3) 3.2 Qt优点 (3) 4 模拟时钟的设计 (4) 4.1 代码的编写 (4) 4.2 代码的调试与运行 (4) 5 模拟时钟到开发板的下载 (6) 5.1 交叉编译环境的构建 (7) 5.2 模拟时钟到开发板的下载运行 (7) 结论 (10) 参考文献 (11) 致谢 (12) 附录 (13)

嵌入式电子闹钟()时钟课程设计教学内容

嵌入式电子闹钟()时钟课程设计

#include //头文件 #include #define uchar unsigned char //宏定义 #define uint unsigned int //位定义 sbit rs=P2^5; //液晶位定义 sbit lcden=P2^7; sbit s1=P2^0; //时间功能切换按键 sbit s2=P2^1; //按键加 sbit s3=P2^3; //按键减 sbit s4=P2^4; //闹钟功能切换键 sbit rst=P1^5; //ds1302引脚定义 sbit io=P1^6; sbit sclk=P1^7; sbit beep=P3^0; //蜂鸣器 uchar num,count,shi,fen,miao,s1num,s2num, year,month,day,week,flag,flag1,year1,month1, day1,week1,shi1,fen1,miao1,year2,month2, day2,week2,shi2,fen2,miao2,year5,month5, day5,week5,shi5,fen5,miao5,wk,ashi,afen; //参数定义 uchar code table[]="20 - - "; //液晶固定显示 uchar code table1[]=" : : 00:00"; /* uchar time_dat[7]={12,1,6,6,12,59,59}; //年周月日时分秒 uchar write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; uchar read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81}; */ void write_com(uchar com); //液晶写指令函数 void write_data(uchar date); //液晶写数据函数 void write_ds1302(uchar add,uchar dat); //ds1302芯片写指令函数void set_rtc(); //ds1302时间设置函数void time_pros(); //ds1302进制转换函数void read_rtc(); //ds1302读时间函数void alarm(); //闹钟函数 void delay(uint z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

嵌入式实时时钟的设计

1.设计题目 制作一个实时时钟,实现实时的效果并且可以对时间进行调节,同时可以随时播报时间的时钟。 2. 设计方案 我要用ds1302时钟模块实现时间,用lcd1602液晶显示实现时间的显示,用独立按键K1,K2,K3,K4并用相应的中断实现对时间的调节和校准并且可以实现短按+1,长按+++功能,并可以随时播报语音,用老师实验书的方法加上相应的voice reader,格式化工厂,8位WAVE转换和winhex工具实现对wave音频文件的提取成c文件。对于实现这样的功能,我想把其分为大体四个部分完成。 3. 设计的具体方法 a.关于lcd1602液晶的设计 字符型1602液晶是专门用来显示字母,数字,符号的点阵型液晶模块, 这是一个16*2的模块,每行16个字符,一共可以显示两行。 这里主要需要用的是RS,RW,E三个控制引脚,以及对于用D0~D7负责给予数据或者命令,RS在高电平时是对于数据的选择,在低电平时是对于命令的选择,RW是在高电平时是读,在低电平时是写,通常要用写功能,因为一般液晶都是用来显示的。E是使能端,使用的时候设为高电平。其他的不用到所以在这里不进行介绍了,在开发板上,RS接在P2.6口,RW接P2.5口,E接P2.7口,D0~D7接在P0口。

对于1602的操作过程有如下:主要是先对1602进行初始化设计,然后是写命令RS=L,设置显示坐标,然后是写数据,RS=H LCD初始化的程序原理设计:

由datasheet可知,由于本开发板给的液晶显示是4位的,所以先给8位转化为4位的指令(0x32),在四位线下的初始化指令是(0x28)(0x06)(0x01),设置显示模式(0x0c)开显示,不显示光标,光标也不闪烁,写一个,指针加一,清屏,设置数据的起点(0x80+0x00)是写第一行的,(0x80+0x40)写第二行的开始地址。 LCD的写入命令和写入数据: 在写入命令时要让RS=L,RW=L,E=H,先开一下使能进行写入命令,再将使能关闭停止写入命令。在写入数据时要注意时序图的准备时间,用软件延时来实现,RS=H,RW=L,E=H,D0~D7=数据,同样的也需要对这个进行使能的控制, 由于在时序图中有这样的使能时间上的间隔,所以加上延时,可以有效的实现,不然可能会使在读/写操作的时候不能完整的读数据。 void LcdWriteData(uchar dat) //写入数据 { LCD1602_E = 0; //使能清零 LCD1602_RS = 1; //选择写入数据 LCD1602_RW = 0; //选择写入 LCD1602_DATAPINS = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改

51单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号:2012197213 2012118029 班级:自动化1211 指导老师:阮海容

目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。 7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。 11)完成课程设计报告。 基本要求 1)实现最基本要求的1~10部分。 2)键盘输入可以控制电子时钟的走时/调试。 3)设计键盘输入电路和程序并调试。 4)掌握键盘和显示配合使用的方法和技巧。 提高发挥部分

嵌入式电子闹钟()时钟课程设计

} #include

相关主题
相关文档
最新文档