LED点阵显示电子钟课设.docx
《LED点阵显示电子钟课设.docx》由会员分享,可在线阅读,更多相关《LED点阵显示电子钟课设.docx(23页珍藏版)》请在冰豆网上搜索。
LED点阵显示电子钟课设
LED点阵显示电子钟课设
部门:
xxx
时间:
xxx
制作人:
xxx
整理范文,仅供参考,可下载自行修改
嵌入式系统设计课程设计
题目基于AT89S52LED点阵显示电子钟设计
班级11级工业电气
学号
姓名
指导教师白龙
牡丹江师范学院
2018年11月15日
嵌入式课程设计指导书
课程名称:
嵌入式课程设计
学时数:
2周
学分数:
开课院、系<部)、教研室:
物理与电子工程学院电子信息教研室
执笔人:
白龙
编写时间:
2018.11.15
一、设计目的
<1)完成点阵显示电子钟设计电路的设计,包括电源电路、单片机控制电路、驱动电路、显示电路;
<2)掌握LED点阵显示原理,并完成主程序的编写。
二、设计任务
设计一个基于AT89S52LED点阵显示电子钟
三、基本内容与要求
1、课题内容:
设计一种基于AT89S52单片机的LED点阵显示时钟。
2、要求如下:
<1)、时钟的显示由LED点阵构成。
<2)、时间能够由按键调整,误差小于1S。
<3)、能正确显示时间,上电显示为12点。
四、设计资料及有关规定
1.H型全桥式电路和L298构成电机驱动
2.主控制器可以采用AT89S52或STC89C52
五、设计成果要求
设计论文
六、物资准备
1.到图书馆、物理系资料室查阅相关资料
2.到实验室准备芯片作好实验准备
七、主要图式、表式
各功能模块电路图要求用电路绘图软件画出
八、时间安排
2018.11.1设计动员,发放设计任务书
2018.11.2-2018.11.3查阅资料、拟定设计程序和进度计划
20183.11.4-2018.11.10确定设计方案、实验、画图、编写设计说明书
2018.11.11-2018.11.13完成设计,交指导教师审阅
2018.11.14成绩评定
九、考核内容与方式
考核的内容包括:
学习态度;技术水平与实际能力;论文(计算书、图纸>撰写质量;创新性;采取审定与答辩相结合的方式,成绩评定按百分制记分。
b5E2RGbCAP
十、参考书目
1.单片机原理及接口技术陈毅刚
2.新概念51单片机C语言教程郭天祥
3.单片机原理与应用及C51程序设计
牡丹江师范学院本科学生课程设计任务书
课程名称:
嵌入式课程设计
课程设计题目
基于AT89S52LED点阵显示电子钟设计
院、系
物理与电子工程学院
专业
电气工程及其自动化
年级
2018
已知参数和设计要求:
<1)、时钟的显示由LED点阵构成。
<2)、时间能够由按键调整,误差小于1S。
<3)、能正确显示时间,上电显示为12点。
学生应完成的工作:
1、汇编或C51语言程序设计;
2、程序调试;
3、在Proteus上进行仿真成功,进行实验板下载调试;
目前资料收集情况<含指定参考资料):
[1]王兆安.电力电子技术.第四版.北京:
机械工业出版社,2003
[2]刘胜利现代高频开关电源实用技术电子工业出版社2001.9
[3]苏玉刚电力电子技术重庆大学出版社2004.3
[4]叶慧贞开关稳压电源北京:
国防工业出版社1990
课程设计的工作计划:
2018.11.1设计动员,发放设计任务书
2018.11.02-2018.11.03查阅资料、拟定设计程序和进度计划
2018.11.04-2018.11.10确定设计方案、实验、画图、编写设计说明书
2018.11.11-2018.11.13完成设计,交指导教师审阅
2018.11.14成绩评定
任务下达日期2018年11月1日完成日期2018年11月14日
指导老师<签名)学生<签名)
1 绪论2
1.1LED点阵显示电子钟的背景及意义2
2.系统总体方案选择与说明2
2.1硬件结构2
2.2控制思想3
3.各单元硬件设计说明及计算方法3
3.174HC138说明3
3.274HC573说明4
3.38*8点阵显示屏说明5
4.软件设计与说明6
4.1设计流程图如下:
6
4.2设计程序8
5.调试结果与必要的调试说明18
6.使用说明18
致谢20
参考文献21
基于AT89S52LED点阵显示电子钟设计
1 绪论
1.1LED点阵显示电子钟的背景及意义
在日常生活中,大家见到的都是数码管制作的电子钟,LED点阵时钟则不多见。
用单片机控制的LED点阵显示电子钟具有结构简单、性能可靠、成本低廉、价格便宜和显示灵活等优点,其应用前景广阔。
之所以使用LED点阵电子屏显示,是与它本身所具有的优点分不开的[1]。
这些优点概括起来就是:
亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。
在实际应用中的显示屏由于成本和可靠性的因素常采用一种动态扫描的显示方法。
本文设计的是一个室内用5块8×8点阵时钟显示屏,数字采用静止显示方式。
电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟走时更准确、性能更稳定。
由于用LED点阵显示数据,在夜晚或黑暗的场合里也可以使用,具有一定的实用性。
随着人们生活环境的不断改善和美化,在许多场合都可以看到LED点阵显示电子钟。
在城市的主要营业场所、车站、码头等公共场所使用LED数字电子钟已经成为一种时尚[2]。
p1EanqFDPw
2.系统总体方案选择与说明
本方案基于AT89S52单片机设计的,还用到13块74HC573和1块74HC138芯片,8快8*8LED点阵,原理比较简单,但所有硬件成本较高,不适应商业用途。
一个是硬件结构的设计,一个是控制的总体思想。
在本小节中将对这两部分内容进行简单的叙述DXDiTa9E3d
2.1硬件结构
根据工程的功能和要求,可采用AT89S52单片机作为核心控制器。
LED点阵电子钟系统组成包括:
显示电路模块、显示驱动电路模块、按键电路模块以及电源模块。
框图如图2.1所示:
RTCrpUDGiT
图2.1系统结构图
2.2控制思想
LED点阵电子钟程序主要功能是屏幕显示时间稳定,精确。
所以按照分块设计的方法可以把程序分为主程序、显示程序、调整程序。
主程序主要是用来初始化系统和控制各个子程序之间执行的顺序。
显示程序用来完成数字在LED点阵上的显示,时钟的显示是使用8块8×8点阵显示屏。
5PCzVD7HxA
3.各单元硬件设计说明及计算方法
3.174HC138说明
74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。
将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。
HC138按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。
两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24线译码器不需外接门。
扩展成32线译码器,只需要接一个外接倒相器。
在解调器应用中,赋能输入端可用作数据输入端。
jLBHrnAILg
图3.174H138引脚图
3.274HC573说明
74HC573包含八进制3态非反转透明锁存器,[span]是一种高性能硅门CMOS[span]器件。
[span]SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。
xHAQX74J0X
图3.274HC573内部原理图
3.38*8点阵显示屏说明
图3.3为8×8点阵LED外观及引脚图,其等效电路如图2.3所示,只要其对应的DC、DR轴顺向偏压,即可使LED发亮。
例如如果想使图3.3左上角LED点亮,则DC8=1,DR1=0即可。
应用时限流电阻可以放在DC轴或DR轴。
8×8点阵LED外观及引脚如图3.3。
LDAYtRyKfE
图3.38×8LED点阵引脚图
图3.3.2为8×8点阵LED等效电路,由此可以看出点阵是用64个LED组成的。
点阵LED扫描法介绍:
从图3.3中可以看出,8×8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。
频率必须大于128赫兹,周期小于7.8毫秒即可符合视觉暂留要求。
此外一次驱动一列或一行(8盏LED>时需外加驱动电路提高电流,否则LED亮度会不足。
Zzz6ZB2Ltk
图3.3.28×8点阵LED等效电路
4.软件设计与说明
4.1设计流程图如下:
Y
图4-1设计流程图
4.2设计程序
#include
voiddisplay(unsignedchar,unsignedchar,unsignedchar>。
dvzfvkwMI1
sbita_138=P1^0。
//138
sbitb_138=P1^1。
sbitc_138=P1^2。
sbitkey1=P1^3。
//key1选择,key2加,key3减
sbitkey2=P1^4。
sbitkey3=P1^5。
sbitwei1=P2^0。
//六个点阵选择位,weix=0位选通
sbitwei2=P2^1。
sbitwei3=P2^2。
sbitwei4=P2^3。
sbitwei5=P2^4。
sbitwei6=P2^5。
unsignedcharnum_138,shi,fen,miao,num_miao,key_flag。
rqyn14ZNXI
unsignedcharcodedigittab[10][8]={
{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},//0
{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2
{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3
{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4
{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},//5
{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},//6
{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8
{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}//9
}。
voiddelay(unsignedcharxms>
{
unsignedchari,j。
for(i=xms。
i>0。
i-->
for(j=110。
j>0。
j-->。
}
voidkey_scan(>
{
if(key1==0>
{
delay(3>。
if(key1==0>
{
TR0=0。
key_flag++。
if(key_flag>=3>