单片机时钟计时程序

合集下载

单片机课程设计数字钟实验报告

单片机课程设计数字钟实验报告

单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。

2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。

3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。

4、能够实现按键启动与停止功能。

5、能够实现整点报时功能。

6、能够实现秒表功能。

二、设计思路1、芯片介绍VCC:电源。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

单片机闹钟设计程序报告

单片机闹钟设计程序报告

单片机闹钟设计程序报告1. 引言闹钟作为人们日常生活中的常用物品,不仅有叫醒人们起床的功能,还可以作为提醒的工具。

随着科技的进步,单片机闹钟逐渐取代了传统的机械闹钟,成为人们生活中不可或缺的一部分。

本报告旨在介绍一个基于单片机的简单闹钟设计程序。

2. 设计方案本设计方案使用了单片机和数码管作为主要硬件,通过对单片机的编程,实现了闹钟的基本功能,包括时间设置、闹钟时间设置、闹钟触发、蜂鸣器报警等。

2.1 硬件设计硬件方面,本设计基于某型号的单片机和数码管。

单片机通过相关的引脚与数码管相连,通过控制引脚的电平来显示不同的数字。

2.2 软件设计软件方面,本设计使用C语言编程实现。

主要的功能包括获取当前时间、显示时间、设置时间、设置闹钟时间、闹钟触发检测、蜂鸣器报警等。

3. 程序实现3.1 初始化设置在程序的开始部分,需要对单片机进行初始化设置。

包括设置引脚的输入输出模式、设置计时器、设置中断等。

3.2 时间显示为了实现时间显示的功能,我们需要通过单片机的计时器来不断获取当前时间,并将其转换为时、分、秒的格式。

然后通过数码管显示出来。

3.3 时间设置通过给单片机的某个引脚接入按钮,实现时间设置功能。

当按钮被按下时,单片机进入时间设置模式。

此时,用户可以通过另外的按钮来逐个调整时、分、秒的数值。

3.4 闹钟时间设置类似于时间设置,闹钟时间设置也需要通过按钮来实现。

用户可以按下对应的按钮来设置闹钟的时、分,设置完毕后,单片机会将设置的时间保存起来。

3.5 闹钟触发检测在每一次时间显示的循环中,程序都会检测当前时间是否与闹钟时间相符。

如果相符,则触发闹钟,蜂鸣器开始报警。

3.6 蜂鸣器报警通过单片机的一个输出引脚,连接到蜂鸣器,实现蜂鸣器的报警功能。

当闹钟触发时,单片机会给对应的引脚输出一个高电平,从而使蜂鸣器发声。

4. 总结通过对单片机闹钟设计程序的实现,我们成功实现了闹钟的基本功能,包括时间设置、闹钟时间设置、闹钟触发、蜂鸣器报警等。

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

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

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

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

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

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

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

关键词:电子钟 AT89C52 硬件设计软件设计目录一、数字电子钟设计任务、功能要求说明及方案介绍 (4)1.1 设计课题设计任务 (4)1.2 设计课题的功能要求说明 (4)1.3 设计课的设计总体方案介绍及工作原理说明 (4)二、设计课题的硬件系统的设计 (5)2.1硬件系统各模块功能简要介绍 (5)2.1.1 AT89C52简介 (5)2.1.2 按键电路 (6)三、设计课题的软件系统的设计 (6)3.1 使用单片机资源的情况 (6)3.2 软件系统个模块功能简要介绍 (7)3.3 软件系统程序流程框图 (7)3.4 软件系统程序清单 (7)四、设计课题的设计结论、仿真结果、误差分析 (9)4.1 设计结论及使用说明 (9)4.2 仿真结果 (10)结束语 (12)参考文献 (12)附录 (13)附录A:程序清单 (13)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

单片机实训报告计时器

单片机实训报告计时器

一、概述随着科技的不断发展,单片机技术已经成为现代电子设备中不可或缺的核心技术。

为了提高自身对单片机应用技术的理解和掌握,本实训报告以设计一个基于单片机的计时器为例,通过实践操作,深入探究单片机的编程与应用。

二、实训目的1. 熟悉单片机的基本原理和开发环境。

2. 掌握51单片机的编程方法,提高编程能力。

3. 学会使用数码管、按键等外部器件与单片机进行交互。

4. 培养动手实践能力和创新意识。

三、实训内容本实训主要设计一个基于51单片机的计时器,计时范围设置为00.0~99.9秒,精确到0.1秒。

计时器具有以下功能:1. 计时开始:按下开始按钮,计时器开始计时。

2. 计时暂停:按下暂停按钮,计时器暂停计时。

3. 计时复位:按下复位按钮,计时器清零。

4. 显示计时:通过数码管实时显示当前计时值。

四、硬件设计1. 单片机:选用51单片机作为核心控制单元。

2. 数码管:采用共阴型4位数码管,用于显示计时值。

3. 按键:设计三个按键,分别用于控制计时器的开始、暂停和复位功能。

4. 晶振:用于提供单片机的时钟信号。

5. 电阻、电容等:用于搭建电路。

五、软件设计1. 主程序:初始化单片机,配置I/O端口,设置定时器,进入主循环。

2. 计时函数:根据按键输入,控制计时器的开始、暂停和复位功能。

3. 显示函数:将计时值转换为数码管可识别的编码,并通过I/O端口输出。

六、程序实现以下为计时器设计的主要程序代码:```c#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit key_start = P1^0; // 开始按键sbit key_pause = P1^1; // 暂停按键sbit key_reset = P1^2; // 复位按键sbit display_data = P0; // 数码管数据端口sbit display_control = P2; // 数码管控制端口uchar code code_display[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F}; // 数码管编码uint time = 0; // 计时器值void delay(uint t) {while(t--);}void display() {uchar i;for(i = 0; i < 4; i++) {display_control = 0x01 << i; // 选择数码管位display_data = code_display[time / 10]; // 显示十位delay(10000);display_control = 0x01 << i; // 选择数码管位display_data = code_display[time % 10]; // 显示个位 delay(10000);}}void main() {TMOD = 0x01; // 设置定时器模式TH0 = 0xFC; // 设置定时器初值TL0 = 0x18;TR0 = 1; // 启动定时器display_control = 0xFF; // 关闭所有数码管while(1) {if(key_start == 0) { // 开始计时while(key_start == 0);time = 0;while(TF0 == 0);TF0 = 0;}if(key_pause == 0) { // 暂停计时while(key_pause == 0);while(TF0 == 0);TF0 = 0;}if(key_reset == 0) { // 复位计时器while(key_reset == 0);time = 0;}display();}}```七、测试与分析1. 功能测试:经过多次测试,计时器功能稳定可靠,能够实现计时、暂停和复位功能。

单片机 定时器实现24小时时钟程序

单片机  定时器实现24小时时钟程序

#include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit LS138A = P2^2; //定义138译码器的输入A脚由P2.2控制sbit LS138B = P2^3; //定义138译码器的输入脚B由P2.3控制sbit LS138C = P2^4; //定义138译码器的输入脚C由sbit k1=P2^0;sbit k2=P2^1 ;sbit k3=P2^5;bit flag;uchar sec=0,min=0,hour=12;uchar count_10ms, DelayCNT;int m=1;//此表为LED 的字模, 共阴数码管0-9 -unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};void delay(uint z){int x,y;for(x=z;x>0;x--)for(y=20;y>0;y--) ;}void timer(){TMOD=0x01;TH0=0xdc;TL0=0x00;EA=1;ET0=1;TR0=1;}void key(){ int t;if(k1==0){delay(30);if(k1==0){ while(!k1);t++;m=t%2;}}}/************主函数**********************/ main(){ unsigned int i ;unsigned int LedOut[10];timer();while(1) //进入循环状态{if(m==0){if(k2==0){delay(30);if(k2==0)while(!k2);hour++;}if(hour>=24)hour=0;if(k3==0){delay(30);if(k3==0)while(!k3);min++;}if(min>=60)min=0;}LedOut[0]=Disp_Tab[hour/10];LedOut[1]=Disp_Tab[hour%10];LedOut[2]=Disp_Tab[10];LedOut[3]=Disp_Tab[min/10];LedOut[4]=Disp_Tab[min%10];LedOut[5]=Disp_Tab[10];LedOut[6]=Disp_Tab[sec/10];LedOut[7]=Disp_Tab[sec%10];for( i=0; i<9; i++) //实现8位动态扫描循环{P0 = LedOut[i]; //将字模送到P0口显示switch(i) //使用switch 语句控制位选也可以是用查表的方式学员可以试着自己修改{case 0:LS138A=0; LS138B=0; LS138C=0; break;case 1:LS138A=1; LS138B=0; LS138C=0; break;case 2:LS138A=0; LS138B=1; LS138C=0; break;case 3:LS138A=1; LS138B=1; LS138C=0; break;case 4:LS138A=0; LS138B=0; LS138C=1; break;case 5:LS138A=1; LS138B=0; LS138C=1; break;case 6:LS138A=0; LS138B=1; LS138C=1; break;case 7:LS138A=1; LS138B=1; LS138C=1; break;}delay(10);}}}void timer1() interrupt 1 // 中断函数{TH0=0xdc;TH0=0x00;key();if(m){{count_10ms++;}if(count_10ms==10){count_10ms=0;sec++;if(sec>=60){sec=0;min++;if(min>=60){min=0;hour++;if(hour>=24){hour=0;sec=0;min=0;}}}}}}。

基于51单片机电子时钟程序

基于51单片机电子时钟程序

// 本程序实现功能:显示小时和分钟,并以最后一位的小数点闪烁一次表示一秒。

按下INT0键后显示日期。

并在所设定的时间蜂铃器响5次以此为闹钟;// 第二:按下INT1键后,可对时间,日期,闹钟进行设置,再次按下INT1推出设置//// 显示说明:前两位显示小时和月份,后两位显示分钟和日期//#include <reg52.h>/*==========================================宏定义uchar和uint===========================================*/#define uchar unsigned char#define uint unsigned intsbit alarm=P1^4;/*==============================================变量的定义==============================================*/int year=2010;/*初始年份为2010年*/uchar alarm_hour=0,alarm_min=0; /*初始闹钟时间为00:00*/uchar qian=0,bai=0,shi=0,ge=0,key_flag=0,Key=0,num=0,Flag=0; /*定义输出函数变量和按键号*/uchar x,dis_flag=0; /*显示变换标志位*/uchar Key_control=0; /*按键被按下的标志位*/uchar mounth=7,day=25; /*初始日期设为7月25号*/uchar hour=0,t=0,min=0,sec=0,ring=0;/*初始时间为00:00:00*//*=============================================子函数的定义=============================================*/void Init(); /*此函数用于初始化所有需要使用的中断*/void delay(uint z); /*用于数码管显示*/uchar Key_num(void); /*此函数为确定按下的按键输出编号*/void Led_display();void display(uchar cc, uchar dd); /*显示时间的函数,中间的点表示:*/void display_nian(uchar cc, uchar dd); /*显示年份的显示函数,即没有中间的点*/void display_date(uchar cc, uchar dd); /*显示日期的函数,即四个小数点全亮*/void display_alarm(uchar cc, uchar dd); /*显示闹钟的函数,第二个和第四个点*/void Leap_Nonleap(int aa); /*判断是闰年还是平年,并将二月的最大天数赋给Mounth_array[1]*/void Judge_Setting(uchar Key_set); /*所得出的按键号进行对应的设置*//*==========================================所使用数组的定义============================================*/uchar Mounth_array[12]={31,29,31,30,31,30,31,31,30,31,30,31}; /*每个月的最大天数数组*/uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,/*数码管显示编码*/};uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};/*百位及其小数点的段码*//*==============================================主函数部分==============================================*/void main(){Init();while(1){Leap_Nonleap(year); /*进入大循环后首先对年份进行判断*/while(Key_control)/*当P3.3被按下后Key_control=1进入函数进行设置,直到第二次Key_control=0推出循环*/{Flag=Key_num(); /*将按键函数里面是否有按键被按下的标志位赋给Flag*/if(Flag) /*当有按键被按下时,进入设置函数*/{Judge_Setting(num); /*将num值传入函数,并进行设置*/}Led_display(); /*保证在设置的循环时有显示*/}Led_display();/*循环式动态显示*/}}/*===========================================系统初始化函数=============================================*/void Init() /*初始化系统,启动计时器0,1,外部中断0,1*/{TMOD=0x01; /*将计时器0定位工作方式1,将计时器1定为工作方式2*/TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;// ET1=1;// TR1=1;IE0=1;EX0=1; /*使用外部中断0和1,分别作为显示变换,设置的前戏*/IT0=1;/*为下降沿突发*/IE1=1;EX1=1;IT1=1;/*为下降沿突发*/EA=1;}void Display_flag() interrupt 0 /*使用外部中断0,进行显示时间和日期的转换P3.2口切换显示*/{dis_flag++;if(dis_flag==4) /*当dis_flag=0时,输出时间,当dis_flag=1时,输出日期,当dis_flag=2时,输出闹钟*/dis_flag=0; /*当dis_flag=3时,输出年份。

单片机课程设计--电子秒表与闹钟的设计

单片机课程设计--电子秒表与闹钟的设计

目录摘要 (Ⅰ)1 电子秒表与闹钟系统概述 (1)1.1 课程设计基本要求 (1)1.2 系统实现功能 (1)1.3 系统应用价值展望 (2)2 仿真软件Proteus和Keil简介 (3)2.1 Proteus简介 (3)2.2 Keil简介 (3)3 系统工作原理分析 (4)3.1AT89C2051模块 (4)3.2 显示驱动模块 (6)3.3 数码管显示模块 (8)4 程序流程图设计 (9)5 Proteus仿真原理图 (12)6 课程设计体会 (14)参考文献 (15)附:源程序代码 (16)摘要随着科学技术的不断发展 , 人们对时间计量的要求越来越高。

在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。

本作品是以STC89C51单片机作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间精确。

软件部分以C语言为主体,用1602LCD 液晶屏显示输出信息,输出信息量多,更直观、人性化。

该时钟可实现人机交互,可通过提供的键盘对其进行调整。

系统具有以下功能:年、月、日、时、分、秒显示;12小时/24小时模式切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。

本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时钟芯片,调整按键,蜂鸣器,电源五大部分组成。

关键词:定时器中断闹钟电子时钟1 电子秒表与闹钟系统概述1.1 课程设计基本要求(1) 用并行口设计一个具有显示功能的秒表,显示准确的北京时间(时、分、秒),可用24小时制式;(2) 有时间校准功能;(3) 允许通过转换功能键转换显示时间,用定时器实现一个电子闹钟,能设定和修改定时的时间,并能到时响铃通知;(4) 所有按键需要通过串口自发自收来调校各种功能。

1.2 系统实现功能本系统是基于单片机AT89S52制作的数字电子钟。

根据实验要求,在完成实验所要求的基本功能外,扩展了几个功能。

基于C51单片机的数字时钟课程设计(C语言带闹钟)

基于C51单片机的数字时钟课程设计(C语言带闹钟)

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

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

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

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

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

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

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

关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。

键盘采用动态扫描方式。

利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

单片机电子时钟设计程序

单片机电子时钟设计程序

单片机电子时钟设计程序
1.引用头文件和定义全局变量
首先需要引用相应的头文件,例如`reg52.h`,并定义全局变量用于
存储时间、闹钟时间以及其他相关参数。

2.初始化时钟
在主函数中,首先进行时钟的初始化。

这包括设置定时器和中断相关
的寄存器,以及初始化显示屏和按钮等外设。

3.时间更新
编写一个中断服务函数,用于根据定时器的中断来更新时间。

在该中
断服务函数中,需要将全局变量中的时间进行递增,并考虑到分钟、小时、日期和星期等的进位和换算。

4.按钮输入
设置一个子函数用于读取按钮输入,并根据按钮的状态来进行相应的
操作,比如切换时钟显示模式、设置闹钟等。

5.显示时间
编写一个子函数用于将时间信息显示在数码管上。

这需要先将时间信
息转换为数码管的显示格式,然后通过IO口输出控制数码管的显示。

6.闹钟设置
使用按钮输入的功能,可以设置闹钟时间和开关闹钟功能。

当闹钟时
间到达时,可以通过控制蜂鸣器发声或点亮LED等方式来进行提醒。

7.主函数
在主函数中,循环执行按钮输入的检测和相应操作,以及时间的更新和显示等功能。

可以通过一个状态机来控制整个程序的流程。

以上是一个简要的单片机电子时钟设计程序的概述。

实际的程序设计过程中,还需要考虑到各个模块之间的交互、错误处理、电源管理以及代码的优化等细节问题。

具体的程序实现可以根据具体需求和硬件平台的差异进行适当的修改和扩展。

单片机max7219时钟程序

单片机max7219时钟程序

/***************时钟采用定时中断方式,50MS一次******完整可用,硬件实验通过**********************/#include <reg51.H>#include "type.h"#include "max7219.h"#include "counter.h"/**************************************************************定时器0初始化***************************************************************/void Init_Timer0(void){TMOD=0x01;TH0=-(50000/256);TL0=-(50000%256);ET0=1;TR0=1;EA=1;Init_Max7219();}/***************************************************************定时器0中断函数****************************************************************/void Interrupt_Time0(void) interrupt 1{TH0=-(50000/256);TL0=-(50000%256);m++;}/**************************************************************延时函数***************************************************************/void Delay(uint16 k){uint16 data i,j;for(i=0;i<k;i++){for(j=0;j<121;j++);}}/**************************************************************按键扫描函数***************************************************************/uint8 Scan_Key(void){uint8 temp;P3=0x3f;temp=P3;if(temp!=0x3f){Delay(20);temp=P3;if(temp!=0x3f)return temp;}return 0x3f;}/****************************************************************主函数*****************************************************************/ void main(void){uint8 Key_Flag;Init_Timer0();while(1){Counter();Key_Flag=Scan_Key();switch(Key_Flag){case 0x3b:if(min++>59)min=0;Delay(300);Write_Max7219(DIG_6,min%10);Write_Max7219(DIG_5,min/10);break;case 0x37:if(hour++>23)hour=0;Delay(300);Write_Max7219(DIG_4,hour%10);Write_Max7219(DIG_3,hour/10);break;case 0x2f:if(week++>7)week=1 ;Delay(300);Write_Max7219(DIG_1,week%10);break;default: break;}}}Max7219.h:#ifndef _MAX7219_H_#define _MAX7219_H_/*********************************************************引脚位定义**********************************************************/sbit LOAD=P1^2; //MAX7219 Load-Data Input: rising edge pin 12 sbit DIN=P1^1; //MAX7219 Serial-Data Input: rising edge pin 1 sbit CLK=P1^0; //MAX7219/****************************************************MAX7219 宏定义*****************************************************/#define REG_NO_OP 0x00 // 定义空操作#define DIG_1 0x01 // 定义数码管1#define DIG_2 0x02 // 定义数码管2#define DIG_3 0x03 // 定义数码管3#define DIG_4 0x04 // 定义数码管4#define DIG_5 0x05 // 定义数码管5#define DIG_6 0x06 // 定义数码管6#define DIG_7 0x07 // 定义数码管7#define DIG_8 0x08 // 定义数码管8#define DECODE_MODE 0x09#define INTENSITY 0x0A#define SCAN_LIMIT 0x0B#define SHUT_DOWN 0x0C#define DISPLAY_TEST 0x0F/***********************************************************MAX7210函数声明************************************************************/void Write_Max7219_byte(unsigned char temp);//write max7219 a bytevoid Write_Max7219(unsigned char address,unsigned char dat);//write max7219 command and datavoid Init_Max7219(void);//Initize max7219/************************************************************MAX7219地址、数据写入函数子程序*************************************************************/void Write_Max7219_byte(unsigned char temp){uint8 i;for (i=0;i<8;i++){CLK=0;DIN=(bit)(temp&0x80);temp<<=1;CLK=1;}}/*************************************************************MAX7219地址、数据写入**************************************************************/void Write_Max7219(unsigned char address,unsigned char dat){LOAD=0;Write_Max7219_byte(address);Write_Max7219_byte(dat);LOAD=1;}/**************************************************************MAX7219初始化***************************************************************/void Init_Max7219(void){Write_Max7219(SHUT_DOWN, 0x01);Write_Max7219(DISPLAY_TEST, 0x00);Write_Max7219(DECODE_MODE, 0xff);Write_Max7219(SCAN_LIMIT, 0x07); //SCAN LIMIT 0~7 0xX0~0xX7 Write_Max7219(INTENSITY, 0x04);Write_Max7219(DIG_1,0x01);Write_Max7219(DIG_4,0x02);Write_Max7219(DIG_5,0x02);Write_Max7219(DIG_6,0x07);Write_Max7219(DIG_8,0x01);}#endif/*************************************counter.h:**************************************/#ifndef _COUNTER_H_#define _COUNTER_H_/***************************************************************计数、数码管赋值函数****************************************************************/ uint8 m,sec,min,hour,week=1;void Counter(void){if(m >= 20){m =0;sec++;Write_Max7219(DIG_8,sec%10);Write_Max7219(DIG_7,sec/10);}if(sec==60){sec=0;min++;Write_Max7219(DIG_6,min%10);Write_Max7219(DIG_5,min/10);if(min==60){min=0;hour++;Write_Max7219(DIG_4,hour%10);Write_Max7219(DIG_3,hour/10);if(hour==24){hour=0;week++;Write_Max7219(DIG_1,week%10);}}}if(week>7){week=1;}}#endiftype.h:#ifndef _TYPE_H_#define _TYPE_H_typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; typedef char int8;typedef int int16;typedef long int32;#endif。

利用单片机的定时器设计一个数字时钟

利用单片机的定时器设计一个数字时钟

利用单片机的定时器设计一个数字时钟数字时钟是我们日常生活中常见的计时工具,可以准确地显示当前的时间。

而单片机的定时器则可以提供精准的定时功能,因此可以利用单片机的定时器来设计一个数字时钟。

本文将介绍如何使用单片机的定时器来设计一个基于数字显示的时钟,并提供基本的代码实现。

一、时钟电路设计利用单片机设计一个数字时钟,首先需要设计一个合适的时钟电路。

时钟电路一般由电源电路、晶振电路、单片机复位电路和显示电路组成。

1. 电源电路:为电路提供工作所需的电源电压,一般使用稳压电源芯片进行稳定的供电。

2. 晶振电路:利用晶振来提供一个稳定的时钟信号,常用的晶振频率有11.0592MHz、12MHz等。

3. 单片机复位电路:用于保证单片机在上电或复位时能够正确地初始化,一般使用降低复位电平的电路。

4. 显示电路:用于将单片机输出的数字信号转换成七段数码管可以识别的信号,一般使用BCD码和译码器进行实现。

二、单片机定时器的应用单片机的定时器具有精准的定时功能,可以帮助实现时钟的计时功能。

单片机的定时器一般分为定时器0和定时器1,根据具体的应用需求选择使用。

在设计数字时钟时,可以将定时器0配置成定时器模式,设置一个适当的定时时间。

当定时器0计时达到设定时间时,会触发一个中断信号,通过中断处理程序可以实现时钟的计时功能。

以下是一个基于单片机的定时器的伪代码示例:```void Timer0_Init(){// 设置定时器0为工作在定时器模式下// 设置计时时间// 开启定时器0中断}// 定时器0中断处理程序void Timer0_Interrupt_Handler(){// 更新时钟显示}void main(){Timer0_Init();while(1){// 主循环}}```在上述伪代码中,Timer0_Init()函数用于初始化定时器0的相关设置,包括工作模式和计时时间等。

Timer0_Interrupt_Handler()函数是定时器0的中断处理程序,用于处理定时器0计时到达设定时间时的操作,例如更新时钟显示。

单片机汇编程序51电子时钟.doc

单片机汇编程序51电子时钟.doc

单片机汇编程序 51电子时钟电子钟设计实验报告一)实验目的:1、进一步掌握定时器的使用和编程方法。

2、进一步掌握中断处理程序的编程方法。

3、进一步掌握数码显示电路的驱动方法。

4、进一步掌握键盘电路的驱动方法。

5、进一步掌握软件数据处理的方法。

二)内容要求:1、利用CPU的定时器和数码显示电路,设计一个电子时钟。

格式如下:XX XX XX 由左向右分别为:时、分、秒。

2、电子时钟有秒表功能。

3、并能用键盘调整时钟时间。

4、电子时钟能整点报时、整点对时功能。

5、能设定电子时钟的闹铃。

三)主要元件:电阻4.7K 10个 2K 1个四位共阳数码管1个二位共阳数码管1个按钮开关4个万用板(中板)1个 9012PNP 7个排线排阵若干电线一捆蜂鸣器1个最小系统一个四)系统说明:按P1.0键,如果按下的时间小于1秒进入省电模式(数码管不显示,开T0计时器),如果按下的时间大于1秒则进入时间调整.。

在时间调整状态:再按P1.0,如果按下时间大于0.5秒转调小时状态,按下时间小于0.5秒加1分钟操作。

在小时调整状态再按P1.0键,如果按下时间大于0.5秒退出时间调整,如果按下时间小于0.5秒加1小时操作。

按P1.1键,进入闹铃调分状态,按P1.2分加1,按P1.0分减1。

若再按P1.3,则进入调整状态,按P1.2时加1,按P1.0分时。

按P1.1键,闹铃有效,显示式样变为00:00:—0;再按P1.1键,闹铃无效,显示式样变为00:00:—。

按P1.3键,调整闹钟时间结束。

按P1.2键,进入秒表计时功能,按P1.2键暂停或清零,按P1.1键退出秒表回到时钟状态。

而且本系统还有整点报时功能,以及按键伴有声音提示。

五)程序流程图:开始 TO中断初始化保护现场进入功能调用显示定时初值校正程序子程序N Y键按下, 1S到,Y N加1S处理整点到NY恢复现场,中断返回按时间鸣叫次数主程序流程图 T0中断计时程序流程图T1中断保护现场T1中断服务程序流程图秒表/闪烁,时钟调时闪烁加10MS处理闪烁处理恢复现场,中断返回六)电路图七)程序清单:中断入口程序 ;; DISPFIRST EQU 30H BELL EQU P1.4CONBS EQU 2FHOUTPX EQU P2 ;P2位选OUTPY EQU P0 ;P0段选INP0 BIT P1.0INP1 BIT P1.1INP2 BIT P1.2ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回;QQQQ:MOV A,#10HMOV B,79HMUL ABADD A,78HMOV CONBS,ABSLOOP:LCALL DS20MSLCALL DL1SLCALL DL1SLCALL DL1SDJNZ CONBS,BSLOOPCLR 08HAJMP START;; 主程序 ;;START:MOV R0,#00H ;清70H-7AH共11个内存单元MOV R7,#80H ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用) MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用) MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用初值(50MS×20)MOV DISPFIRST ,#70HSTART1: LCALL DISPLAY ;调用显示子程序JNB INP0,SETMM1 ;P1.0口为0时转时间调整程序JNB INP1,FUNSS ; 秒表功能,P1.1按键调时时作减1加能JNB INP2,FUNPT ;STOP,PUSE,CLRJNB P1.3,TSFUNSJMP START1 ;P1.0口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM FUNSS: LCALL DS20MSJB INP1,START1WAIT11: JNB INP1,WAIT11CPL 03HMOV DISPFIRST,#00H :显示秒表数据单元MOV 70H,#00HMOV 71H,#00HMOV 76H,#00HMOV 77H,#00HMOV 78H,#00HMOV 79H,#00HAJMP START1FUNPT: LCALL DS20MSJB INP2,START1WAIT22: JNB INP2,WAIT21CLR ET0CLR TR0WAIT33: JB INP2,WAIT31 LCALL DS20MSJB INP2,WAIT33WAIT66: JNB INP2,WAIT61 MOV R0,#70H ;清70H-79H共10 个内存单元MOV R7,#0AH ;CLEARP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARP ;WAIT44: JB INP2,WAIT41 LCALL DS20MSJB INP2,WAIT44WAIT55: JNB INP2,WAIT51 SETB ET0SETB TR0AJMP START1WAIT21: LCALL DISPLAY AJMP WAIT22WAIT31: LCALL DISPLAY AJMP WAIT33WAIT41: LCALL DISPLAYAJMP WAIT44WAIT51: LCALL DISPLAYAJMP WAIT55WAIT61: LCALL DISPLAYAJMP WAIT66 TSFUN:LCALL DS20MSWAIT113:JNB P1.3,WAIT113JB 05H,CLOSESPMOV DISPFIRST,#50HMOV 50H,#0CHMOV 51H,#0AHDSWAIT:SETB EALCALL DISPLAYJNB P1.2,DSFINCJNB P1.0,DSDECJNB P1.3,DSSFU AJMP DSWAITCLOSESP:CLR 05HCLR BELLAJMP START1 DSSFU:LCALL DS20MS JB P1.3,DSWAIT LJMP DSSFUNN DSFINC:LCALL DS20MS JB P1.2,DSWAIT DSWAIT12:LCALL DISPLAY JNB P1.2,DSWAIT12 CLR EAMOV R0,#53H LCALL ADD1MOV A,R3CLR CCJNE A,#60H,ADDHH22ADDHH22:JC DSWAITACALL CLR0AJMP DSWAITDSDEC:LCALL DS20MSLCALL DISPLAYDSWAITEE:LCALL DISPLAYJNB P1.0,DSWAITEECLR EAMOV R0,#53HLCALL SUB1LJMP DSWAIT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0JB 03H,FSSMOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 ;MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志JB 03H,OUTT0 ;秒表时最大数为99CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;LCALL BAOJPOP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回 ;秒表计时程序(10MS加1),低2位为0.1、0.01秒,中间2位为秒,最高位为分。

[单片机课设]秒表时钟计时器的设计

[单片机课设]秒表时钟计时器的设计

单片机原理课程设计——秒表时钟计时器的设计专业:电气工程及其自动化方向:电力系统*****学号:************指导老师:***目录第1章方案论证 (3)第2章硬件设计 (5)2.1秒表/时钟计时器的总体设计 (5)2.2 AT89C52单片机最小系统 (6)2.3 74LS244芯片说明 (8)2.4 LED显示器的显示方法及其与单片机的接口 (8)2.5电源电路的设计 (10)第3章软件设计 (11)3.1主程序 (11)3.2显示子程序 (11)3.3定时器T0中断服务程序 (12)3.4 T1中断服务程序 (12)3.5调时功能程序 (13)3.6整点响程序 (13)3.7时钟/秒表功能程序 (13)3.8 程序清单 (13)第4章设计总结 (23)第1章方案论证现今的计时器通常只能通过启/停按键实现断点计时的功能,即通过启/停按键来记录一段时间。

这种计时器查看的时间只能为计时结束时刻。

实际的应用中往往需要在不影响正常计时的基础上,能查看记录过程中的某些点的时间。

本课设即针对此问题,设计了一种能通过按键方式查看记录过程中任一时刻值的计时器。

这种计时器在查看中间值时不会影响整个记录过程,并且能把相应数据送入存储模块及显示模块,以便查看。

本系统采用AT89C52单片机作控制器,LED数码管,实现显示时、分、秒,以24小时计时方式。

为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。

由于静态显示法需要数据锁存器等硬件,结构较为复杂,考虑时钟显示只有六位,且系统没有其他复杂的处理任务,所以采用动态扫描法实现LED的显示。

单片机采用AT89C52系列,有足够的空余硬件资源实现其它的扩充功能。

秒表/时钟计时器的总体设计框图如下图所示。

图1.1 系统总体设计框图系统主要实现如下功能:1.时钟功能对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。

stm32单片机小时计时程序代码

stm32单片机小时计时程序代码

stm32单片机小时计时程序代码stm32单片机小时计时程序是一种基于stm32单片机的软件程序,用于实现小时计时的功能。

在本文中,我们将详细介绍如何编写这样一个程序,以及程序的实现原理和使用方法。

我们需要了解stm32单片机的基本知识。

stm32单片机是一种高性能、低功耗的嵌入式微控制器,具有丰富的外设和强大的计算能力。

它广泛应用于各种电子设备中,包括计时器、时钟、计步器等。

在编写小时计时程序之前,我们需要先了解stm32单片机的时钟模块。

时钟模块是单片机中非常重要的一个模块,它提供了系统时钟和外设时钟,控制单片机的时序和节拍。

在小时计时程序中,我们需要使用时钟模块来计算时间的流逝。

接下来,我们开始编写小时计时程序。

首先,我们需要初始化时钟模块。

在stm32单片机中,时钟模块的初始化包括设置系统时钟源、设置时钟分频器等。

我们可以根据实际需求选择适合的时钟源和分频系数。

初始化完时钟模块后,我们需要设置计时器。

在小时计时程序中,我们可以使用定时器模块来实现计时功能。

定时器模块可以通过配置计数器的初值和计数器的溢出时间来实现定时功能。

我们可以根据实际需求选择适合的定时器模块和计数器参数。

在设置计时器后,我们需要编写中断服务函数。

中断服务函数是在计数器溢出时自动调用的函数,用于处理计时器溢出事件。

在小时计时程序中,我们可以在中断服务函数中将计数器的值加1,以实现计时功能。

编写完中断服务函数后,我们需要设置中断优先级和使能中断。

在stm32单片机中,每个中断都有一个优先级,用于确定中断的响应顺序。

我们可以根据实际需求设置中断优先级,并使能中断,以保证中断能够正常工作。

我们可以在主函数中调用计时器模块,并通过串口或LCD等外设输出计时结果。

在小时计时程序中,我们可以使用串口模块将计时结果输出到电脑上进行显示,也可以使用LCD模块将计时结果显示在液晶屏上。

stm32单片机小时计时程序是一种基于stm32单片机的软件程序,用于实现小时计时的功能。

基于单片机的时钟计时器的设计大学毕设论文

基于单片机的时钟计时器的设计大学毕设论文

摘要时钟是人类日常生活必不可少的工具,本设计从日常生活中常见的事物入手,通过对时钟计时器的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们对未知科学领域的探索。

本文利用单片机实现数字时钟计时功能的主要内容,采用独立式按键进行时间调整,其中AT89C52是核心元件同时采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。

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

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

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

关键字AT89C52 LED显示244AbstractHuman Clock is an essential tool for everyday life, from the design of everyday things in common start, the clock timer through the design, let us recognize that SCM has the depth to each area of our lives, not only the design Can exercise our practical ability, but can also deepen our understanding of the SCM and inspire us to explore the unknown field of science.Using MCU digital clock timing of the main contents of a stand-alone keys to time to adjust, while AT89C52 is the core component of the LED digital display dynamic "," "points" and "seconds" of modern timing devices. Compared with the traditional mechanical watches, it has a precise path that intuitive, and other characteristics. It's time for the 24-hour cycle, in full scale as "23:59:59", and a school function, memory function after power and restore power supply can be realized at the time synchronization, and other characteristics. The system also has hardware design simple, high stability work, the advantages of low prices.Keyword: AT89C52 LED display 244目录第一章前言 (3)第一节选题目的和意义 (3)第二节国内外发展情况 (4)一单片机的发展历程 (4)二单片机的发展趋势 (6)三单片机的组成及特点 (8)四单片机的分类 (9)五单片机的应用 (10)第三节本设计研究的内容和所做的工作 (11)小结 (11)第二章系统硬件的设计 (12)第一节设计方案的提出、论证和确定 (12)一时钟功能 (12)二计时功能 (12)三功能按键 (12)四中断嵌套和控制 (13)五时钟计时器的硬件电路 (14)第二节元件选择 (17)一 AT89C52芯片 (17)二显示部分 (31)三 74LS244芯片说明 (31)小结 (33)第三章控制系统的软件设计 (34)第一节设计部分 (34)一主程序 (34)二显示子程序 (35)三定时器T0中断服务程序 (35)四定时器T1中断服务程序 (36)五调试功能程序 (37)六秒表功能程序 (38)七闹钟时间设定功能程序 (38)第二节控制程序的编制和调试 (38)一硬件调试 (38)二软件调试 (38)三性能分析 (39)小结 (39)第四章参考文献 (39)第五章附录 (40)外文资料 (65)中文译文 (74)致谢语 (80)总结与展望 (81)第一章前言第一节选题目的和意义时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。

单片机c 语言编程时钟及闹钟程序

单片机c 语言编程时钟及闹钟程序

一·功能1、计时功能,数码管显示数值从00:00:00--23:59:59循环替换,且周期时间与实际时间吻合。

2、定时闹钟功能,按下“定时”键后,可以设定所需要的任意时间,定时完成后,当到达设定时间后,蜂鸣器发声。

3、调整时间功能,根据此项功能可将时钟调至正确的时间。

4、查看定时功能,当设定完成后可以查看上次定时的时间,且能在此基础上进行重新定时。

二·按键说明设定键:按一次开始设定时间,并将设定过程显示在数码管上。

若未按此键,则其他按键无效。

设定过程中,再按一次此键,定时结束,数码管显示返回时钟。

当第一次按下设定键时,显示值为00:00:00,在此基础上调节定时时间。

第一次设定完成后,以后再按设定键,显示初值则为上次定时的时间。

确定键:在定时过程中按下此键,则保留当前设定的时间为定时时间。

若定时过程未按此键,定时无效。

向上键:按下此键,使得当前设定值在现有数值上加一,当加至满位时,当前值变为零。

向下键:按下此键,使得当前设定值在现有数值上减一,当减至零时,当前值变为满位减一。

向左键:按下此键,使得设定值移向左边一位,若已经在最左边,则移至最右边。

向右键:按下此键,使得设定值移向右边一位,若已经在最右边,则移至最左边。

三·具体操作演示(一)·定时及查看定时演示1.仿真开始。

如图:2、按键如图:3、按下设定键,开始设定时间,如图:4、如图所示,当前设定时位。

按向上键,使数值加一。

5、按下向右键,设定位移至分位。

6、按下向下键,使数字减一。

7、按确定键,确定当前设定的时间。

再按设定键,退出定时,开始时钟显示。

8、设定完成后按设定键,显示前次设定值,可在此基础上重新设定,也可直接再按设定键推出。

9、当时钟运行到设定时间时,蜂鸣器发声。

(二)·调整时间演示1、计时开始。

2、按照定时的方法开始设定时间,使其显示20:10:09。

3、调整到正确时间后,按下确定键不放,同时再按一下设定键,将目前设定值送入时钟,使其开始从设定值计时。

基于protues的单片机课程设计60s倒计时及电子时钟

基于protues的单片机课程设计60s倒计时及电子时钟
Limited to, the designer's knowledge is limited, shortcomings and mistakes are inevitable, earnestly hope that the teachers and students be criticized and corrected.
3、设计的大体分析: 这两个设计题目要求的硬件电路都主要由 AT89C51 芯片、LED 数码管显示器、晶
振产生电路、复位电路组成。其中电子时钟的课程设计外加了 8155 芯片的扩展电路。还 有 AT89C51 芯片主要由软件完成驱动。最终通过 Keil 与 Proteus 软件联调完成模拟仿真功 能。
限于,设计者的学识有限,缺点错误在所难免,殷切希望老师,同学给予批评、指正。 【关键词】 单片机;AT89S51; LED 数码管显示器;keil C51;倒计时器;电子时钟
英文摘要
Permeate in the social realm along with the calculator in recent years, single slice the application of the machine just at constantly alignment thorough, arouse a traditional control an examination a day a new moon benefit renewal in the meantime.In solidly the hour the examination the single slice that controls with auto the machine the application the system, single slice machine usually Be a core parts to use, only single slice the machine aspect knowledge is not enough, return should according to concrete the hardware structure, and aim at concrete application the software of[with] the object characteristics combine to make perfect.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档