实时时钟电路设计

实时时钟电路设计
实时时钟电路设计

《专业设计实训(二)》可调数字电子钟的设计与制作

实训手册

姓名:贺凤

学号:20081893

班级:08电信(职高)

实训地点:理工楼

指导教师:占华林

通信与电子学院编制

11年6月11日

一、设计目的

1.熟悉集成电路的引脚安排

2.掌握个芯片的逻辑功能及使用方法

3.了解实验台

4.了解数字钟的组成及工作原理

5.熟悉数字钟的设计与制作

二、设计要求

时间以24小时为一个周期:显示时和分;有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间;直接由单片机内部定时来表针时间的基准信号。

三、设计原理

1、1602液晶显示屏

管脚功能

引脚说明

1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:

引脚符号功能说明

1 VSS 一般接地

2 VDD 接电源(+5V)

3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比

度)。

4 RS RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

5 R/W R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

6 E E(或EN)端为使能(enable)端,下降沿使能。

7 DB0 低4位三态、双向数据总线0位(最低位)

8 DB1 低4位三态、双向数据总线1位

9 DB2 低4位三态、双向数据总线2位

10 DB3 低4位三态、双向数据总线3位

11 DB4 高4位三态、双向数据总线4位

12 DB5 高4位三态、双向数据总线5位

13 DB6 高4位三态、双向数据总线6位

14 DB7 高4位三态、双向数据总线7位(最高位)(也是busy flag)

15 BLA 背光电源正极

16 BLK 背光电源负极

寄存器选择控制表

RS R/W 操作说明

0 0 写入指令寄存器(清除屏等)

0 1 读busy flag(DB7),以及读取位址计数器(DB0~DB6)值

1 0 写入数据寄存器(显示各字型等)

1 1 从数据寄存器读取数据

注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0. busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。

写操作时序:

读操作时序

1 RTC结构特点

实时时钟的基本功能是保持跟踪时间和日期等信息,但许多RTC 还提供有多种附加功能,如:看门狗定时器、系统复位、非易失存储器(NV RAM)、序列号、方波输出、涓流充电等。因此,在进行电路

设计时,选择RTC芯片出了需要考虑其时间和日期跟踪功能外,通常还需要针对具体应用来对

RTC的功能、成本、尺寸等要求进行综合考虑。

1.1 接口方式

从接口要求入手选择RTC可以大大缩小芯片的选择范围。RTC芯片提供有多种接口方式,其中并行接口可实现存储器的快速访问或有较大的存储容量,适合于那些对价格、尺寸要求不是很荷刻的系统,许多采用并行接口的实时时钟芯片还与晶振和电池封装在一起构成一个完整的时钟模块,从而简化了硬件设计。并行接口包括复用总线(数据与地址总线复用)和独立的地址、数据总线。一般用于时间保持的NV RAM都采用与SRAM相同的控制信号,并可以方便地与常用的微处理器容量。另外,有些Phantom实时时钟还将时钟数据隐含在备

用电池支持的RAM

内,以便利用64

位软件协议来访

问时钟数据。

一般情况下,

串行接口时钟芯

片都具有外形尺

寸较小、成本低廉

等优势,但这类芯

片的通信速率一般较低,因而比较适合便携式产品。这类芯片通常包

括1-Wire接口、2线、3线、4线或SPI接口,而许多处理器也包括2线或SPI接口,当然,也有些处理器(如8051及其派生产品)则支持复用的地址和数据总线

有些时间保持NV RAM模块利用时钟来控制IC和SRAM,出厂时,振荡器处于禁止状态、SRAM与电池断开,只有模块在主电源供电并第一,使用时应确保环境温度不要超出+85℃。

1.1晶振与精度

晶体振荡器在固定频率振荡器中能够提供较高的精度,绝大多数RTC 采用32.768kHz的晶体,晶体振荡器输出经过分频后会产生1Hz的基准来刷新时间和日期。RTC的精度主要取决于晶振的精度,温度变化时,音叉晶振所具有的抛物线型的频率响应特性曲线如图1所示,2 3ppm的温漂大约每月产生1分钟的时钟误差。晶振一般在特定的电容负载下,其调谐振荡在正确的频点,而当晶振调谐于12.5pF负载的RTC电路中时,使用6pF负载的晶振将会使时钟变快。Dallas Se miconductor提供的所有RTC均采用内部偏置网络,因而晶振可直接连接到RTC的X1、X2引脚,而不需要额外的元件。由于RTC的晶振输入电路具有很高的输入阻抗(大约109Ω),因此,它与晶振的连线犹如一个天线,很容易耦合系统其余电路的高频干扰。而干扰信号被耦合到晶振引脚将导致时钟数的增加或减少。考虑到线路板上大多数信号的频率高于32.768kHz,所以,通常会产生额外的时钟脉冲计数。因此,晶振应尽可能靠近X1、X2引脚安装,同时晶振、X1/X2

引脚的下方最好布成地平面。图2是一个推荐的晶振布线图,其数字信号引脚需远离晶振和振荡器引脚,对于那些会产生明显的射频辐射的元件。

1.2时钟格式

在电路设计中使用的时钟格式主要有三种:BCD码、二进制码、未格式化的二进制计数值。其中BCD码比较通用,因为它的时间和日期可以直接显示,且不需要进行数据转换,每8位寄存器表示一个二位数,对于某些特殊的时间和日期,由于不占用全部8位数据,因此,不用位可以充当一些特殊功能(如用作读/写位),也可以在硬件读取时时终保持固定状态(1或0)。二进制码格式与BCD码一样具有独立的秒、分钟、小时、星期、日、月、年寄存器,在一些提供BCD 码格式的RTC中,常常也提供可选择的二进制码格式。时间和日期寄存器每秒钟更新一次,日期循环与月、年有关。星期寄存器与其它寄存器的变化关系不大,在子夜更新数据,数据从7至1循环变化,程序中可以用1表示任何一个特定的星期数,只要在整个程序中指定数值保持一致即可。在12小时制与24小时制或BCD码与二进制码之间进行转换时,时间、日期、闹钟寄存器需要重新进行初始化。二进制计数码用一个多字节(一般为32位)寄存器来存储时间信息,时间信息用一个秒计数值表示,并可通过软件将秒计数值转换为合理的时间和日期。

另外,在选择RTC时,还需要考虑千年(Y2K)兼容性问题,Y2K 兼容的RTC包含有世纪信息(提供世纪数值或世纪位),并可正确地

计算润年,Dallas Semiconductor提供的RTC均兼容于Y2K,而且不存在日期敏感的逻辑。

四、设计电路图及简单介绍

动态显示:

实物拍摄

正面

反面

利用单片机内部计时来作为时钟的基准时间。首先自己设置下启动时显示屏的一个初始时间,然后随着晶振导致内部计时开始,也就是秒钟开始走。然后根据秒钟走到59就变为0而分钟加一;当分钟走到59就变为0而时钟加一;当时钟走到23就变为0而日期里的day就加一;依此类推,实现实时时钟的运作。

校正时间:通过内部中断实现校正,根据功能键按键的不同,进入到液晶的不同段区间,然后通过改变p1.1或者p1.2按键来进行时间加减的修改。这里修改时间是根据按键扫描,把数据送到液晶管中显示出来,当功能键按键跳出中断时,时钟继续运作,不过此时就是按照我们校准的时间走了。

程序如下:

#include

#define uint unsigned int

#define uchar unsigned char

sbit duan=P2^6;

sbit wei=P2^7;

sbit lcdrs=P3^0;

sbit lcden=P3^1;

uchar count;

uchar shi=0, fen=0, miao=0,a=0,b=0; uchar week=2,day=11,month=5,year=11; uchar temp;

sbit s1=P1^0;

sbit s2=P1^1;

sbit s3=P1^2;

uchar s1_num;

uchar code *table=" 2011-05-10 03"; uchar code *table1=" 22:15:00"; void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void write_cmd(uchar cmd)

{

lcdrs=0;

lcden=0;

P0=cmd;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void write_date(uchar date)

{

lcdrs=1;

lcden=0;

P0=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

void init()

{

duan=0;

wei=0;

lcden=0;

// shi=19;

//fen=24;

//miao=01;

write_cmd(0x38);

write_cmd(0xc);

write_cmd(0x6);

write_cmd(0x1);

write_cmd(0x80);

while(*table!='\0')

{

write_date(*table++);

//delay(5);

}

write_cmd(0x80+0x40);

while(*table1!='\0')

{

write_date(*table1++);

//delay(5);

}

TMOD=0x01;

TH0=((65536-50000)/256);

TL0=((65536-50000)%256);

EA=1;

ET0=1;

TR0=1;

}

void write_sfm(uchar add,uchar date)

{

uchar shi,ge;

shi=date/10;

ge=date%10;

write_cmd(0x80+0x40+add);

write_date(0x30+shi);

write_date(0x30+ge);

}

void write_ymdw(uchar add,uchar date)

{

uchar shi,ge;

shi=date/10;

ge=date%10;

write_cmd(0x80+add);

write_date(0x30+shi);

write_date(0x30+ge);

}

void keyscan()

{

if(s1==0)

{

delay(5);

if(s1==0)

{

s1_num++;

while(!s1);

if(s1_num==1)

{

TR0=0;

write_cmd(0x80+0x40+11);

write_cmd(0xf);

}

if(s1_num==2)

{

write_cmd(0x80+0x40+8);

write_cmd(0xf);

}

if(s1_num==3)

{

write_cmd(0x80+0x40+5);

write_cmd(0xf);

}

if(s1_num==4)

{

write_cmd(0x80+14);

write_cmd(0xf);

}

if(s1_num==5)

{

write_cmd(0x80+11);

write_cmd(0xf);

}

if(s1_num==6)

{

write_cmd(0x80+8);

write_cmd(0xf);

}

if(s1_num==7)

{

write_cmd(0x80+5);

write_cmd(0xf);

}

if(s1_num==8)

{

s1_num=0;

write_cmd(0xc);

TR0=1;

}

}

}

if(s1_num!=0)

{

if(s2==0)

{

delay(5);

if(s2==0)

{

while(!s2);

if(s1_num==1)

{

miao++;

if(miao==60)

miao=0;

write_sfm(10,miao);

write_cmd(0x80+0x40+10);

}

if(s1_num==2)

{

fen++;

if(fen==60)

fen=0;

write_sfm(7,fen);

write_cmd(0x80+0x40+7);

}

if(s1_num==3)

{

shi++;

if(shi==24)

shi=0;

write_sfm(4,shi);

write_cmd(0x80+0x40+4);

}

if(s1_num==4)

{

week++;

if(week==8)

week=0;

write_ymdw(13,week);

write_cmd(0x80+14);

}

if(s1_num==5)

{

day++;

if(day==32||((month==2)&&(((day==30)&&(year%4==0))||((day==29)&&(year%4! =0))))||((day==31)&&((month==4)||(month==6)||(month==9)||(month==11))))

day=0;

write_ymdw(10,day);

write_cmd(0x80+11);

}

if(s1_num==6)

{

month++;

if(month==13)

month=0;

write_ymdw(7,month);

write_cmd(0x80+8);

}

if(s1_num==7)

{

year++;

if(year==99)

year=0;

write_ymdw(4,year);

write_cmd(0x80+5);

}

}

}

if(s3==0)

{

delay(5);

if(s3==0)

{

while(!s3);

if(s1_num==1)

{

miao--;

if(miao==255)

miao=59;

write_cmd(0x80+0x40+10);

write_sfm(10,miao);

// write_cmd(0x80+0x40+11);

}

if(s1_num==2)

{

fen--;

if(fen==255)

fen=59;

// write_cmd(0x80+0x40+7);

write_sfm(7,fen);

write_cmd(0x80+0x40+8);

}

if(s1_num==3)

{

shi--;

if(shi==255)

shi=23;

// write_cmd(0x80+0x40+4);

write_sfm(4,shi);

write_cmd(0x80+0x40+5);

}

}

}

}

}

void desplay ()

{

while(1)

{ keyscan();

if(count==20)

{

count=0;

miao++;

if(miao==60)

{

miao=0;

fen++;

if(fen==60)

{

fen=0;

shi++;

if(shi==24)

{

shi=0;

day++;

week++;

if(week==8)

week=1;

temp=(day==32);

temp=temp||((month==2)&&(((day==30)&&(year%4==0))||((day==29)&&(yea r%4!=0))));

temp=temp||((day==31)&&((month==4)||(month==6)||(month==9)||(month==1 1)));

if(temp)

{

day=1;

month++;

if(month==13)

{

month=1;

year++;

if(year==99)

year=0;

write_ymdw(4,year);

}

write_ymdw(7,month);

}

write_ymdw(10,day);

write_ymdw(13,week);

}

write_sfm(4,shi);

}

write_sfm(7,fen);

}

write_sfm(10,miao);

}

if(shi==a&&fen==b)

{P1^5==0;

}

}

}

void main()

{

init();

desplay();

}

void timer0() interrupt 1

{

TH0=((65536-50000)/256);

TL0=((65536-50000)%256);

count++;

}

五、心得体会

这次我们做的实训一共有四个题目供我们选择,分别是采集信号、计算器、模拟电梯和可调数字钟,我做的是可调数字钟,开始做的时候觉得应该还蛮好做的,因为我对这个程序比较了解,加上上课老师

也讲了一些相关知识,所以我觉得这个不管是程序上还是硬件实施上都是比较容易实现的,可是真正做的时候却不如我想象中那样,在焊接这方面基本上没什么问题,因为可调数字钟在软件方面要求比较高,所以相对来说硬件就比较简单,可是硬件完成后,烧好芯片,却没有出现我意想的结果,可我找了半天也不知道哪里出了问题,问了同学,他也说我这个电路没有什么问题,可是就是出不来,我自己也检查了好多遍,后来实在没有办法了,我就再做了一个,终于出来了数据,这个实训也就此画上了句号。

这次实训从老师讲理论课到我们把他做成实物,一个用了三个星期左右,其实时间也还算长了,可是为什么我到最后一两天还是急急忙忙的呢?我觉的主要有以下几个方面:没有提前做好理论工作,没有合理的安排实训时间,所以,不管以后做什么事,一定要做好前提工作,这样一步一步下来,出错的可能性就尽可能的减少了。

实时时钟设计实验报告

实验报告

源代码: #pragma sfr //使用特殊功能寄存器 #pragma EI //开中断 #pragma DI //关中断 #pragma access //使用绝对地址指令 #pragma interrupt INTTM000 Time //定义时间中断函数为Time #pragma interrupt INTKR OnKeyPress //定义按键中断为OnKeyPress #pragma interrupt INTP5 OnKeyOver //定义INT中断为OnKeyOver void Init_Led(); void InitKey_INTKR(); void Init_Lcd(); void Init_Inter(); void LightOneLed(unsigned char ucNum); void LightOff(); int Count_Day(int month); char i=0; //定义变量i,是切换时间的标志 int key=0; //定义key=0 int temp=1; //用于存放当前月的天数 int temp1=1; int second=0; //默认的秒second=0 int minute=0; //默认的分minute=0 int hour=12; //默认的时hour=12 int day=1; //默认的天day=1 int month=5; //默认的月month=5 int year=2014; //默认的年year=2014 int c_hour=1; //默认的闹钟时=1 int c_minute=1; //默认的闹钟分=1 int buffs[2]; //秒的数码显示缓存区 int buffm[2]; //分的数码显示缓存区 int buffh[2]; //时的数码显示缓存区 int buffday[2]; //天的数码显示缓存区 int buffmonth[2]; //月的数码显示缓存区 int buffyear[4]; //年的数码显示缓存区 int buffmd[4]; //月,天的数码显示缓存区 int buffhm[4]; //时,分的数码显示缓存区 int buffms[4]; //分,秒的数码显示缓存区 int buffch[2]; //闹钟时的数码显示缓存区 int buffcm[2]; //闹钟分的数码显示缓存区 unsigned char Que = 0; //INT中断中间变量 int LCD_num[10]={0X070d,0x0600,0x030e,0x070a,0x0603,0x050b,0x050f,0x0700,0x070f,0x070b};// 数字0~~9的显示码 unsigned char Scond; //…………………………延时函数1……………………// void Delay(int k){ i nt i,j; f or(i=0;i

51定时器和lcd12864做的实时时钟显示(附图)

#include #include"intrins.h" #define uchar unsigned char #define uint unsigned int sbit rs=P1^0; sbit rw=P1^1; sbit e=P2^5; sbit psb=P1^2; sbit rst=P1^4; uchar hour,fen,miao,num; uchar code table[]="时间:"; uchar sbuf[]={0,0,0,0,0,0}; void delay(uint x) { uchar i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void Timer0Init(void) //50??@11.0592MHz { TMOD |= 0x01; //??????? TL0 = 0x00; //??????

TH0 = 0x4C; //?????? EA=1; ET0=1; TR0=1; //???0???? } void Delay2ms() //@11.0592MHz { unsigned char i, j; _nop_(); i = 4; j = 146; do { while (--j); } while (--i); } void Delay100us() //@11.0592MHz { unsigned char i, j; i = 2; j = 109; do { while (--j); } while (--i);

void Delay50ms() //@11.0592MHz { unsigned char i, j, k; i = 3; j = 207; k = 28; do { do { while (--k); } while (--j); } while (--i); } void write_12864com(uchar com) { rs=0; rw=0; Delay100us(); P0=com; e=1; Delay100us(); e=0; Delay100us(); }

实时时钟实验报告

嵌入式系统开发实验报告 实验四:实时时钟实验 班级:应电112 姓名:张志可 学号: 110415151 指导教师:李静 实验日期: 2013年9月25日

实验四:实时时钟实验 一、实验目的 1. 了解实时时钟的硬件控制原理及设计方法。 2. 掌握 S3C2410X 处理器的 RTC 模块程序设计方法。 二、实验设备 硬件:Embest ARM 教学实验系统,ULINK USB-JTAG 仿真器套件,PC 机。 软件:MDK 集成开发环境,Windows 98/2000/NT/XP。 三、实验原理 1. 实时时钟(RTC) 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的 RTC,还有大容量的存储器、温度传感器和 A/D 数据采集通道等,已成为集 RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如 I2C、SPI、MICROWIRE 和CAN 等串行总线接口。这些串口由2~3 根线连接,分为同步和异步。 2. S3C2410X 实时时钟(RTC)单元 S3C2410X 实时时钟(RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC 单元时钟源由外部32.768KHz 晶振提供,可以实现闹钟(报警)功能。 四、实验内容 学习和掌握 Embest ARM 教学实验平台中 RTC 模块的使用,编写应用程序,修改时钟日期及时间的设置,以及使用 EMBEST ARM 教学系统的串口,在超级终端显示当前系统时间。

网络时钟系统方案设计

时钟系统 技术方案 烟台北极星高基时间同步技术有限公司 2012年3月

第一部分:时钟系统技术方案 一、时钟系统概述 1.1概述 根据办公楼的实际情况,特制定如下施工设计方案: 时钟系统主要由GPS接收装置、中心母钟、二级母钟(中继器)、全功能数字显示子钟、、传输通道和监测系统计算机组成。 系统中心母钟设在中心机房内,其他楼各设备间设置二级母钟,在各有关场所安装全功能数字显示子钟。 系统中心母钟接收来自GPS的标准时间信号,通过传输通道传给二级母钟,由二级母钟按标准时间信号指挥子钟统一显示时间;系统中心母钟还通过传输系统将标准时间信号直接传给各个子钟,为楼宇工作人员提供统一的标准时间 二、时钟系统功能 根据本工程对时钟系统的要求,时钟系统的功能规格如下: 时钟系统由GPS校时接收装置(含防雷保护器)、中心母钟、扩容接口箱、二级母钟、数字式子钟、监控终端(也称监测系统计算机)及传输通道构成。其主要功能为: ☉显示统一的标准时间信息。 ☉向其它需要统一时间的系统及通信各子系统网管终端提供标准时间信息。 2.1 中心母钟 系统中心母钟设置在控制中心设备室内,主要功能是作为基础主时钟,自动接收GPS的标准时间信号,将自身的精度校准,并分配精确时间信号给子钟,二级母钟和其它需要标准时间的设备,并且通过监控计算机对时钟系统的主要设备进行监控。 中心母钟主要由以下几部分组成: ☉标准时间信号接收单元 ☉主备母钟(信号处理单元) ☉分路输出接口箱 ☉电源 中心母钟外观示意图见(附图) 2.1.1标准时间信号接收单元 标准时间信号接收单元是为了向时间系统提供高精度的时间基准而设置的,用以实现时间系统的无累积误差运行。 在正常情况下,标准时间信号接收单元接收来自GPS的卫星时标信号,经解码、比对后,经由RS422接口传输给系统中心母钟,以实现对母钟精度的校准。 系统通过信号接收单元不断接收GPS发送的时间码及其相关代码,并对接收到的数据进行分析,判断这些数据是否真实可靠。如果数据可靠即对母钟进行校对。如果数据不可靠便放弃,下次继续接收。

基于51单片机的实时时钟设计报告

课程设计(论文)任务书 信息工程学院信息工程专业(2)班 一、课程设计(论文)题目嵌入式课程设计 二、课程设计(论文)工作自 2014 年 6 月 9 日起至2014年 6月15日止。 三、课程设计(论文) 地点: 5-402 单片机实验室 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握单片机各功能模块的基本工作原理; (2)培养学生单片机应用系统的设计能力; (3)使学生能够较熟练地使用proteus工具完成单片机系统仿真。 (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)分析所设计系统中各功能模块的工作原理; (2)选用合适的器件(芯片); (3)提出系统的设计方案(要有系统电路原理图); (4)对所设计系统进行调试。 2)创新要求: 在基本要求达到后,可进行创新设计,如改善单片机应用系统的性能。 3)课程设计论文编写要求 (1)要按照书稿的规格打印撰写论文。 (2)论文包括目录(自动生成)、摘要、正文、小结、参考文献、附录等。 (3)论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程:30分; (3)完成调试:20分; (4)回答问题:20分; (5)格式规范性(10分)。

5)参考文献: (1)张齐.《单片机原理与嵌入式系统设计》电子工业出版社 (2)周润景.《PROTUES入门实用教程》机械工业出版社 (3)任向民.《微机接口技术实用教程》清华大学出版社 (4)https://www.360docs.net/doc/a416316138.html,/view/a5a9ceebf8c75fbfc77db2be.html 6)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 系统设计与调试 4 实验室 撰写论文2图书馆、实验室 学生签名: 2014 年6 月9日 课程设计(论文)评审意见 (1)完成原理分析(20分):优()、良()、中()、一般()、差(); (2)设计分析(30分):优()、良()、中()、一般()、差(); (3)完成调试(20分):优()、良()、中()、一般()、差(); (4)回答问题(20分):优()、良()、中()、一般()、差(); (5)格式规范性(10分):优()、良()、中()、一般()、差(); 评阅人:职称: 2014 年6 月15 日

课程设计 实时时钟

单片机原理课程设计报告 题目:实时时钟 院(系) 专业 年级 姓名学号 指导教师 设计时间2013.11.25-2013.12.6

电子信息工程专业10级学生单片机原理课程设计任务书课程设计题目二、实时时钟 指导教师职称高级工程师 设计任务和要求: 1.基本要求 (1)采用DS1302作为实时时钟芯片进行计时 (2)读出DS1302中的时间数据 (3)能显示时间数据,包括年月日,时分秒 (4)显示方式不限 2. 设计步骤 (1) 使用Proteus按设计要求绘制电路图。 (2) 按要求编写相应程序。 (3) 使用Proteus仿真程序,对程序进行调试。 (4) 撰写课程设计报告 3.撰写课程设计报告 课程设计报告内容包括题目、摘要、目录、正文、结论、致谢、参考文献等。 学生在完成上述全部工作之后,应将全部内容以先后顺序写成设计报告一份,阐述整个设计内容,要求重点突出、特色鲜明、语言简练、文字通畅,字迹工整。报告书以A4纸打印,装订成册(文字不少于3000 字)。

目录 1. 设计要求与方法论证 (3) 1.1 设计要求 (3) 1.2 系统基本方案选择和论证 (3) 1.2.1 单片机芯片的选择方案和论证 (3) 1.2.2 显示模块选择方案和论证 (4) 1.3 电路设计最终方案决定 (4) 2. 系统的硬件设计与实现 (4) 2.1 电路设计框图 (4) 2.2 系统硬件概述 (5) 2.3 系统硬件模块 (5) 2.3.1 AT89C51 (5) 2.3.2 DS1302 (6) 2.3.3点阵式LCD (7) 3.系统的软件设计 (7) 4. 硬件电路调试 (7) 5. 结论 (9) 6. 致谢 (9) 参考文献 (10) 附录 (11)

数字时钟设计实验报告

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

数字时钟设计实验报告 一、设计要求: 设计一个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的清零端,同时产生一个脉冲给分的个位。其电路图如下:

基于ds1302的51单片机简易实时时钟-1602显示-源程序

。 ==================主程序================= #include

。#include "ds1302.h" #include "LCD1602.h" void change(); uchar times[9]; uchar date[9]; main() {LCD_init();//LCD初始化 init_1302(time_1302); gotoxy(1,1); LCD_display("Time:"); gotoxy(1,2); LCD_display("Date:"); times[8]='\0';// date[8]='\0'; while(1) {get_1302(time_1302); change(); gotoxy(7,1); LCD_display(times); gotoxy(7,2); LCD_display(date);

} } /*=========================== 转换子程序 ===========================*/ void change() { // 时间的转换 times[0]=time_1302[2]/10+'0'; times[1]=time_1302[2]%10+'0'; times[2]=':'; times[3]=time_1302[1]/10+'0'; times[4]=time_1302[1]%10+'0'; times[5]=':'; times[6]=time_1302[0]/10+'0'; times[7]=time_1302[0]%10+'0'; // 日期的转换 date[0]=time_1302[6]/10+'0'; date[1]=time_1302[6]%10+'0'; date[2]='-';

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

单片机电子时钟课程设 计实验报告 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号: 班级:自动化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)完成整个系统的设计、调试和制作。

实时日历时钟显示系统的设计

微机原理及应用课程设计任务书 20 xx -20 xx 学年第 x 学期第 xx 周- xx 周 题目实时日历时钟显示系统的设计 内容及要求 内容:实时日历时钟显示系统 要求:设计一个实时日历时钟显示系统的程序。用“年/月/日”,“时:分:秒”(都是两位)的形式连续显示系统时间 进度安排 课程设计内容时间分配 方案论证1天 分析、设计、调试、运行3天 检查、整理、写设计报告、小结1天 合计5天 学生姓名: xx 指导时间: xxxx 指导地点: xxxx 任务下达任务完成 考核方式 1.评阅√ 2.答辩√ 3.实际操作□ 4.其它□指导教师系(部)主任 注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。 2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。

此次微机原理课程设计要求设计一个实时日历时钟显示系统。 本程序利用DOS中断2AH号功能调用取系统年月日,再逐个显示各数据,利用2CH号功能调用取系统时间,逐个显示各数据。用“时:分:秒”(都是两位)的形式连续显示系统时间,并利用计算机提供的软件调试工具对所编写程序进行调试,记录下整个调试分析的过程与运行结果。 任务安排: 主程序: xx:主体程序和流程设计 xx:日历调用显示系统 xx:时间调用显示系统 子程序: xx:显示两位数字的子程序

一、课程名称 (2) 二、课程内容及要求 (2) 三、小组组成 (2) 四、设计思路 (3) 五、程序流程图及介绍 (4) 六、调试 (5) 七、总结 (7) 八、参考资料 (9) 附录 (9)

一、课程名称:实时日历时钟显示系统的设计 二、课程内容及要求 课程内容:实时日历时钟显示系统 要求:设计一个实时日历时钟显示系统的程序。用“年/月/日”,“时:分:秒”(都是两位)的形式连续显示系统时间 三、小组组成: 成员: xx, xx, xx, xx 任务安排: 主程序: xx:主体程序和流程设计 xx:日历系统 xx:时间系统 子程序: xx:显示两位数字的子程序

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

目录 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化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

嵌入式软件开发基础实验报告 实时时钟

上海电力学院 嵌入式软件开发基础实验报告 题目:【ARM】实时时钟实验 专业:电子科学与技术 年级: 姓名: 学号:

一、实验目的 1、了解实时时钟的硬件控制原理及设计方法。 2、掌握S3C44B0X 处理器的RTC 模块程序设计方法。 二、实验设备 1、硬件:Embest EduKit-III 实验平台,Embest ARM 标准/增强型仿真器套件,PC 机。 2、软件:Embest IDE Pro ARM 集成开发环境,Windows 98/2000/NT/XP。 三、实验内容 学习和掌握 Embest EduKit-III 实验平台中RTC 模块的使用,进行以下操作: 1、编写应用程序,修改时钟日期及时间的设置。 2、使用EMBEST ARM 教学系统的串口,在超级终端显示当前系统时间。 四、实验原理 1. 实时时钟(RTC) 实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC 具有计时准确、耗电低和体积小等特点,特别是在各种嵌入式系统中用于记录事件发生的时间和相关信息,如通信工程、电力自动化、工业控制等自动化程度高的领域的无人值守环境。随着集成电路技术的不断发展,RTC 器件的新品也不断推出,这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D 数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。 RTC 器件与微控制器之间的接口大都采用连线简单的串行接口,诸如I2C、SPI、MICROWIRE和CAN 等串行总线接口。这些串口由2~3 根线连接,分为同步和异步。 2. S3C44B0X 实时时钟(RTC)单元 S3C44B0X 实时时钟(RTC)单元是处理器集成的片内外设。由开发板上的后备电池供电,可以在系统电源关闭的情况下运行。RTC 发送8 位BCD 码数据到CPU。传送的数据包括秒、分、小时、星期、日期、月份和年份。RTC 单元时钟源由外部32.768KHz 晶振提供,可以实现闹钟(报警)功能。 S3C44B0X 实时时钟(RTC)单元特性: BCD 数据:秒、分、小时、星期、日期、月份和年份 1、闹钟(报警)功能:产生定时中断或激活系统 2、自动计算闰年 3、无2000 年问题 4、独立的电源输入 5、支持毫秒级时间片中断,为RTOS 提供时间基准 读/写寄存器 访问 RTC 模块的寄存器,首先要设RTCCON 的bit0 为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),用户应该重新读取年份到分钟的值(参考程序设计)。

单片机综合实验报告51电子时钟

一、实验内容: 设计一个数字时钟,显示范围为00:00:00~23:59:59。通过5个开关进行控制,其中开关K1用于切换时间设置(调节时钟)和时钟运行(正常运行)状态;开关K2用于切换修改时、分、秒数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定闹钟,闹钟同样可以设定初值,并且设定好后到时间通过蜂鸣器发声作为闹铃。 选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能。 二、实验电路及功能说明 1602显示器电路(不需接线) 电子音响电路 按键说明: 按键键名功能说明 K1 切换键进入设定状态 K2 校时依次进入闹钟功能是否启用,闹钟时,分秒, 年,月,日及时间时,分,秒的设置,直到退出 设置状态 K3 加1键调整是否起用闹钟和调节闹钟时,分,秒, 年,月,日,时间的时,分,秒的数字三、实验程序流程图:

四、实验结果分析 定时程序设计: 单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-51采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/

计数器两种工作模式和4种工作方式。 定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX. 当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。 实时时钟实现的基本方法: 这次设计通过对单片机的学习、应用,以A T89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它主要通过51单片机综合仿真实验仪实现,通过1602能够准确显示时间,调整时间,它的计时周期为24小时,从而到达学习、设计、开发软、硬件的能力。主要实现功能为显示时间,时间校准调时(采用手动按键调时),闹铃功能(设置定时时间,到点后闹铃发出响声)。通过键盘可以进行校时、定时。闹铃功能使用I/O 口定时翻转电平驱动的无源蜂鸣器。本文主要介绍了工作原理及调试实现。 四个按键K1、K2、K3、K4、一个蜂鸣器。 1602显示时钟、跑表。 时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。 秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。 实时时钟程序设计步骤: 先对系统进行初始化,如:LCD1602初始化,DS1302初始化等,然后才能进入主显示模块,即可在LCD1602上看到相应的信息。对于LCD1602的初始化,主要是对开启显示屏,清屏,设置显示初始行等操作。DS1302的初始化主要是先开启写功能,然后写入一个初始值。 本系统采用的是LCD1602液晶显示器,由于其是本身带有驱动模块的液晶屏,所以对于LCD1602操作程序可分为开显示、设置显示初始行、写数据和清屏等部分。LCD1602的写命令程序和写数据程序分别以子程序的形式写在程序里,以便主程序中的调用。 (1)选择工作方式,计算初值; (2)采用中断方式进行溢出次数累计; (3)计时是通过累加和数值比较实现的; (4)时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值; (5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来; (6)中断服务程序:进行计时操作; (7)加1子程序:用于完成对时、分、秒的加操作,中断服务程序在秒、分、时加1时共有三种条调用加1子程序,包括三项内容:合字、加1并进行十进制调整、分字。 程序说明: 按K1按键进入设定状态 按K2,依次进入闹钟功能是否启用,闹钟时,分秒,年,月,日及时间时,分,秒的设置,直到退出设置状态按K3,调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字 LCD第二排中间显示小喇叭,表示启用闹钟功能,无则禁止闹钟功能(可在调整状态进行设置)正常状态,LCD上排最前面显示自定义字符,LCD下排最前面闪动"_" 设置状态,LCD上排最前面显示"P",下排最前面在设置闹钟时间时显示"alarm_",其它状态显示

时钟设计报告

教师签名: 说明:答辩未通过者总分记为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公司的王牌产品,编程功能强大而赢得广大程序的偏爱。

实时日历时钟系统设计

内蒙古工业大学本科毕业设计说明书 摘要 在当今社会,随着电子产品的不断发展,许多电子设备都趋于智能化,人们都基 本熟悉这些电子产品的基本功能,然而却很少人知道它的内部结构以及工作原理。这 些设备大部分都含有CPU控制器或者是单片机,其中单片机以其COMS化、体积小、成本低、运用灵活、易于产品化等一系列优点,这些年得到迅猛的发展和推广,广泛 的应用于工业自动控制,通讯设备,家用电器等各个领域。 本设计的日历时钟产品是小型电子产品。主要是以单片机AT89C51为总控制器,由时钟芯片DS12C887读取时间数据与掉电储存,用键盘来完成对时间调整,最后通 过1602液晶显示器显示出来,从而达到显示时间的目的。日历时钟广泛的应用于个 人家庭以及车站、医院、商场、办公室等公共场所,成为人们日常生活中不可少的必 需品。因此,本设计具有相当重要的现实意义和实用价值。 关键词:日历时钟;单片机;1602液晶显示;DS12C887

内蒙古工业大学本科毕业设计说明书 Abstract With the continuous development of electronic products in today's society, many electronic devices have tended to be intelligent, people are basically familiar with the basic functions of these electronic products, yet few people know about its internal structure and working principle. most of which containing CPU controller or microcontroller. In recent years, Microcontroller has been the rapid development and large-scale promotion with its with its COMS, small size, low cost, flexible use, easy-to-product such as a number of advantages. It has been widely used in various fields of industrial control systems, communications equipment, and household appliances. The design of the product is small calendar clock electronic products. Mainly based on AT89C51 microcontroller controller, by the clock chip DS12C887 access time data and power-down storage, and use the keyboard to complete on time to adjust, and finally LCD1602 monitor display, so as to achieve the purpose of display time. T he calendar clock is widely used in individual households, as well as railway stations, hospitals, shopping malls, offices and other public places to become the indispensable necessities of daily life. Therefore, the design has very important realistic significance and practical value. Key words: Calendar clock;Microcontroller;LCD1602; DS12C887

数字逻辑实验报告(数字时钟设计)

数字逻辑实验报告

实验三、综合实验电路 一、实验目的: 通过一个综合性实验项目的设计与实现,进一步加深理论教学与实验软硬件平台的实践训练,为设计性实验做好充分准备。 二、实验原理: 根据要求的简单设计性的电路设计实验,应用基本器件与MSI按照电路设计步骤搭建出初级电路;设计型、综合型的较复杂实验电路 三、实验设备与器件: 主机与实验箱 四、实验内容: (1)实验任务:根据所学习的器件,按照电路开发步骤搭建一个时钟, 要求实现的基本功能有计时功能、校对时间功能、整点报时、秒表等功能。 (2)实验任务分析:完成该数字时钟,采用同步时序电路,对于计时 的的功能,由于时间的秒分时的进位分别是60、60、24,所以可以应用74LS163计数器分别设计2个模60计数器以及一个模24计数器,那么需要有7个秒输出,7个分输出,6个小时的输出;对于校对时间的功能,由74LS163的特性可知,当该器件处于工作状态时,每来一个CLK脉冲,计数值加1,所以可以手动控制给CLK脉冲,来进行时间的校对;对于整点报时功能,可以采用一个比较电路,当时间的分秒数值全部为零时,那么此时可以接通报时装置,可以在电路中设置报时的的时间;对于秒表功能,有两种方案,可以单独重新设计一个秒表装置,采用模100计数器以及两个模60计数器,可以进行优化,使用原先的两个模60计数器,这样可以简化电路,是电路简洁。 (3)实验设计流程:

(4)输入输出表: (5)各个功能模块的实现: A、计时功能模块的实现(电路图及说明)秒表部分及说明

说明:该部分是实现功能正常计时中的秒部分的计时工作。如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个秒输出,接到BCD译码显示器。 注解:第一个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平VCC 第二个163器件: LDN端统一接到清零端ABCD端接地 ENP端接到VCC高电平ENT接高电平第一个163的预置位段 分钟部分以及说明:

51单片机1302实时时钟1602显示程序

/****************************************************************************** * * 标题: 试验数码管显示时钟* * * * 通过本例程了解DS1302时钟芯片的基本原理和使用,理解并掌握DS1302时钟芯片 * * 驱动程序的编写以及实现数字字符在数码管中的显示。 * * 注意:JP1302跳线冒要短接。* * 请学员认真消化本例程,懂DS1302在C语言中的操作* ******************************************************************************* */ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include sbit rs=P3^2; // 1602引脚定义 sbit rw=P3^0; sbit e=P1^6; #define NOP() _nop_() /* 定义空指令*/ #define _Nop() _nop_() /*定义空指令*/ #define uchar unsigned char #define uint unsigned int uchar temp_buff[9]; //存储读取的字节,read scratchpad为9字节,read rom ID为8字节uchar *p,TIM; code unsigned char table[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; //l_tmpdate[7]用于初始值的设定,设定后,就不用每次上电再次修改了 unsigned char l_tmpdate[7]={0,17,19,16,3,6,12};//秒分时日月周年08-05-15 12:00:00 ,初值code unsigned char write_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}; //秒分时日月周年最低位读写位 code unsigned char read_rtc_address[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d}; //注意,根据需要修改 sbit SCK=P1^0; //时钟 sbit SDA=P1^1; //数据 sbit RST = P1^2;// DS1302复位 /******************************************************************/ /* 函数声明*/ /******************************************************************/ void Write_Ds1302_byte(unsigned char temp); void Write_Ds1302( unsigned char address,unsigned char dat );

相关文档
最新文档