- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 51
LED点阵数字钟与温度计
系统设计方案
本LED点阵数字钟基于STC89C52RC单片机设计,使用5片6*7的LED点阵作为显示屏。通过设计系统可以完成显示时间,日期,并增加了用DS18B20温度传感器显示温度的功能。同时,通过程序的改变可以为点阵数字钟扩充例如闹钟,字幕滚屏等功能。
LED点阵数字钟通过单片机来完成计时,设定,温度测量等功能。显示部分通过74HC595通用移位寄存器,完成点阵屏幕与单片机连接从而完成显示部分的功能。其系统组成框图如下:
按键1
按键1
按键2
按键3
STC89C52RC
DS13022
74HC595
LED点阵
图1
单元电路设计
1.MCU控制部分
单片机的时钟周期由外部12M晶振,时间信息则通过DS1302产生。DS1302通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。从而完成断电计时的功能。其中DS1302采用32.768KHz的晶振提供时钟周期(原理图见附录1)
2.LED点阵显示部分
74HC595通用移位寄存器并行输出端具有输出锁存功能。与单片机连接简单方便,只须三个I/O口即可。而且通过芯片的Q7引脚和SER引脚,可以级联。点阵屏幕由5片6*7的LED点阵组成。采用74HC595来实现时钟的动态显示。点阵屏幕段选码由4片74HC595控制,段选数据由74HC595的SER引脚串行输入,由于输出使能时钟RCLK并接在一起,因此,4片74HC595并行输出端同时输出。而5个点阵位选信号也并接在一起,因此,一次可以同时点亮4列此过程类似于静态显示。每片74HC595并行输出端并接到点阵的每一位的引脚,用于扫描输出,此过程类似于动态扫描过程。此方法运用4片74HC595,7条位选信号,从而实现LED点阵的显示.其中位选控制端为通过经三极管放大后的P2口输出信号控制。(原理图见附录2)
3.电源部分
采用普通电源接口和USB接口,可以使用5V,400mA电源供电,亦可使用电脑USB供电。预设备用电源纽扣电池接口,保证时钟断电后继续走时。
程序设计
定义字符
#include reg52.h
#define uchar unsigned char
#define uint unsigned int
//74HC595管脚定义
sbit S_DIO = P3^0;
sbit S_CLK = P3^1;
sbit R_CLK = P3^2;
//按键管脚定义
sbit KEY_1 = P1^1;
sbit KEY_2 = P1^2;
sbit KEY_3 = P1^0;
//蜂鸣器管脚定义
sbit BEEP = P2^7;
//DS18B20管脚定义
sbit DQ = P3^4;
uchar temp_value;
unsigned char tempL=0; //设全局变量
unsigned char tempH=0;
unsigned int sdata;//测量到的温度的整数部分
unsigned char xiaoshu1;//小数第一位
unsigned char xiaoshu2;//小数第二位
unsigned char xiaoshu;//两位小数
bit fg=1; //温度正负标志,等于0时为负数
//DS1302管脚定义
sbit T_CLK = P3^5;
sbit T_IO = P3^6;
sbit T_RST = P3^7;
sbit ACC0 = ACC^0;
sbit ACC1 = ACC^1;
sbit ACC2 = ACC^2;
sbit ACC3 = ACC^3;
sbit ACC4 = ACC^4;
sbit ACC5 = ACC^5;
sbit ACC6 = ACC^6;
sbit ACC7 = ACC^7;
bit distime,disdate,disyear,distweek,diswendu,setyear,setdate,settime,setalarm,setweek;
unsigned char code Bmp[7][4]={
原创力文档


文档评论(0)