基于ARMS3C2440的电子时钟设计

基于ARMS3C2440的电子时钟设计
基于ARMS3C2440的电子时钟设计

目录

一、设计功能 (2)

二、系统设计思路 (2)

三、详细设计 (3)

1、硬件设计 (3)

2、软件设计 (4)

四、调试结果与分析 (6)

附录 (8)

参考文献 (19)

一、设计功能

时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED 显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。

二、系统设计思路

本系统主要有四大部分两大模块组成,分别是硬件模块①电源,②晶振,③S3C2440处理器和软件模块时钟模块(主要由LCD提供功能)。

(1)时钟模块设计

本模块是电子时钟功能实现的主要模块,也是本次课程设计的核心模块,本模块实现的功能主要有:时间计时,钟面时间显示,数字时间显示。

其中,时间计时功能和在LCD上显示数字钟显示功能较易实现,之前的单片机课程设计和HDL课程设计均有所涉及。计时使用S3C44B0X内部时钟脉冲和分频实现,在LCD上显示数字钟显示使用LCD数字显示功能实现。

除此之外,需要在整个移植后的系统中初始化堆栈并设定任务,通过任务完成时钟的各项功能。

(2)S3C2440处理器的应用

通过对S3C2240处理器的学习,可以利用其内部的RTC单元和LCD控制器,

外接LCD 模块、晶振和电源实现电子实时时钟的功能。

主要实现方法为:通过电源和晶振保证处理器的正常工作和时钟来源,通过编程设定RTC 单元的工作模式,实现实时时钟的功能;然后根据所要求显示的图形效果,编写程序设定LCD 控制器的相应寄存器,将RTC 单元和LCD 控制器合理有效地结合起来;最终由LCD 模块作出相应动作,完成实时时钟的显示功能。

系统设计总体框图如图2-1所示

图2-1系统设计框图

三、详细设计

1、硬件设计

(1)S3C2440处理器简介

S3C2440是SANSUNG 公司推出的一款功能强大、功耗较低的基于ARM920T 为核心的嵌入式处理器。它满足了小型手持设备和普通应用要求的低功耗和高性能需求,是一种实用的小型芯片微控制器。为了进一步降低系统的成本,S3C2440芯片还提供了非常丰富的内部设备,基于ARM920T 内核,S3C2440支持JTAG 仿真器调试,并且具备了16KB 的指令缓存和数据缓存。此外,之前也介绍过了它支持Win CE 、uc/os 和Linux 等操作系统,具有很强的扩展能力。S3C2440具有MMU 功能,支持有外部存储控制器,可提供访问外部存储器所需要的存储器控制信号

(2)RTC 存储寄存器

实时时钟(RTC )器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的

S3C2440处理器

晶振

电源

控制程序

RTC

LCD

LCD 模块

时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。

S3C2440实时时钟单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC发送8位BCD码数据到CPU。传送的数据包括秒、分、小时、星期、月份和年份。RTC单元时钟源由外部32。768kHz 晶振提供,可以实现闹钟(报警)功能。

访问RTC模块的寄存器,首先要社RTCCON的位0位1。CPU通过读取RTC 模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON和BCDYEAR 的值,得到当前的相应时间值。但是,由于多个寄存器一次读出,所以由可能产生错误。例如:用户一次读取年(1989)、月(12)、日(31)、时(23)、分(59)、秒(59)。当秒数位1~59时,无任何问题;但是,当秒数位0时,当前时间和日期就变成了1990年1月1日0时0分。在这种情况下(秒数位0),用户应该重新读取年份到分钟的值。

(3)电源

RTC单元可以使用后后备电池通过引脚RTCVDD供电。当系统关闭电源以后,CPU和RTC的接口电路被阻断。后备电池只需要驱动晶振和BCD计数器,从而达到最小功耗。

2、软件设计

(1)LCD模块

本模块的主要功能完成LCD的初始化,加载LCD驱动程序,使LCD与S3C2440实现对接,完成显示功能。目前,许多常用的LCD模块一般自身都不带有字库,而实际应用中人机界面又经常需要显示中英文字符。对于不带字库的LCD模块显示字符的解决方法通常是利用字模提取软件来进行预处理,即将系统中可能用到的字符一一将其字模提取出来,并将字模数据存放在程序空间中。该方法只适用于显示字符固定且数量较入式系统中,灵活性差。考虑到嵌入式系统一般带有一定容量的ROM存储系统,本文以无字的图形LCD模块为例,搭建了以ARM9微处理器S3C2440为基础的嵌式系统工作平台,在此平台的基础上,讨论了一种基于自制硬件字库的中英文字符显示方案。

LCD控制器的作用是将系统存储器中的LCD图像数据传送到外部LCD驱动器中,并产生必须的LCD控制信号。S3C2440LCD控制器支持在灰白LCD上的单色、

4级灰度、16级灰度显示,也能与彩色LCD接口支持最大256色的显示。可以编程支持不同水平和垂直点数(64O×480、320×240、160×160等)、不同数据线宽度、不同接口时序和刷新速率的LCD,支持4位双扫描、4位单扫描、8位单扫描的LCD显示器,并支持水平/垂直卷动,以用来支持更大的屏幕显示(如1280×1280) 。S3C44BOX支持查找表,用于各种色彩选择或灰度级别的选择。在灰度模式中,通过查找表可以在16级灰度中选择四种灰度,在彩色模式中,一个字节的图像数据是用3位表示红色,3位表示绿色,2位表示蓝色,通过查找表可以选择16级红色中的8种红色、16级绿色中的8种绿色和16级蓝色中的4种蓝色。

S3C2440 中具有内置的LCD 控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,以及256彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-based dithering algorithm)和帧率控制 (Frame Rate Control)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现233或332的RGB调色的格式。对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD 控制器中的相应寄存器写入不同的值,来配置不同的LCD 显示板。

S3C2440中内置的LCD 控制器提供了下列外部接口信号:

VFRAME: LCD 控制器和LCD 驱动器之间的帧同步信号。它通知LCD屏开始显示新的一帧,LCD 控制器在一个完整帧的显示后发出VFRAME 信号。

VLINE: LCD 控制器和LCD 驱动器间的同步脉冲信号,LCD 驱动器通过它来将水平移位寄存器中的内容显示到LCD 屏上。LCD 控制器在一整行数据全部传输到LCD 驱动器后发出VLINE 信号。

VCLK: LCD 控制器和LCD 驱动器之间的象素时钟信号,LCD 控制器在VCLK 的上升沿发送数据,LCD 驱动器在VCLK 的下降沿采样数据。

VM: LCD 驱动器所使用的交流信号。LCD 驱动器使用VM 信号改变用于打开或关闭象素的行和列电压的极性。VM 信号在每一帧触发,也可通过编程在一定数量的VLINE 信号后触发。

VD[3:0]: LCD 象素数据输出端口。

VD[7:4]: LCD 象素数据输出端口。

LCD 控制器包含REGBANK, LCDCDMA, VIDPRCS, 和TIMEGEN。REGBANK 具有18 个可编程寄存器,用于配置LCD 控制器。LCDCDMA为专用的DMA,它可以自

动地将显示数据从帧内存中传送到LCD 驱动器中。通过专用DMA ,可以实现在不需要CPU 介入的情况下显示数据。VIDPRCS 从LCDCDMA 接收数据,将相应格式(比如4/8 位单扫描和4 位双扫描显示模式)的数据通过VD[7:0]发送到LCD 的驱动器上。TIMEGEN 包含可编程的逻辑,以支持常见的LCD 驱动器所需要的不同接口时间和速率的要求。TIMEGEN 部分产VFRAME,VLINE, VCLK, VM 等信号。

S3C2440处理器与LCD 显示器的连接示意图如3-1所示

图3-1S3C2440与LCD 显示器的连接图

四、调试结果与分析

(1)通过编译调试在有S3C2440实验箱中进行调试,LCD 显示结果如图所示。

图4-1 LCD 调试结果显示 屏幕右上角显示出学号姓名和作品信息;

S3C2440

LCD 显示器

LCD 模块

屏幕中间显示的是钟面,有时针、分针和秒针,显示实时时间;

屏幕下方显示的是数字时钟,显示时分秒(与钟面时间相对应)和年月日(2)本课程设计属于嵌入式系统项目设计,嵌入式微处理器S3C2440和LCD模块,实现如下功能:

LCD显示“钟面”样式,时针、分针、秒针显示实时时间;

LCD显示“数字钟”样式,动态显示年、月、日、时、分、秒;

显示时间可以修改并保持“钟面”与“数字钟”时间保持一致;

LCD左上角动态显示小组成员姓名、学号及选题信息。

(3)本课程设计完成选题要求,但是有如下方面还需分析改进:“钟面”现实不够精确,分针和时针只设定了60个坐标位置,分针和时针走动不均匀;

数字钟部分尚未考虑到“大月”和“小月”以及“平年”和“闰年”的日期问题,所有月份均设定为30天;

时间修改麻烦,需要对源程序中设定的初值进行修改,无法通过键盘对时间进行修改;

未调用S3C2440内部实时时钟(RTC)模块,不能显示出精确的内部实时时间。

附录

源程序:

#include "..\inc\config.h"

#define STACKSIZE 256

#define x_line 160

#define y_line 80

OS_STK_DATA stk;

extern GUI_FONT CHINESE_FONT12;

extern GUI_FONT CHINESE_FONT16;

extern GUI_FONT GUI_Font8x16;

OS_EVENT * Send_LCD_Sem;

OS_EVENT *Key_Mbox;

I8 Hour[3],Min[3],Sec[3];

I8 hour = 0, min = 0, sec = 0,ms;

I8 YEA1[3],YEA2[3],MON[3],DAY[3];

int yea1 = 20,yea2=11, mon = 6, day = 23;

I8 XH0[3],XH1[3],XH2[3],XH3[3];

I8 XH4[3],XH5[3],XH6[3],XH7[3];

char xh0=01,xh1=62,xh2=31,xh3=03;

char xh4=32,xh5=36,xh6=02,xh7=12;

//int TimeCount = 0;

int SpaceXS[61]={160,165,170,175,180,185,

189,193,197,201,205,

206,207,208,209,210,

209,208,207,206,205,

201,197,193,189,185,

180,175,170,165,160,

155,150,145,140,135,

131,127,123,119,115,

114,113,112,111,110,

111,112,113,114,115,

119,123,127,131,135,

140,145,150,155,160, },

SpaceYS[61]={30,31,32,33,34,

35,39,43,47,51,

55,60,65,70,75,

80,85,90,95,100,

105,109,113,117,121,

125,126,127,128,129,

130,129,128,127,126,

125,121,117,113,109,

105,100,95,90,85,

80,75,70,65,60,

55,51,47,43,39,

35,34,33,32,31,30},

SpaceXM[61]={160,164,168,172,176,180,183,186,189,192,

195,196,197,198,199,200,199,198,197,196,

195,192,189,186,183,180,176,172,168,164,

160,156,152,148,144,140,137,134,131,128,

125,124,123,122,121,120,121,122,123,124,

125,128,131,134,137,140,144,148,152,156,

160

},

SpaceYM[61]={40,41,42,43,44,45,48,51,54,57,

60,64,68,72,76,80,84,88,92,96,

100,103,106,109,112,115,116,117,118,119,

120,119,118,117,116,115,112,109,106,103,

100,96,92,88,84,80,76,72,68,64,

60,57,54,51,48,45,44,43,42,41,

40

},

SpaceXH[13]={160,175,185,190,185,175,160,145,135,130,135,145,160}, SpaceYH[13]={50,55,65,80,95,105,110,105,95,80,65,55,50},

*Placex=&SpaceXS[0],*Placey=&SpaceYS[0],*Placexm=&SpaceXM[0],*Placeym =&SpaceYM[0],

*Placexh=&SpaceXH[0],*Placeyh=&SpaceYH[0];

void Display_xh1(char xx1,char yy1);

void Display_xh2(char xx2,char yy2);

void Display_xh3(char xx3,char yy3);

void show(I8 s)

void Shows()

{

show(sec);

Set_Color(GUI_GRAY); //擦除上一秒的

Draw_Line(x_line,y_line,*Placex,*Placey);

Placex=Placex+1;

Placey=Placey+1;

Set_Color(GUI_YELLOW); //显示下一秒的

Draw_Line(x_line,y_line,*Placex,*Placey);

Set_Color(GUI_RED); //显示下一分的

Draw_Line(x_line,y_line,*Placexm,*Placeym);

Set_Color(GUI_GREEN); //显示下一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

if(Placex==&SpaceXS[60]&&Placey==&SpaceYS[60])

{

Placex=&SpaceXS[0];

Placey=&SpaceYS[0];

}

}

void Showm()

Set_Color(GUI_GREEN);

Fill_Circle (288, 50, 25);

Set_Color(GUI_RED);

Fill_Circle (280, 50, 10);

Fill_Circle (296, 50, 10);

Fill_Circle (288, 40, 10);

Fill_Circle (288, 60, 10);

Set_Color(GUI_YELLOW);

Fill_Circle (288, 50, 5);

Set_Color(GUI_GRAY); //擦除上一分的

Draw_Line(x_line,y_line,*Placexm,*Placeym);

Placexm=Placexm+1;

Placeym=Placeym+1;

Set_Color(GUI_RED); //显示下一分的

Draw_Line(x_line,y_line,*Placexm,*Placeym);

Set_Color(GUI_GREEN); //显示下一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

if(Placexm==&SpaceXM[60]&&Placeym==&SpaceYM[60]) {

Placexm=&SpaceXM[0];

Placeym=&SpaceYM[0];

}

}

void Showh()

{

Set_Color(GUI_YELLOW);

Fill_Circle (288, 50, 25);

Set_Color(GUI_GREEN);

Fill_Circle (280, 50, 10);

Fill_Circle (296, 50, 10);

Fill_Circle (288, 40, 10);

Fill_Circle (288, 60, 10);

Set_Color(GUI_RED);

Fill_Circle (288, 50, 5);

Set_Color(GUI_GRAY); //擦除上一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

Placexh=Placexh+1;

Placeyh=Placeyh+1;

Set_Color(GUI_GREEN); //显示下一时的

Draw_Line(x_line,y_line,*Placexh,*Placeyh);

if(Placexh==&SpaceXH[12]&&Placeyh==&SpaceYH[12]) {

Placexh=&SpaceXH[0];

Placeyh=&SpaceYH[0];

}

}

void Shouw_Cricle() // 整点

{

Set_Color(GUI_YELLOW);

Fill_Circle (160, 30,2); // 12点(x,y,r)

Fill_Circle (135, 35,2); // 11 点(x,y,r)

Fill_Circle (115, 55,2); // 10 点(x,y,r)

Fill_Circle (110, 80,2); // 9 点(x,y,r)

Fill_Circle (115, 105,2); // 8 点(x,y,r)

Fill_Circle (135, 125,2); // 7 点(x,y,r)

Fill_Circle (160, 130,2); // 6 点(x,y,r)

Fill_Circle (185, 125,2); // 5 点(x,y,r)

Fill_Circle (205, 105,2); // 4 点(x,y,r)

Fill_Circle (210, 80,2); // 3 点(x,y,r)

Fill_Circle (205, 55,2); // 2点(x,y,r) Fill_Circle (185, 35,2); // 1点(x,y,r)

Set_Color(GUI_WHITE);

Fill_Circle (165, 31,1);

Fill_Circle (170, 32,1);

Fill_Circle (175, 33,1);

Fill_Circle (180, 34,1);

Fill_Circle (189, 39,1);

Fill_Circle (193, 43,1);

Fill_Circle (197, 47,1);

Fill_Circle (201, 51,1);

Fill_Circle (206, 60,1);

Fill_Circle (207, 65,1);

Fill_Circle (208, 70,1);

Fill_Circle (209, 75,1);

Fill_Circle (209, 85,1);

Fill_Circle (208, 90,1);

Fill_Circle (207, 95,1);

Fill_Circle (206, 100,1);

Fill_Circle (201, 109,1);

Fill_Circle (197, 113,1);

Fill_Circle (193, 117,1);

Fill_Circle (189, 121,1);

Fill_Circle (180, 126,1);

Fill_Circle (175, 127,1);

Fill_Circle (170, 128,1);

Fill_Circle (165, 129,1);

Fill_Circle (155, 129,1);

Fill_Circle (150, 128,1);

Fill_Circle (145, 127,1);

Fill_Circle (140, 126,1);

Fill_Circle (131, 121,1);

Fill_Circle (127, 117,1);

Fill_Circle (123, 113,1);

Fill_Circle (119, 109,1);

Fill_Circle (114, 100,1);

Fill_Circle (113, 95,1);

Fill_Circle (112, 90,1);

Fill_Circle (111, 85,1);

Fill_Circle (111, 75,1);

Fill_Circle (112, 70,1);

Fill_Circle (113, 65,1);

Fill_Circle (114, 60,1);

Fill_Circle (119, 51,1);

Fill_Circle (123, 47,1);

Fill_Circle (127, 43,1);

Fill_Circle (131, 39,1);

Fill_Circle (140, 34,1);

Fill_Circle (145, 33,1);

Fill_Circle (150, 32,1);

Fill_Circle (155, 31,1);

}

void Delay(int time);

void ChangeForm(char Time[],char time) {

Time[0] = time / 10 + 48;

Time[1] = time % 10 + 48;

Time[2] = '\0';

}

void Display_Time(char x,char y) {

ChangeForm(Hour, hour);

ChangeForm(Min, min);

ChangeForm(Sec, sec);

ChangeForm(MON, mon);

ChangeForm(DAY, day);

ChangeForm(YEA1, yea1);

ChangeForm(YEA2, yea2);

Disp_String (Hour,x,160);

Disp_String (":",x + 16,160);

Disp_String (Min,x + 24,160);

Disp_String (":",x + 40,160);

Disp_String (Sec,x + 48,160);

Disp_String (YEA1,x , 180);

Disp_String (YEA2,x +16,180);

Disp_String (",",x + 32,180);

Disp_String (MON,x + 40,180);

Disp_String (",",x + 56,180);

Disp_String (DAY,x + 64,180);

}

void Show_Color()

{

Set_Color( GUI_BLUE );

Fill_Rect(0,0,319,239);

Set_Color(GUI_RED);

Set_BkColor (GUI_BLUE);

Fill_Rect(0,0,319,2);

Fill_Rect(0,0,2,239);

Fill_Rect(0,237,319,239);

Fill_Rect(317,0,319,239);

Set_Color(GUI_RED);

Set_Font (&CHINESE_FONT16);

Disp_String (CN_start"姓名:"CN_end,5,210);

Disp_String (CN_start"学号:"CN_end,210,210);

Set_Color(GUI_WHITE );

Fill_Rect (79,17,242,20); //上线(x0,y0,x1,y1)Fill_Rect (79,20,82,202); //左线(x0,y0,x1,y1)Fill_Rect (238,20,242,202); //右线(x0,y0,x1,y1)Fill_Rect (79,199,242,202); //下线(x0,y0,x1,y1)Set_Color(GUI_LIGHTRED);

Fill_Rect (83,21,237,198);

}

/*分配各任务的堆栈容量

*/

OS_STK Stack_Task_1[STACKSIZE];

OS_STK Stack_Task_2[STACKSIZE*3];

/*

void Task_3(I8 s)

{

I8 display;

for(;;)

{

Delay(100);

display++;

Set_Color(GUI_RED);

Display_xh1(5,180);

if(display==1000)

{

display=0;

}

}

}

/*

- 函数名称 : Task_2(void *pdata)

- 函数说明 : GUI任务,优先级为9

- 输入参数 : pdata

- 输出参数 : 无

*/

void Task_2(void *pdata)

{

for(;;)

{

Show_Color();

Shouw_Cricle();

Set_Color(GUI_RED);

sec = 0;

Set_Color(GUI_YELLOW); //显示

Draw_Line(x_line,y_line,*Placex,*Placey); Display_Time(130, 160);//时间

do

{

Delay(1200);

sec++;

Shows();

if (sec >= 60)

{

sec = 0;

min++;

Showm();

if (min >= 60)

{

min = 0;

hour++;

Showh();

if (hour >= 23)

{

hour = 0;

day++;

if(day >=32)

{

day = 1;

mon++;

if(mon >= 13)

{

mon = 1;

yea1++;

}

}

}

}

}

Display_Time(130, 160);//时间日期

}while(1);

}

}

void Task_1(void *pdata)

{

Rtc_Tick_Init(); //打开时钟节拍,让操作系统跑起来OSTaskCreate(Task_2, (void *)0, (OS_STK *)&Stack_Task_2[(STACKSIZE*3) - 1], 9);

for(;;)

{

OSTimeDly(50); //时钟屏幕显示

}}

void Main(void)

{

Target_Init(); // ARMII实验系统的初始化,包括CPU板 GUI_Init();

OSInit();

OSTaskCreate(Task_1, (void *)0, (OS_STK *)&Stack_Task_1[STACKSIZE - 1], 5); //创建任务一

OSStart();

参考文献

[1] 王勇.嵌入式系统原理与设计[M].杭州:浙江大学大学出版社,2007.

[2] 耿辉等.S3C44B0X的LCD显示解决方案中国科技论文在线,2007.

[3] SAMSUNG公司. S3C44B0X数据手册. https://www.360docs.net/doc/9317447079.html,,2006.

[5] 林志琦等.ARM微控制器与液晶屏接口的研究[J].长春大学学报,2010,

20(2):71-74.

课程设计总结:

本次课程设计是嵌入式系统项目设计,是在本学期我们学完了嵌入式系统课程以后相应的课程设计。我们自己查找了许多关于S3C2440和LCD的资料和文献作为课程设计的知识储备,同时也参考了去年学长学姐完成的课题,取人之长、补己之短。经过我们的努力,在老师同学的帮助下,我们顺利完成了课程设计,对嵌入式系统的硬件、软件有了更为深入的了解,也深入掌握了嵌入式系统设计的基本方法,达到了预期的目的。

本次课程设计首先要感谢老师,对我们的课程设计给予了充分的关怀和帮助;然后要感谢我的同学,帮助我完成了本次课程设计。

指导教师评语:

指导教师(签字):年月日

课程设计成绩

8-电子时钟的设计与实现

课程设计 题目电子时钟的设计与实现学院自动化学院 专业电气工程及其自动化班级 姓名 指导教师 2014 年 1 月9 日

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:自动化学院 题目:电子时钟的设计与实现 初始条件: 掌握8086汇编语言程序设计方法,设计一个电子时钟,实现分、秒、时的显示与刷新功能。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1. 定义显示界面。 2. 调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。 3. 将存在系统内存区的时间数用数字式或指针式钟表的形式显示出来。 4. 获取键盘的按键值,判断键值并退出系统。 5. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。 时间安排: 12月26日----- 12月28日查阅资料及方案设计 12月29日----- 1月2日编程 1月3日----- 1月7日调试程序 1月8日----- 1月9日撰写课程设计报告 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (1) 1 设计任务及要求 (2) 1.1 设计题目 (2) 1.2 设计要求 (2) 1.3 设计过程 (2) 1.4 设计目的 (2) 2 设计方案论述 (3) 2.1 设计方案概括 (3) 2.2 设计方案具体说明 (3) 2.2 设计思路介绍 (3) 3 软件设计说明 (5) 3.1. 理论知识介绍 (5) 3.1.1 DOS中断与BIOS中断的功能及调用 (5) 3.1.2 子程序的设计 (7) 3.1.3 中断概述 (7) 3.2 设计流程 (8) 3.2.1 主流程图及说明 (9) 3.2.2.显示系统时间子流程图及说明 (9) 3.3. 程序设计 (10) 3.3.1 清屏程序 (10) 3.3.2. 光标定位程序 (10) 3.3.3 多字符显示程序 (11) 3.3.4 读取键盘状态程序 (12) 3.3.5 读取键盘值程序 (12) 3.3.6 调用系统时间显示程序 (12) 3.3.7 将二进制数转换为ASCII码程序 (13) 3.4 软硬件环境要求 (14) 4 调试结果及分析 (15) 5 收获与体会 (17) 参考文献 (18) 附录:设计源程序 (19) 本科生课程设计成绩评定表 (25)

电子钟课程设计

数字电子技术课程设计报告 设计题目:数字电子钟的设计 课程设计时间2011..24~2011..30 院系:XX纺织大学电子信息工程学院 班级:电气094 设计学生:杨海X爱祥 一、数电课程设计的目的: 数字电子技术课程设计是在学习完数字电子电路课程之后,按照课程教学的要求,对学生进行综合性训练的一个实践性教学环节。主要目的是培养学生综合运用理论知识能力,分析问题和解决问题的能力,以及根据实际要求进行独立设计的能力;了解数字电子电路的一般设计方法,初步掌握数字电子线路安装、布线、焊接、调试等基本技能;熟练掌握电子电路基本元器件的使用方法,训练、提高读图能力;掌握组装、调试方法。 二、设计题目及内容 、设计题目:数字电子时钟 2、内容和要求: ()时间以24 小时为一个周期; (2)显示时、分、秒;

(3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; (4)根据要求阅读数字时钟电路原理图,阅读教材及查找相关资料,叙述工作原理; (5)画出包含+5 伏的稳压电源在内的原理电路图,根据原理图画出对应的印刷电路图,并在图中标出元器件的符号及代码; (6)安装、焊接、连线、调试电路; (7)最后提交调试好的设计作品,撰写并提交实验、调试报告,解答思考题。 三、功能及简单工作原理数字电子钟的原理方框图 如下图()所示。干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60 进制计数器,每累计60 秒发现一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60 进制计数器,每累计60 分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”“时计数器”采用24 进制计时器,可实现对一天24 小时的累计。。译码显示电路将“时”“分”“秒”计数器的输出状态由七段显示译码器译码,通过六位LED 七段显示器显示出来。校时电路是用来对“时”“分”“秒”显示数字进行校对调整的。

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

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

vhdl数字电子钟的设计与实现

基于VHDL数字电子钟的设计与实现 摘要:本课程设计完成了数字电子钟的设计,数字电子钟是一种用数字显示秒、分、时的计时装置,由于数字集成电路技术的发展和采用了先进的石英技术,它使数字钟具有走时准确、性能稳定、携带方便等优点。数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活带来极大的方便。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路的能力。 关键词:电子钟;门电路及单次按键;琴键开关

目录 第一章引言----------------------------------------------------------------1 1.1 课题的背景、目的------------------------------------------1 1.2 课程设计的内容------------------------------------------1 第二章EDA与VHDL简介--------------------------------------------------2 2.1 EDA的介绍---------------------------------------------2 2.2 VHDL的介绍--------------------------------------------3 2.2.1 VHDL的用途与优点-----------------------------------------------------------------3 2.2.2 VHDL的主要特点---------------------------------------------------------------------- 2.2.3 用VHDL语言开发的流程------------------------------------------------------------ 第三章数字电子钟的设计方案------------------------------------------6 3.1秒脉冲发生器--------------------------------------------7 3.2可调时钟模块--------------------------------------------8 3.3校正电路------------------------------------------------8 3.4闹铃功能------------------------------------------------10 3.5日历系统------------------------------------------------11 第四章结束语---------------------------------------------------------------13 4.1致谢----------------------------------------------------14 4.2参考文献------------------------------------------------15

电子时钟课程设计.

单片机实训课题电子时钟 班级11电气本1班学号4110211140 姓名陈后亥 指导教师叶文通 日期2013.12.30~2014.1.3

摘要 随着时代的进步,越来越多的电子厂品趋向于低成本,高性能,耐用性好的方向发展。特别是趋向于自动化控制的方向走。89c51作为控制芯片是最好不过的选择啦。它具有强大的功能,并且简单易于操作,安全性与稳定性较高,价格便宜,适合中小型电子厂品开发中的控制器。就像我们的课程设计,基于89c51单片机的电子时钟的课程设计。 这款课程设计用到的主要材料有89c51单片机,1602液晶显示屏,矩阵键盘,以及一些电容电阻元件等等。 使用89c51作为电子时钟的控制器很简单,就是由于其经济型与稳定性和易操作性。显示电路上,选择使用1602液晶显示屏上。1602不仅操作上臂数码管简单许多,而且使用1602能在很大程度上是电路图尽量简化,便于操作与错误的检修。并且1602价格也比较便宜。 基于89c51电子时钟的设计,利用了单片机内部的一个自带定时/计数器来实现定时功能,并通过内部程序,实现对时分秒,年月日这几个输出数值的自增,并且通过编写程序,实现通过键盘控制时分秒,年月日大小的调整,这是必要的功能。最后通过1602液晶显示电路将时间显示在其上。 这样的电子时钟比较精准,其主要误差来源与晶振的误差,即使是这样,他的误差也只是微妙级别,对于日常生活中的时间计数是足够的。 关键词:89c51单片机;1602液晶显示屏;矩阵键盘;keil软件

目录摘要 1单片机简介 1.1 单片机概述 1.2 单片机基本结构 21602液晶显示屏简介 1.11602显示原理 1.21602指令集合 3 电子时钟硬件设计 3.1 功能框图 3.2 单片机复位与晶振电路 3.3 1602显示电路 3.4 总体电路设计 4 电子时钟软件设计 4.1 程序流程框图 4.2 程序源代码 参考文献 致谢

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

目录 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;电子时钟;数码管;按键

数字逻辑课程设计 数字电子钟

课程设计(综合实验)报告 题目:第四个实验数字电子钟院系:计算机科学系 班级:计算计科学与技术1班学号: 学生姓名: 队员姓名: 指导教师:

《数字逻辑》综合实验 任务书 一、目的与要求 1 目的 1.1综合实验是教学中必不可少的重要环节,通过综合实验巩固、深化和扩展学生的理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。 1.2注重培养学生正确的设计思想,掌握综合实验的主要内容、步骤和方法。 1.3培养学生获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。 1.4提高学生运用所学的理论知识和技能解决实际问题的能 及其基本工程素质。 2.要求 2.1 能够根据设计任务和指标要求,综合运用电子技术课程中所学到的理论知识与实践技能独立完成一个设计课题。 2.2根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。要求通过独立思考、深入钻研综合实验中所遇到的问题,培养自己分析、解决问题的能力。 2.3进一步熟悉常用电子器件的类型和特性,掌握合理选用的原则。 2.4学会电子电路的安装与调试技能,掌握常用仪器设备的正确

使用方法。利用“观察、判断、实验、再判断”的基本方法,解决实验中出现的问题。 2.5学会撰写综合实验总结报告。 2.6通过综合实验,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的生产观点、经济观点和全局观点。要求学生在设计过程中,坚持勤俭节约的原则,从现有条件出发,力争少损坏元件。 2.7在综合实验过程中,要做到爱护公物、遵守纪律、团结协作、注意安全。 二、主要内容 数字电子钟 设计一台能显示时﹑分、秒的数字电子钟,要求如下: 1)秒﹑分为00—59六十进制计数器,时为00—23二十四进制计数器; 2)可手动校正:可分别对秒﹑分﹑时进行手动脉冲输入调整或连续脉冲输入校正,(校正时不能输出进位)。 元器件选择 74LS162:4块与非门74LS00:2块共阳数码管LED 74LS161:2块GAL16V8:2块晶体振荡器:1MHZ GAL20V8:1块TDS-4实验箱 导线若干 所需要器件的图片如下

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

电子科技职业技术学院Shaanxi electronic science and technology vocational college 课程设计报告 题目基于单片机的电子时钟设计和实现 班级电子信息1507 姓名聪 指导教师聂弘颖 时间2017年10月30日

第一章系统设计要求1.1 基本功能 (1)能够显示时分秒 (2)能够调整时分秒 1.2 扩展功能 (1)能够任意设置定时时间 (2)定时时间到闹铃能够报警 (3)实现了秒表功能

第二章硬件总体设计方案 本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。 2.1系统功能实现总体设计思路 此设计原理框图如图2-1所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。

图2-1 设计原理框图 经多方论证硬件我个人采用AT89C51单片机和7SED 八位共阳极数码管等来实现单片机电子时钟的功能。 详细元器件列表如表2.1所示: 表2.1 详细元器件列表 2.2各部分功能实现 (1)单片机发送的信号通过程序控制最终在数码管上显示出来。 (2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。

(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。 (4)单片机通过控制闹铃电路来完成定时闹钟的功能。 2.3系统工作原理 设计的电路主要由四模块构成:单片机控制电路,显示电路、闹铃电路以及校正电路。 详细电路功能图如图2-2: 图2-2 详细电路功能图 本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计

大连理工大学数字电路课程设计报告:多功能数字时钟设计

大连理工大学本科实验报告题目:多功能数字时钟设计 课程名称:数字电路与系统课程设计 学院(系):信息与通信工程学院 专业:电子信息工程 班级: 学生姓名: 学号: 完成日期:2014年7月16日 2014 年7 月16 日

题目:多功能数字时钟设计 1 设计要求 1) 具有“时”、“分”、“秒”及“模式”的十进制数字显示功能; 2) 具有手动校时、校分功能,并能快速调节、一键复位(复位时间12时00分00秒); 3) 具有整点报时功能,从00分00秒起,亮灯十秒钟; 4) 具有秒表功能(精确至百分之一秒),具有开关键,可暂停、可一键清零; 5) 具有闹钟功能,手动设置时间,并可快速调节,具有开关键,可一键复位(复位时间12时00分00秒),闹钟时间到亮灯十秒钟进行提醒; 6) 具有倒计时功能(精确至百分之一秒),可手动设置倒计时时间,若无输入,系统默认60秒倒计时,且具有开关键,计时时间到亮灯十秒钟进行提醒,可一键复位(复位时间默认60秒)。 2 设计分析及系统方案设计 2.1 模式选择模块:按键一进行模式选择,并利用数码管显示出当前模式。模式一:时钟显示功能;模式二:时钟调节功能;模式三:闹钟功能;模式四:秒表功能;模式五:倒计时功能。 2.2 数字钟的基本功能部分:包括时、分、秒的显示,手动调时,以及整点报时部分。基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。 具有复位按键1,在时钟模式下按下复位键后对时钟进行复位,复位时间12时00分00秒。 进入手动调时功能时,通过按键调节时间,每按下依次按键2,时钟时针加一,按下按键2一秒内未松手,时钟时针每秒钟加十;按键1对分针进行控制,原理与时针相同并通过译码器由七位数码管显示。 从00分00秒开始,数字钟进入整点报时功能(本设计中以一个LED灯代替蜂鸣器,进行报时),亮灯10秒钟进行提示。 2.3多功能数字钟的秒表功能部分:计时范围从00分00.00秒至59分59.99秒。可由复位键0异步清零,并由开关1控制计时开始与停止。 将DE2硬件中的50MHZ晶振经过分频获得周期为0.01秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示 2.4多功能数字钟的闹钟功能部分:进入闹钟功能模式后,通过按键2(设定小时)和按键1(设定分钟)设定闹钟时间,当按下按键一秒内未松手时,可进行快速设定时间。当时钟进入闹钟设定的时间(判断时钟的时信号时针,分针分别与闹钟设定的时信号时针、分针是否相等),则以LED灯连续亮10秒钟进行提示,并由开关0控制闹钟的开和关。 2.5 多功能数字钟的倒计时功能部分:可通过按键3(设定分针)和按键2(设定秒针)设定倒计时开始,当按下按键一秒内未松手时,可进行快速设定时间。当没有手动时间设定时,系统默认为60秒倒计时。倒计时的时钟与数字钟的时钟相同,每迎到一个1s时钟上升

简易电子钟的设计与实现

简易电子钟的设计与仿真 一、设计要求和电路原理 1.1 设计要求 1)可以准确地显示北京时间。 2)时间显示选择24小时模式。 3)选用AT89C52单片机,将编写的程序下载到该单片机中,并能使数码管 显示。 4)采用Keil C51编译,Proteus软件进行仿真。 1.2 设计原理与思路 利用单片机的定时与中断系统功能实现电子钟的计数和调时。采用AT89C52定时中断方式实现24小时制时钟精确的计时。通过外部的12M(11.0529M)Hz 晶振产生稳定的谐振,在AT89C52的内部定时器电路实现定时,当定时器溢出时产生中断,累计定时器的定时时间达一秒时,数码管的秒显示加1,判断数码管的秒显示达60时,秒显示自动清零,分显示加1,判断分显示达60时,分显示自动清零,时显示加1,判断时显示达24时,时显示自动清零。从而实现 00:00:00—23:59:59 之间的任意时刻显示。 为了使时钟能够灵活的对时间进行调整、校对,通过增加外部的按键实现简单的复位、时调整、分调整的功能。形成一个具有复位和校时功能的简易电子时钟。 二、电子时钟设计方案 2.1电子钟设计的基本方法 2.1.1电子钟实现计时的方法 利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计时。 (1) 计数初值计算: 把定时器T0设为工作方式2,产生0.25ms定时中断,计数溢出4000次即得时钟计时最小单位秒,而4000次计数可用软件方法实现。 假设使用T/C0,方式2,0.25ms定时,fosc=12MHz。 则初值a满足(256-a)×1/12MHz×12μs =250μs a=6 (6H) TH0=#6H; TL0=#6H (2) 采用中断方式进行溢出次数累计,计满4000次为秒计时(1秒);

数字逻辑课程设计 数字电子钟

课程设计(综合实验)报告题目:第四个实验数字电子钟院系:计算机科学系 班级:计算计科学与技术1班 学号: 学生姓名: 队员姓名: 指导教师:

《数字逻辑》综合实验 任务书 一、目的与要求 1 目的 综合实验是教学中必不可少的重要环节,通过综合实验巩固、深化和扩展学生的理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。 注重培养学生正确的设计思想,掌握综合实验的主要内容、步骤和方法。 培养学生获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。 提高学生运用所学的理论知识和技能解决实际问题的能 及其基本工程素质。 2.要求 能够根据设计任务和指标要求,综合运用电子技术课程中所学到的理论知识与实践技能独立完成一个设计课题。 根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。要求通过独立思考、深入钻研综合实验中所遇到的问题,培养自己分析、解决问题的能力。 进一步熟悉常用电子器件的类型和特性,掌握合理选用的原则。 学会电子电路的安装与调试技能,掌握常用仪器设备的正确使用方法。利用“观察、判断、实验、再判断”的基本方法,解决实验中出现的问题。

学会撰写综合实验总结报告。 通过综合实验,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的生产观点、经济观点和全局观点。要求学生在设计过程中,坚持勤俭节约的原则,从现有条件出发,力争少损坏元件。 在综合实验过程中,要做到爱护公物、遵守纪律、团结协作、注意安全。 二、主要内容 数字电子钟 设计一台能显示时﹑分、秒的数字电子钟,要求如下: 1)秒﹑分为00—59六十进制计数器,时为00—23二十四进制计数器; 2)可手动校正:可分别对秒﹑分﹑时进行手动脉冲输入调整或连续脉冲输入校正,(校正时不能输出进位)。 元器件选择 74LS162:4块与非门74LS00:2块共阳数码管LED 74LS161:2块GAL16V8:2块晶体振荡器:1MHZ GAL20V8:1块TDS-4实验箱 导线若干 所需要器件的图片如下 1同步十进制计数器74LS162 3输入正与非门74LS00

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

电子科技职业技术学院 Shaanxi electronic science and technology vocational college 课程设计报告 题目基于单片机的电子时钟设计和实现 班级电子信息1507 姓名聪 指导教师聂弘颖 时间2017年10月30日

第一章系统设计要求1.1 基本功能 (1)能够显示时分秒 (2)能够调整时分秒 1.2 扩展功能 (1)能够任意设置定时时间 (2)定时时间到闹铃能够报警 (3)实现了秒表功能

第二章硬件总体设计方案 本次设计时钟电路,使用了AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。 2.1系统功能实现总体设计思路 此设计原理框图如图2-1所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。

图2-1 设计原理框图 经多方论证硬件我个人采用AT89C51单片机和7SED八位共阳极数码管等来实现单片机电子时钟的功能。 详细元器件列表如表2.1所示: 表2.1 详细元器件列表 2.2各部分功能实现 (1)单片机发送的信号通过程序控制最终在数码管上显示出来。 (2)单片机通过输出各种电脉冲信号来驱动控制各部分正

常工作。 (3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。 (4)单片机通过控制闹铃电路来完成定时闹钟的功能。 2.3系统工作原理 设计的电路主要由四模块构成:单片机控制电路,显示电路、闹铃电路以及校正电路。 详细电路功能图如图2-2: 图2-2 详细电路功能图 本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计

数字电子时钟课程设计

数字电子技术基础课程设计报告 班级:姓名: 学号: 一、设计目的 1掌握专业基础知识的综合能力。 2完成设计电路的原理设计、故障排除。 3逐步建立电子系统的研发、设计能力,为毕业设计打好基础。 4让学生掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法。 5进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力。 6培养书写综合实验报告的能力。 二、设计仪器 1 LM555CH 2 74LS161N 74LS160N 74LS290 3 74LS00 74LS08 4 电源电阻电容二极管接地等 三数字电子钟的基本功能及用途 现在数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性

能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,,因此在许多电子设备中被广泛使用。 电子钟是人们日常生活中常用的计时工具,而数字式电子钟又有其体积小、重量轻、走时准确、结构简单、耗电量少等优点而在生活中被广泛应用,因此本次设计就用数字集成电路和一些简单的逻辑门电路来设计一个数字式电子钟,使其完成时间及星期的显示功能。 多功能数字钟采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。具有时间显示、走时准确、显示直观、精度、稳定等优点。电路装置十分小巧,安装使用也方便。同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱。 四设计原理及方框图 数字钟实际上是一个对标准频率进行计数的计数电路,标准的1HZ时间信号必须做到准确稳定。由图可见:本数字钟电路主要由震荡器、、时分秒计数器、译码显示器构成。它们的工作原理是:由震荡器产生的高频脉冲信号作为数字钟的时间基准,送入秒计数

数字时钟设计方案要点

数字时钟方案设计

目录 摘要 (3) 一、设计目的 (3) 二、设计要求 (3) 三、选择器件 (3) 四、器件介绍 (4) 五、设计的具体实现 (8) 六、实验仿真 (12) 七、心得体会 (19) 八、参考文献 (20)

摘要 数字时钟最主要的部件是计时,显示具体的时间。数字时钟主要是时、分、秒的显示,众所周知,一天有二十四小时,一小时有六十分钟,一分钟有六十秒,因此数字时钟的核心部件就是计数器,主要的是二十四进制和六十进制的计数器。计数器有很多种类,74160是一种四位二进制计数器,通过它可以设计出不同进制的计时器,可以用来像数字时钟一样显示时、分、秒。将74160计数器的输出端经过译码器接到七段数码管上,就可以完成时,分,秒的显示。将74160计数器,译码器和七段数码管封装在一起,输入1Hz的外输入脉冲信号,就可实现数字时钟的整体设计。 关键字:74160计数器7448译码器七段数码管数字时钟 一、设计目的 1、掌握不同进制计数器的设计方法,学会运用集成芯片来达到不同进制计数器的设计; 2、掌握数码管的使用方法以及如何通过译码器将计数器输出的信号值正确地在数码管上显示出来。 二、设计要求 1、用74160设计一个数字钟电路,使之能够从0时0分0秒到23时59分59 秒循环计时;另外最好能够通过数码管将时分秒显示出来。假定已有频率为1Hz 的外输入脉冲。 2、提示:显示部分可通过7448和7段数码管实现。 3、利用QUARTUSⅡ等软件进行时钟方案设计,并进行仿真。 三、选择器件 1、74160计数器6个 2、7448译码器6个

3、7段数码显示管6个 4、与门4个 5、与非门3个 6、1Hz的外输入脉冲信号设计方案要求提供 7、+5V直流稳压电源1个 8、导线若干 四、器件介绍 1、74160计数器 74160计数器是一种十进制同步计数器(异步清除)。查阅74160计数器数据手册,则有: (1)管脚图: 引出端符号: TC 进位输出端 CEP 计数控制端 Q0-Q3 输出端 CET 计数控制端 CP 时钟输入端(上升沿有效) /MR 异步清除输入端(低电平有效) /PE 同步并行置入控制端(低电平有效) ※说明:P0,P1,P2,P3是数据输入端; Q0,Q1,Q2,Q3是数据输出端;PE 是低电平有效,为同步并行置入控制端,在构造不同进制的计数器时,可以通

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

第一部分设计任务和要求 1.1 单片机课程设计内容 利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。 1.2 单片机课程设计要求 1.能实现年、月、日、星期、时、分、秒的显示; 2.能实现调时功能; 3.能实现12/24小时制切换; 4.能实现8:00—22:00整点报时功能。 1.3 系统运行流程 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。调时闪烁中断服务程序用于被调单元的闪烁显示。调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。实现了对时间的设置和修改、LCD显示数值等主要功能。相关的调整是靠对功能键的判断来实现的。 第二部分设计方案 2.1 总体设计方案说明 1.程序设计及调试 根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。 2.硬件焊接及调试 根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。

3.后期处理 对设计过程进行总结,完成设计报告。 2.2 单片机系统方框图 2.2 单片机系统流程图 主流程图键盘扫描流程图

时钟流程图 第三部分主要器件及简介 3.1 主要器件 1. STC89C51单片机; 2.LCD1602液晶显示屏; 3.2 主要器件简介 1.STC89C51单片机简介 STC89C51是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率 为80MHz,片内含8K Bytes的可反复擦写1000次的 Flash只读程序存储器,器件兼容标准MCS-51指令系 统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。 2.LCD1602液晶显示屏简介

电子时钟课程设计模板

电子时钟课程设计 电子时钟设计 一、课程设计目的和意义 掌握8255、 8259、 8253芯片使用方法和编程方法, 经过本次课程设计, 学以致用, 进一步理解所学的相关芯片的原理、内部结

构、使用方法等, 学会相关芯片实际应用及编程, 系统中采用8088微处理器完成了电子钟的小系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法, 掌握一般的设计步骤和流程, 使我们以后搞设计时逻辑更加清晰。 二、开发环境及设备 1、设计环境 PC机一台、 windows 98系统、实验箱、导线若干。 2、设计所用设备 8253定时器: 用于产生秒脉冲, 其输出信号可作为中断请示信号送IRQ2。 8255并口: 用做接口芯片, 和控制键相连。 8259中断控制器: 用于产生中断。 LED: 四个LED用于显示分: 秒值。 KK1或KK2键与K7键, 用于控制设置。 三、设计思想与原理 1、设计思想 在本系统设计的电子时钟以8088微处理器作为CPU, 用8253做定时计数器产生时钟频率, 8255做可编程并行接口显示时钟和控制键电路, 8259做中断控制器产生中断。在此系统中, 8253的功能是定时, 接入8253的CLK信号为周期性时钟信号。8253采用计数器0, 工作于方式2, 使8253的OUT0端输出周期性的负脉冲信

号。即每隔20ms, 8253的OUT0端就会输出一个负脉冲的信号, 此信号接8259的IR2, 当中断到50次数后, CPU即处理, 使液晶显示器上的时间发生变化。 其中8259只需初始化ICW1, 其功能是向8259表明IRx输入 是电瓶触发方式还是上升沿触发方式, 是单片8259还是多片8259。8259接收到信号后, 产生中断信号送CPU处理。 2、设计原理 利用实验台上提供的定时器8253和扩展板上提供的8259以 及控制键和数码显示电路, 设计一个电子时钟, 由8253中断定时, 控制键控制电子时钟的启停及初始值的预置。电子时钟的显示格 式MM: SS由左到右分别为分、秒, 最大记时59: 59超过这个时间分秒位都清零从00: 00重新开始。 基本工作原理: 每百分之一秒对百分之一秒寄存器的内容加一, 并依次对秒、分寄存器的内容加一, 四个数码管动态显示分、秒 的当前值。 三、设计所用芯片结构 1、 8259A芯片的内部结构及引脚 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路, 只需对8259A编程, 就能够管理8级中断, 并选择优先模式和中断请求方式, 即中断

数字逻辑电路设计课程设计之数字电子钟

课程名称:数字电路逻辑设计课程设计设计项目:数字电子钟 学生姓名: 同组人:高爽

一.设计目的 1.掌握组合逻辑电路、时序逻辑电路及数字逻辑电路系统的设计、安装、测试方法; 2.进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力; 3.提高电路布局﹑布线及检查和排除故障的能力; 4.培养书写综合实验报告的能力。 二 . 设计要求 1.设计一个具有时、分、秒显示的电子钟(23小时59分59秒); 2.应该具有手动校时校分的功能; 3.应该具有整点报时功能:从59分51秒起(含59分51秒),每隔2秒发出一次蜂鸣,连续5次; 4.使用中小规模集成电路组成电子钟,并在实验箱上进行组装、调试; 5.画出框图和逻辑电路图,写出设计、实验总结报告。 三 . 设计原理 1.数字电子钟基本原理 数字电子钟的逻辑框图如下图所示。它由555集成芯片构成的振荡电路、分频器、计数器、显示器和校时电路组成。555集成芯片构成的振荡电路产生的信号经过分频器作为秒脉冲,秒脉冲送入计数器,计数结果通过“时”、“分”、“秒”译码器显示时间。

2.数字电子钟单元电路设计 时钟脉冲已经由实验箱提供,实验箱提供的是秒脉冲; 显示电路已经由实验箱提供。 (1)计数器电路 A.秒个位计数器,分个位计数器,时个位计数器均是十进制计数器; B.秒十位计数器,分十位计数器均是六进制计数器; C.时十位计数器为二进制计数器 因此,选择74LS90可以实现二-五-十进制异步计数器芯片实现上述计数功能。

时位计数器 分位计数器

秒位计数器 (2)手动校时电路 当数字钟走时出现误差时,需要校正时间。校时电路实现对“时”“分”“秒”的校准。在电路中设有正常计时和校对位置。本实验实现“时”“分”的校对。对校时的要求是:在小时校正时不影响分和秒的正常计数;在分钟校正时不影响秒和小时的正常计数。 手动校时电路图 (3)整点报时电路 整点报时功能:即从59分51秒起(含59分51秒),每隔2秒发出一次蜂鸣,连续5次。

电子时钟课程设计

单片机课程设计 题目:电子时钟 班级: 姓名: 学号: 指导教师: 设计时间:

针对数字时钟的问题,利用8051单片机,proteus软件,vw(伟福)等软件,运用单片机中定时计数器T0,中断系统以及按键的控制实现了电子时钟的设计。设计的电子时钟通过数码管显示,并能通过按键的设计实现小时与分钟的调整。时间的启动与暂停等等。 关键字:数字时钟;单片机;定时计数器

1引言 时钟,自他发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术不断的发展,人们对时间计量的进度要求越来越高,应用越来越广。怎样让时钟更好地为人类服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计岀新型时钟。 现金,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都使用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示器,减小了计时误差,这种表具有时、分、秒显示的功能,还可以进行时、分的校对,片选的灵活性好。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准震荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,及定时时间,它通常有两种方法实现:一是软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用 在对时间精度要起不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。本文主要介绍用单片机内部的定时计数器来实现电子时钟的方法,以单片机为核心,辅以必要电路,构成了一个单片机电子时钟。 单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、1\0 接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输岀进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和1\0接口,使单片机应用系统能够 运行。 在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输岀的信息少,这时可能用几个按 键和几个LED指示灯就可以进行处理了。在单片机应用系统在 中配置的键盘可以是独立键盘,也可能是矩阵键盘。显示器可以是LED指示灯,也可以是LED数码管, 也可以是LCD显示器,还可以使用CRT显示器。单片机应用系统中键盘一般用的比较多的是矩阵键盘,显示器用的比较多的是LED数码管还有LCD显示器。

相关文档
最新文档