51单片机数码管显示时钟(C语言)
- 格式:wps
- 大小:39.50 KB
- 文档页数:7


51单片机作的电子钟程序在很多地方已经有了介绍, 对于单片机学习者而言这个程序基本上是一道门槛,掌握了电子钟程序, 基本上可以说51单片机就掌握了80%。常见的电子钟程序由显示部分, 计算部分, 时钟调整部分构成。
时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒 ,分钟加1,10秒位回0。依次类推,时钟最大的显示值为23小时59分59秒。这里只要确定了1秒的定时时间, 其他位均以此为基准往上累加。
开始程序定义了秒, 十秒, 分, 十分,小时, 十小时,共6位的寄存器, 分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。
6个数码管分别显示时、分、秒,一个功能键,可以切换调整时分秒、增加数值、熄灭节电等功能全部集一键。
以下是部分汇编源程序,购买我们产品后我们用光盘将完整的单片机汇编源程序和烧写文件送给客户。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 中断入口程序 ;; (仅供参考)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ORG 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 ;串行中断程序返回
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
单片机技术课程设计
数字电子钟
学院:
班级:
姓名:
学号:
教师:
摘 要
电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用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
时钟电路图:
*■11
PCB板:
酱时井務ft是用诵m-pdfMerisi 口叵因
Fjr 齐舱 C :s ® 工细理沖 缶皿ndm - * TfS ' 4' 包田 U i > 'ir ft ZS:M Z fH钟些fl是用说町-Pdf Wirrcf闻礒雜
sbit dis_ bitl
sbit dis_ bit2
sbit dis_ bit3
sbit dis_ bit4
sbit dis_ bit5
sbit dis_ bit6
sbit ledl _bit
sbit led2 ! bit =P2A7; II定义数码管控制口
=P2A6; II定义数码管控制口
=卩2八4; II定义数码管控制口 =卩2八3; II定义数码管控制口 =P2A1; II定义数码管控制口 =P2A0; II定义数码管控制口 =P2A2; II定时LED勺控制口 =P2A5; II定时LED勺控制口
单片机程序:
/*===================================================================
调试要求:
1. MCU:AT89S52 芯片或 AT89C52
2. 晶振:12MHz
功能:多功能时钟+温度计
/
#inelude
#inelude vintrins . h>
訂开始 LJ-雲匕® 务如1痒3月计ttVl. •呈T』d"吐拠席射■ w耳pg文宇■[豹… SS时軽件思冃说
#define uehar
#define uint unsigned char
unsigned int
sbit s1_bit =P1A0; // 定义S1 控制口
sbit s2_bit =P01; // 定义 S2控制口
sbit s3_bit =P02; // 定义 S3控制口
sbit dq_ds18b20 =P3A3;// 定义控制 DS18B20
51单片机数码管时钟电路的设计
设计一个51单片机数码管时钟电路,让我们开始吧。
一、设计思路
该数码管时钟电路的设计主要包括以下几个方面:
1.使用DS1302时钟芯片获取真实时间;
2.使用I2C总线方式将DS1302时钟芯片与51单片机连接;
3.使用74HC595芯片驱动数码管显示;
4.使用按键控制时钟的设置和调节;
5.使用蜂鸣器发出报警声;
6.使用LED指示灯显示时钟状态。
二、硬件设计部分
数码管显示部分:
1.使用4位共阳数码管作为时分显示器,使用1位共阳数码管作为秒显示器;
2.使用8片74HC595芯片级联起来,将时分秒数据传输到数码管显示;
3.设置共阳数码管的通阳管为P0口,设置74HC595的DS(串行数据输入)、SH(上升沿锁存)、STCP(74HC595的8位锁存输出)引脚接到P1.2、P1.3、P1.4端口;
4.设置8个控制引脚接到P1.5~P1.12端口。 实时时钟部分:
1.使用DS1302时钟芯片连接到P2.0、P2.1、P2.2、P2.3、P2.4、P2.5、P2.6、P2.7端口;
2.设置时钟复位引脚接到P0.1端口,时钟传输使能引脚接到P0.2端口。
按键输入部分:
1.设置按键S1接到P3.2端口,按键S2接到P3.3端口;
2.设置按键的上拉电阻,使其处于高电平状态;
3.设置按键的下降沿触发外部中断,以便检测按键的按下事件。
其他部分:
1.设置蜂鸣器接到P0.0端口,并使用普通电阻限流;
2.设置LED指示灯接到P0.7端口。
三、软件设计部分
1.初始化函数:初始化P0、P1、P2、P3口的状态;
2.DS1302驱动函数:包括初始化DS1302芯片和读写DS1302寄存器的函数;
3.74HC595驱动函数:包括初始化74HC595芯片,以及向74HC595芯片发送8位数据的函数;
4.数码管显示函数:将时分秒数据按位转换为对应的数字和状态,并调用74HC595驱动函数显示; 5.按键检测函数:检测按键的按下事件,并根据按键事件的不同触发不同的操作;