AT89C51数字钟

合集下载

单片机课程设计——基于AT89C51的数字钟的设计

单片机课程设计——基于AT89C51的数字钟的设计

课程设计报告课程:单片机原理与接口技术姓名:班级:10通信1班河北联合大学信息工程学院一、设计名称基于AT89C51的数字钟的设计二、设计目的及要求1,了解AT89C51芯片的功能,性能,及使用方法。

2,了解时钟日历芯片DS12887的性能及使用方法。

3,利用所学汇编语言编(中断、计数等)写代码实现钟表计时定时等功能。

三、设计原理说明利用AT89C51芯片、时钟日历芯片DS12887,三极管等器件连接硬件电路,在用kell软件编写时钟程序,调试程序,最后烧入到硬件设备中进行结果检验及更改。

3.1、基于AT89C51数字钟设计的原理数字钟的基本功能是显示时间,可以通过计数器的级联实现。

以4位数码管的数字钟为例,设定前两位为小时,后两位为分钟,数码管的小数点闪烁可以表示秒。

首先产生一个1Hz的方波信号,在它的触发下驱动小数点闪烁。

在这个1Hz 的基础上,可以产生1/60Hz的信号(对1Hz信号计数,每计数30次就将输出反相,得到1/60Hz信号),它就是分钟信号需要的时钟。

在这个时钟的触发下分钟位数码管依次加1,直到60时变为0,再重新开始计数。

清零的时候要产生一个进位,加到小时上面。

其他时间小时位保持不变。

3.2、数字钟主要元件介绍3.2.1、AT89C51单片机AT89C51是一种低功耗,高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的8位COMS微控制器,使用高密度,非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。

芯片上的FPEROM允许在线编程或采用通用的非易失存储编程器对存储器重复编程。

单片机的主要特性如下:1.与MCS-51 兼容2.4K字节可编程闪烁存储器3.全静态工作:0Hz-24MHz4.三级程序存储器锁定5.4KB的片内程序存储器ROM6.128B内部数据存储器RAM和128B特殊功能寄存器SFR7.4个8位可编程并行I/O接口8.两个16位定时/计数器9.5个中断源的控制控制系统10.一个全双工串行接口11.低功耗的闲置和掉电模式12.片内振荡器和时钟电路。

AT89C51 数字时钟

AT89C51 数字时钟

湖南工业职业技术学院毕业设计(论文)题目:基于单片机的数字钟的设计院系:电气系专业:电子信息专业学生姓名:班级/学号:电信指导老师/督导老师:起止时间:引言这次毕业设计通过对单片机的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它主要通过DP-51PROC单片机综合仿真实验仪实现,通过数码管能够准确显示时间,调整时间,它的计时周期为24小时,从而到达学习、设计、开发软、硬件的能力。

主要实现功能为显示时间,时间校准调时(采用手动按键调时),闹铃功能(设置定时时间,到点后闹铃发出响声)。

通过键盘可以进行校时、定时。

闹铃功能使用I/O 口定时翻转电平驱动的无源蜂鸣器。

本文主要介绍了工作原理及调试过程。

关键词:单片机电子时钟AT89S51目录引言 (2)第一章概述 (4)第二章方案论证与比较 (5)2.1数字时钟方案 (6)2.2数码管显示方案 (6)2.3闹铃方案 (6)2.4校准方案 (7)第三章硬件设计 (8)3.1总体设计 (8)3.2模块设计 (8)第四章设计原理 (13)4.1系统总体方案选择与说明 (13)4.2工作原理 (14)4.3各单元硬件设计说明及计算方法 (15)4.4软件设计与说明 (15)第五章软件设计 (17)5.1主程序流程 (17)5.2闹铃程序 (18)5.3中断程序 (19)第六章调试过程 (20)6.1使用的元件与元件特性 (20)6.2电路连接 (23)6.3使用Keil uVision3编写程序………………………………………………………………… .236.4运行程序 (31)总结 (50)参考文献 (52)第一章概述从单片机电子时钟近年的发展趋势来看,正朝着多层次用户、多品种、多规格、高精度、小体积、低能耗等方面发展。

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

带有时钟功能的电子产品和电子设备进年来广泛地出现在国内外市场中。

基于AT89C51单片机的数字时钟设计

基于AT89C51单片机的数字时钟设计

安徽商贸职业技术学院毕业论文设计课题:基于AT89C51单片机的数字时钟设计系部:学制:专业:姓名:学号:2014 年XX月XX日摘要本设计以数字集成电路技术为基础、单片机技术为核心。

软件设计模块化结构、C语言编程。

系统通过带字库的LCD12864显示数据,通过4*4矩阵键盘控制显示文字、公历日期(年、月、日、星期)、时间(时、分、秒)文字反白、自定义字符、图片显示,可以通过键盘调整时间、日期,温度,同时按下键盘时,七段数码管显示相应键位的键位标识。

在内容安排上首先描述系统硬件工作原理,着重介绍了各硬件接口技术和各个接口模块的功能;其次,详细阐述了程序的各个模块和实现过程。

关键词:单片机、数字温度日历表设计引言仪器仪表的键盘显示系统,是实现通过键盘的控制,使LCD屏幕有相应的显示,广泛用于各个领域,如电脑、家电、数字仪器等,成为人们直观了解和控制仪器、设备的运行状态的重要依据,给人们的生活带了方便,成为现代人们生活、工作的必需品。

数字化显示系统告别了以前老式的监控和计算仪器、设置状态方式,给人们带来了极大的方便。

本设计是仪器仪表的控制显示模拟系统,所有的仪器仪表的控制显示系统都是以此为基础而扩展的。

因此,研究仪器仪表的控制显示系统及扩大其应用有着非常现实的意义。

本设计就是仪器仪表的控制显示系统简单的模拟和扩展应用。

1目录摘要 (1)引言 (1)1 设计要求 (4)1.1 基本要求 (4)1.2 发挥部分 (4)2 方案设计与论证 (4)2.1 控制部分方案论证 (4)2.2 显示部分方案论证 (5)3 系统框图及工作原理 (5)3.1 系统框图 (5)3.2 工作原理 (5)3.2.1硬件工作原理 (5)3.2.2软件工作原理 (6)4 硬件原理分析及设计 (6)4.1 单片机时钟电路 (6)4.2 单片机复位电路 (7)4.2.1复位电路的可靠性设计 (7)4.3 键盘电路 (8)4.4 显示电路 (8)4.4.1 LCD显示电路 (8)4.4.2七段数码管显示电路 (9)4.4 整体电路图 (10)4.5 系统硬件设计所需的元件 (12)5 软件设计 (12)5.1 软件总体设计及框图 (13)5.2 软件重要子程序设计及框图 (13)5.2.1显示部分 (13)5.2.2键盘扫描部分 (15)5.2.3时钟部分 (15)5.2.4延时部分 (17)6 硬件安装制作 (18)6.1 PCB板制作 (18)6.2 元件焊接 (18)结论 (19)参考文献 (21)1 设计要求1.1 基本要求1)开机LCD液晶屏幕显示“10级电子信息工程XXXX毕业设计”信息。

AT89C51单片机电子时钟的设计

AT89C51单片机电子时钟的设计

AT89C51单片机电子时钟的设计1.硬件设计首先,我们需要选择合适的外设硬件进行设计。

以下是一些常见的硬件组件:-AT89C51单片机-蜂鸣器-DS1302时钟模块-按键开关和对应的电阻液晶模块的连接方式如下:-VSS->GND-VDD->VCC-V0->电位器-RS->P0.7-R/W->P0.6-E->P0.5-DB0-DB7->P2.0-P2.7蜂鸣器的连接方式如下:-正极->P3.0-负极->GNDDS1302时钟模块的连接方式如下:-VCC->VCC-GND->GND-CE->P1.7-IO->P1.6-SCLK->P1.5按键开关的连接方式如下:-第一个按键->P3.1-第二个按键->P3.2-第三个按键->P3.32.软件设计在软件设计方面,我们将使用C语言编程来编写程序。

首先,我们需要定义和初始化必要的变量,例如小时、分钟和秒钟等计时变量。

然后,我们需要编写一个初始化函数来配置单片机的各种外设和寄存器。

在这个函数中,我们需要设置计时器/计数器、I/O口和中断等。

接下来,我们需要编写一个定时器中断函数,来更新计时变量并实现计时功能。

我们可以使用定时器中断来定期更新秒钟,并在需要时更新小时和分钟。

在主循环中,我们需要编写代码来控制液晶模块、蜂鸣器和按键开关等外设。

通过液晶模块,我们可以实现显示时间的功能。

通过蜂鸣器,我们可以实现头每秒发出一次滴答声的功能。

通过按键开关,我们可以实现设置时间的功能。

3.程序实现以下是AT89C51单片机电子时钟的程序框架:```c#include <reg51.h>#include <intrins.h>//定义和初始化计时变量unsigned char second = 0;unsigned char minute = 0;unsigned char hour = 0;//初始化函数void ini//配置计时器/计数器,设置定时器中断//配置I/O口和中断等//...//定时器中断函数//更新计时变量//...//主函数void mai//初始化init(;//主循环while (1)//控制液晶模块//控制蜂鸣器//控制按键开关//...}```在具体的代码实现中,我们需要根据液晶模块、蜂鸣器和按键开关等外设的具体规格和功能来编写相应的代码。

基于at89c51的电子时钟设计

基于at89c51的电子时钟设计

课程设计2:设计一个数字时钟。

要求如下:1.利用51开发板上LED数码管,LED灯,按键等设备,设计一个电子时钟。

2.电子钟使用4位数码管显示小时(24小时制)和分钟,秒可以使用LED灯或其他形式表现。

3.具有设置时钟功能,设置时间时,时间停止计时。

需要设置的位置数码管处于闪烁状态,如你想设置小时的数值时,显示小时的数码管需要处于闪烁状态,而显示分钟的数码管不可以处于闪烁状态,应处于正常显示状态。

4.按键可以选择独立键盘或矩阵键盘。

5.其他扩展功能(选做,能力强的可以做):如闹钟,时制切换等。

一.key.c#include "reg52.h"#include "key.h"extern unsigned char min_flag ;//标志位,控制分数码管闪烁extern unsigned char hour_flag ;//标志位,控制时数码管闪烁extern unsigned char shi ;extern unsigned char fen ;unsigned char key_flag = 0;//标志位,有按键被按下unsigned char key_con = 0;//控制位,控制按键(K1)被按下/*独立按键P12连接到51单片机P1端口k1对应的端口为P1.3k2对应的端口为P1.2k3对应的端口为P1.1k4对应的端口为P1.0*/code unsigned char arr[]={0xf7,0xfb,0xfd,0xfe};unsigned char read_key(unsigned char key){unsigned char i;for(i=0;i<8;i++){if(!(key & 1)){return i+1;}key>>=1; //key = key >> 1 ;}return 0;}void key_scan2(void){unsigned char temp;//键盘扫描temp = key4_scan();if(temp){if(!key_flag){if(temp==4)//K1被按下{key_con++;if(key_con==1) //第一次按下调整小时的数值{hour_flag=1;min_flag =0;}else if(key_con==2) //第二次按下调整分的数值{hour_flag=0;min_flag =1;}else //第三次按下取消调整{hour_flag=0;min_flag =0;key_con = 0;}}if(temp == 3) //增加数值{if(hour_flag){shi++;if(shi>23){shi = 0;}}else if(min_flag){fen++;if(fen>59){fen = 0;}}}if(temp == 2) //减少数值{if(hour_flag){shi--;if(shi>250){shi = 23;}}else if(min_flag){fen--;if(fen>250) //非负数,减的时候不会小于0{fen=59;}}}}key_flag = 1;}else{key_flag = 0;}}/*扫描独立键盘,输入参数:无返回值:有键按下时:返回对应的数字没有按键:返回0*/unsigned char key4_scan(void){unsigned char temp;P1 = 0xf;if(P1 != 0xf)//有按键被按下{temp = P1 & 0xf;//1110return read_key(temp);}return 0;}unsigned char sub_key_scan(unsigned char key) {unsigned char temp;P1 = key; //判断第一行temp = P1 >> 4;if(temp != 0xf){return read_key(temp);}return 0;}/*矩阵键盘硬件连接:P13连接到51单片机P1端口P1.0对应P13的1脚P1.1对应P13的2脚P1.2对应P13的3脚……P1.7对应P13的8脚输入参数:无返回值:有键按下时:返回对应的数字没有按键:返回0*/unsigned char key16_scan(void){unsigned char temp;unsigned char i=0;P1 = 0xf0;if(P1 != 0xf0)//有按键被按下{for(i=0;i<4;i++)//用函数扫描4行{temp = sub_key_scan(arr[i]);if(temp){return temp+(i*4);}}}return 0;}二.Key.h#ifndef KEY_H#define KEY_Hunsigned char key4_scan(void); unsigned char key16_scan(void);void key_scan2(void);#endif三.Led_reg.c#include "reg52.h"/*P2连接位码,P2.0连接Q4B,P2.1连接Q3B,P2.2连接Q2B,P2.3连接Q1B P0端口连接段码,P0.0连接A,。

AT89C51数码管电子时钟源代码

AT89C51数码管电子时钟源代码
Delay_ms(10); if (P32==0) {
while(!P32); Delay_ms(10); while(!P32); ring++; if(ring==2)
ring=0; } } if (ring==1) { if((clocksec==sec)&&(clockmin==min)&&(clockhour==hour)) {
flag1=0; sec=0; } } } switch (flag1) { case 0:
if(P30==0) {
Delay_ms(10); if(P30==0) {
while(!P30); Delay_ms(10); while(!P30); sec++; if(sec==60)
sec=0; } }
码 0--9
//数据初始化 void VarInit(void) {
num = 0; sec = 0; min = 0; hour = 0;
//初始化时间
num1=0; sec1=0; min1=0;
//初始化秒表
clocksec=0; clockmin=0; clockhour=0;
//初始化闹钟时间
for(k=123;k>0;k--); }
//计时器初始化 void TimerInit(void) {
EA=1; ET1=1; EX1=1; IT1=1; TMOD=0x10; TH1=0xd8; TL1=0xf0; TR1=1; }
//开总中断
//选择计数器工作方式,选为方式 1,16 位计数器 //装入高八位数 //低八位 //计数器开始工作
} } }
//设置闹钟 void AlarmClock() {

基于AT89C51单片机的数字时钟设计 (2)

基于AT89C51单片机的数字时钟设计 (2)

目录1 引言 (3)2整体设计思路 (4)3 主要元件的使用方法 (6)3.1 AT89C51单片机 (6)3.2 7407驱动器 (7)3.3数码管 (8)4 电路设计 (9)4.1整体设计 (9)4.2 分块设计 (9)4.2.1 输入部分 (10)4.2.2 输出部分(显示电路) (10)4.2.3 晶振与复位电路: (11)5 程序设计 (12)5.1程序思路 (12)5.2程序设计步骤 (13)5.3程序的主要模块 (14)5.3.1延迟程序 (14)5.3.2 中断服务子程序 (14)5.3.3 主程序 (17)5.3.4显示程序 (18)5.3.5 闹铃程序和定时程序 (19)5.4程序调试 (19)6 功能仿真 (19)6.1 软件介绍 (20)6.2仿真过程: (20)6.2.1仿真图的绘制 (20)6.2.2功能的实现 (21)7 日历功能的实现 (23)附录完整程序 (27)参考文献 (42)摘要单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。

基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。

本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用7407驱动电路,实现在6个LED数码管上显示日期、时间、定时、闹铃,通过6个按键实现设置日期、进行调时、设定闹铃、倒计时等功能,在实现各功能时数码管进行相应显示,闹铃或定时时间到时蜂鸣器响,按下闹铃键或定时键时,声音停止。

软件部分用汇编实现,分为显示、延迟、调时、闹铃、定时、调整日期等部分。

通过软硬件结合达到最终目的。

关键词:电子钟; 单片机; 动态扫描; 汇编语言AbstractBecause of its main microcontroller component integrated in a chip named, is the MCU, ram and ROM, interrupt system, timer/counter and I/O interface circuit and other parts in a singl e chip int egrated.This design uses a 12 MHZ crystal to connect with the machine AT89C51, takes AT89C51 chips as core. It adopts the dynamic state of the scanning method to show. Using this MCU and 7407 drive electric circuit, we are able to show date, time, fix the time, and make bell on 6 LED figures tubes. We can use 6 key to constitute date, adjust time, enact the bell and set the countdown timer. When the electric carrying out each function, the figures tube shows the tight function .When the alarm clock and the countdown timer were reached, the voice begins. While 3 or 4 is pressed, the voice stops. The software part is realized by assembler language. It was divided into to show, delay, adjust, make bell, in fixed time, and adjust date etc. part. We get the end purpose combining the software and the hardware.Keywords:Electric clock; MCU; Dynamic state scanning ;Assembler language1 引言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O 接口电路等部件集成在一个芯片上。

基于AT89C51单片机多功能数字钟

基于AT89C51单片机多功能数字钟

1.引言数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

一、题目基于AT89C51的新一代单片机多功能数字钟。

二、课程设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。

(4)了解数字钟的组成及工作原理.四、课程设计要求(1)掌握AT89C51实验开发系统中的实验模块原理,画出电路原理图;;(2)综合运用实验模块,用C51开发设计具有一定功能的单片机控制系统,进行软、硬件设计及调试;(3)写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、软件框图、程序清单、参考资料;(4)时间以60分为一个周期;电子钟的格式为:XX XX,由左向右分别为:分、秒。

完成显示由秒01一直加1至59,再恢复为00;分加1,由00至01,一直加1至59,再恢复00,有上电自动复位功能1.1 单片机发展历史:单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。

1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。

“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。

基于AT89C51数字时钟设计(1)

基于AT89C51数字时钟设计(1)

基于单片机AT89C51数字时钟系统设计摘要:单片机,是集CPU ,RAM ,ROM ,计数和多种接口于一体的微控制器。

自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。

它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。

本文通过对AVR系列单片机的深入学习和研究,提出基于单片机AT89C51数字时钟系统设计。

本设计通过MCS-51单片机来设计数字时钟,采用汇编语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,的显示、定时功能。

本次设计的数字时钟系统由键盘控制模块、振荡器模块、LED数码管显示模块、驱动模块模块、定时显示模块部分组成。

51单片机通过软件编程,在LED上实现小时,分,秒和年,月,的显示;利用键盘控制来实现调时、定时功能。

本文详细介绍了AT89C51单片机的基本原理,分析了AT89C51各个管脚的功能及它在设计电路中的作用。

本文论述了LED和驱动电路的工作原理及其软件设计。

关键字:AVR单片机数字时钟 LED 软件1引言1.1 课题研究的意义20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。

基于AT89C51单片机的定时闹钟设计

基于AT89C51单片机的定时闹钟设计

学号: 班级: 姓名:基于89C51单片机的电子闹钟设计一、设计要求(1)设计并实现一个具有计时功能的电子时钟系统,电子表的时间精确到秒,并可以显示年、月、日、时、分、秒。

(2)利用液晶显示器显示定时器的日期和时间。

(3)使用键盘进行设置时间和设置闹钟。

(4)定时时间到通过蜂鸣器报警和发光二极管闪烁通知,并持续60s 。

二、硬件设计(1)系统设计框图(2)选择硬件设备单片机:选择AT89C51;液晶显示器:具有16字符显示功能的1601 键盘:选择4行*4列的矩阵键盘 LED :选择红色的发光二极管 E 2PROM :X2545基本元件:蜂鸣器,电容,晶体振荡器 ,电阻,开关 电源:使用+5v 直流稳压源 基本模块的构成①时钟信号发生单元如右图2 利用晶振和电容以及单片机内部 电路,构成晶体并联振荡器,产 生12MHz 的时钟频率 ②复位电路如右图3利用一个简单的电容和按键实现*SI SO SCK CSR/S R/W E 单片机 89C51液晶显示蜂鸣器LED E 2PROM X2545 512*8bit键盘P2口P1口图1定时器系统框图数码管显示统P0口P3.0P3.6、P3.7基本模块图2时钟信号发生单元实现对系统的复位功能由此基本模块可以实现最小的单片机系统(3)电子时钟硬件原理图图4硬件电路原理电路(4)主要器件的原理①液晶显示原理液晶显示器种类繁多,按输出样式分为,图案式,数码式,点阵式。

本设计方案利用的是点阵式液晶显示器,而液晶驱动方式又和数码管驱动截然不同,虽然比数码管需要更小的工作电压,但是其结构所需要的扫描方式较数码管来说,是比较复杂的,而且输入输出数据速度慢,市场上是常用点阵式液晶驱动器的,常用的有1601、1602……,“16”代表显示字符共有几列,“01”、“02”代表输出字符共有几行。

下面是驱动1601的驱动方法。

驱动1601的一个很重要的方面就是液晶显示器的初始化,主要是利用控制、数据复用总线来输入指令,进行初始化。

基于AT89C51单片机的数字钟仿真与设计

基于AT89C51单片机的数字钟仿真与设计

盐城纺织职业技术学院毕业设计(论文)基于AT89C51单片机的数字钟仿真与设计陈姗班级专业所在系指导老师完成时间:2011年12月00日至2012年05月20日目录摘要 (4)Abstract (5)第一章绪论 (6)1.1、单片机的发展 (6)1.2、单片机的应用 (6)1.3、数字钟应用发展介绍 (6)第二章基于AT89C51单片机的硬件系统原理 (7)2.1、基于AT89C51数字钟设计的原理 (7)2.2、数字钟主要元件介绍 (7)2.2.1、AT89C51单片机 (7)2.2.2、数码管 (9)2.2.3、74LS245 (10)2.3、数字钟主要电路介绍 (10)2.3.1、时钟电路 (11)2.3.2、复位电路 (12)第三章基于KEIL的数字钟设计 (13)4.1、Keil uVision2集成开发环境介绍 (13)4.2、基于keil的软件数字钟设计 (13)4.3、数字钟软件介绍 (14)4.3.1、流程图 (14)4.3.2、程序 (15)第四章数字钟仿真与实现 (21)5.1、Proteus软件介绍 (21)5.2、基于Proteus软件的数字钟硬件仿真设计 (21)5.3、基于Proteus软件的数字钟硬件仿真运行 (22)5.4、基于HOT-51开发板的数字钟硬件运行 (22)第五章基于PROTEL软件的数字钟硬件设计 (24)3.1、Protel 99 SE概述 (24)3.2、基于Protel 99 SE的原理图设计 (22)3.3、基于Protel99 SE 的PCB图设计 (23)3.4、元件列表 (23)第六章小结与展望 (24)7.1、小结 (24)7.2、全文展望 (24)致谢 (25)参考文献 (26)摘要现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。

对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。

基于AT89C51单片机的数字电子时钟设计

基于AT89C51单片机的数字电子时钟设计

/安徽工程大学机电学院单片机课程设计题目:数字电子时钟设计指导老师:***制作人员:范超学号:************班级:自动化2132日期:7月13日-7月24日总评成绩:课程任务设计书设计题目:数字电子时钟的设计设计任务:1.设计一款时,分,秒可调数字电子时钟可整点报时;2.设计三个按键K1,K2和K3,用于调节时钟的时间;3.用8个、七段LED数码管作为显示设备,开机显示00-00-00;本设计采用AT89C51单片机为核心器件。

具有电子钟显示,时间调整,整点报时等功能。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

根据60秒为一分、60分为1小时的计数周期,构成秒、分、时的计数,实现计时的功能。

而且能显示清晰、直观的数字符号。

针对数字钟会产生误差的现象,就设计有校准时间的功能。

AT89C51单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。

此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为24时00分00秒,另外应有校时功能。

电路由时钟脉冲发生器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。

用晶体振荡器产生时间标准信号,这里采用石英晶体振荡器。

根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个60进制(秒、分)、一个24进制(时)的计数器。

显示器件选用LED八段数码管。

在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。

关键字:Proteus,Keil uVision,AT89C51,电子钟,整点报时摘要 (3)第1章概述 (5)1.1 设计背景 (5)1.2系统方案论证与设计 (5)第2章系统硬件设计 (7)2.1 系统总电路的设计 (7)2.1.1系统的总框图 ................................................................................................2.1.2芯片的选择 (7)2.2最小系统设计 (9)2.2.1时钟电路的选择与设计 (10)2.2.2复位电路的选择与设计 .............................................. 错误!未定义书签。

基于AT89C51单片机的数字时钟设计

基于AT89C51单片机的数字时钟设计

摘要本文是基于AT89C51单片机数字时钟的设计,阐述了数字时钟的设计思路,详细叙述了系统硬软件设计的具体过程。

数字时钟的设计过程在硬件与软件方面进行同步设计。

硬件部分主要由AT89C51单片机,LCD显示电路,复位电路,时钟电路,晶振电路以及报时电路。

采用AT89C51作为主控器件,用DS1302实现时钟功能,用LCD1602为显示器件。

通过DS1302直接读取时间和星期。

具有整点报时的功能。

关键词:数字时钟,AT89C51,LCD1602,DS1302一系统总体方案采用数字芯片DS1302计算日期,输出信号全数字化。

采用AT89C51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。

用LCD1602液晶显示芯片进行显示再加之键盘及报时等。

总体方案框图如下:图1 系统总体方案框图二系统硬件设计2.1 控制器本部分采用AT89C51作为主控制器。

AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

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

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

[1]下面介绍主要引脚功能功能如下:1 I/O接口MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图2。

P0.0~P0.7 P0口8位双向口线;P1.0~P1.7 P1口8位双向口线;P2.0~P2.7 P2口8位双向口线;P3.0~P3.7 P2口8位双向口线。

基于AT89C51芯片制作的数字时钟

基于AT89C51芯片制作的数字时钟

龙岩学院课程设计报告课程设计题目基于AT89C51芯片制作的数字时钟班级05 电本(2)班姓名邵利威学号2005040324任务书一.任务利用(AT89C51芯片)单片机定时器制作数字时钟二.设计目的通过课程设计的教学实践,进一步学习、掌握单片机应用系统的有关知识,加深了解单片机的工作原理。

初步掌握简单单片机应用系统的设计、制作、调试的方法。

提高动手实践能力、提高科学的思维能力。

要求三.设计要求1)数码管显示当前的时间值;2)时间精度为0.5秒,由时、分之间的分隔点的闪烁体现;3)两个按钮,一个用作“时”的设定另一个做“分”的设定;四.制作要求1.掌握单片机最小系统的电路原理图;2.硬件的焊接、连接;3.独立编辑、编译软件;数字时钟目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。

要知道当前的时间,必须先开灯,故较为不便。

现在市场上也出现了一些电子钟,它以四只LED数码管来显示时分,与传统的以指针显示秒的方式不同,违背了人们传统的习惯与理念,而且这类电子钟一般是采用大型显示器件,只适用于银行、车站等公共场所,且外观设计欠美观,很少进入百姓家庭。

此外无论是机械钟、石英钟还是电子钟,都价格比较昂贵。

针对以上存在的问题,我们设计了一款采用LED显示器件显示的电子时钟,经济实惠,且正确度高,又便于在无照明的情况下查看时间。

是一款真正价廉物美的电子时钟。

1 系统主要功能电子钟的主要功能有:四只LED数码管显示当前时分;两个按钮,一个用作“时”的设定另一个做“分”的设定。

长按按钮可进行快进调节。

2 系统的硬件构成及功能电脑钟的原理框图如图1所示。

它由以下几个部件组成:单片机89C2051、电源、时分显示部件以及显示驱动部分。

时分显示采用静态扫描,用74LS164驱动数码管显示时分,显示驱动的数据输出和时钟信号输出都通过AT89C2051的P1.0和P1.1口控制。

电源部分:电源部分有二部分组成。

AT89C51单片机的数字时钟设计课件

AT89C51单片机的数字时钟设计课件
零。在对各单元计数的同时,把它们的值放到存储器 单元的制定位置
Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time
四、设计方案
4、按键处理模块
;扫描界限寄存器
MOV 51H,#05H
;6位显示
MOV R0,#50H
ACALL SEND7219
MOV 50H,#0AH
;亮度寄存器,其值为
00~0EH,设置为0AH
Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time
Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time
四、设计方案
3、定时器计数器T0中断服务程序
定时器计数器T0用于时间计时,选择方式1,重复 定时,定时时间设为20MS,定时时间到则溢出中断, 计50次则对秒单元加1,秒单元加到60则对分单元加 1,同时秒单元清零。分单元加到60的时候,则对时 单元加1,同时分单元清零,时单元加到24的时候则 对时单元清零,标志一天时间计满,此时所以单元清
CLR C LOP1: MOV R1,#08H
MOV A,@R0 LOP2: RLC A
MOV DIN,C SETB CLK CLR CLK DJNZ R1,LOP2 INC R0 DJNZ R4,LOP1 SETB LOAD RET

at89c51单片机课程设计_数字电子时钟

at89c51单片机课程设计_数字电子时钟

课程设计课程名称 : 单片机课程设计单片机课程设计单片机电子时钟题目名称 : 单片机电子时钟学 院 :电气工程及其自动化 专 业 : 电气工程及其自动化金鱼 姓 名 : 金鱼学 号 :指导教师 :中断服务程序3、定时器/计数器T0中断服务程序T0用于计时,选中方式一,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加一。

秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元,标 加一,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。

在对各单元计数的同时,把他们的值放到存储器单元的指定位置。

流程图如下:4、按键处理模块、按键处理模块按键设置为:如果没有按键吗,则时钟正常走时。

现场保护,现场保护,重置初值,重置初值,启动下一个50ms是开始开始显示单元清T0、T1设为16位计数模式位计数模式允许T0中断中断调用显示子程序调用显示子程序进入功能程序进入功能程序按下键否按下键否开始开始中断返回中断返回50ms 计数器加一计数器加一秒单元加一,50ms 计数器清0分单元加一,秒单元清0时单元加一,分单元清0时单元清050ms 计数器=20?秒单元=60?分单元=60?时单元=24?主程序流程图主程序流程图T0中断服务程序中断服务程序NONONONO当按下K0键时,进入调分状态,时钟停止走动;按K1和K2按键可以进行加一和减一操作;继续按K0键可以分别进行分和小时的调整;最后按K0键启动计时。

键启动计时。

5、汇编语言程序、汇编语言程序ORG 0000HLJMP ST ARTORG 000BHLJMP INIT0主程序开始ST ART: MOV R0,#70H ;主程序开始MOV R7,#0CHINIT: MOV @R0,#00HINC R0DJN Z R7,INITMOV 72H,#10 ;对连字符进行装值对连字符进行装值MOV 75H,#10MOV TMOD,#01H ;选择定时器/计数器T0的方式1MOV TL0,#0B0H ;对低位赋初值对低位赋初值MOV TH0,#03CH ;高位赋初值高位赋初值SETB EASETB ET0SETB TR0ST ART1: LCALL SCANLCALL KEYSCANSJMP ST ART1子程序DL1MS: MOV R6,#14H ;延时1子程序DL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1RETDL20MS: ACALL SCAN ;延时20ms子程序子程序ACALL SCANACALL SCAN数码管显示程序开始RET ;数码管显示程序开始SCAN: MOV A,78HMOV B,#0AHDIV AB ;时间秒的十位送给A,时间秒的个位送BMOV 71H,A ;时间秒要显示的十位时间秒要显示的十位时间秒要显示的个位MOV 70H,B ;时间秒要显示的个位MOV A,79HMOV B,#0AHDIV AB ;时间分的十位送给A,时间分的个位送B时间分要显示的十位送地址MOV 74H,A ;时间分要显示的十位送地址时间分要显示的个位送地址MOV 73H,B ;时间分要显示的个位送地址MOV A,7AHMOV B,#0AHDIV AB ;时间时的十位送给A,时间时的个位送B时间时显示的十位送地址MOV 77H,A ;时间时显示的十位送地址时间时要显示的个位送地址MOV 76H,B ;时间时要显示的个位送地址MOV R1,#70HMOV R5,#0FEHMOV R3,#08H数码管的显示程序SCAN1: MOV A,R5 ;数码管的显示程序MOV P2,AMOV A,@R1MOV DPTR,#TAB对字段表取值显示MOVC A,@A+DPTR ;对字段表取值显示MOV P0,AMOV A,R5LCALL DL1MSINC R1MOV A,R5RL AMOV R5,ADJNZ R3,SCAN1MOV P2,#0FFHMOV P0,#0FFHRET ;"0~9"和"-"的字段表的字段表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH;定时/计数器T0中断程序中断程序INIT0: PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0 ;50ms是否到20次,没有到就继续执行50ms的延时的延时 MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0 ;一秒的延时是否计到60次,没有就继续执行次,没有就继续执行 MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AH次,没有就CJNE A,#18H,OUTT0 ;60分钟的延时是否计到24次,没有就继续执行程序继续执行程序MOV 7AH,#00OUTT0:SETB ET0 ;启动定时器T0POP PSWPOP ACCRETI;按键处理程序按键处理程序KEYSCAN:CLR EA有按键按下则跳转到子程序JNB P1.0,KEYSCAN0 ;P1.0有按键按下则跳转到子程序有按键按下则跳转到子程序JNB P1.1,KEYSCAN1 ;P1.1有按键按下则跳转到子程序有按键按下则跳转到子程序JNB P1.2,KEYSCAN2 ;P1.2有按键按下则跳转到子程序KEYOUT: SETB EARET的延时消抖KEYSCAN0:LCALL DL20MS ;20ms的延时消抖JB P1.0,KEYOUT松手就往下执行程序松手就往下执行程序判断按键是否松手,W AIT0: JNB P1.0,W AIT0 ;判断按键是否松手,INC 7CHMOV A,7CHCLR ET0CLR TR0按下第一次和第二次对时、分选定CJNE A,#03H,KEYOUT ;按下第一次和第二次对时、分选定MOV 7CH,#00 ;按下第三次时就启动计时按下第三次时就启动计时SETB ET0SETB TR0SJMP KEYOUTKEYSCAN1:LCALL DL20MS ;按键加一的程序按键加一的程序JB P1.1,KEYOUTW AIT1: JNB P1.1,W AIT1MOV A,7CH如果功能键按下则对时加一调整CJNE A,#02H,KSCAN11 ;如果功能键按下则对时加一调整INC 79H则清零CJNE A,#3CH,KEYOUT ;如果加到60则清零MOV 79H,#00SJMP KEYOUT如果功能键是按下第KSCAN11:INC 7AH ;如果功能键是按下第二次则对分进行加一调整二次则对分进行加一调整MOV A,7AHCJNEA,#18H,KEYOUT MOV7AH,#00 SJMPKEYOUT KEYSCAN2:LCALL DL20MS ;延时消抖程序延时消抖程序JBP1.2,KEYOUT W AIT2: JNB P1.2,W AIT2 ;判断是否放开按键判断是否放开按键MOVA,7CH CJNE A,#02H,KSCAN21 ;如果功能键是按下第一次对时进行减一如果功能键是按下第一次对时进行减一 DEC79H MOVA,79H CJNE A,#0FFH,KEYOUT MOV79H,#3BH SJMPKEYOUT KSCAN21:DEC 7AH ;如果功能键是按下第二次则对分进行减一如果功能键是按下第二次则对分进行减一CJNEA,#0FFH,KEYOUT MOV7AH,#17H SJMPKEYOUT END6、软件编译环境:Keil uVision2确保生成确保生成 ". Hex"文件文件五、系统硬件电路的设计五、系统硬件电路的设计系统的硬件主要包括单片机芯片,数码管显系统的硬件主要包括单片机芯片,数码管显 示,按键开关电路,它的硬件电路如下图所示,单片机采用广泛使用的AT89C52AT89C52,系统时钟采用,系统时钟采用12MHz 的晶振,八个数码管显示,小时与分钟与秒钟间用短横线,采用共阳极七段式数码管,P0口为段选码输出端,P2口为位选码输出端。

课程设计基于单片机AT89C51的数字钟自动计时器

课程设计基于单片机AT89C51的数字钟自动计时器

学院单片机课程设计基于51单片机的数字时钟的设计学生姓名:学生学号:院(系):年级专业:指导教师:二〇一一年六月摘要本文设计的是一个基于单片机AT89C51的数字钟自动计时器,附有复位电路,显示电路,按键电路等。

复位电路是单片机的初始化操作,除正常的初始化外,为摆脱窘境,通过复位电路能够从头开始。

时钟电路采纳12MHz的晶振,作为系统的时钟源,具有较高的准确性。

在上电时LED显示器开始显示时刻并自动计时,在按键电路中只设置了三个按键,通过检测第一个按键按下的次数来实现调时、调分、调秒按键的作用,再通过LED显示器显示时、分、秒的改变。

而且在P1端口处接了一个指示灯,指示按键的按下。

在那个地址主若是以AT89C51单片机为核心操纵器,P0口接LED 显示模块,P1口接按键的,通过按键输入来操纵显示器的显示。

关键字AT89C51,LED显示器,数字时钟ABSTRACTThis design is based on AT89C51 single-chip digital clock auto-timer, with a reset circuit, display circuit, the key circuit. Reset circuit is a microcontroller initialization, in addition to the normal initialization, for the bail out through the reset circuit can begin again. 12MHz crystal clock circuit, as the system clock source, with high accuracy.LED display on power began to show time and automatic timing, set in the key circuit only three buttons, a button pressed by detecting the number of the first to achieve the transfer, the transfer points, transfer second key role, through the LED display hours, minutes, seconds to change. And then at the P1 port of a light to indicate the button press. Here is AT89C51 microcontroller as the core of the main controller, P0 port access the LED display module, P1 port access keys, keystrokes to control the monitor display.Keywords AT89C51, LED display, digital clock目录摘要 (Ⅰ)ABSTRACT (Ⅱ)No table of contents entries found.1 绪论课程设计要求1. 应用MCS-51单片机设计单片机实现数字钟(LED显示:小时、分、秒)仿真电路;2. 选用8位LED数码显示,实时显示时、分、秒,采纳组合按键实现时钟对表功能,能调时、调分、调秒;3. 要求显示范围最大到23小时59分59秒,用按时中断来实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AT89C51------数字钟
一、电路图
1、P0口显示小时,P2口显示分钟,P3口显示秒;
2、P0口因内部无上拉电阻,故接上外部上拉电阻;
3、P1-0口作时钟启动键,并可切换到时分调整。

二、C语言程序
#include<reg51.h>
unsigned char i,j,k,flag, ,second,hour,minute;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
void delay500ms()
{
for(i=0;i<100;i++)
{ for(j=0;j<150;j++)
{ TMOD=0x01;
TH0=0xD8;
TL0=0;
TR1=0;
}
}
}
void delay1s()
{
for(k=0;k<10;k++)
{for(i=0;i<42;i++)
{ for(j=0;j<176;j++)
{ TMOD=0x01;
TH0=0xD8;
TL0=0;
TR1=0;
}
}
}
}
void control()
{
unsigned char x=0;
if(P1_0==0)
{x=1;}
while(x)
{delay1s();
if(P1_1==0)
{
delay500ms();
if(P1_1==0)
{
hour++;
if(hour==24)
{
hour=0;
}
else
{P0=hour/10+(hour%10)*16;
}
}
}
if(P1_2==0)
{delay500ms();
if(P1_2==0)
{ minute++;
if(minute==60)
{ minute=0;}
else
{P2=minute/10+(minute%10)*16;
}
}
}
if(P1_0==0)
{x=0;
}
}
}
void begin()
{
P1=0xff;
if(P1==0xfe)
{flag=1;
}
}
void main()
{begin();
while(flag==1)
{
for(hour=0;hour<24;hour++)
{P0=hour/10+(hour%10)*16;
for(minute=0;minute<60;minute++)
{P2=minite/10+(minite%10)*16;
for(second=0;second<60;second++)
{P3=second/10+(second%10)*16;
delay1s();
control();
}
}
}
}
}
AT89C51----简单四人抢答器
一、电路原理图
1、以P1-0,P1-1,P1-2,P1-3作抢答键;
2、P0口接七段数码管作抢答显示
3、P3-0、P3-1分别为抢答器开关
二、C语言程序
#include<reg51.h>
int flag;
void display()
{
while(flag==0)
{
P1=0x0f;
switch(P1)
{
case 0x0e: P0=0xf9; flag=1; break; case 0x0d: P0=0x24; flag=1; break; case 0x0b: P0=0x30; flag=1; break; case 0x07: P0=0x99; flag=1; break; }
}
}
void kaishi()
{
P3=0xff;
while(P3==0xfe)
{
P0=0x40;
flag=0;
}
}
void tingzhi()
{
P3=0xff;
while(P3==0xfd)
{
P0=0x40;
break;
}
}
main()
{
while (1)
{
kaishi();
display();
tingzhi();
}
}
十字路口交通灯
一、电路原理图
1、东西方向各一个红绿灯,且状态相同,南北方向同之;
2、红、绿点亮时间为1Minute,
#include<reg51.h>
unsigned char i ,j,k,x;
delay1m()
{ for(i=0;i<60;i++)
{for(j=0;j<60;j++)
{for(k=0;k<255;k++)
TMOD=0x01;
TH0=0xD8;
TL0=0;
TR1=0;
}
}
}
void main()
{
loop:i=j=k=0;
x=1;
while(x)
{
for(i=0;i<1;i++) {
P2=0x01;
delay1m(); delay1m(); delay1m(); delay1m(); delay1m(); delay1m();
for(j=0;j<1;j++) {
P2=0x02;
delay1m();
for(k=0;k<1;k++) {
P2=0x04;
delay1m(); delay1m(); delay1m(); delay1m(); delay1m(); delay1m();
x=0;
goto loop;
}
}
}
}
}。

相关文档
最新文档