实时时钟参考程序

实时时钟参考程序
实时时钟参考程序

5.6 实时时钟实验

5.6.1 实验目的

1. 了解实时时钟在嵌入式系统中的作用;

2. 掌握实时时钟的使用。

5.6.2 实验内容

1. 编程实现实时时钟功能,每秒显示实时时钟;

2. 编程实现实时时钟告警功能。

5.6.3 预备知识

1. 了解ADT集成开发环境的基本功能;

2. 学习S3C24X0的实时时钟模块的使用。

5.6.4 实验设备

1. 硬件:JXARM9-2440教学实验箱、PC机;

2. 软件:PC机操作系统 Windows 98(2000、XP) + ADT IDE开发环境。

5.6.5 基础知识

1. 实时时钟在嵌入式系统中的作用

在一个嵌入式系统中,实时时钟单元可以提供可靠的时钟,包括时、分、秒和年、月、日;即使在系统处于关机状态下它也能够正常工作(通常采用后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的晶振。

2. S3C24X0的实时时钟单元

下图为S3C24X0的实时时钟框图。它具有以下特点:

图5-12 S3C24X0的实时时钟框图

1)时钟数据采用BCD编码;

2)能够对闰年的年月日进行自动处理;

3)具有告警功能,当系统处于关机状态时,能产生告警中断;

4)具有独立的电源输入;

5)提供毫秒级时钟中断,该中断可以用于作为嵌入式操作系统的内核时钟。

3. S3C24X0的实时时钟寄存器

1) 控制寄存器

表5-16 控制寄存器

寄存器地址读/写状态描述复位值

RTCCON 0x57000040 R/W 实时时钟控制寄存器0x0

RTCCON 位描述复位值CLKRST [3] 实时时钟计数器复位

0-不复位 1-复位

CNTSEL [2] BCD计数选择,将计数器设置为BCD模式

0-选择BCD模式 1-保留

CLKSEL [1] BCD时钟选择

0-将输入时钟进行1/215分频 1-保留

RTCEN [0] RTC读写使能

0-禁止 1-使能

2) 告警控制寄存器

3) 实时时钟计数器

表5-18 实时时钟计数器

4) 告警时间寄存器

包括年、月、日、时、分、秒。它们都以BCD的格式表示,地址见下表:

表5-19 告警时间寄存器

5) 实时时钟寄存器

包括年、月、日、时、分、秒。它们都以BCD的格式表示,地址见下表:

注意事项:

1. 以上各寄存器都只能以字节模式进行读写操作;

2. 当系统使用BIG-ENDIAN模式时,各寄存器对应的地址为会有所改变,具体值请参考S3C44B0X的数据手册。

4. 实验参考代码及说明:

/* 包含文件 */

#include "2410addr.h"

#include "2410lib.h"

#include "2410RTC.h"

#include "interrupt.h"

/* 表示日期、时间的数据结构 */

typedef struct ST_DATE

{

short year; // 年

char mon; // 月

char day; // 日

char week_day; // 星期

char hour; // 时

char min; // 分

char sec; // 秒

} st_date;

/* 全局变量 */

int led_index = 0;

int ext0_count = 0;

/* functions */

void rtc_tick_isr(void);

void rtc_int_isr(void);

/***************************************************************************** // Function name : rtc_set_date

// Description : 修改实时时钟当前时间、日期

// Return type : void

// Argument : p_date, 待设置的日期

*****************************************************************************/ void rtc_set_date(st_date* p_date)

{

rRTCCON = 0x01;

rBCDYEAR = p_date->year;

rBCDMON = p_date->mon;

rBCDDAY = p_date->day;

rBCDDATE = p_date->week_day;

rBCDHOUR = p_date->hour;

rBCDMIN = p_date->min;

rBCDSEC = p_date->sec;

rRTCCON = 0x00;

}

/***************************************************************************** // Function name : rtc_get_date

// Description : 获取实时时钟当前时间、日期

// Return type : void

// Argument : p_date, 返回日期的指针

*****************************************************************************/ void rtc_get_date(st_date* p_date)

{

rRTCCON = 0x01;

p_date->year = rBCDYEAR ;

p_date->mon = rBCDMON ;

p_date->day = rBCDDAY ;

p_date->week_day= rBCDDATE ;

p_date->hour = rBCDHOUR ;

p_date->min = rBCDMIN ;

p_date->sec = rBCDSEC ;

rRTCCON = 0x00;

}

/*****************************************************************************

// Function name : rtc_tick_init

// Description : 初始化S3C2410的TICK定时器

// Return type : void

// Argument : tick, 设置的TICK频率(时钟滴答的周期为 (1+tick)/128秒)

*****************************************************************************/

void rtc_tick_init( char tick )

{

Irq_Request(IRQ_TICK, rtc_tick_isr);

rRTCCON = 0x0; //No reset[3], Merge BCD counters[2], BCD clock select XTAL[1], RTC Control disable[0]

rTICNT = (tick&0x7f)|0x80; /*TICK 中断使能,周期为(1+tick)/128秒*/

Irq_Enable(IRQ_TICK);

}

/*****************************************************************************

// Function name : rtc_alarm_set

// Description : 设置S3C2410的告警时间以及方式

// Return type : void

// Argument : p_date, 告警的时间

// mode, 告警模式

*****************************************************************************/

void rtc_alarm_set(st_date* p_date, unsigned char mode)

{

Irq_Request(IRQ_RTC, rtc_int_isr);

rRTCCON = 0x01;

rALMYEAR = p_date->year;

rALMMON = p_date->mon;

rALMDATE = p_date->day;

rALMHOUR = p_date->hour;

rALMMIN = p_date->min;

rALMSEC = p_date->sec;

rRTCALM = mode;

rRTCCON = 0x00;

Irq_Enable(IRQ_RTC);

}

/***************************************************************************** // Function name : Main

// Description : JXARM9-2440 实时时钟实验主程序

// 完成功能:

// 时钟滴答:每秒钟刷新数码管显示

// 设置当前日期、时间

// 动态刷新当前日期、时间,通过串口打印出来

// 时间告警功能:每分钟的第5秒告警,并进行跑马灯显示

// Return type : void

// Argument : void

*****************************************************************************/ void Main(void)

{

int old_index ;

st_date m_date;

/* 配置系统时钟 */

ChangeClockDivider(2,1);

U32 mpll_val = 0 ;

mpll_val = (92<<12)|(1<<4)|(1);

ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);

/* 中断初始化 */

Isr_Init();

/* 初始化串口 */

Uart_Init(0,115200);

Uart_Select(0);

/* 打印提示信息 */

Uart_Printf("\n---实时时钟测试程序---\n");

Uart_Printf("\n请将UART0与PC串口进行连接,然后启动超级终端程序(115200, 8, N, 1)\n");

Uart_Printf("\n实时时钟测试开始\n");

/* 采用BCD编码,如2004年需要设置的值为0x2004 */

m_date.year = 0x2000+0x04 ;

m_date.mon = 0x03 ;

m_date.day = 0x02 ;

m_date.week_day = 0x02 ;

m_date.hour = 0x15 ;

m_date.min = 0x40 ;

m_date.sec = 0x00 ;

/* 修改当前日期和时间 */

rtc_set_date(&m_date);

m_date.sec = 0x05 ;

/* 设置告警的时间及方式,0x41表示使能RTC告警,以及使能秒时钟告警 */

rtc_alarm_set(&m_date, 0x41);

rtc_tick_init(127);

old_index = led_index;

Uart_Printf("\r\n\r\n");

while(1)

{

if(old_index != led_index) /* 每隔一秒更新一次数据*/

{

rtc_get_date(&m_date);

old_index = led_index;

Uart_Printf( /* 时钟数据为BCD码格式,以16进制显示 */

"\b\b\b\b\b\b\b\b%02x:%02x:%02x", m_date.hour, m_date.min,

m_date.sec);

}

};

}

/***************************************************************************** // Function name : rtc_tick_isr

// Description : TICK中断处理程序,程序中设置每秒钟引发一次中断

// Return type : int

// Argument : void

*****************************************************************************/ void rtc_tick_isr(void)

{

Irq_Clear(IRQ_TICK); /* 清除TICK中断 */

led_index++;

}

/***************************************************************************** // Function name : rtc_int_isr

// Description : rtc中断处理程序,程序中设置每分钟的第5秒引发该中断

// Return type : int

// Argument : void

*****************************************************************************/ void rtc_int_isr(void)

{

Irq_Clear(IRQ_RTC); /*清除RTC中断*/

ext0_count++;

Uart_Printf("\r\nAlarm\r\n ");

}

本实验测试S3C24X0的实时时钟功能,包括:

1) 时钟滴答功能测试,通过LED显示TIME TICK;

2) 时间告警功能测试。

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

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

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

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

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

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

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

设计文件标准化管理规范

设计文件标准化管理规范 1 目的 最大限度提高设计文件的继承性和标准化程度。 2 范围 公司所有的设计资料文档,包括:软件、硬件、结构 3 参考文档 SJ/T 207-1999 《设计文件管理制度》第1-5部分 4 关键名词定义 4.1 设计文件 design document 记录设计信息的媒体。包括试制设计文件和定型设计文件。按其内容的表述可分为:图样、简图、文字内容设计文件和表格形式设计文件。 4.2 设计文件管理制度 management system for design documents 对产品设计文件的成套、符号、代号、格式、编号、编制和管理等所做的一系列规定。 4.3 零件 part 不采用装配工序而制成的产品。如车制的“轴”,用金属或合金铸成的“机壳”,无骨架的“线圈”,腐蚀的“印制板”,用塑料压塑的“把手”。 4.4 部件 subassembly 4.4.1 硬件部件 由材料、零件等以可拆卸或不可拆卸连接所组成的产品。它是在装配较复杂的产品时必须组成中间产品。例如:用塑料与金属轴圈压塑成的“手轮”;半导体材料上用掺杂方式形成、具有一定功能的产品,如:半导体集成电路的“芯片”,半导体管的“管芯”。

部件亦可包括其他的部件和/或整件。例如:装有表头、开关的面板;装有 变压器的底板。 4.4.2 软件部件 是载有程序的机构独立的媒体,但不能独立使用。它是整件的组成部分 4.5 整件 assembly 4.5.1 硬件整件 由材料、零件、部件等经装配连接所组成的具有了独立结构或一定功能的产品。例如:半导体集成电路、电子管、电容器。 整件亦可包括其他的整件。例如:收发讯机的放大器、电压表等。 具有一定通用性的部件,亦可作为整件。例如:元器件组成的单元等。 整件作为产品出厂时,有些整件又称整机,如发射机、电视机、录像机、电 话交换机、计算机、示波器等;还有些整件又称元器件,如电阻器、电容器、电 子管、半导体管等。 4.5.2 软件整件 是载有完整独立功能程序的媒体。它是部件的组合,整件的组合或部件和整 件的组合,或是载有一个或若干完整独立功能的程序的一个媒体。 4.6 成套设备 installation 由若干整件相互连接而共同构成的能完成某项完整功能的整套产品。这些整 件的连接一般要在使用地点完成。例如:计算机、雷达等。 成套设备亦可包括其他较简单的成套设备。 4.7 软件 software 与数据处理系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。 4.8 成套软件 installation software 是整件的组合,成套软件的组合或整件和成套软件的组合。并能独立运行或 独立使用。 成套软件内亦可包括其他较简单的成套软件。 4.9 成套件 complete object 随产品的具有某一特定作用的组合体。它包括成套安装件;成套备件;成套 工具、附件和材料;成套装放器材和成套包装器材等,并编为4级整件。

NRF24L01无线模块收发程序(实测成功 多图)

NRF24L01无线模块收发程序(实测成功多图) 本模块是NRF24L01无线传输模块,用于无线传输数据,距离不远,一般只是能够满足小距离的传输,目测是4-5m,价格一般是4元左右,可以方便的买到。 51最小系统学习板就可以,当时是用了两块学习板,一块用于发送,一块用于接收。 小车也是比较容易购到的,四个端口控制两个电机,两个控制一个电机,当两个端口高低电平不同时电机就会转动,即为赋值1和0是电机转动,赋值可以用单片机作用,当然这是小车启动部分,前进后退左转右转就是你赋值0和1的顺序问题了。

整体思路是用发射端的按键控制小车,即为按键按下就前进,再按其他按键实现其他功能,本次程序是在用NRF24L01发射数据在接收端用1602显示的基础上改变。 下面是程序源码(有好几个文件,分别创建) ////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////// #include #include #include'1602.h' #include'delay.h' #include 'nrf24l01.h' #define uint unsigned int #define uchar unsigned char uint Weight_Shiwu=1234; unsigned char KeyScan(void);//键盘扫描 // unsigned char KeyScan(void);//键盘扫描 //#define KeyPort P0 sbit KEY1 = P0^0; sbit KEY2 = P0^1; sbit KEY3 = P0^2; sbit KEY4 = P0^3; sbit KEY5 = P0^4; void main() { // char TxDate[4]; // LCD_Init(); //初始化液晶屏 // LCD_Clear(); //清屏

基于单片机的数字时钟

郑州科技学院 《单片机原理及应用》课程设计

目 录 0 引言3 1 设计方案4 2 系统设计7 2.1 硬件原理12 2.2 软件原理16 3 实验与仿真19 4 结论21 参考文献22 附录1 程序23 附录2 仿真电路图26 0 引言 近年来,随着电子产品的发展,随着社会竞争的激烈,人们对数字时钟的要求越来越高。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间,忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 因此从人们的日常生活到工厂的自动控制,从民用时钟到科学发展所需的时钟,现代人对时间的精度和观察时间的方便有了越来越多的需求。人们要求随时随地都能快速准确的知道时间,并且要求时钟能够更直观、更可靠、价格更便宜。这种要求催生了新型时钟的产生。 除此之外,由于对社会责任的更多承担,人们要求所设计的产品能够产生尽量少的垃圾、能够消耗尽量少的能量。因此人们对时钟的又有

了体积小、功耗低的要求。 传统的机械表由于做工的高精细要求,造价的昂贵,材料的限制,时间指示精度的限制,使用寿命方面,以及其它方面的限制,已不能满足人们的需求。另外,近些年随着科技的发展和社会的进步,人们对时钟的要求也越来越高,而使得新型电子钟表成了大势所趋。 另外单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。 1 设计方案 1.1 任务及要求 ①通过单片机内定时器控制走时,准确持续走时,调时不影响走时。 ②在八个数码管上显示时、分、秒及两个小数点。 ③含有闹钟功能,可以选择闹钟开关,可以设定闹铃时间。 ④到达闹钟时刻蜂鸣器警报,可以关掉警报。 1.2 系统功能说明 电子钟的格式为:XX.XX.XX ,由左向右分别为:时、分、秒。完成显示由秒01一直加1至59,再恢复为00;分加1,由00至01,一直加1至59,再恢复00;时加1,时由00加至23之后秒、分、时全部清清零。该钟使用T0作250us的定时中断。 走时调整:走时过程中直接调整且不影响走时准确性,按下时间选择键对“时、分、秒”显示进行调整,每按一下时间加,即加1,时间减,即减1。

数字钟单片机显示时间按

小小电子闹钟生活学习良伴 ———一款电路极简的单片机电子钟设计详解 电路特点 这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片IC实现。 电路见图1。 一片20引脚的单片机AT89C2051为电子钟主体,其显示数据从P1口分时输出,P3.0~3.3 则输出对应的位选通信号。由于LED数码管点亮时耗电较大,故使用了四只PNP型晶体管VT1~VT4进行放大。本来笔者还有一种更简的设计方案(见图2),可省去VT1~VT4及R1~R4八个元件,但这种设计由于单片机输出口的灌入电流有限(约20mA),数码管亮度较暗而不向读者介绍,除非你采用了高亮度的发光数码管。 P3.4、P3.5、3.7外接了三个轻触式按键,这里我们分别命名为:模式设定键set(P3.4)、时调整键hour(P3.5)、分调整键min(P3.7)。C1、R13组成上电复位电路。VT5及蜂鸣器Bz为闹时讯响电路。三端稳压器7805输出的5V电压供整个系统工作。此电子钟可与任何 9~20V/100mA的交直流电源适配器配合工作,适应性强。 电子钟功能 1.走时:通过模式设定键set选择为走时,U1、U2显示小时,U3、U4显示分。U2的小数点为秒点,每秒闪烁一次。 2.走时调整:通过模式设定键set选择为走时调整,按下hour键对U1、U2的走时“时”显示进行调整(每0.2秒递加1)。按下min键对U3、U4的走时“分”显示进行调整(每0.2秒递加1)。 3.闹时调整:通过模式设定键set选择为闹时调整,按下hour键对U1、U2的闹时“时”显示进行调整(每0.2秒递加1)。按下min键对U3、U4的闹时“分”显示进行调整(每0.2秒递加1)。 4.闹时启/停设定:通过模式设定键set选择为闹时启/停设定,按下min键U3的小数点点亮,闹时功能启动;按下hour键U3的小数点熄灭,闹时功能关停。 由于电路设计得极其简单,因此丰富的功能只能由软件完成,这里软件设计成为了关键。下面介绍软件设计要点。 图3为主程序状态流程。 图3 运行时建立的主要状态标志如下: flag—掉电标志。掉电后,flag内为一随机数;重新设定时间后flag内写入标志数55H。set—工作模式设定标志。 hour—走时“时”单元。 min—走时“分”单元。 sec—走时“秒”单元。 deda—走时5mS计数单元 t_hour—闹时“时”单元。 t_min—闹时“分”单元。 d_05s—0.5秒位标志。每秒钟的前0.5秒置1,后0.5秒置0,以使秒点闪烁。 o_f—闹时启/停位标志。闹时启动置1,闹时关停置0。 另外将定时器T0设定为5mS的定时中断。这里晶振频率为12MHz,因此5mS的初值为 -5000,但实际上程序还要作其它运算,使得时间偏长,经调整为-4800后试验刚好。计时单元deda每次中断均加1。走时函数判断deda>=200时即令秒单元sec加1。同理秒单元sec

NRF24L01无线模块收发程序例程

//下面是接收的NRF24L01的程序。 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #include #include "nrf24l01.h" #include #define uchar unsigned char #define uint unsigned int sbit IRQ =P1^2;//输入 sbit MISO =P1^3; //输入 sbit MOSI =P1^1;//输出 sbit SCLK =P1^4;//输出 sbit CE =P1^5;//输出 sbit CSN =P1^0;//输出 uchar RevTempDate[5];//最后一位用来存放结束标志 uchar code TxAddr[]={0x34,0x43,0x10,0x10,0x01};//发送地址 /*****************状态标志*****************************************/ uchar bdata sta; //状态标志 sbit RX_DR=sta^6; sbit TX_DS=sta^5; sbit MAX_RT=sta^4; /*****************SPI时序函数******************************************/ uchar NRFSPI(uchar date) { uchar i; for(i=0;i<8;i++) // 循环8次 { if(date&0x80) MOSI=1; else MOSI=0; // byte最高位输出到MOSI date<<=1; // 低一位移位到最高位 SCLK=1; if(MISO) // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据date|=0x01; // 读MISO到byte最低位 SCLK=0; // SCK置低 } return(date); // 返回读出的一字节 } /**********************NRF24L01初始化函数*******************************/ void NRF24L01Int() {

(完整word版)基于单片机电子时钟的制作

毕业综合实训概述 实训目的: 对单片机电子时钟的制作及设计原理的掌握,利用本次实训对所学的理论课程进行实际论证,更好的掌握理论知识。能够更好的运用在实践当中。 实训时间: 2015年9月21日-2015年11月8日 实训要求: 1.独立完成实物的制作及理解设计原理; 2.分析及制作程序流程图; 3. 绘制电路图; 4.了解个元器件在电路中的作用。

目录 1 引言 (1) 1.1选题背景 (1) 1.2设计原理 (1) 1.3单片机简介 (2) 1.4单片机的发展历史 (2) 1.5单片机的应用领域及发展趋势 (2) 2 方案议论 (5) 2.1 设计要求 (5) 2.2 系统描述 (5) 2.3 设计方案 (5) 2.3.1 集成电路 (5) 2.3.2 单片机的最小系统 (6) 2.3.3结论 (7) 3 硬件设计 (8) 3.1硬件结构 (8) 3.2中心控制模块 (8) 3.3电源模块 (11) 3.4控制电路 (12) 3.5复位电路 (12) 4软件设计 (15) 4.1电子时钟的设计原理 (15) 4.2 软件设计流程 (15) 5 总结 (17) 致谢 (18) 参考文献 (18) 附录电子时钟程序 (19)

1 引言 1.1选题背景 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM 已经发展出了32位的主频超过300M的高端单片机,直到现在基于8051的单片机还在广泛的使用。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作! 利用单片机实现电子时钟有很多优点,例如外部电路简单,控制方便等,因而备受广大单片机爱好者的喜爱。通过电子时钟的制作方案,掌握C语言的编程方法。并熟练的运用89S52单片机定时器准确的实现时间的递进,按下按键可以设置时间,最重要的是自己还可以通过程序设计输入自己需要的定点时间。 1.2设计原理 通过单片机对时间准确的控制,实现时间的递进。 定时器:时钟周期T是时序中最小的时间单位,具体计算的方法是1/时钟源频率,我们KST-52单片机开发板上用的晶振是11.0592M,那么我们对于这个单

单片机电子时钟程序

程序开始 ORG 0000H AJMP MAIN ORG 000BH AJMP CLOCK ORG 0100H 主程序开始: MAIN: MOV SP,#70H MOV 6EH,#00H ;显示缓存器初始值设定 MOV 6DH,#00H MOV 6CH,#00H MOV 6BH,#00H MOV 6AH,#00H MOV 69H,#00H MOV 50H,#00H ;秒,分,小时初始值设定 MOV 51H,#00H MOV 52H,#00H MOV DPTR,#0F003H ;8255端口定义,PA,PB为输出 MOV A,#80H MOVX @DPTR,A MOV 4FH,#00H MOV TMOD,#01H ;定时器T0及TL0,TH0初始值设定 MOV TH0,#3CH MOV TL0,#0B0H SETB EA ;开总中断 SETB ET0 ;开定时器中断 SETB TR0 循环程序开始,并显示时间: START: MOV A,50H LCALL BCD MOV 6AH,A ;显示秒十位 MOV 69H,B ;显示秒个位 MOV A,51H LCALL BCD MOV 6CH,A ;显示分十位 MOV 6BH,B ;显示分个位 MOV A,52H LCALL BCD ;调用十六进制至BCD码转换子程序 MOV 6EH,A MOV 6DH,B LCALL DIS ;调用显示子程序 LCALL KEY ;调用键盘子程序 AJMP START ;主程序结束

BCD: MOV B,#0AH ;BCD码转换子程序 DIV AB RET CLOCK: PUSH ACC ;保护现场 PUSH PSW CLR TR0 MOV TH0,#3CH ;定时参数重新设置 MOV TL0,#0B0H SETB TR0 INC 4FH ;100ms单元加1 MOV A,4FH CJNE A,#0AH,D0 ;100ms单元=10,就秒单元加1 MOV 4FH,#00H ;100ms单元内容清0 MOV A,50H ADD A,#01H ;秒单元加1 MOV 50H,A CJNE A,#3CH,D0 ;秒单元内容=60,则秒单元清0 MOV 50H,#00H MOV A,51H ;分,时单元代码 ADD A,#01H MOV 51H,A CJNE A,#3CH,D0 MOV 51H,#00H MOV A,52H ADD A,#01H LCALL RING ;报警子程序 MOV 52H,A CJNE A,#18H,D0 MOV 52H,#00H D0: POP PSW ;出栈,退出中断子程序 POP ACC RETI RING: MOV R3,A CLR P1.0 LCALL DELL50 SETB P1.0 LCALL DELL50 DJNZ R3,RING RET 键盘子程序: KEY: JB P1.7,MSET ;秒设定子程序 LCALL DELL ;防抖动延时 JB P1.7,MSET INC 50H

基于单片机的简易时钟设计(毕业设计)

广西理工职业技术学院 毕业设计(论文)说明书题目:简易电子时钟设计 系别:电气工程系 专业班级:11机电2 姓名:黄武锦 学号:20112323 指导教师:黎有好 二〇一三年七月二十四日

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

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

单片机带温度显示的红外遥控数字钟课程设计报告

单片机原理及应用课程设计报告 课题名称带温度显示的红外遥控数字钟 专业电气自动化 班级 B1031 学号 29 姓名武 X X 指导教师谢 X X 2012-6-4

目录 1.设计题目及要求 (1) 2.设计方案 (1) 2.1 主控制器型 (1) 2.2 DS1302实时显示时间的软硬件 (2) 2.3 显示方案 (2) 2.4 报警方案 (2) 2.5 键盘接口的选择 (3) 2.6 红外通信的基本原理 (3) 2.6.1 红外通信接口的硬件电路设计 (3) 2.6.2 红外发送器及原理 (3) 2.6.3 红外遥控电路原理分析 (4) 3.主要电路与程序设计 (5) 3.1 系统硬件的结构框图 (5) 3.2 单片机最小系统设计 (5) 3.3 温度电路设计 (6) 3.4 显示电路设计 (6) 3.5 声光报警电路 (6) 3.6 实时时钟模块 (7) 3.7 红外线接收电路 (7) 4.软件设计 (8) 4.1 总模块的流程图 (8) 4.2 部分主要模块的流程图 (9) 4.3 温度转换核心及其算法 (11) 4.3.1 DS18B20的内部结构 (11) 4.3.2 DS18B20的内存结构 (11) 4.3.3 DS18B20的测温功能 (11) 4.3.4 温度转换算法及分析 (12) 5.调试结果记录及分析 (15) 5.1 数码管显示的测试方法和结果 (15) 5.2 DS18B20的测试方法和结果 (16) 5.3 键盘程序的测试方法和结果 (16) 5.4 RS232模块的测试方法和结果 (16) 5.5产品最终调试 (16) 6.结论 (16) 7.参考文献 (17)

设计文件编写的标准化要求(KST)

设计文件编写的标准化要求 一、设计文件的编制规则 1、设计文件的编制必须遵照国家、行业及地方现行标准和有关法律法规的规定,达到正确、完整、统一、简明的要求。 2、设计文件上的名词、术语、符号、代号、文字、计量单位等均应符合有关标准或规定。同一产品的设计文件、工艺文件、检验文件所采用的编制方法和使用的名词、术语、符号、代号、计量单位应一致。如产品型号名称在所有产品相关文件包括广告宣传中都应保持一致。如液晶模组,在一些技术文件中又称其为液晶屏。这就不一致了,容易引起误解。 二、设计文件名称和代号的命名 文件名称应尽量简短、确切。本公司同类产品、同类零、部件应尽量采用统一名称和同类别文件(图样)代号,避免同一名称图样有多类别文件代号的产生。如主板、按键板及其它印制板的图样代号均为KST7.821.XXX。 文件代号的命名见示例:X产品明细表/使用说明书 文件简号:用二位大写汉语拼音表示 (明细表/使用说明书) 登记顺序号:用三位阿拉伯数字表示 种(转账) 型(通信设备) 类(通信)十进分类标记 级(产品) 企业代号:用三位简拼字母表示 (KST为“金大”简称)十进分类标记中的级,公司定义:0为文件,1为成套设备,2为产品,3、4为整件,5、6为部件,7、8为零件,9尚为定义。 三、设计文件的种类 1、图样 公司产品图样目前主要有零件图、装配图、系统框图、接线图、电原理图等。

1.1、零件图(结构件、PCB板、连接线、包装件及附件等) 1.1.1、零件有正反面(如皮革、纸、织物)或加工方向(如硅钢片等材料纹向)要求的,应在视图上注明或在技术要求中说明。 1.1..2、零件图一般应以零件结构基准面作为尺寸标注的基准,同时应考虑加工的可行性和检验此尺寸的可能性,对装配要求较高的零件,应慎用链式尺寸注法和封闭尺寸标注,以减小积累误差的产生。建议尽可能的使用图样简化画法和标注。 1.1.3、印制板要求有PCB图及其制作要求。PCB图上要标明其图样代号和版本号。制作要求则应标明所用材料的品名、牌号、板厚、平整度、电气层数、阻燃级别、过孔/安装孔中心误差、表面处理及拼板要求等。 1.2、装配图(结构件、PCB板、包装件等) 1.2.1、部件图、整件图、总装图上应有各零、部、整件之间的结构和装配关系及其明细栏。 1.2.2、印制板装配图要标明安装元器件的图形符号、代号、极性及其明细栏,对有配合要求的元器件还要标出其安装位置尺寸和公差。 1.2.3、产品总图有总装图、爆炸图、外形图。总装图上应注明产品的外形尺寸(当无外形图时)及总装后应符合的技术要求或产品标准 1.3、电气原理图(DL) 1.3.1、应清楚地表示输入与输出之间的连接。 1.3.2、图形符号、代号应符合有关标准和规定。各元器件一般均应注明其图形符号、代号和主要电气参数。公司定义: a) 常用电阻(外形尺寸0603、精度±5%、功率1/16W、温度系数100ppm/℃为默认值)仅标注其代号和阻值,非常用规格的则还应注明其精度、功率、温度系数值等。 b) 常用电容(外形尺寸0603、精度±20%、工作电压50V为默认值)仅标注其代号和容值,非常用规格的则还应注明其精度、耐压值等。 1.3.3、元器件的可动部分应绘制在正常位置(常态)上。 1.3.4、元器件代号的编写应尽量按模块集中,并按自左向右或自上向下的顺序排列。对电路或分支电路的元器件可用数字编号(即器件位号)来表示其位置。数字编号应尽量按自左向右或自上向下的顺序排列,以便于查找。 2、文件

单片机仿真课程设计基于单片机的实时时钟

基于51系列单片机及DS1302时钟芯片的实时时钟仿真设计 一、课程设计目的意义 通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解并灵活运用。 二、实现目标 本设计主要为实现一款可正常显示时钟/日历的实时电子时钟。对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现电子时钟。本设计应用AT89C52芯片作为核心,LCD显示屏,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能。这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。三、硬件设计 本设计采用具有32根I/O引脚的AT89C52单片机。AT89C52单片机是一款低功耗,低电压,高性能CMOS 8位单片机,片内含4KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEI公司的高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-52兼容。片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。因此,AT89C52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域。 AT89C52具有以下主要性能: 1.4KB可改编程序Flash存储器; 2.全静态工作:0——24Hz; 3.128×8字节内部RAM; 4.32个外部双向输入/输出(I/O)口; 5.6个中断优先级; 2个16位可编程定时计数器; 6.可编程串行通道; 7.片内时钟振荡器。 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字

数字钟在单片机上的实现(汇编语言)

武汉大学电子信息学院电子系统综合设计课程论文数字钟在单片机上的实现(汇编语言) 专业: 年级: 作者:_____________ _____________ 指导教师: 2012年06 月29 日

目录 1 作品的背景与意义 (1) 2 功能指标设计 (1) 2.1设计要求 (1) 2.1.1 基本要求 (1) 2.1.2 拓展要求 (1) 2.2 功能设计方案 (1) 3 作品方案设计 (2) 3.1总体方案的选择 (2) 3.2模块划分及分析 (3) 3.3 单模块设计流程图 (3) 4 模块源程序 (7) 5 系统测试 (35) 测试数据: (36) 6 心得体会 (36)

1 作品的背景与意义 数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。 2 功能指标设计 2.1设计要求 2.1.1 基本要求 1.设计一个精确的1秒定时器; 2.根据1秒定时器,设计一个带小时、分钟、秒的时钟,并将小时、分钟、秒显 示在LED上; 3.设计小时、分钟、秒的修改按键,可分别调整小时、分钟、秒(按键设计参考 电子表)。 2.1.2 拓展要求 1.增加小时、分钟、秒的键盘直接修改功能; 2.设计闹钟功能,最多支持5个闹钟,可分别查看和修改闹钟时间,可分别设置 闹钟开关; 3.增加万年历功能。 2.2 功能设计方案 1. 实现正常走时(秒-分-时-日-月-年进位); 2. 能够设置时间和日期; 3. 能够自动区分平闰年和大小月及2月; 4. 具有5个闹钟及其设置功能; 5. 在任何设置状态下,修改位会闪烁显示。

nrf24l01无线模块NRF24L01模块收发c程序

//许多人都在找nrf24l01无线模块的c程序;我以前刚接触无线//时用的就是nrf24l01模块;搜索了许多程序有很多都没法直接用;甚至还怀疑模块是不是被我搞坏了;拿去让别人检测模块又是好的;为避免大家走弯路;我将我的程序发出来供大家参考; 这是nrf24l01无线模块pcb图; 下面有Nrf24l01无线模块的收发c程序;以下程序经本人亲自测试;绝对能用!! 请注意以下几点: 1、24L01模块的电源电压是否为3V-3.6V之间; 2、如果您用的单片机是5V的话,请在IO口与模块接口之间串一个1K电阻; 3、检查模块的GND是否与单片机的GND相连接 4、先用程序进行调试,如果IO口不同,请更改IO口或相关时序; 5、如果是51系列单片机,晶振请选用11.0592M Hz; 模块供电最好用asm1117 5v转3.3v 稳压 测试单片机是stc89c52;at89c52 通用; 收发一体;

一大截不废话了;上程序;此程序是按键控制led;当按下s的时候对应接受的led会闪闪发光;很简单的~如果要实现其他更先进的功能;自己发掘吧~~ 务必将硬件连接正确;否则;它不会工作的~~当然做什么都要严谨~~错一点就差大了~~ 《《收发一体程序》》 #include #include typedef unsigned char uchar; typedef unsigned char uint; //****************************************NRF24L01端口定义

*************************************** sbit M ISO =P1^3; sbit M OSI =P1^4; sbit SCK =P1^2; sbit CE =P1^1; sbit CSN =P3^2; sbit IRQ =P3^3; //************************************按键*************************************************** sbit KEY=P2^0; //***************************************************************************** sbit led=P2^1; //*********************************************NRF24L01*********************** ************** #define TX_ADR_WIDTH 5 // 5 uints TX address width #define RX_ADR_WIDTH 5 // 5 uints RX address width #define TX_PLOAD_WIDTH 20 // 20 uints TX payload #define RX_PLOAD_WIDTH 20 // 20 uints TX payload uint const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //本地地址uint const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01}; //接收地址//***************************************NRF24L01寄存器指令******************************************************* #define READ_REG 0x00 // 读寄存器指令 #define WRITE_REG 0x20 // 写寄存器指令 #define RD_RX_PLOAD 0x61 // 读取接收数据指令 #define WR_TX_PLOAD 0xA0 // 写待发数据指令 #define FLUSH_TX 0xE1 // 冲洗发送FIFO指令 #define FLUSH_RX 0xE2 // 冲洗接收FIFO指令 #define REUSE_TX_PL 0xE3 // 定义重复装载数据指令 #define NOP 0xFF // 保留 //*************************************SPI(nRF24L01)寄存器地址**************************************************** #define CONFIG 0x00 // 配置收发状态,CRC校验模式以及收发状态响应方式#define EN_AA 0x01 // 自动应答功能设置 #define EN_RXADDR 0x02 // 可用信道设置 #define SETUP_AW 0x03 // 收发地址宽度设置 #define SETUP_RETR 0x04 // 自动重发功能设置 #define RF_CH 0x05 // 工作频率设置 #define RF_SETUP 0x06 // 发射速率、功耗功能设置 #define STATUS 0x07 // 状态寄存器 #define OBSERVE_TX 0x08 // 发送监测功能 #define CD 0x09 // 地址检测 #define RX_ADDR_P0 0x0A // 频道0接收数据地址 #define RX_ADDR_P1 0x0B // 频道1接收数据地址

基于单片机的时钟设计

随着现代生活的推进,电子时钟在人们的生活中已经普及,本课题的主要内容就是结合单片机的强大功能,在一块普通的电子时钟集成多种功能,方便人们的日常生活,该功能是通过单片机、8 段数码管以及一些简单辅助电路实现的。由于之前没有独立做过单片机实现多功能电子时钟方面的内容,所以在做设计时总会遇见很多问题,本次设计是在结合老师的指导及同学的帮助下完成的,并通过在网上所查的大量资料及单片机设计中常见的电路而构思出来的。单片计算机即单片微型计算机。由RAM ,ROM,CPU 构成,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。51 系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。本设计主要设计了一个基于A T89C51单片机的电子时钟。并在数码管上显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。该方法仿真效果真实、准确,节省了硬件资源。

1.主要功能 用4位LED显示时、分、秒值,以24小时计时方式工作,可用开关调整时间值和闹铃时间。 2.硬件设计 如下图所示,本次设计时钟电路,使用AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一蜂鸣器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、蜂鸣器、显示屏即可满足设计要求。

单片机电路如下:

3.软件设计: (一)主要功能及原理数字式电子钟用集成电路计时时,译码代替机械式传动,用LED 显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。该电子时钟由A T89C51、四段数码管等构成,采用晶振电路作为驱动电路, 由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下,则可以通过按键实现分钟的累加,每按一次分钟加一;而另一个键按下,则可实现小时的调节,同样每按一次小时加一。 (二)通过对多种单片机性能的分析,最终认为A T89C51是最理想的电子时钟开发芯片。A T89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时, 均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。

相关文档
最新文档