当前位置:文档之家› 嵌入式时钟设计

嵌入式时钟设计

嵌入式时钟设计
嵌入式时钟设计

嵌入式系统课程设计报告

多功能实时时钟

姓名:冯子勇卫晓欣翁海权曾康玲

班级:07电子信息工程1、2班

学号:200730580107

200730580225

200730580125

200730580132

指导老师:殷建军、俞龙、陈楚、李震、

孙道宗

日期:2010.12.20~2010.12.31

成员基本情况和分工

姓名学号分工情况

冯子勇(组长)200730580107 程序编写、成员分工卫晓欣200730580225 资料收集与程序编写

翁海权200730580125 资料收集

曾康玲200730580132 程序调试

摘要

本文说明为多功能时钟设计方案,基于S3C2410结合RTC模块,IIC(控制小键盘和数码管等)来做具备定期功能的实时时钟。

实时时钟(RTC)单元在系统电源关闭的情况下可以在备用电池下工作。RTC 可以使用STRB/LDRB ARM操作传输二进制码十进制数的8 位数据给CPU。数据包括秒、分钟、小时、日期、天、月、年的时间信息。RTC 单元可以在32.768KHz 的外部晶振下工作,可以可以执行报警功能。

关键词:多功能时钟;S3C2410;RTC;IIC

目录

1 实验题目分析 (5)

1.1 问题分析 (5)

1.2 功能分析 (5)

1.3 开发平台及工具介绍 (5)

2 实验概要设计 (5)

2.1 实验基本原理 (5)

2.2 实验电路图 (8)

2.3 实验主要步骤 (9)

3 实验详细过程 (9)

3.1 具体实验过程和内容 (9)

3.2 程序流程图 (10)

3.3 实验和程序问题分析 (11)

4 实验输出界面 (11)

5 总结 (13)

6 参考文献 (14)

7 附录:主要程序代码 (15)

1、实验题目分析

1.1 问题描述

结合实时时钟,IIC(控制小键盘和数码管等)来做具备定期功能的实时时钟。

1.2功能分析

至少完成以下功能:

(1)能显示每秒的时刻

(2)按下功能键能切换显示日期

(3)能设置定时闹钟,定时到产生某种输出

(4)可以扩展考虑加入外部中断,如停止闹钟功能等。

1.3 开发平台及工具介绍

实验器材:CITK2410开发板,JTAG连接线,调试器,并口数据线,串口数据线

开发软件:ADS1.2集成开发环境

2、实验概要设计

2.1 实验基本原理

IIC总线:IIC总线的器件分为主器件和从器件。主器件的功能是启动在总线上传送数据,并产生时钟脉冲,以允许与被寻址的器件进行数据传送。

SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL 线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。

图1 起始和停止信号图

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

图2 数据传送时序图

IIC总线(IICSDA、IICSCL)经过VDD33的上拉后,进入ZLG7290

数码管:实验使用的数码管是广州周立公司单片机发展有限公司自行设计的一款数码管显示驱动及键盘扫描管理芯片。下面是介绍该数码管的特点还有电路图(图3):

1 IIC串行接口提供键盘中断信号方便与处理器接口

2 可驱动8 位共阴数码管或64只独立LED 和64个按键

3 可控扫描位数可控任一数码管闪烁

4 提供数据译码和循环移位段寻址等控制

5 8个功能键可检测任一键的连击次数

6 无需外接元件即直接驱LED可扩展驱动电流和驱动电压

7 提供工业级器件多种封装形式PDIP24 SO24

采用24引脚封装引脚图如图所示其引脚功能分述如下:

图3 ZLG7290引脚图

图4 IIC LED控制器连接电路

实时时钟(Real Time Clock):S3C2410提供了一个实时时钟,该时钟使用独立的一路1.8V供电,保证主电源切断时能正常维持RTC工作。S3C2410的RTC 支持两个中断:Time Tick(固定在一个频率内发出的时钟中断)和Alarm中断(在某个时刻产生闹铃中断)。利用这两个中断可以设置每一秒中断一次显示变化时间,用Alarm中断实现闹钟功能。以下为S3C2410内部RTC模块结构图:

图5 S3C2410内部RTC模块结构

特点:1.BCD数:秒、分钟、小时、日期、日、月、年;2.闰年生成器;3.报警功能:报警中断或从掉电模式中唤醒;4.已经解决2000年问题;5.独立电源引脚(RTCVDD);6.支持对于实时内核时间节拍的毫秒节拍时间中断。

2.2 实验电路图

ZLG7290功能电路图:

图6 ZLG7290功能电路图IIC总线接口电路图:

图7 IIC总线接口电路图

图8所示的RTC单元在32.768KHz 频率下振荡的电路

图8 TC单元在32.768KHz 频率下振荡的电路

2.3 实验主要步骤

1.初始化配置(各种寄存器)。

2.编写各种相关的中断程序。

3.主函数调用这几个中断程序。

4.编译程序。

5.使用仿真器调试。

3、实验详细过程

3.1 具体实验过程和内容

(1)实现实时时钟功能

设置rRTCCON、rTICNT、rRTCALM寄存器;ICNT[6:0]=127;可以设置rTICNT=(1<<7)|(127)实现每秒中断一次;以设置闹铃寄存器,例如每秒的第几秒中断一次,实现定时闹钟的功能;设置初始化当前时间;里还包括编写Time Tick 中断和Alarm中断的中断服务程序。

(2)初始化IIC总线,写一个IIC的操作库。包括发送和接受功能。编写可以向ZLG7290发出指令的函数。

(3)编写键盘中断处理程序

通过键盘中断,实现数码管显示日期和时间的切换,还有停止。

(4)使用ADS1.2集成开发环境编译调试程序

(5)使用仿真器调试。 3.2 程序流程图

图9

图10

程序入口点 2410初始化 显示日期

延时 显示时间 停止

闹钟 主函数

切换

Y

N

初始化

Time tick 中断

Alarm 中断

键盘 中断

闹钟

数码管显示 时间或日期

输出当前时间

3.3 实验和程序问题分析

这次试验实际上是融合了三个实验的要求,要实验实时时钟的功能,包括显示当前时间,还有设置闹钟,主要使用到2410的RTC的两个中断:Time Tick 和Alarm中断。

而要实现在数码管上显示当前时间,并且按键盘时实现时间与日期的切换,需要用到数码管和IIC总线的知识。

而实现的难处在于如何把几个内容融合并且实现所需的功能,这也是实验要求做的。

4、实验输出界面

选取主要界面的截图。

图11 键盘功能

图12 显示日期

图13 示时间

五、设计心得体会

在老师的帮助下,在组员的协力合作下,我们组最终实现了本次课程设计。通过总结,我们得到了以下的收获:

一:经过一个学期的学习,我们对于嵌入式系统的编程有了一定的理解,但是编程的规范性,程序的仿真,硬件电路的调试等步骤,确实我们还不是很熟悉的,我们需要一个良好的平台,来熟悉和加强这些方面的内容。而通过本次课程设计,我们小组成员在老师的指引和帮助下,认认真真的了解了嵌入式开发板的原理框图,硬件电路图并深入了解了嵌入式编程的相关知识点,在进行设计的过程中,通过结合相关软硬件,我们也了解到了ARM嵌入式系统的硬件开发方法、系统启动程序和外设驱动程序的开发,也掌握了焕发环境的调试技术。

二:通过本次设计,我们再一次体会到了科学的严谨性以及作为一名学者所应该具有的治学态度。软件的编程,除了是对思路的一种考验之外,也是对一个人性情的一个考验,在编程过程中,一个字母,甚至只是一个逗点的错误,都有可能导致整个程序的无法运行,在我们编程的过程中就遇到过很多次这样的情况,只能沿着程序一步步地检查解决问题。经过这次设计之后呢,我们明显感觉自己的逻辑思维能力有了很大的提高。总之,经过本次设计,我们受益匪浅!六、讨论及进一步研究建议

本次设计总体上来说给我们带来了很大的收获,但是,我们觉得其中还有一些可以通过改进,能够是课程设计的目的更好地体现出来,具体表现在:一:课程设计安排的时间如果能适当调整会更有教育效果。每次的课程设计,总是会有很多人因为考试与课程设计时间上的冲突而烦躁,有些人甚至为了能够更好地迎接考试而放下课程设计的工作,选择了抄同学的程序或者用别人的作品桃代李僵,所以我觉得如果将课程设计的时间改在下学期的开始的话,这种现象会少很多。

二:评分项中“作品提交时间”这一项的存在是不合理的,特别是关于纯软件方面的设计。虽然我们承认“快意味着熟练”,但是我们见到更多的是有些同学追求速度了抄袭,也有些人因此就背上了包袱,怕设计的时间太长影响了分数故而不加深入研究而匆匆提交设计。总的来说,这一项分值的设置是弊大于利。

以上是我个人的一点建议,提得不合理的地方,请老师见谅。

6、参考文献

[1]《ARM9嵌入式系统设计-基于S3C2410与Linux》

[2]《基于S3C2410的嵌入式系统实验指导书》

附录:主要程序代码:

//Main.c

#include

#include

#include "def.h"

#include "option.h"

#include "2410addr.h"

#include "2410lib.h"

#include "2410slib.h"

#include "mmu.h"

#include "2410rtc.h"

#include "2410IIC.h"

#include "2410keypad.h"

void Isr_Init(void);

void HaltUndef(void);

void HaltSwi(void);

void HaltPabort(void);

void HaltDabort(void);

U8 KeyDown;

U8 SetTime;

U8 KeyReal;

U8 SetAlarm;

U8 AlmFlash = 0;

U8 Flash_key11;

int k;

void Led_Display(int data)

{

// rGPFDAT = (rGPFDAT & 0xf) | !((data & 0xf)<<4);

rGPFDAT = (rGPFDAT & ~(0xf<<4)) | ((~data & 0xf)<<4); }

void Main(void)

{

MMU_Init();

ChangeClockDivider(1,1); // 1:2:4

ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz Port_Init();

Isr_Init();

Uart_Init(0,115200);

Uart_Select(0);

Led_Display(0x00);

LED8_init();

KeyPadInit();

led_set_time();

Rtc_Alarm_Init();

Uart_Printf("\nWelcom to Uart Test!\n");

Uart_Printf("Baud rate=115200, no flow control\n");

while(1)

{

//Display_Rtc();

LED8_Test(AlmFlash);

if(Flash_key11==1)

{

Led_Display(0x0f); //LED On

for (k=0; k<0xffff; k++); //Delay

Led_Display(0x00); //LED Off for (k=0; k<0xffff; k++);} //Delay

while(KeyDown == 1)

{

KeyDown = 0;

//有按键按下,即关闭AlmFlash

AlmFlash = 0;

//按下"."键显示日期

if(KeyReal == DOT)

{

date_time_turn = DATE_TURN;

}

//按下"NumLock"设置时间

if(SetTime == 1)

{

GetTimeChange();

SetTime = 0;

}

//按下"/"设置闹钟

if(SetAlarm == 1)

{

SetAlarm = 0;

GetAlarmChange();

SetAlarm = 0;

}

}

}

}

//============================================================ =======

void Isr_Init(void)

{

pISR_UNDEF = (unsigned)HaltUndef;

pISR_SWI = (unsigned)HaltSwi;

pISR_PABORT = (unsigned)HaltPabort;

pISR_DABORT = (unsigned)HaltDabort;

rINTMOD = 0x0; //All=IRQ mode

rINTMSK = BIT_ALLMSK; //All interrupt is masked.

rINTSUBMSK = BIT_SUB_ALLMSK; //All sub-interrupt is masked. <- April 01, 2002 SOP

}

//============================================================ =======

void HaltUndef(void)

{

Uart_Printf("Undefined instruction exception.\n");

while(1);

}

//============================================================ =======

void HaltSwi(void)

{

Uart_Printf("SWI exception.\n");

while(1);

}

//============================================================ =======

void HaltPabort(void)

{

Uart_Printf("Pabort exception.\n");

while(1);}

//============================================================ =======

void HaltDabort(void)

{

Uart_Printf("Dabort exception.\n");

while(1);

}

//2410keypad.C

#include "def.h"

#include "option.h"

#include "2410addr.h"

#include "2410lib.h"

#include "2410slib.h"

#include "2410keypad.h"

void __irq KeyPad_Int(void); //also Eint1 int

int KeyPadInit(void);

#define ONEBIT 0x1

#define KEYPADCSDIS (rGPBDAT |=(ONEBIT << 6))

#define KEYPADCSEN (rGPBDAT &=~(ONEBIT << 6))

#define KEYPADDIRMO (rGPBDAT &=~(ONEBIT << 0)) #define KEYPADDIRMI (rGPBDAT |=(ONEBIT << 0))

void Delay30us(void)

{

unsigned int i;

for (i=0;i<0x4ff;i++);

}

void Delay60us(void)

{

unsigned int i;

for (i=0;i<0x9ff;i++);

}

int putcToKBCTL(U8 c)

{

U32 i;

// UINT rxbuf[10];

// UINT x;

KEYPADCSEN;

KEYPADDIRMO;

Delay60us();

while((rSPSTA1 & ONEBIT)==0); // wait while busy

rSPTDAT1 = c; // write left justified data

while((rSPSTA1 & ONEBIT)==0); // wait while busy

KEYPADCSDIS;

i = rSPRDAT1;

return(i);

}

U8 readKBValue(void)

{

unsigned char i;

KEYPADCSEN;

KEYPADDIRMO;

Delay60us();

while((rSPSTA1 & ONEBIT)==0); // wait while busy

rSPTDAT1 = 0x15; // write read key value command

while((rSPSTA1 & ONEBIT)==0); // wait while busy

Delay30us();//delay 30us

KEYPADDIRMI;

rSPTDAT1 = 0xff; // write read key value command

while((rSPSTA1 & ONEBIT)==0); // wait while busy

i = rSPRDAT1;

KEYPADCSDIS;

KEYPADDIRMO;

return(i);

}

int KeyPadInit()

{

int t;

char dummy = (char)0xff;

// Setup IO port for SPI interface & Keyboard

// Setup EINT1 (KBDINT)

rGPFCON &= ~(0x3 << 2); // Clear GPF1

rGPFCON |= (0x2 << 2); // Set GPF1 to EINT1 for Keyboard interrupt rEXTINT0 &= ~(0x7 << 4); // Clear EINT1

rEXTINT0 |= (0x2 << 4); // fallig edge triggered for EINT1

// setup SPI interface

// GPG5 : SPIMISO (KBDSPIMISO)

// GPG6 : SPIMOSI (KBDSPIMOSI)

// GPG7 : SPICLK (KBDSPICLK)

rGPGCON &= ~((0x3 << 10) | (0x3 << 12) | (0x3 << 14)); // Clear GPG5,6,7 rGPGCON |= ((0x3 << 10) | (0x3 << 12) | (0x3 << 14));

// setup _SS signal(nSS_KBD)

rGPBCON &= ~(0x3 << 12); // Clear GPB6

rGPBCON |= (ONEBIT << 12); // Set Port GPB6 to output for nSS signal

KEYPADCSDIS; // Set /SS high

// setup Dir signal (KEYBOARD) CPU->7289

rGPBCON &= ~(0x3 << 0); // Clear GPB0

rGPBCON |= (ONEBIT << 0); // Set Port GPB0 to output for _PWR_OK signal

// rGPDDAT &=~(ONEBIT << 0); // set _PWR_OK to 0

KEYPADDIRMO;

// Setup SPI registers

// Interrupt mode, prescaler enable, master mode, active high clock, format B, normal mode

// rSPCON1 = (ONEBIT<<5)|(ONEBIT<<4)|(ONEBIT<<3)|(0x0<<2)|(ONEBIT<<1);

// Poll mode, prescaler enable, master mode, active high clock, format A, normal mode

rSPCON1 = (0<<5)|(ONEBIT<<4)|(ONEBIT<<3)|(0x0<<2)|(0<<1);

// Developer MUST change the value of prescaler properly whenever value of PCLK is changed.

rSPPRE1 = 255; // 99.121K = 203M/4/2/(255+1) PCLK=50.75Mhz FCLK=203Mhz SPICLK=99.121Khz

putcToKBCTL(0xa4); //send init command

rSRCPND = BIT_EINT1; //to clear the previous pending states

rINTPND = BIT_EINT1;

//Define the keypad int entry

pISR_EINT1 = (unsigned)KeyPad_Int;

rINTMSK=~(BIT_EINT1); //enable Eint

return(TRUE);

}

U8 KeyChange(U8 KeyValue)

{

U8 KeyReturn = 255;

switch(KeyValue)

{

case 32://NumLock

{

KeyReturn = NUMLOCK;break;

}

case 33:// 7

{

KeyReturn = KEY7;break;

}

case 34:// 4

{

KeyReturn = KEY4;break;

}

case 35:// 1

{

KeyReturn = KEY1;break;

}

case 40:// /

{

KeyReturn = RIGHT_SLASH;break;

//date_time_turn = DATE_TURN; }

case 41:// 8

{

KeyReturn = KEY8;break;

}

case 42:// 5

{

KeyReturn = KEY5;break;

}

case 43:// 2

{

KeyReturn = KEY2;break;

}

case 44:// 0

{

KeyReturn = KEY0;break;

}

case 48:// *

{

KeyReturn = STAR;break;

}

case 49:// 9

{

KeyReturn = KEY9;break;

}

case 50:// 6

{

KeyReturn = KEY6;break;

}

case 51:// 3

{

KeyReturn = KEY3;break;

}

case 52:// .

{

KeyReturn = DOT;break;

}

case 55:// -

{

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ?振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ?分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。其电路图如下: 图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下:

单片机简易时钟课程设计

目录 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]。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。 数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点,其中,利用单片机实现的电子钟具有编程灵活,便于功能扩充,精确度高等特点。

数字电路电子时钟课程设计

数字电路电子时钟课程设计 整个数字钟由时间计数电路、晶体振荡电路、校正电路、整点报时电路组成。 其中以校正电路代替时间计数电路中的时、分、秒之间的进位,当校时电路处于正常输入信号时,时间计数电路正常计时,但当分校正时,其不会产生向时 进位,而分与时的校位是分开的,而校正电路也是一个独立的电路。电路的信 号输入由晶振电路产生,并输入各电路 方案论证:方案一数字电子钟由信号发生器、“时、分、秒”计数器、译码 器及显示器、校时电路、整点报时电路等组成。秒信号产生器是整个系统的时 基信号,它直接决定计时系统的精度,一般用555构成的振荡器加分频器来实现。 优点:数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械 式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 方案二秒、分计数器为60进制计数器,小时计数器为24进制计数器。 实现这两种模数的计数器采用中规模集成计数器74LS90构成。 优点:简单易懂,比较好调试。 1 设计原理数字电子钟由信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路等组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用555构成的振荡器加分频器来实现。将标 准秒脉冲信号送入“秒计数器”,该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲”信号,该信号将被 送到“时计数器”。“时计数器”采用24进制计数器,可以实现一天24h的累计。译码显示电路将“时、分、秒”计数器的输出状态经七段显示译码器译码,通 过六位LED显示器显示出来。整点报时电路是根据计时系统的输出状态产生一

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

目录 1、引言 (3) 2、总体设计 (4) 3、详细设计 (5) 3.1硬件设计 (5) 3.2软件设计 (10) 4、实验结果分析 (26) 5、心得体会 (27) 6、参考文献 (27)

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

1.引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

电子时钟设计报告

电子时钟设计报告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;电子时钟;数码管;按键

单片机完整电子时钟设计报告.doc

目 一.作品介???????????????????????????????? 2 二.片机系原理及工作原理描述????????????????????? 2 三.程中碰到的及解决方法????????????????????? 4 四.数据及差分析??????????????????????????? 4 五.?????????????????????????????????? 5 六.程序模框?????????????????????????????? 5 七.程序清????????????????????????????????7

单片机的个性化电子钟设计报告 一.作品简介 该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控, 4 位 LED 数码显示,分别显示“小时:分钟”。该作品主要用于24 小时计时显示,能整时报时 ,能作为秒表使用,能定时闹铃 1 分钟。 使用方法 :开机后显示日期,学号,时钟在00:00:00 起开始计时。 (1)长按进入调分状态 :分单元闪烁 ,按加 1,按减 1.再长按进入时调整 状态 ,时单元闪烁 ,加减调整同调分 .按长按退出调整状态。 (2)按进入设定闹时状态: 12:00: ,可进行分设定,按分加 1,再按为时调 整 ,按时加 1,按调闹钟结束.在闹铃时可按停闹,不按闹铃 1 分钟。 (3)按下进入秒表状态:再按秒表又启动,按暂停 ,再按秒表清零 ,按 退出秒表回到时钟状态。 二.单片机系统原理图及工作原理描述 (1)总原理图 如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块组成。

#基于单片机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输入。

数字电子时钟设计

电子技术课程设计 数字电子时钟的设计 摘要: 设计一个周期为24小时,显示满刻度为23时59分59秒,具有校时功能和报时功能的电子钟。本系统的设计电路由时钟译码显示电路模块、脉冲逻辑电路模块、时钟脉冲模块、整电报时模块、校时模

块等部分组成。计数器采用异步双十进制计数器74LS90,发生器使用石英振荡器,分频器4060CD及双D触发器74LS74D,整电报时电路用门电路及扬声器构成。 一、设计的任务与要求 电子技术课程设计的主要任务是通过解决一,两个实际问题,巩固和加深在“模拟电子技术基础”和“数字电子技术基础”课程中所学的理论知识和实验技能,基本掌握常用电子电路的一般设计方法,提高电子电路的设计和实验能力,为以后从事生产和科研工作打下一定的基础。电子技术课程设计的主要内容包括理论设计、仿真实验、安装与调试及写出设计总结报告。衡量课程设计完成好坏的标准是:理论设计正确无误;产品工作稳定可靠,能达到所需要的性能指标。 本次课程设计的题目是“多功能数字电子钟电路设计”。要求学生运用数字电路,模拟电路等课程所学知识完成一个实际电子器件设计。 二、设计目的 1、让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统 的设计、安装、测试方法; 2、进一步巩固所学的理论知识,提高运用所学知识分析和解决实 际问题的能力; 3、提高电路布局﹑布线及检查和排除故障的能力; 4、培养书写综合实验报告的能力。

三、原理方框图如下 1、图中晶体振荡电路由石英32.768KHZ及集成芯。 2、图中分频器4060BD芯片及D触发器构成分频器。 3、计数器由二——五——十73LS90芯片构成。 4、图中DCD_HEX显示器用七段数码显示器且本身带有译码器。 5、图中校时电路和报时电路用门电路构成。 四、单元电路的设计和元器件的选择 1、十进制计数电路的设计 74LS90集成芯片是二—五—十进制计数器,所以将INB与QA 相连;R0(1)、R0(2)、R9(1)、R9(2)接地(低电平);INA

数字时钟设计实验报告47686

word专业整理 电子课程设计 题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

量。由振荡器与分频器组合产生秒脉冲信号。 ?振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ?分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。其电路图如下: 图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平

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

#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();

多功能数字钟电路设计

多功能数字钟电路设计 一、数字电子钟设计摘要 (2) 二、数字电子钟方案框图 (2) 三、单元电路设计及相关元器件的选择 (3) 1.6进制计数器电路的设计 (3) 2.10进制计数器电路的设计 (4) 3.60进制计数器电路的设计 (4) 4.时间计数器电路的设计 (5) 5.校正电路的设计 (6) 6.时钟电路的设计 (7) 7.整点报时电路设计 (8) 8. 译码驱动及单元显示电路 (9) 四、系统电路总图及原理 (9) 五、经验体会 (10) 六、参考文献 (10) 附录A:系统电路原理图 附录B:元器件清单

一、数字电子钟设计摘要 数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。 此次设计数字钟就是为了了解数字钟的原理,从而学会制作数字钟。而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。且由于数字钟包括组合逻辑电路和时叙电路。通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。 二、数字电子钟方案框图 图1 数字电子钟方案框图

三、单元电路设计和元器件的选择 1. 6进制计数器电路的设计 现要设计一个6进制的计数器,采用一片中规模集成电路74LS90N芯片,先接成十进制,再转换成6进制,利用“反馈清零”的方法即可实现6进制计数,如图2所示。 图2

2. 10进制电路设计 图3 3. 60 进数器电路的设计 “秒”计数器与“分”计数器都是六十进制,它由一级十进制计数器和一级六进制计数器连接而成,如图4所示,采用两片中规模集成电路74LS90N串接起来构成“秒”“分”计数器。

时钟设计报告

教师签名: 说明:答辩未通过者总分记为0并重修。 总分 = 程序╳50% + 设计报告╳20% + 答辩╳30% 成都信息工程学院 课程设计 时钟设计报告 姓名:张双 学院:电子工程学院学院 学号:3140301005

摘要 时钟可以说是现代人们生活中必备的生活用品。市场上各种类型、款式的时钟数不胜数,一款良好的时钟可以给人们带来极大的便利。关于时钟的各种应用程序层出不穷,而我的目的是设计一款界面简单、方便易用、功能相对简洁实用的指针式时钟程序。 本次设计的简易时钟通过菜单栏可以实现启动时钟、暂停时钟、时钟清零以及时间设置等功能。一个时钟大致可由时钟背景、时针、分针、秒针四个部分构成。 该时钟的设计主要使用Windows操作系统、Visual C++ 6.0集成开发环境开发、MFC应用程序开发框架。通过本设计,我们进一步掌握Visual C++应用程序,系统地学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境Visual C++。 关键词:时钟;MFC ;VC++

第一章绪论 随着社会的发展,各种类型的时钟已经进入了千家万户。而操作简单、美观大方的指针式时钟备受家庭喜爱。本次时钟设计主要是了解简单的时钟显示窗口,进一步掌握Visual C++应用程序,系统地学习面向对象编程思想,了解MFC架构,逐步熟悉可视化编程环境Visual C++ 1.1课程设计目的 时钟几乎是每个人生活中必备的生活用品。时钟虽小确非常重要。一款良好的时钟可以给人们带来极大的便利。当然,现在关于时钟的各种应用程序层出不求,我的目的是设计一款界面简单、方便易用、功能相对丰富的指针式时钟程序。为了达到上述目标,以及课程设计的要求,结合自己自身的情况,选择了PC平台、Windows操作系统、Visual C++ 6.0开发平台、MFC框架来实现自己的程序。而且希望能通过自己这款小应用程序的设计,来掌握面向对象的程序设计方法,了解C++面向对象的设计方法和技巧,有效地、深刻地理解课程内容,体会理论、方法和设计原则;培养分析实际问题和解决问题的能力,具备使用面向对象程序设计开发工具设计实际系统的能力。 1.2 技术应用的基本现状 Microsoft公司1998年推出了Visual C++6.0,它是支持Win32平台应用程序(application)、服务(service)和控件(control)开发的可视化编程的集成环境。与VC++5.0的最大不同之处是它的帮助功能更强大,MSDN(Microsoft Developer Networking)为包括VC++6.0在内的所有微软的程序产品提供在线帮助;另外,类的对象的可用成员函数、成员变量及函数的参数类型与个数都能动态显示在屏幕上,用户无须记住那些复杂而又枯燥乏味的函数名及复杂的参数,这无疑使得用VC++编程更加容易。所以VC++6.0可谓是Microsoft公司的王牌产品,编程功能强大而赢得广大程序的偏爱。

基于嵌入式系统的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 ;设置堆栈段

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

目录 摘要 一、引言 (1) 二、硬件电路设计 (2) 2.1 主要芯片 (2) 2.1.1 微处理器 (2) 2.1.2 DS1302简介 (4) 2.1.3 DS1302引脚说明 (5) 2.1.4 74ls245简介及引脚说明 (5) 2.2 时钟硬件电路设计 (6) 2.2.1 时钟电路设计 (7) 2.2.2 整点报时功能 (8) 2.2.3 硬件原理图 (9) 三、proteus和keil软件仿真及调试 (9) 3.1 电路的仿真 (9) 3.2 软件调试 (9) 四、C语言程序 (10) 五、参考文献 (13)

电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。 本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。本设计应用AT89C52芯片作为核心,6位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。 本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。 关键词:电子钟;多功能;AT89C52;时钟芯片

一、引言 时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。从古代的水漏、十二天干地支,到后来的机械钟表以及当今的石英钟,都充分显现出了时间的重要,同时也代表着科技的进步。致力于计时器的研究和充分发挥时钟的作用,将有着重要的意义。 1.1 多功能电子时钟研究的背景和意义 20世纪末,电子技术获得了飞速的发展。在其推动下,现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化程度,同时也使现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂容易使人忘记当前的时间。然而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦。平时我们要求上班准时,约会或召开会议必然要提及时间;火车要准点到达,航班要准点起飞;工业生产中,很多环节都需要用时间来确定工序替换时刻。所以说能随时准确的知道时间并利用时间,是我们生活和工作中必不可少的[1]。 电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛应用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、0按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

基于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上显示类似的时钟界面;动态显示当前的时间,包括:

相关主题
文本预览
相关文档 最新文档