电子时钟程序设计.pdf

合集下载

单片机电子时钟设计

单片机电子时钟设计

单片机在多功能数字电子钟中的应用已是非常普遍,人们对电子时钟的功能及工作顺序都已非常熟悉了,但是却很少知道它的内部结构以及工作原理。

由单片机作为电子时钟的核心控制器,可以通过它的时钟信号来实现计时功能,将时间数据由单片机输出,利用显示器将时间显示出来。

通过键盘可以进行时间的设定。

输出设备显示器可以用液晶显示技术或数码管来显示技术。

本系统利用单片机实现具有计时、校时等功能的数字电子时钟,是以单片机AT89C51 为核心元件同时采用LED数码管显示器动态显示“时”,“分” “秒”的现代计时装置。

与传统机械表相比,它具有走时精确,显示直观等特点。

另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

第一章概述1.1课题研究的目的和意义数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

由于电子集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域,因此进行电子钟的设计是必要的。

尽管目前市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机定时器的功能也可以完成电子钟电路的设计,因此进行电子钟的设计是可行的。

在这里我们将已学过的比较零散的数字电路和单片机的知识有机的、系统的联系、组织起来应用于实际,来培养我们的综合分析和设计电路,写程序,调试电路、程序的能力。

单片机具有体积小、功能强、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。

1.2国内外研究的现状及发展趋势从单片机电子时钟近年的发展趋势来看,正朝着多层次用户、多品种、多规格、高精度、小体积、低能耗等方面发展。

在这种趋势下,时钟的数字化,智能化已经成为现代时钟生产研究的主导设计方向。

毕业设计(论文)-基于单片机多功能电子时钟的设计与仿真(含程序仿真)[管理资料]

毕业设计(论文)-基于单片机多功能电子时钟的设计与仿真(含程序仿真)[管理资料]

程序仿真等全套设计,联系153893706第1章绪论二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。

第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。

第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。

第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步……我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。

商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。

本设计为软件,硬件相结合的一组设计。

在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。

基本的要了解一些主要器件的基本功能和作用。

除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。

AT89C52是由ATMEL公司推出的一种小型单片机。

95年出现在中国市场。

其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。

本文介绍了基于AT89C52单片机设计的电子万年历。

选题背景及研究的目的与意义设计的目的电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电⼦闹钟设计报告(附原理图、PCB图、程序)成都信息⼯程学院第五届嵌⼊式创新技术⼤赛基于MCS51的智能电⼦闹钟设计报告姓名学院班级实物图⽬录1.电⼦时钟的设计原理和⽅法 (1)1.1设计原理 (1)1.2 硬件电路的设计 (1)1.2.1 STC89C51RC简介 (1)1.2.2 键盘电路的设计 (2)1.2.3蜂鸣器驱动电路 (3)1.2.4 数码管驱动电路 (3)1.2.5 电源电路 (4)1.3软件部分的设计 (4)1.3.1主程序部分的设计 (4)1.3.2中断计时器及时间进位 (5)1.3.3 闹钟⼦函数 (7)1.3.4 按键扫描 (8)1.3.5 时钟闹钟设置 (9)1.3.6 显⽰数字函数 (10)1.3.7 显⽰界⾯函数 (10)1.3.8 闹钟记录及读取 (11)2.硬件调试 (13)附录A:电路原理图 (15)附录B:电路PCB图 (16)附录C:源程序 (17)1.电⼦时钟的设计原理和⽅法1.1设计原理系统框图1.2硬件电路的设计1.2.1 STC89C51RC简介STC89C52R CSTC89C51RC是⼀种带8K闪烁可编程可擦除只读存储器(FPETOM-FlashProgrammabalandErasableReadOnlyMemory )的低电压、⾼性能CMOS8位微型处理器,即单⽚机芯⽚。

单⽚机的可擦除只读存储器可以反复擦除1000次,内部FLASH 擦写次数为100000次以上。

该芯⽚使⽤⾼密度⾮易失存储制造技术,与⼯业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU 和闪烁存储器集成在单个芯⽚中,使得STC89C51RC 成为了⼀种性价⽐极⾼的微型处理器芯⽚,在许多电路设计中都得到了应⽤。

STC89C51RC 单⽚机特点:⼯作电压:5.5V-3.4V ⼯作频率:0-40MHz ⽤户应⽤程序空间:8K ⽚上集成128*8RAMISP (在系统可编程)/IAP (在应⽤可编程),⽆需专⽤编程器/仿真器可通过串⼝(P3.0/P3.1)直接下载⽤户程序EEPROM 功能共3个16位定时器/计数器,其中定时0还可以当成2个8位定时器使⽤外部中断4路通⽤异步串⾏⼝(UART ),还可⽤定时器软件实现多个UART ⼯作温度范围:0-75℃引脚说明:VCC:供电电压 GND :接地P0:P0是⼀个8位漏级开路双向I/O ⼝,低8位地址复⽤总线端⼝。

电子时钟的设计及程序

电子时钟的设计及程序

电子时钟的设计及程序一.设计目的: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 10DB 10 DUP(?)DATA ENDSSTACK SEGMENT STACK ;设置堆栈段STACK ENDSCODE SEGMENT ;设置代码段ASSUME CS:CODE,DS:DATA,SS:STACKCURSOR MACRO ROW,CLM ;设置光标位置MOV AH,2MOV BH,0MOV DH,ROWMOV DL,CLMINT 10HENDMWIN MACRO ROWL,CLML,ROWR,CLMR,COLOR ;设置窗口,位置,颜色MOV AH,6MOV AL,0MOV CH,ROWLMOV CL,CLMLMOV DH,ROWRMOV DL,CLMRMOV BH,COLORINT 10HENDMASCBCD MACRO REGINC BXINC BXMOV REG,[BX]MOV CL,4SHL REG,CLINC BXMOV AL,[BX]AND AL,0FHOR REG,ALENDMBCDASC MACRO REGINC BXINC BXMOV AL,REGMOV CL,4SHR AL,CLOR AL,30HMOV [BX],ALINC BXMOV AL,REGAND AL,0FHOR AL,30HENDMINCBCD MACRO REG,COUNT ;BCD数加1 MOV AL,REGINC ALDAAMOV REG,ALCMP AL,COUNTJNZ DISPYMOV REG,0ENDMSTRDSPY MACRO ADRSLEA DX,ADRSMOV AH,9INT 21HENDMCLOCK PROC FARSTART: PUSH DS ;显示字符串MOV AX,0PUSH AXMOV AX,DATAMOV DS,AXWIN 0,0,24,79,7WIN 6,9,18,70,01000001B ;设置窗口CURSOR 6,25 ;设置光标STRDSPY BUF5 ;显示字符串CURSOR 7,25 ;设置光标STRDSPY BUF6CURSOR 8,25STRDSPY BUF7CURSOR 9,25STRDSPY BUF8CURSOR 10,25STRDSPY BUF9CURSOR 11,25STRDSPY BUF10CURSOR 6,9STRDSPY BUF3CURSOR 7,9STRDSPY BUF4CURSOR 14,32STRDSPY BUF1CURSOR 15,36LEA DX,BUF2MOV AH,0AHINT 21H ;从键盘接收当前时间LEA BX,BUF2ASCBCD CH ;小时值ASCII到BCD;存CHASCBCD DH ;分值ASCII到BCD;存DHASCBCD DL ;秒值ASCII到BCD;存DLTIMER: CALL DELY ;延时1秒INCBCD DL,60H ;(DL)+1,并判;大于等于60?INCBCD DH,60H ;(DH)+1,并判;大于等于60?INCBCD CH,24H ;(CH)+1,并判;大于等于60?DISPY: LEA BX,BUF2BCDASC CH ;时值BCD转到ASCIIBCDASC DH ;分值BCD转到ASCIIBCDASC DL ;秒值BCD转到ASCIIINC BXMOV AL,'$'MOV [BX],ALPUSH DXCURSOR 15,36 ;设置光标STRDSPY BUF2+2 ;显示时,分,秒值POP DXMOV AH,01HINT 16HCMP AL,1BHJZ XXOR AL,ALJMP TIMERX:MOV AH,4CHINT 21HRETDELY PROCPUSH CXPUSH CXMOVE 4600X1:DEC CX,0FFFFHX2:DEC CXJNE X2DEC AXJNE X1POP AXPOP CXRETDELY ENDPCLOCK ENDPCODE ENDPEND START1)编译源文件,命名为HULINGWEI。

电子时钟程序设计

电子时钟程序设计

学号:电子时钟程序设计说明班级:11级计算机科学与技术本科班姓名:电子时钟程序设计这是一款基于对话框的简易电子时钟,功能实现比较简单,代码主要集中在显示模块。

程序运行界面如图1所示图1 电子时钟界面一、概述为了更好的学习C语言,熟练的掌握C语言的基本程序及其运行,进行了本次程序设计,通过本次程序编写及运行,掌握相关函数的功能和对话框程序的基本设计方法和技巧,提高程序编写能力。

此次程序设计,通过修改程序错误,反复运行,从而总结经验和方法,增强了熟练程度。

二、设计目的熟悉控件,更好的运用控件。

训练编写程序的基本技能,掌握对话框程序的基本设计方法和技巧。

基于对话框程序,练习编辑框、按钮、静态框的使用,提高程序编写能力。

编写一个数字电子时钟:1.显示与当前时间一致的时、分、秒。

2.用大字体显示,格式是HH:MM:SS三、功能描述该款电子时钟主界面由一个对话框构成,显示控件是一个静态框,包含一个时间模块,可以单独显示与当前时间一致的时:分:秒。

四、总体设计1.界面规划本程序是基于对话框的,界面设计就是画框的设计。

在工作区种打开资源视图,并添加一个对话框,向对话框中添加控件。

资源ID如下列表2.数据设计常量:#define IDC_MYICON 2#define IDD_CLOCK_DIALOG 102#define IDD_ABOUTBOX 103#define IDS_APP_TITLE 103#define IDM_ABOUT 104#define IDM_EXIT 105#define IDS_HELLO 106#define IDI_CLOCK 107#define IDI_SMALL 108#define IDC_CLOCK 109#define IDR_MAINFRAME 128#define IDC_EDIT3 1002#define IDC_STATIC -1#define IDC_STATIC_CLOCK -1// Next default values for new objects//#ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_NEXT_RESOURCE_VALUE 129#define _APS_NEXT_COMMAND_VALUE 32771#define _APS_NEXT_CONTROL_VALUE 1003#define _APS_NEXT_SYMED_VALUE 110#endif#endif#include "stdafx.h"#include <time.h>#include "resource.h"3.函数功能1、主函数WinMainint APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){DialogBox(hInstance, (LPCTSTR)IDD_ABOUTBOX, NULL, (DLGPROC)Clock);return FALSE;}2、Clock函数LRESULT CALLBACK Clock(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){PAINTSTRUCT ps;HDC hdc;switch (message){case WM_INITDIALOG:PostMessage(hDlg,WM_TIMER,0,0);//开始显示时间SetTimer(hDlg,1,1000,NULL);//设置一个1秒的定时器return TRUE;case WM_COMMAND:if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL){EndDialog(hDlg, LOWORD(wParam));return TRUE;}break;case WM_TIMER://定时器消息{char tmpbuf[9];//放置时间的字符串_strtime( tmpbuf );//获取时间字符串SetDlgItemText(hDlg,IDC_CLOCK,tmpbuf);//更改显示}break;case WM_PAINT:hdc = BeginPaint(hDlg, &ps);// TODO: Add any drawing code here...RECT rt;GetClientRect(hDlg, &rt);FillRect(hdc,&rt,CreateSolidBrush(RGB(222,0,222)));EndPaint(hDlg, &ps);break;}return FALSE;}五、程序实现1.程序清单// clock.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "resource.h"#include <time.h>LRESULT CALLBACK Clock(HWND, UINT, WPARAM, LPARAM);int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){DialogBox(hInstance, (LPCTSTR)IDD_ABOUTBOX, NULL, (DLGPROC)Clock);return FALSE;}// Mesage handler for about box.LRESULT CALLBACK Clock(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){PAINTSTRUCT ps;HDC hdc;switch (message){case WM_INITDIALOG:PostMessage(hDlg,WM_TIMER,0,0);//开始显示时间SetTimer(hDlg,1,1000,NULL);//设置一个1秒的定时器return TRUE;case WM_COMMAND:if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL){EndDialog(hDlg, LOWORD(wParam));return TRUE;}break;case WM_TIMER://定时器消息{char tmpbuf[9];//放置时间的字符串_strtime( tmpbuf );//获取时间字符串SetDlgItemText(hDlg,IDC_CLOCK,tmpbuf);//更改显示}break;case WM_PAINT:hdc = BeginPaint(hDlg, &ps);// TODO: Add any drawing code here...RECT rt;GetClientRect(hDlg, &rt);FillRect(hdc,&rt,CreateSolidBrush(RGB(222,0,222)));EndPaint(hDlg, &ps);break;}return FALSE;}2.源码分析1.WinMain 函数将向导生成的源代码,裁减成以上内容,显示对话框界面;2.Clock函数该函数实现时间的获取等与时间有关的内容3.调试和运行错误及解决方法六、结束语通过这次程序设计,我深刻认识到了实践对于我们学习的重要性。

电子时钟程序设计

电子时钟程序设计

1.设计目的电子时钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。

电子时钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、22.1次的Flash MCS-51在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。

运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

2.3设计图2.4设计程序#include<reg51.h>#include<stdio.h>#include<intrins.h> chardatatime[6];voiddelay(unsignedchark); sbitcheck=P0^0;sbitinter0=P3^2;sbitinter1=P3^3;{chari;TR0=1;{{P1=sel[i];P2=buf[time[i]];delay(10);}if(check==0){delay(8);TR0=0;which=(which+1)%3;while(check==0);TR0=1;}}}voiddelay(unsignedchark){chari;for(;k>0;k--)for(i=0;i<80;i++){;}}voidtime_tr0()interrupt1 using2{{}}{TR0=1;}{}{delay(80);if(time[n]>0){time[n]=time[n]-1;}elseif(time[n]==0&&(n==3||n==1)){time[n]=5;smsub(n+1);}elseif(time[n]==0&&(n==4||n==2||n==0)){time[n]=23;smsub(n+1);}elseif(time[n]==0&&(n==5)){time[n]=0;}}voidsmadd(unsignedcharn){{}{smadd(n+1);}else{time[n]=time[n]+1;}}elseif(n==5){if(time[n]==2&&(time[n-1]==3)){time[5]=0;time[4]=0;}else{time[n]=time[n]+1;}}}2.5伟福系统仿真如图所示:3.。

电子闹钟(2)

电子闹钟(2)

带温度显示的电子闹钟的设计摘要电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

另外,在生活和工农业生产中,也常常需要温度,这就需要电子时钟具有多功能性。

本设计主要为实现一款可正常显示时钟/日历、测量环境温度、带有定时闹铃的电子时钟。

本文采用单片机技术实现带温度显示的电子闹(时)钟。

本设计应用AT89C51芯片作为核心,7位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能,同时利用DS18B20温度传感器测量环境温度。

这种实现方法的优点是电路简单,性能可靠,实时性好,时间和温度精度高,操作简单,编程容易。

该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

目录摘要 (I)第一章绪论 (III)1.1电子时钟研究的背景和意义 (1)1.2 电子时钟的功能 (2)第二章电子时钟设计方案分析 (3)2.1 NE555时基电路设计方案 (3)2.2 单片机设计方案 (3)第三章基于单片机的电子时钟硬件设计 (5)3.1 主要IC芯片选择 (5)3.1.1 微处理器选择 (5)3.1.2. 常用时钟芯片的选择 (6)3.1.2.1芯片DS1302简介 (6)3.1.2.2 DS1302引脚说明 (7)3.1.2.3 DS1302的控制字和读写时序说明 (8)3.2.1.4 DS1302的片内寄存器 (10)3.1.3 环境温度传感器 (12)3.1.3.1常用温度传感器DS18B20简介123.1.3.2 DS18B20内部结构 (13)3.2 电子时钟硬件电路设计 (15)3.2.1 时钟电路设计 (16)3.2.2 环境温度采集电路设计 (16)3.2.3 显示电路 (17)3.2.4 按键电路设计 (18)3.2.5 闹铃电路设计 (20)第四章电子时钟软件设计 (21)4.1 主程序设计 (21)4.2 子程序设计 (21)4.2.1 实时时钟日历子程序设计 (22)4.2.2 环境温度采集子程序设计 (22)4.2.3 显示子程序设计 (26)4.2.4 键盘扫描子程序 (28)4.2.5 闹铃子程序设计 (29)第五章系统调试 (30)5.1 硬件调试 (31)5.1.1 单片机基础电路调试 (31)5.1.2 显示电路调试 (32)5.1.3 DS1302电路调试 (32)5.1.4 按键电路调试 (33)5.2 软件调试 (33)5.2.1 环境温度采集子程序调试 (34)5.2.2 键盘子程序调试 (34)结论 (35)致谢 (36)参考文献 (37)第一章绪论时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。

单片机数字电子时钟设计

单片机数字电子时钟设计

单片机数字电子时钟设计摘要第一章电子时钟的设计 (3)1. 1电子时钟简介 (3)1.2电子时钟的工作原理 (3)第二章硬件设计方案 (4)2. 1硬件电路的设计方案 (4)2. 2硬件电路的原理图 (4)2. 3硬件电路说明 (5)第三章电子时钟的程序设计 (8)3. 1程序流程图 (8)3. 2程序设计 (11)总结15摘要随着现代生活的推进,电子时钟在人们的生活中差不多普及,本课题的要紧内容确实是结合单片机的强大功能,在一块一般的电子时钟集成多种功能,方便人们的日常生活,该功能是通过单片机、8段数码管以及一些简单辅助电路实现的。

由于之前没有独立做过单片机实现多功能电子时钟方面的内容,因此在做设计时总会遇见专门多问题,本次设计是在结合老师的指导及同学的关心下完成的,并通过本人在网上所查的大量资料及单片机设计中常见的电路而构思出来的。

单片运算机即单片微型运算机。

由RAM .ROM,CPU构成,定时, 计数和多种接口于一体的微操纵器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

本设计要紧设计了一个基于AT89C51单片机的电子时钟。

并在数码管上显示相应的时刻。

并通过一个操纵键用来实现时刻的调剂和是否进入省电模式的转换。

该方法仿真成效真实、准确,节约了硬件资源。

关键字:单片机、电子时钟、程序第一章电子时钟的设计1.1电子时钟简介电子钟是一种利用数字电路来显示秒、分、时的计时装豊,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装麗等优点,因而得到广泛应用。

随着人们生活环境的不断改善和美化,在许多场合都用到电子时钟。

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

电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档)汇总

电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档)汇总

湖南人文科技学院课程设计报告课程名称:单片机原理及应用课程设计设计题目:电子时钟的设计系别:通信与控制工程系专业:通信工程班级:09级通信二班学生姓名: 袁琦黄文付学号: 09416230 09416227起止日期:2011年12月20日~2011年12月30日指导教师:王善伟姚毅谢四莲教研室主任:刘建闽指导教师评语:指导教师签名:年月日成绩评定项目权重成绩袁琦黄文付1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩教研室审核意见:教研室主任签字:年月日教学系审核意见:主任签字:年月日摘要时钟是人类日常生活必不可少的工具,本设计从日常生活中常见的事物入手,通过对电子时钟的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们对未知科学领域的探索。

本文利用单片机实现数字时钟计时功能的主要内容。

它体积小,成本低、功能强、使用方便、可靠性高等一系列优点,广泛应用于智能产业和工业自动化上。

本次设计采用独立式按键进行时间调整,其中STC89C52是核心元件,同时采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。

与传统机械表相比,它具有走时精确,显示直观等特点。

它的计时周期为24小时,显满刻度为“23时59分59秒”,另外利用DS1302具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。

该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。

关键词:STC89C52 ;LED数码管;8255芯片;DS1302芯片;目录设计要求 (1)1.方案论证与对比 (1)1.1方案一 (1)1.2方案二 (2)1.3方案对比 (2)2.系统硬件电路的设计 (3)2.1单片机的选择及引脚功能介绍 (3)2.2 8255A芯片的结构及引脚功能介绍 (4)2.3 DS1302芯片的结构及引脚功能介绍 (6)2.4显示电路设计 (7)2.5电源电路设计 (8)2.6键盘动态扫描电路设计 (8)3.控制系统的软件设计 (10)3.1主程序流程图 (10)3.2显示子程序 (11)3.3闹钟时间设定功能程序 (11)3.4键盘扫描程序 (12)4.系统功能调试与整体指标 (13)4.1硬件调试与分析 (13)4.2软件调试与分析 (13)4.3性能分析 (13)5.详细仪器清单 (14)6.总结与思考及致谢 (15)参考文献 (16)附录一:程序(方案一) (17)附录二:程序(方案二) (25)电子时钟的设计设计要求利用单片机作为控制核心,完成一个时钟计时器。

基于单片机C语言电子时钟完整版(闹钟,整点报时)

基于单片机C语言电子时钟完整版(闹钟,整点报时)

《单片机技术》课程设计说明书数字电子钟系、部:电气与信息工程学院学生姓名:指导教师:职称专业:班级:完成时间:2013-06-07摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEU5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词电子钟;AT89S52;硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value.Key words Electronic clock;;AT89S52;Hardware Design;Software Design目录1设计课题任务、功能要求说明及方案介绍 (1)1.1设计课题任务 (1)1.2功能要求说明 (1)1.3设计总体方案介绍及原理说明 (1)2设计课题硬件系统的设计 (2)2.1设计课题硬件系统各模块功能简要介绍 (2)2.2设计课题电路原理图、PCB图、元器件布局图 (2)2.3设计课题元器件清单 (5)3设计课题软件系统的设计 (6)3.1设计课题使用单片机资源的情况 (6)3.2设计课题软件系统各模块功能简要介绍 (6)3.3设计课题软件系统程序流程框图 (6)3.4设计课题软件系统程序清单 (10)4设计结论、仿真结果、误差分析、教学建议 (21)4.1设计课题的设计结论及使用说明 (21)4.2设计课题的仿真结果 (21)4.3设计课题的误差分析 (22)4.4设计体会 (22)4.5教学建议 (22)结束语 (23)参考文献 (24)致谢 (25)附录 (26)1 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。

微机原理课程设计(电子时钟)

微机原理课程设计(电子时钟)

电子时钟课程设计一:设计背景电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。

与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。

它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。

二:数字钟电路设计思路1.选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。

时、分、秒的数值通过对8255的编程可送到七段数码管上显示。

2.此程序主要由四部分组成:第一部分为最主要的部分定义显示界面;第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;第三部分将存在系统内存区的时间数用七段数码管显示出来;第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。

该程序实现了准确显示秒和分,读数准确,走时精准。

此电子钟能准确的从0时0分0秒走时到23时59分59秒,然后能自动回复到0时0分0秒循环走时。

3.基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。

以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。

在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端OUT1输出1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显示1h.CPU处理,使数码管的显示发生变化。

简易数字电子时钟的设计

简易数字电子时钟的设计
2.2.1 单片机芯片的选择方案...............................................................................................3 2.2.2 显示模块选择方案和论证...........................................................................................3 2.2.3 时钟芯片的选择方案...................................................................................................3 2.2.4 电路设计最终方案确定...............................................................................................3
快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为 12MHz,电容应尽可能的选 择陶瓷电容,电容值约为 22μ F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与 单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
3. 复位 RST 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将 使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后 P0-P3 口均置 1 引脚 表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零。当复位脚由高电平变为低电平 时,芯片为 ROM 的 00H 处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路 是复位引脚 RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的 输出在每个机器周期的 S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮 复位两种方式,此电路系统采用的是按钮复位电路。 4.输入输出引脚 (1) P0 端口[P0.0-P0.7] P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。 对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上 拉电阻。 在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/数据总线,访 问期间内部的上拉电阻起作用。 (2) P1 端口[P1.0-P1.7] P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可 驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 Flash 程序存储器编程时,接收低 8 位地址信息。 (3) P2 端口[P2.0-P2.7] P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可 驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程 序存储器编程时,接收高 8 位地址和控制信息。 在访问外部程序和 16 位外部数据存储器时,P2 口送出高 8 位地址。而在访问 8 位地址 的外部数据存储器时其引脚上的内容在此期间不会改变。 (4) P3 端口[P3.0-P3.7] P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可 驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。

AT89C51单片机电子时钟设计

AT89C51单片机电子时钟设计

AT89C51单片机电子时钟设计目录1 电子时钟 (4)1.1 电子时钟简介 (4)1.2 电子时钟的基本特点 (4)1.3 电子时钟的原理 (4)2 单片机识的相关知识 (4)2.1单片机简介 (4)2.2 单片机的特点 (5)2.3 AT89C51单片机介绍 (5)3 设计方案的选择 (7)3.1计时方案 (7)3.2 显示方案 (7)3.3 数码管显示工作原理 (8)3.4 键盘电路设计 (9)3.5 主控模块AT89C51 (9)4 系统软件设计 (9)附录 (12)摘要:单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。

单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。

由于具有上述优点,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。

这次设计通过对它的学习、应用,以AT89C51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。

关键词:单片机;电子时钟;AT89C511 电子时钟1.1 电子时钟简介本设计采用AT89C51单片机,以汇编语言为程序设计的基础,设计一个用六位数码管显示时、分、秒的时钟。

现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零,从而达到计时的功能,是人民日常生活不可缺少的工具。

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

电子钟的程序设计

电子钟的程序设计

电子钟的程序设计[摘要]如今计算机已普及到人们生活以及办公当中,那么电脑桌面电子钟也成为了必需,此次设计就是针对于使用计算机的人群,利用V isual basic设计桌面时钟、日历,运用了时钟控件、按钮控件等,并且各模块采用不同的算法,完善系统时间存在的一些弊端,以提醒使用电脑的人们合理利用时间,提高办事效率。

可以通过鼠标完成时钟的所有控制,减少一些复杂的程序,并且添加了许多使用的功能,方便用户使用。

[关键词]电子钟;V isual basic;控件;算法Abstract:The computer has now spread to people living and office, then desktop electric clock become people daily life indispensable product.The design is based on the use of computers crowd, use of Visual basic design desktop clock, calendar, clock control using, button control, and each module use different algorithms. The desktop electric clock is used to remind the computer user reasonable using time, improve work efficiency, can complete all through the mouse clock control, reduce some of the complex procedures, and add many use function.Keywords:electric clock, Visual basic, controls, algorithm目录引言 (1)1设计方案 (1)2设计使用工具 (1)2.1 Visual basic语言 (1)2.2Visual basic集成开发环境 (2)2.3 Photoshop (4)3电子钟的总体设计 (4)3.1功能介绍 (4)3.2设计框图 (4)4电子钟的模块设计 (4)4.1电子钟的时钟模块 (4)4.1.1算法 (4)4.1.2界面设计 (6)4.1.2程序设计 (7)4.2电子钟的日历模块 (8)4.2.1算法 (8)4.2.2界面设计 (9)4.2.3程序设计 (10)4.3调时模块 (10)4.3.1算法 (10)4.3.2界面设计 (11)4.3.3程序设计 (12)4.4倒计时模块 (14)4.4.1算法 (14)4.4.2界面设计 (14)4.4.3程序设计 (14)4.5闹钟模块 (15)4.5.1算法 (15)4.5.2界面设计 (15)4.5.3程序设计 (16)5电子钟的设计说明和调试 (17)5.1设计说明 (17)5.2调试 (18)6电子钟的操作流程及运行结果 (18)6.1操作流程图 (18)6.2运行结果 (19)结束语 (20)致谢 (20)参考文献 (21)附录A (22)引言随着人类社会的进步和时代的发展,现代人们的生活节奏越来越快,时间对人们来说也越来越宝贵。

电子时钟 程序设计 报告

电子时钟   程序设计  报告

一、功能分析启动程序时,窗体标题栏以特定格式显示当前时间,时针、分针、秒针能按照系统时间正确显示。

二、界面设计1、主界面截图2、控件及初始属性设置三、数据结构设计全局变量和模块级变量四、功能实现1、Form1模块(1)Form1标题栏显示当前时间过程此过程代码在Timer事件下编写。

先取一个变量a,利用Hour(N)函数提取当前时间的小时数并赋值给a,再用if选择结构判断当前是上午还是下午,并把当前小时按“上午/下午## ”的格式赋值给变量b,再取一个变量c,用Minute(N)函数提取当前时间的分钟数赋值给c,并用format函数使分钟数按“##”的格式显示出来。

最后b与c两个变量强制连接起来赋值给窗体的caption属性即可在特定格式下显示当前时间。

(2)建立坐标系及控件定位过程此过程代码在Form_Load事件下编写。

建立坐标系:建立坐标系只需将窗体左上角和右下角的坐标确定下来即可,为使坐标原点位于窗体的正中间,我们把左上角坐标定为(-300,200),右下角坐标定为(300,-200)。

控件定位:在建好新的坐标系的基础下,对于形状控件,只需将控件的left属性赋值为-width/2,top属性赋值为height/2就能使控件位于窗体正中间了,而对于直线控件则只需将控件的X1及Y1的属性值取为0就行了。

(3)指针旋转过程此过程代码在Timer事件下编写。

1、原理秒针每秒转动π/30弧度,而分针则每分转动π/30弧度,时针每小时转动π/6弧度。

每隔1秒通过调用系统函数second、Minute、Hour获取系统时间Time的秒、分、时,算出三个指针的末端在各自运动轨迹(圆周)上的坐标,定时改变三个直线控件line1、line2和line3的x1,y1,x2,y2属性值即可实现指针的转动。

2、指针末端坐标的计算当前时间的秒数为second(time),秒针相对于Y轴的正向转过的角度为β=second (time)*π/30(弧度),而秒针与X轴正向的夹角为:π/2-β=π/2-second(time)* π/30,控件line1的终点坐标X2、Y2为:X2 = r1*Cos (π / 2 – Second (Time) *π / 30)Y2 = r1*Sin(π/ 2 – Second (Time) *π/ 30)同理line1的起点坐标X1、Y1为:X1 = r* Cos(π/ 2 - Second(Time) * PI / 30)Y1 = r * Sin(π/ 2 - Second(Time) * PI / 30)其中r为与指针相连的小圆点的半径。

电子时钟设计及程序

电子时钟设计及程序

电子时钟设计简介该设计主要由单片机AT89C51和液晶显示器组成,实现常用的实时电子钟功能。

利用可编程芯片AT89C51强大的功能,我们了实现日历功能、时钟功能。

该时钟使用液晶显示器作为显示模块,使用3个弹性小按键作为输入模块,调节年、月、日、星期、时、分、秒。

一. 方案比较与论证根据设计要求,该时钟系统可分输入部份、处理部份和显示数据部份。

其中输入部份是键盘输入数据调整要显示的内容,处理部份单片机接收并通过算法处理键盘输入的信息变成显示模块所能接受的信息,显示部份是用来实时显示处理部份处理后的数据。

输入模块我们选用三个独立弹性小按键来实现,选用矩阵式键盘则太浪费资处理模块我们选用了STC公司的STC89C52芯片来,与Atmel公司生产的AT89S52 一样,也是40脚双列直插式封装,这里芯片对刚学单片机的人来说容易入手,其功能也很强大,用来实现一个电子钟彻底足够了。

显示部份我们可有两种选择:数码管和1602液晶显示器。

实现一个电子钟若用数码管则需6个,所占空间相对大了些,而且我们还要实现日历的功能,需要更多的数码管,所点空间翻倍,而且还会造成单片机I/O引脚滥用甚至不够用, 用液晶显示器来实现则方便得多,界面也相对友好,但液晶显示器有个缺点就是价格比较贵。

因此我们最终选择了 1602液晶显示器。

另处独立弹性小按键具有价格便宜、容易获得、容易控制等特点。

二. 系统理论分析、计算与电路仿真1、定时器与中断原理电子钟主要是利用单片机的定时器/计数器和中断来实现。

定时器实际是加1 计数器,单片机每运行一个机器周期定时器就自动加1,当计到所定的数N时,单片机就产生一次中断,停下所做的工作,转而去执行中断服务程序。

单片机每个机器周期等于外部晶振的12个振荡周期,当外部晶振是12MHz时,则每一个机器周期的时间是T = 12Xl/12=mm(2-1)cv 定数器设为N 时,即每计到N 时产生一次中断,而一次中断的时间为:t = NXT Mm (2-2)当产生X (x 根据N 来设置,两者之积为1000000)次中断后我就知道过了 Is, 再通过液晶显示出来,这样就达到了让液晶每隔一秒跳一下的目的了。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
熟悉硬件 了解各引脚功 能
完成整体电路图
分块设计各部分电 路
将分块的电路组合
认真学习单片机汇编 语言
确定变成结构和思 路
综合各程序完成整体 程序
编辑各个程序模块
调试程序,进行修改
对仿真中出现的问题 进行改正
仿真成功
软硬件结合,完成任务 书要求
用 Proteus 画出电路 图
画出仿真图进行仿 真
准备器件、搭接电 路
4
开始 计数单元清零 装入计数值 192 继续计数
一秒到
ss++ 一分到
mm++;ss=0 一小时 到
hh++;mm=0
调节小 时中断
调节分 钟中断
hh++
mm++;ss=0
数码显示
5
2.4 设计程序
#include<reg51.h> #include<stdio.h> #include<intrins.h> char data time[6]; void delay(unsigned char k); sbit check=P0^0; sbit inter0=P3^2; sbit inter1=P3^3; char data which=0; char data count=0; void smadd(unsigned char k); void smsub(unsigned char n); char code buf[]={ 0x00,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff,0x6f }; char code sel[]= {0x01,0x02,0x04,0x08}; void main() { char i; for(i=0;i<500;i++); time[0]=0; time[1]=1; time[2]=8; time[3]=0; time[4]=2; time[5]=1; TMOD=0X01; TH0=(65535-5000)/256; TL0=(65535-5000)%256; IP=0x07; IE=0X87; TR0=1; while(1)
time[n]=time[n]-1;
7
} else if(time[n]==0&&(n==3||n==1)) {
time[n]=5; smsub(n+1); } else if(time[n]==0&&(n==4||n==2||n==0)) { time[n]=23; smsub(n+1); } else if(time[n]==0&&(n==5)) { time[n]=0; } } void smadd(unsigned char n) { char flag=0; delay(80); if((n==0)||(n==2)||(n==4)) {
{ for(i=0;i<6;i++) { P1=sel[i]; P2=buf[time[i]] ; delay(10); } if(check==0) { delay(8); TR0=0;
6
which=(which+1)%3; while(check==0); TR0=1; }
} } void delay(unsigned char k) {char i; for (;k>0;k--)
1
结构。这样,既能做到经济合理又能实现预期的功能。 在程序方面,采用分块设计的方法,这样既减小了编程难度、使
程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、 显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关 键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错 误。
2.设计内容
设计思想 针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51 单
片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程 (ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密 度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚
验证硬件电路
进行扩展
2.2 设计元件
元件 单片机 晶振 晶振电容 按键
AT89C51 12MHz 30pF
成功 规格
3
数量
1 1 2
4
电阻 电容 七段数码管 USB 接口 USB 延长线 底座
10K,1K,220 欧, 10uF(+) 共阳极四位、两位
40 脚
2.3 设计图
各 1,1,15 1 各 1,1 1 1/2 1
1.设计目的
电子时钟是采用数字电路实现对日期、时、分、秒,数字显示的 计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用, 使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生 活带来了极大的方便,而且大大地扩展了钟表的报时功能。电子时钟 已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧 院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不 仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比 如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时 间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动 力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数 字化为基础的。而且是控制的核心部分。因此,研究电子时钟及扩大 其应用,有着非常现实的意义。
for(i=0;i<80;i++) {;}
} void time_tr0() interrupt 1 using 2 {
TH0=(65535-5000)/256; TL0=(65535-5000)%256; count++; if(count==100) {
smadd(0); } } void int0_i() interrupt 0 using 3 { TR0=0; smadd(which*2); TR0=1; while(inter0==0); } void int1_i() interrupt 2 using 1 { TR0=0; delay(20); smsub(which*2);; TR0=1; while(inter1==0); } void smsub(unsigned char n) { delay(80); if(time[n]>0) {
相关文档
最新文档