基于STC89C52的电子时钟说明书资料
STC89C52单片机用户手册
STC89C52RC单片机介绍STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
主要特性如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.工作电压:~(5V单片机)/~(3V单片机)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/,TxD/)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。
即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)PDIP封装STC89C52RC单片机的工作模式掉电模式:典型功耗<μA,可由外部中断唤醒,中断返回后,继续执行原程序空闲模式:典型功耗2mA正常工作模式:典型功耗4Ma~7mA掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备STC89C52RC引脚图STC89C52RC引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(~,39~32引脚):P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
STC89C52单片机用户手册
STC89C52RC单片机介绍STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择.主要特性如下:•增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
•工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)•工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz•用户应用程序空间为8K字节•片上集成512字节RAM•通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
•ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片•具有EEPROM功能•具有看门狗功能•共3个16位定时器/计数器。
即定时器T0、T1、T2•外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒•通用异步串行口(UART),还可用定时器软件实现多个UART•工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)•PDIP封装STC89C52RC单片机的工作模式•掉电模式:典型功耗〈0。
1μA,可由外部中断唤醒,中断返回后,继续执行原程序•空闲模式:典型功耗2mA•正常工作模式:典型功耗4Ma~7mA•掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备STC89C52RC引脚图STC89C52RC引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0~P0。
7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。
基于STC89C52单片机的电子时钟设计(带程序)
河南机电高等专科学校基于51单片机的电子时钟设计目录绪论 (1)概述 (1)研究目的 (1)第1章设计要求与方案论证 (2)1.1 设计要求 (2)1.2 系统基本方案选择和论证 (2)1.2.1 单片机芯片的选择方案和论证 (2)1.2.2 显示模块选择方案和论证 (2)1.2.3 时钟芯片的选择方案和论证 (3)1.3 电路设计最终方案决定 (3)第2章主要元件介绍 (4)2.1 STC89C52介绍 (4)2.1.1 STC89C52主要功能及PDIP封装 (4)2.1.2 STC89C52引脚介绍 (4)2.1.3 STC89C52最小系统 (5)2.2 DS1302时钟芯片介绍 (6)2.2.1 DS1302概述 (6)2.2.2 DS1302引脚介绍 (7)2.2.3 DS1302使用方法 (7)2. 3 1602字符液晶介绍 (9)2.3.1 1602液晶概述 (9)2.3.2 1602引脚介绍 (10)2.3.3 1602字符液晶使用方法 (10)第3章系统硬件设计 (13)3.1 电路设计框图 (13)3.2 系统硬件概述 (13)第4章系统的软件设计 (13)4.1程序概述 (13)4.2延时函数 (2)4.3 对DS1302读写操作函数 (3)4.3.1 向DS1302写数据 (3)4.3.2 从DS1302读数据 (3)4.4 显示函数 (4)4.4.1向1602液晶中写一个指令 (4)4.4.2向液晶写数据 (4)4.4.3初使化1602液晶 (5)4.4.4 如何在液晶上显示时间、日期及周 (5)4.5按键函数 (6)4.5.1 12/24小时显示模式切换键 (8)4.5.2 功能键函数 (10)4.5.3 调整键函数 (12)4.5.4确定键 (16)4.6 主函数 (17)总结 (18)致谢 (19)参考文献 (20)绪论概述时间,对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。
STC89C52单片机用户手册
STC89C52单片机用户手册一、概述STC89C52 单片机是一款高性能、低功耗的 8 位微控制器,具有丰富的片内资源和强大的功能,广泛应用于各种电子设备和控制系统中。
二、主要特点1、增强型 8051 内核,指令代码完全兼容传统 8051 单片机。
2、工作电压范围宽,可在 38V 55V 之间正常工作。
3、片内集成 8K 字节的 Flash 程序存储器,可反复擦写 1000 次以上。
4、 512 字节的片内数据存储器(RAM)。
5、拥有 32 个可编程的 I/O 口,方便连接外部设备。
6、 3 个 16 位定时器/计数器,可用于定时、计数和脉冲宽度测量等功能。
7、 8 个中断源,包括 2 个外部中断、3 个定时器中断和 2 个串行口中断,具有两级中断优先级。
8、全双工串行通信接口(UART),可方便地与其他设备进行通信。
三、引脚功能1、 VCC:电源正极,接+5V 电源。
2、 GND:电源地。
3、 P0 口:8 位漏极开路双向 I/O 口,作为地址/数据总线分时复用口。
4、 P1 口:8 位准双向 I/O 口,具有内部上拉电阻。
5、 P2 口:8 位准双向 I/O 口,作为高 8 位地址总线。
6、 P3 口:8 位准双向 I/O 口,具有第二功能。
例如,P30 为串行输入口(RXD),P31 为串行输出口(TXD)等。
四、存储结构1、程序存储器STC89C52 单片机的程序存储器空间为 8K 字节,地址范围为0000H 1FFFH。
用于存放用户编写的程序代码。
2、数据存储器数据存储器分为内部数据存储器和外部数据存储器。
内部数据存储器包括低 128 字节的 RAM(地址范围为 00H 7FH)和高 128 字节的特殊功能寄存器(SFR,地址范围为 80H FFH)。
外部数据存储器最大可扩展至 64K 字节。
五、时钟与复位1、时钟电路STC89C52 单片机可以使用内部时钟和外部时钟。
内部时钟通过在XTAL1 和 XTAL2 引脚之间连接晶振和电容来产生时钟信号。
1_7798690_课程设计:基于单片机AT89C52电子时钟课程设计说明书
单片机课程设计报告一、课程设计内容1)显示时间功能,能正确显示“时”、“分”。
2)显示日期功能,能显示“月”、“日”。
3)闹钟功能,可按设定的时间闹时。
4)具有校准月、日、时、分的功能。
二、元器件介绍本次课程设计我使用的单片机是至强51蓝精灵版,而实验中使用到的关键元器件主要有:STC85C52RC,4*4按键,蜂鸣器,数码管等。
下面是STC85C52RC的简单介绍:AT89C52是本设计最核心的部件,它是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8K bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。
AT89C52单片机适用于许多较为复杂的控制应用场合。
下图是AT89C52最常见的一种封装。
如上图所示,AT89C52共有40个管脚,其各个功能如下:·VCC ——运行时加+5V·VSS ——接地·XTAL1 ——振荡器反相放大器及内部时钟发生器的输入端·XTAL2 ——振荡器反相放大器的输出端·RST ——复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。
·EA/VPP ——片外程序存储器访问允许信号。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接Vcc端),CPU则执行内部程序中的指令。
·LAE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址允许锁存)输出脉冲用于锁存地址的低8位位数字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
基于STC89C52的数字电子钟设计
uchar shi=11,fen=59,miao=50, dshi=12,dfen=1;
uchar bjcs;
void delay(uchar ms);
void delay(uchar ms)
{
uchar i,j;
for(i=ms;i>0;i--)
10、系统所需的元器件清单....................................................................... 19
11、检测阶段............................................................................................... 19
led_port = 0x55; /*将数据输出到LED端口,显示为7.5.3.1号灯亮*/
delay(230);
delay(230);
delay(230);
delay(230); /*延时*/
shi=0;
while(!KEY1)
{
LED_DisplayTimer(shi/10,shi%10,fen/10,fen%10);
}
}
}
else if(KEY2==0)
{
delay(10);
if(KEY2==0)
{
fen++;
if(fen==60)
fen=0;
while(!KEY2)
{
LED_DisplayTimer(shi/10,shi%10,fen/10,fen%10);
按键设计流程图
原理图:
基于STC89C52和时钟芯片DS12887的多功能电子钟设计的说明书
基于DS12C887的多功能电子钟设计的说明书摘要本系统名为基于DS12C887的多功能电子钟,以STC公司的STC89C5xRC 系列单片机作为主控芯片。
采用了实时时钟芯片DS12C887,走时精确,具有闹钟等多种功能。
采用128×64 LCD作为显示输出,可以同时显示时间、日期、室温、节日等内容,可视化的图形菜单便于操作。
同时采用了ISD4002语音芯片,实现了语音报时功能。
一、方案的设计与选择方案一:DS1302+数码管这届电子设计大赛其实在暑假前就已经开始,当时决定参赛的我在大赛的指定课题中选择了电子钟这个题目,并尝试制作。
我当时选择的方案就是DS1302+数码管。
在暑假中我完成了这个设计。
基于数码管+DS1302设计的多功能电子钟应该说这个方案在电子钟制作中应用最多。
DS1302的使用非常方便,而且价格也不贵。
而数码管显示的也很清楚,特别是显示时间时很直观。
但在制作过程中我发现了这个方案的一些问题。
DS1302是不自带电池,虽然可以通过外接纽扣电池来达到断电走时继续的目的,但在实际调试中会发现这是比较困难的。
因为DS1302上电需要复位,而复位就会把正确的走时清零。
如果不复位,DS1302会出现各种各样的问题,如不走时、读出乱码等。
要解决这个问题需要增加如2402等存储器,上电后先存储时间值,再复位。
这么做无疑增加了电路设计和软件设计的复杂度。
而使用数码管显示,虽然价格便宜,显示效果好,但多位的数码管在动态扫描的时候会出现闪烁。
如果少用几位,用切换的方法查看日期,温度等信息又显得麻烦。
方案二:DS12C887+液晶屏采用DS12C887作为实时时钟芯片,128×64 LCD作为显示输出。
DS12C887不仅自带锂电池而且内部带有晶振,无需外接,使用方便。
走时精度较高,带有自动闰年补偿功能。
128×64 LCD显示的信息量很大,可以同时显示时间、日期、室温、节日等信息,而且和单片机的接口简单。
STC89C52中文手册
海纳电子资讯网:www.fpga-arm.com 为您提供各种IC中文资料 STC89C51RC / RD+ 系列单片机中文指南 ---高可靠 ---超低价 ---低功耗 ---无法解密STC89C51RC,STC89LE51RCSTC89C52RC,STC89LE52RCSTC89C53RC,STC89LE53RCSTC89C54RD+,STC89LE54RD+STC89C58RD+,STC89LE58RD+STC89C516RD+,STC89LE516RD+附录A: 为什么少数用户的普通8051程序烧录后,不能运行附录B: STC89LE516AD,STC89LE516X2附录C: STC89C51RC / RD+ 系列单片机 ISP (DIY)附录D: ISP Demo(演示版)软件(*.hex)及通信协议附录E: 如何实现运行中自定义下载,无仿真器时方便调试附录F: Keil C51高级语言编程的软件如何减少代码长度国内技术支援:宏晶科技(深圳) www.MCU-Memory.com support@dsp-memory.comUpdate date: 2005-2-16 型 号 最高时钟 频 率HzFlash程序存储器RAM数据存储器降低EMI看门狗双倍速P4口ISPIAPEEPROM数据指针串口UART中断源优先级定时器A/D向下兼容Winbond向下兼容Philips向下兼容Atmel 5V 3VSTC89C51 RC0-80M4K512√√√√√√1K+ 21ch+843W78E51P89C51STC89C52 RC0-80M8K512√√√√√√1K+ 21ch+843W78E52P89C52STC89C53 RC0-80M15K512√√√√√√ 21ch+843W78E54P89C54AT89C55STC89C54 RD+0-80M16K1280√√√√√√8K+ 21ch+843W78E54P89C54AT89C55STC89C58 RD+0-80M32K1280√√√√√√8K+ 21ch+843W78E58P89C58AT89C51RCSTC89C516 RD+0-80M63K1280√√√√√√ 21ch+843W78E516P89C51RD2AT89C51RD2STC89LE51 RC0-80M4K512√√√√√√1K+ 21ch+843W78LE51AT89LV51STC89LE52 RC0-80M8K512√√√√√√1K+ 21ch+843W78LE52AT89LV52STC89LE53 RC0-80M14K512√√√√√√ 21ch+843W78LE54AT89LV55STC89LE54 RD+0-80M16K1280√√√√√√8K+ 21ch+843W78LE54AT89LV55STC89LE58 RD+0-80M32K1280√√√√√√8K+ 21ch+843W78LE58AT89LV51RCSTC89LE516RD+0-80M63K1280√√√√√√ 21ch+843W78LE516P89LV51RD2AT89LV51RD2STC89LE516AD0-90M64K512√√√ 21ch+643√需要A/D转换时才选用,8路8位精度在P1.0 - P1.7口,17 个机器周期一次STC89LE516X20-90M64K512√√√√ 21ch+643√ 本应用技术手册是针对有一定8051系列(MCS-51)单片机编程基础的用户编写的。
基于STC89C52单片机的LED显示电子钟设计
目录1 绪论 (3)1.1 课题研究背景 (3)1.2 课程设计的意义 (4)1.3 设计任务和要求 (4)2 系统方案 (4)2.1 显示模块的选择 (4)2.2 硬件结构 (5)2.3 设计方案 (5)3 元件选择 (6)3.1 AT89C51介绍 (6)3.2 74LS138介绍 (9)3.3 74LS373介绍 (9)3.4芯片74LS245 (10)3.5芯片74LS04 (11)3.6 LED点阵显示器 (12)4 系统硬件电路设计 (13)4.1晶振电路设计 (13)4.2复位电路设计 (14)4.3 时分调节电路设计 (14)4.4 按键电路的设计 (15)4.5单片机最小系统的设计 (15)5 系统软件内容 (16)5.1 软件流程图 (16)5.2 程序分析 (19)5.3编程软件简介 (19)6 电路仿真 (20)6.1 Proteus软件介绍 (20)6.2时钟系统 PROTUES仿真 (20)6.3 电路板制作 (21)7 总结 (21)致谢 (22)参考文献 (23)附件一:电路原理图 (24)附件二:Proteus仿真调试图 (25)附件三:PCB板图和仿真图 (26)摘要单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式控制等优点。
随着社会的发展和科技的进步,以单片机最小系统为基础的电路设计在实际生活具有广泛的应用,所以熟悉单片机的原理和使用对于我们走向社会具有重要意义。
本文就课程设计为基础,详细介绍了单片机LED点阵电子时钟系统的设计结构与原理:由AT89C51单片机为基础,74LS373数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时。
通过安装与调试,证明该电路设计合理,电子时钟功能强大,具有可观的市场前景。
关键词:AT89C51;LED点阵;电子时钟1 绪论1.1 课题研究背景LED点阵显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。
STC89C52单片机用户手册 2
知识储备:STC89C52RC单片机介绍STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
主要特性如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。
即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)PDIP封装STC89C52RC单片机的工作模式掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序空闲模式:典型功耗2mA正常工作模式:典型功耗4Ma~7mA掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备STC89C52RC引脚图STC89C52RC引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。
基于STC89C52单片机时钟的设计与实现
基于STC89C52单片机时钟的设计与实现1. 本文概述本文主要介绍了基于STC89C52单片机和DS1302时钟芯片的电子时钟设计与实现。
该电子时钟系统具有年月日等基本时间显示功能,并集成了秒表计时处理、闹钟定时、蜂鸣器和温度显示等附加功能。
系统采用LCD1602作为液晶显示器件,通过单片机对时钟和温度等数据进行处理后传输至LCD进行显示。
用户可以通过按键对时间进行调节,同时,单片机还通过扩展外围接口实现了温度采集等功能。
本文的目标是提供一个功能丰富、易于操作的电子时钟系统,为学习和应用单片机技术提供一个实用的案例。
2. 系统设计要求在设计基于STC89C52单片机的时钟系统时,我们需要考虑以下几个关键的设计要求:时钟系统必须具备基本的时间显示功能,能够以小时、分钟和秒为单位准确显示当前时间。
系统还应支持设置闹钟功能,允许用户设定特定的时间点进行提醒。
系统需要保证长时间稳定运行,具备良好的抗干扰能力,确保在各种环境下都能准确计时。
还应具备一定的容错能力,即使在操作失误或外部干扰的情况下,也能保证系统的正常运行。
用户界面应简洁直观,便于用户快速理解和操作。
时钟的显示部分应清晰可见,即使在光线较暗的环境下也能保持良好的可视性。
同时,设置和调整时间的操作应简单易懂,方便用户进行日常使用。
在设计时钟系统时,应考虑到未来可能的功能扩展,如温度显示、日期显示等。
系统的设计应具有一定的灵活性和扩展性,以便在未来可以轻松添加新的功能模块。
鉴于时钟系统可能需要长时间运行,能耗是一个重要的考虑因素。
设计时应选择低功耗的元件,并优化电源管理策略,以延长电池寿命或减少能源消耗。
在满足上述所有要求的同时,还需要控制成本,确保产品的市场竞争力。
这可能涉及到对单片机的编程优化、选择性价比高的外围元件等措施。
通过满足上述设计要求,我们可以确保开发出一个功能完善、稳定可靠、用户友好、易于扩展、节能环保且成本效益高的STC89C52单片机时钟系统。
基于STC89C52单片机的电子时钟研究
基于STC89C52单片机的电子时钟研究一、本文概述本文旨在研究和探讨基于STC89C52单片机的电子时钟设计与实现。
STC89C52单片机作为一种高效、稳定的微控制器,在嵌入式系统设计中具有广泛的应用。
通过对其内部资源的合理配置与外部硬件电路的设计,我们可以构建出功能丰富、性能稳定的电子时钟系统。
本文将详细介绍电子时钟的硬件电路设计、软件编程、功能实现以及性能优化等方面的内容,旨在为相关领域的研究者和实践者提供有益的参考和借鉴。
在硬件电路设计方面,我们将围绕STC89C52单片机的核心功能,设计包括时钟显示、按键输入、时钟校准等功能的电路模块。
在软件编程方面,我们将采用C语言进行程序编写,实现时钟的计时、显示、控制等功能。
我们还将对电子时钟的功耗、稳定性、精度等性能进行优化和提升,以满足实际应用的需求。
通过本文的研究和探讨,我们期望能够为STC89C52单片机在电子时钟设计中的应用提供有益的思路和方法,同时也为推动嵌入式系统设计和技术发展做出一定的贡献。
二、STC89C52单片机在电子时钟设计中的应用优势STC89C52单片机在电子时钟设计中具有显著的应用优势,其独特的特性和功能使其成为电子时钟设计的理想选择。
STC89C52单片机具有较高的集成度和可靠性,能够在较小的空间内实现复杂的功能,并且具有良好的稳定性,保证了电子时钟的长期稳定运行。
STC89C52单片机具有丰富的I/O接口和扩展能力,方便与其他硬件模块进行连接和通信。
这使得电子时钟设计更加灵活,可以根据实际需求添加各种功能模块,如温度显示、日期提醒等,提高了电子时钟的实用性和便利性。
STC89C52单片机还具有低功耗的特点,能够在保证性能的同时降低能耗,延长电子时钟的使用寿命。
其编程简单易懂,便于开发人员快速上手,降低了开发成本和时间。
STC89C52单片机在电子时钟设计中具有集成度高、可靠性好、扩展能力强、低功耗和编程简单等优势,使得其在电子时钟领域得到了广泛应用。
#基于STC89C52单片机时钟
基于STC89C52单片机时钟1.1602显示。
第一行显示年月日,第二行显示时分秒。
2.开机显示个性的画面,约5S后进入时间显示界面。
3.汉字显示“年”“月”“日”。
4.时间可调。
时间调节由三按键控制。
键一控制调节位,按下键一后,时钟停止走时,出现光标,每按一次光标移向下一个调节位,按五次后,退出调节模式。
键二为家键,键三为减键。
只有在模式调节下才起作用。
5.该时钟程序仅仅只是时钟功能的实现,走时并不精确。
或者说是参考模型,可以在此基础上进行优化和更改。
按键部分可进行大优化,为了在实验板上做实验,而实验板为矩阵键盘。
所以按键定义了四个端口。
#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit LCD_RS=P1^0; // 定义寄存器选择sbit LCD_RW=P1^1; // 定义读写信号线sbit LCD_EN=P1^2; // 定义定义使能端sbit key1=P0^0;sbit key2=P0^4;sbit key3=P0^5;sbit key4=P0^6;void delay_ms(uint xms); //延时函数声明bit lcd_busy(); //忙检查函数声明void lcd_wcmd(uchar cmd); //写指令寄存器IR函数声明void lcd_wdat(uchar dat); //写数据寄存器DR函数声明void lcd_clr(); // 清屏函数声明void lcd_init(); // LCD初始化函数声明void key_mode();void year_moon_day();uchar dis_buf[19];uchar dis[]={'0','1','2','3','4','5','6','7','8','9'};uchar code name1[]={"help yourself!"};uchar code name2[]={"hold on!"};uchar year_month_day[3][8]={{0x04,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0},//年{0x0f,0x09,0x0f,0x09,0x0f,0x09,0x13,0x00},//月{0x0e,0x0a,0x0a,0x0e,0x0a,0x0a,0x0e,0x02} //日};uchar dingshi=0;//50ms计数uchar flag=0;//按键控制变量char miao=55,fen=59,shi=23;char moon=12,day=31;int year=2012;uchar leap;uchar shan;//控制时分的闪烁位uchar key_value;/****************LCD显示部分******************/ //读忙bit lcd_busy(){bit result;LCD_RS=0;LCD_RW=1;LCD_EN=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P2&0x80);LCD_EN=0;return result;}//清屏void lcd_clr(){lcd_wcmd(0x01);delay_ms(5);}//写指令void lcd_wcmd(uchar cmd){while(lcd_busy());// delay_ms(2);LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P2=cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;}//写数据void lcd_wdat(uchar dat) {while(lcd_busy()); // delay_ms(2);LCD_RS=1;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P2=dat;_nop_();_nop_();_nop_();_nop_();LCD_EN=1;_nop_();_nop_();_nop_();_nop_();LCD_EN=0;}//显示初始化void lcd_init(){// delay_ms(15);lcd_wcmd(0x38); //显示模式为16*2 5*7点阵8位数据delay_ms(5);lcd_wcmd(0x38);delay_ms(5);lcd_wcmd(0x01); //清屏delay_ms(5);lcd_wcmd(0x06); //移动光标delay_ms(5);lcd_wcmd(0x0c); //开光标delay_ms(5);}void delay_ms(uint xms){uchar i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}void lcd_conv(uchar shi,fen,miao){dis_buf[0]=dis[shi/10];dis_buf[1]=dis[shi%10];dis_buf[2]=0x3a;dis_buf[3]=dis[fen/10];dis_buf[4]=dis[fen%10];dis_buf[5]=0x3a;dis_buf[6]=dis[miao/10];dis_buf[7]=dis[miao%10];}void lcd_conv_year(uint year,uchar moon,day){dis_buf[8]=dis[year/1000];dis_buf[9]=dis[(year%1000)/100];dis_buf[10]=dis[(year%100)/10];dis_buf[11]=dis[year%10];dis_buf[12]=1;dis_buf[13]=dis[moon/10];dis_buf[14]=dis[moon%10];dis_buf[15]=2;dis_buf[16]=dis[day/10];dis_buf[17]=dis[day%10];dis_buf[18]=3;}void lcd_dis(){lcd_conv(shi,fen,miao);lcd_conv_year(year,moon,day);lcd_wcmd(0x00|0x80);for(i=8;i<19;i++)lcd_wdat(dis_buf[i]);lcd_wcmd(0x40|0x80);for(i=0;i<8;i++)lcd_wdat(dis_buf[i]);}//自定义字符图形void lcd_wCGROM() //将汉字写入CGROM{uchar i,j;for(i=1;i<4;i++){for(j=0;j<8;j++){lcd_wcmd(0x40+i*8+j);lcd_wdat(year_month_day[i-1][j]);}}}/*******************按键部分**********************/ //键盘扫描void keyscan(){key1=0;delay_ms(20);if(key2==0||key3==0||key4==0){delay_ms(20);if(key2==0){flag++;if(flag==1){lcd_wcmd(0x0e); //有光标,但是不闪delay_ms(1);lcd_wcmd(0xc0+1); //时delay_ms(1);TR0=0;}if(flag==2)lcd_wcmd(0xc0+4); //分delay_ms(1);}if(flag==3){lcd_wcmd(0x80+3);//年delay_ms(1);}if(flag==4){lcd_wcmd(0x80+6);//月delay_ms(1);}if(flag==5){lcd_wcmd(0x80+9);//日delay_ms(1);}if(flag>5){flag=0;lcd_wcmd(0x0c); //关光标delay_ms(1);TR0=1;}}if(key3==0)key_value=2;if(key4==0)key_value=3;while(key2==0||key3==0||key4==0);}}void keyprocess(){switch(flag){case 1:{if(key_value==2){shi++;if(shi>23)shi=0;lcd_dis();lcd_wcmd(0xc0+1);delay_ms(1);}if(key_value==3){shi--;if(shi<0)shi=23;lcd_dis();lcd_wcmd(0xc0+1);delay_ms(1);}}break;case 2:{if(key_value==2){fen++;if(fen>59)fen=0;lcd_dis();lcd_wcmd(0xc0+4);delay_ms(1);}if(key_value==3){fen--;if(fen<0)fen=59;lcd_dis();lcd_wcmd(0xc0+4);delay_ms(1);}}break;case 3:{if(key_value==2){year++;if(year>9999)year=2000;lcd_dis();lcd_wcmd(0x80+3);delay_ms(1);}if(key_value==3){year--;if(year<2000)year=9999;lcd_dis();lcd_wcmd(0x80+3);delay_ms(1);}}break;case 4:{if(key_value==2){moon++;if(moon>12)moon=1;lcd_dis();lcd_wcmd(0x80+6);delay_ms(1);}if(key_value==3){moon--;if(moon<0)moon=12;lcd_dis();lcd_wcmd(0x80+6);delay_ms(1);}}break;case 5:{if(key_value==2){day++;if(moon==2&&((year-2000)%4==0)&&day>29)day=1;if(moon==2&&((year-2000)%4!=0)&&day>28)day=1;if((moon==1||moon==3||moon==5||moon==7||moon==8||moon==10||moon==12)&&da y>31)day=1;if((moon==4||moon==6||moon==9||moon==11)&&day>30)day=1;lcd_dis();lcd_wcmd(0x80+9);delay_ms(1);}if(key_value==3){day--;if(moon==2&&((year-2000)%4==0)&&day<1)day=29;if(moon==2&&((year-2000)%4!=0)&&day<1)day=28;if((moon==1||moon==3||moon==5||moon==7||moon==8||moon==10||moon==12)&&da y<1)day=31;if((moon==4||moon==6||moon==9||moon==11)&&day<1)day=30;lcd_dis();lcd_wcmd(0x80+9);delay_ms(1);}}break;default :flag=0;}key_value=0;}/*********************走时部分**********************/void zoushi_inint(){TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;EA=1;ET0=1;}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(++dingshi>20){miao++;dingshi=0;if(miao>59){miao=0;fen++;if(fen>59){fen=0;shi++;if(shi>23){shi=0;year_moon_day();}}}}}//年月日void year_moon_day(){day++;if((year-2000)%4==0)leap=1;elseleap=0;if(day>28){switch(moon){case 1:if(day>31){day=1;}break;case 2:if(leap==1){if(day>29){day=1;moon++;}}else{day=1;moon++;}break;case 3:if(day>31){day=1;moon++;}break;case 4:if(day>30){day=1;moon++;}break;case 5:if(day>31){day=1;moon++;}break;case 6:if(day>30){day=1;moon++;}break;case 7:if(day>31){day=1;moon++;}break;case 8:if(day>31){day=1;moon++;}break;case 9:if(day>30){day=1;moon++;}break;case 10:if(day>31){day=1;moon++;}break;case 11:if(day>30){day=1;moon++;}break;case 12:if(day>31){day=1;moon++;}break;}if(moon>12){moon=1;year++;if(year>9999)year=2000;}}}void display() //开机个性化显示{uchar i;lcd_wcmd(0x00|0x80);i=0;while(i<14){lcd_wdat(name1[i]);i++;}lcd_wcmd(0x40|0x80);i=0;while(i<8){lcd_wdat(name2[i]);i++;}}void main(){int i,j;lcd_init();lcd_clr();delay_ms(5);display();for(i=0;i<5;i++)for(j=0;j<1000;j++){delay_ms(2);}lcd_clr();zoushi_inint();lcd_wCGROM();while(1){lcd_dis();delay_ms(5);keyscan();if(flag!=0){while(1){keyprocess();keyscan();if(TR0==1)break;}}}}。
基于STC89C52的电子时钟设计
目录1.前言12.整体设计方案 (1)3.硬件设计方案 (2)3.1复位电路 (2)3.2晶振电路 (3)3.3LED显示电路 (3)3.4按键输入电路 (4)3.5蜂鸣器电路 (4)4.软件设计方案 (5)4.1软件设计方法 (5)4.2系统软件设计思想 (6)4.3系统主程序 (6)4.4中断子程序 (7)4.4.1 定时器T0地中断程序设计 (7)4.4.2 定时器T1地中断程序设计 (7)4.5按键扫描子程序 (9)4.6调时、分、秒子程序 (9)4.7调节闹钟子程序 (10)5.调试与功能说明 (11)5.1硬盘调试 (11)5.2系统性能测试与功能说明 (12)5.3系统时钟误差分析 (12)5.4软件调试问题及解决 (12)6.设计总结 (12)参考文献 (13)附录1:多功能电子时钟原理图 (13)附录2:C语言源程序141.前言20世纪末,电子技术获得了飞速地发展,在其推动下,现代电子产品几乎渗透了社会地各个领域,有力地推动了社会生产力地发展和社会信息化程度地提高,同时也使现代电子产品性能进一步提高,产品更新换代地节奏也越来越快. 时间对人们来说总是那么宝贵,工作地忙碌性和繁杂性容易使人忘记当前地时间.忘记了要做地事情,当事情不是很重要地时候,这种遗忘无伤大雅.但是,一旦重要事情,一时地耽误可能酿成大祸.目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展.下面是单片机地主要发展趋势.单片机应用地重要意义还在于,它从根本上改变了传统地控制系统设计思想和设计方法.从前必须由模拟电路或数字电路实现地大部分功能,现在已能用单片机通过软件方法来实现了.这种软件代替硬件地控制技术也称为微控制技术,是传统控制技术地一次革命.单片机模块中最常见地是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时地装置,与机械式时钟相比具有更高地准确性和直观性,且无机械装置,具有更更长地使用寿命,因此得到了广泛地使用.数字钟是采用数字电路实现对.时,分,秒.数字显示地计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少地必需品,由于数字集成电路地发展和石英晶体振荡器地广泛应用,使得数字钟地精度,远远超过老式钟表, 钟表地数字化给人们生产生活带来了极大地方便,而且大大地扩展了钟表原先地报时功能.诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气地自动启用等,所有这些,都是以钟表数字化为基础地.因此,研究数字钟及扩大其应用,有着非常现实地意义.数字钟已成为人们日常生活中:必不可少地必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们地生活、学习、工作、娱乐带来极大地方便.由于数字集成电路技术地发展和采用了先进地石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域.2.整体设计方案多功能电子时钟地功能地电路具有实现显示时、分、秒,以(24小时)计时方式地功能;具有快速校准时、分、秒地其本功能;秒表/时钟功能地转换;具有整点报时地功能;还可以实现对时间地调整.由单片机、复位、时钟电路、晶振、LED数码管、按键、蜂鸣器组成.图1 时钟电路框图3.硬件设计方案3.1 复位电路单片机复位电路就好比电脑地重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部地程序从头开始执行.单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞地时候,按下复位按钮内部地程序自动从头开始执行. 单片机在启动时都需要复位,以使CPU 及系统各部件处于确定地初始状态,并从初态开始工作.89系列单片机地复位信号是从RST 引脚输入到芯片内地施密特触发器中地.当系统处于正常工作状态时,且振荡器稳定后,如果RST 引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU 就可以响应并将系统复位.单片机系统地复位方式有:手动按钮复位和上电复位.本课程设计采用手动按键复位.手动按钮复位需要人为在复位输入端RST 上加入高电平(图(3)).一般采用地办法是在RST 端和正电源Vcc 之间接一个按钮.当人为按下按钮时,则Vcc 地+5V 电平就会直接加到RST 端.手动按钮复位地电路如图所示.由于人地动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位地时间要求.复位电路时钟电路 电源电路 AT89C51 LED 数码管显示电路 按键输入电路蜂鸣器电路图2 复位电路3.2 晶振电路51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作地情况下可以采用更高频率地晶振,51单片机最小系统晶振地振荡频率直接影响单片机地处理速度,频率越大处理速度越快.单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需地时钟频率,单片机晶振提供地时钟频率越高,那么单片机运行速度就越快,单片接地一切指令地执行都是建立在单片机晶振提供地时钟频率.单片机晶振地作用是为系统提供基本地时钟信号.通常一个系统共用一个晶振,便于各部分保持同步.有些通讯系统地基频和射频使用不同地晶振,而通过电子调整频率地方法保持同步.图3 晶振电路3.3 LED显示电路LED显示器工作方式有两种:静态显示方式和动态显示方式.静态显示地特点是每个数码管地段选必须接一个8位数据线来保持显示地字形码.当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止.这种方法地优点是占用CPU时间少,显示便于监测和控制.缺点是硬件电路比较复杂,成本较高.动态显示地特点是将所有位数码管地段选线并联在一起,由位选线控制是哪一位数码管有效.选亮数码管采用动态扫描显示.所谓动态扫描显示即轮流向各位数码管送出字形码和相应地位选,利用发光管地余辉和人眼视觉暂留作用,使人地感觉好像各位数码管同时都在显示.动态显示地亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中地.一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们地段选线连在一起,而各自地公共端称为位选线.显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮.图4 LED显示电路3.4 按键输入电路独立式按键采用每个按键单独占有一个I/O口地结构,这是最简单地键盘输入设计.当按下和释放按键时,输入到I/O口端地电平是不一样地,单片机程序根据不同端口地电平变化判断是否有键按下以及是哪一个键被按下.独立式键盘地原理简单,每个按键地电路是独立地,占用一条数据线.这种接法占用硬盘资源大,适合该课程设计地电子时钟电路.图5 独立按键3.5 蜂鸣器电路蜂鸣器是一种一体化结构地电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件.蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成.有地压电式蜂鸣器外壳上还装有发光二极管.多谐振荡器由晶体管或集成电路构成.当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出 1.5~2.5kHZ地音频信号,阻抗匹配器推动压电蜂鸣片发声.压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成.在陶瓷片地两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起.电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成.接通电源后,振荡器产生地音频信号电流通过电磁线圈,使电磁线圈产生磁场.振动膜片在电磁线圈和磁铁地相互作用下,周期性地振动发声.图6 蜂鸣器电路4.软件设计方案4.1 软件设计方法系统地软件设计也是工具系统功能地设计.单片机软件地设计主要包括执行软件地设计和监控软件地设计.单片机地软件设计通常要考虑以下几个方面地问题:根据软件功能要求,将系统软件划分为若干个相对独立地部分,设计出合理地总体结构,使软件开发清晰、简洁和流程合理;●培养良好地编程风格,如考虑结构化程序设计、实行模块化、子程序化.既便于调试、链接,又便于移植和修改;●建立正确地数学模型,通过仿真提高系统地性能,并选取合适地参数;●绘制程序流程图;●合理分配系统资源;●为程序加入注释,提高可读性,实施软件工程;●注意软件地抗干扰设计,提高系统地可靠性.4.2 系统软件设计思想本系软件设计中,利用单片机定时器设计时间计时处理,采用单片机内部地T0定时器溢出中断来实现,工作在T0方式下,定时250微妙,则连续中断4000次即为一秒,得到了我们所需时间地最小单位该设计用C51编写程序,由于汇编语言地移植性比较差,而C语言则比较灵活.许多子函数都可以直接移植过去.在程序中除了有主函数外还包含许多子函数,如延时函数、按键扫描函数、初始化函数、时间显示函数、设定闹钟显示函数、调时、分、秒函数、功能切换函数、秒表功能函数.4.3 系统主程序在主控程序循环中主要工作为扫描是否有按键,若有按健则做相应地功能处理,同时也扫描显示器显示时间数据,并检查所设置地时间是否到了.时间计时处理程序是等过了1s后,则更新时间数据,将最新地时、分、秒地数据转换为数字数据并显示在八段数码管上.图7 系统主程序流程图4.4 中断子程序中断子程序地主要功能:提供时间基准和快速按键调时功能.4.4.1 定时器T0地中断程序设计定时器T0中断提供时间基准.当T0连续中断4000次时,即为一秒,此时秒加一;当秒值为60时,分钟加一,同时秒清零。
基于STC89C52的电子时钟的设计(有闹钟调时间)
单片机课程设计基于STC89C52的电子时钟的设计电路图程序:#include <reg52.h>sbit beep=P1^0; //蜂鸣器sbit l1=P1^1; //第一个红灯sbit l2=P1^2; //第一个绿灯sbit w4=P1^4; //第1位sbit w3=P1^5; //第2位sbit w2=P1^6; //第3位sbit w1=P1^7; //第4位sbit k1=P3^2; //按键1 +sbit k2=P3^3; //按键2 —sbit k3=P3^6; //按键3 时分调整sbit k4=P3^7; //按键4 功能选择秒表闹钟时间unsigned int a,b,c,d,e,f,num,num1,num2,num3,sum;unsigned char code table[]={0xc0 ,0xf9,0xa4,0xb0,0x99, //15-i0x92,0x82,0xf8,0x80,0x90}; //0011 1111 1100 0000 void keyscan();void sound();void time();void display(); // 时间显示void display2(); // 秒表显示void delay(unsigned int t){unsigned int i,j;for(i=t;i>0;i--)for(j=110;j>0;j--);}void init(){num=45;num2=59;num3=11;TMOD=0x11;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET1=1;TR1=1;beep=0;delay(300);beep=1;delay(500);}void main(){init();while(1){keyscan();display();time();}}void sound(){beep=0;delay(100);beep=1;}void time(){if(num==59) //整点报时 2 miao {beep=0;}else if(num==0) //整点报时{beep=1;}}void keyscan() //按键检测{if(k3==0){TR1=0;sum++;delay(30);}switch(sum){case 1: if(k1==0){num2++;sound(); //蜂鸣叫while(!k1)if(num2==60){num2=0;}break;}if(k2==0){num2--;sound(); //蜂鸣叫while(!k2)if(num2==-1){num2=59;}break;}break;case 2: if(k1==0){num3++;sound(); //蜂鸣叫while(!k1)if(num3==24){num3=0;}break;}if(k2==0){num3--;sound(); //蜂鸣叫while(!k2)if(num3==-1){num3=23;}break;}break;case 3: sum=1;TR1=1;break;}if(k4==0){P0=table[0];w1=0;w2=0; //初始化w3=0;w4=0;while(1){display2();}}}void display(){a=num/10;b=num%10;c=num2/10; //时分秒的个位和十位d=num2%10;e=num3/10;f=num3%10;P0=table[e];w1=0; //第1位delay(2);w1=1;P0=table[f];w2=0; //第2位delay(2);w2=1;P0=table[c];w3=0; //第3位delay(2);w3=1;P0=table[d];w4=0; //第4位delay(2);w4=1;}void display2() {P0=table[e];w1=0; //第1位delay(2);w1=1;P0=table[f];w2=0; //第2位delay(2);w2=1;P0=table[c];w3=0; //第3位delay(2);w3=1;P0=table[d];w4=0; //第4位delay(2);w4=1;}void T1_time()interrupt 3{TH1=(65536-45872)/256;TL1=(65536-45872)%256;num1++;if(num1==20){l1=~l1;num1=0;num++;if(num==60){l2=~l2;num=0; //秒到60跳到0num2++;if(num2==60){num2=0; //分到60跳到0num3++;if(num3==13) //时位到13 跳到0{num3=1;}}} //num记秒num2计分num3计时}}。
STC89C52单片机用户手册
STC89C52RC单片机介绍STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
主要特性如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.工作电压:~(5V单片机)/~(3V单片机)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/,TxD/)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。
即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)PDIP封装STC89C52RC单片机的工作模式掉电模式:典型功耗<μA,可由外部中断唤醒,中断返回后,继续执行原程序空闲模式:典型功耗2mA正常工作模式:典型功耗4Ma~7mA掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备STC89C52RC引脚图STC89C52RC引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(~,39~32引脚):P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉工程大学课程设计(学年论文)说明书课题名称:基于单片机的时钟电路设计专业班级:制冷01班学生学号:学生姓名:学生成绩:指导教师:课题工作时间:2015.12.01 至2015.12.11目录绪论 3第一章设计任务与要求 4 第二章设计依据 2 第三章控制系统性能说明11 第四章硬件设计11 第五章软件设计12绪论单片微型计算机(Single-Chip Microcomputer),简称单片机,就是将微处理器,存储器,和RAM,定时器/计数器,中断系统,输入/输出接口(I/O接口),总线和其他多种功能器件集成在一块芯片上的微型计算机。
单片机的出现是近代计算机发展史上的一个重要里程碑,单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。
通用计算机的主要特点是大存储容量,高数数值计算,不必兼顾控制功能,不断完成操作系统,它在数据处理,模拟仿真,人工智能,图像处理,多媒体,网络通讯中得到了广泛应用。
单片机的发展也是一段辉煌的历程!从1974年美国仙童(Fairchild)公司研制了世界上第一台单片F8,到现在32位单片机,单片机的顶级产品,具有较高的运算速度。
同时,随着半导体工艺技术的发展及系统设计水平的提高,单片机不断产生新的变化和进步,单片机与微机系统的差距越来越小,甚至难以辨认。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机应用的市场前景是非常广阔的。
第一章、课程设计的任务与要求1、任务用LED数码管构成电子时钟电路。
采用24h记时方式,日期和时间用6位数码管显示。
要求设计制作出硬件电路,编制并调试出程序。
主要技术指标显示范围:年份99年,如2001-2099;显示格式:日期显示如2005年12月20日显示为051220;时间显示如12点30分55秒显示为123055;显示位数:6位;时钟误差:24小时误差3~5秒;8段LED数码管作正常、调时和省电(不显示LED 数码管)程序流程程序的编制可采用查询方式,也可以采用中断方式。
2、设计最低要求设计人员应完成说明书和主要设计图纸。
(1)设计说明书①设计依据摘录依据性资料中与本课程设计有关的主要内容,其它方面提供的本课程设计资料。
如芯片的功能、传感器对单片的要求、环境及抗干扰级别等等。
②设计范围根据设计任务书的要求,说明本制冷系统的控制设计内容及与有关部件的功能。
③系统的设计控制系统硬件方框图,控制系统程序方框图,元件编号表及参数表等。
其中,元件编号表要表明元件型号、规格、耗电、信号特点、其他所需技术数据。
被控系统的技术参数如:风机的风量、风压、出口方向、转速及电动机功率;室内外温度控制范围、电动机功率;实现功率元件控制的方案。
(2)设计图纸绘制控制系统原理图,图中的线路连接及元件标注必需正确无误。
(3)程序设计图纸要求1、原理图1~2张。
2、图标可按以下规格:第二章设计依据完成此次课程设计涉及到的元件:STC879C52单片机,DS1302时钟芯片,74HC573锁存器,数码显示管,键盘。
STC89C52单片机标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
74HC573锁存器数据锁存功能:当输入的数据消失时,在芯片的输出端,数据仍然保持;74HC573是拥有八路输出的透明锁存器,输出为三态门,是一种高性能硅栅CMOS器件。
SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。
锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。
DS1302时钟芯片DS1302是时钟芯片,拥有计时作用。
可以对年月日、时分秒、星期计时。
可以用单片机往DS1302里面写入时间进行时间设置,也可以用单片机从DS1302中读取时间,读出来的时间也可以放在数码管上显示。
数字时钟方案一:本方案完全用软件实现数字时钟。
原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。
该方案具有硬件电路简单的特点。
但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
数字时钟方案二:本方案用美国DALLAS公司推出的DS1302实时时钟芯片。
该芯片内部带有31字节静态RAM,采用SPI三线接口与CPU 进行同步通信,并可一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒,分,时,日,星期,月和年,且具有闰年自动补偿功能。
运用汇编语言来控制STC89C52单片机来实现动态数码显示,实时调时,省电模式等功能。
本方案中STC89C52单片机时整个工作过程的核心,是整个设计的控制者,它控制了脉冲时序的产生,DS1302时钟芯片的启动和停止,数码管的亮灭。
方案选择:尽管方案一的实现,硬件电路简单,但是每次单片机执行程序,时间被重新赋同一个值,无法体现时钟实时的特点,故选择方案二作为数字时钟的最终方案数码管显示方案一:静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8 位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
数码管显示方案二:动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O 口,降低了能耗。
方案选择:从节省I/O口和降低能耗出发,本设计采用方案二。
最终总方案确定:通过编写汇编程序控制STC89C52单片机,利用STC89C52单片机实现对DS1302时钟芯片初始时间的设定,计时功能的启动和停止,数码管动态显示信号的控制,对键盘的反应,来实现6位数码管实时显示时间,时间调节,省电等功能。
第三章、控制系统性能说明STC89C52控制器STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
主要特性8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间;可直接使用串口下载;A T89S52单片机:8K字节程序存储空间;256字节数据存储空间;自带2KB的EEPROM存储空间;器件参数1.增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051.2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8. 具有EEPROM 功能第四章、硬件设计STC89C52参数:1. 增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[1]2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率范围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用I/O 口(32 个),复位后为:P0/P1/P2/P3 是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电阻。
7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8. 具有EEPROM 功能9. 共3 个16 位定时器/计数器。
即定时器T0、T1、T210.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒11. 通用异步串行口(UART),还可用定时器软件实现多个UART12. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)13. PDIP封装引脚图:DS1302参数:1、可以采用双电源供电(主电源和备用电源),工作电压宽达2.0~5.5V。