基于单片机AT89C51控制的LED点阵屏显示时钟课程设计报告

课程设计报告

课程名称:LED点阵显示时钟

专业班级:

课程设计参与人员:

指导老师:

宁波技师学院

20##年9月26日

摘      要

文章论述了基于AT89C52单片机的LED点阵显示电子钟设计控制系统, 并且可以对其进行设置。基于AT98C52单片机的LED点阵显示电子钟具有结构简单,性能靠,价格低和灵活等优点,因此得到了广泛应用。LED点阵显示屏是利用发光二极管或像素组成的平面式显示屏。它具有发光效率高,使用寿命长,组态灵活等特点。本文设计的是用48×8点阵显示屏制作的室内时钟,数字采用静止显示方式。电子钟是一种利用数字电路来显示分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。本文介绍了LED点阵显示电子钟的发展历史及其应用范围。

目                录

1.总体设计方案及思路……………………………………4

2.硬件设备及电路图………………………………………5

3.所用的材料清单…………………………………………10

4.单片机汇编程序及解释…………………………………13

5.组员分工…………………………………………………27

      5.1倪坤  .单片机汇编程序的设计 …………………27         

5.2倪翔  .原理图及PCB的绘制……………………27

5.3采佳浩.硬件设计思路和控制思路设计…………28  6课程报告的总结及调试程………………………………29

1总体的设计方案及思路:

由中断产生的秒、分、小时数据,经转换子程序转换成适应LED点阵显示屏显示的数据,并通过单片机的输出功能输入到LED点阵显示屏,再通过显示扫描程序,显示出时钟的走时时间。用计时程序来完成计时,数时功能,再通过单片机综合控制将数字显示出来。由此可见,通过AT89C51单片机的控制功能,完全可以实现LED点阵显示电子钟。

1.1硬件结构:

根据项目的功能和要求,可采用AT89C51单片机作为核心控制器。LED点钟电子钟系统组成包括:晶振电路模块、复位电路模块、显示电路模块、显示行驱动电路模块、蜂鸣器电路模块、按键电路模块以及电源模块。

1.2控制思路:

    LED点阵电子钟程序主要功能是屏幕显示时间稳定,精确。所以按照分块设计的法可以把程序分为主程序、显示程序、计时程序,在后面还会加入闹钟程序。主程序主要是用来初始化系统和控制各个子程序之间执行的顺序。显示程序用来完成字在LED点阵上的显示,时钟的显示是使用4块8×8点阵显示屏。计时程序用来完成计时,数时功能。闹钟程序用来完成时钟的闹钟功能。

2硬件设备图及电路图:

主要用到的硬件有:AT89C52单片机,8×8点阵屏,74LS373锁存器,74LS138译码器,12MHz晶振。  下有 8×8点阵显示屏图,8×8点阵LED外观及引脚图,以及其等效电路图,只要其对应的DC、DR轴顺向偏压,即可使LED发亮。例如如果想使下图中左上角LED点亮,则DC8=1,DR1=0即可。应用时限流电阻可以放在DC轴或DR轴。

8×8点阵LED外观及引脚如图:

   上图为8×8点阵LED等效电路,由此可以看出点阵是用64个LED组成的。点阵LED扫描法介绍:从上图图中可以看出,8×8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。频率必须大于128赫兹,周期小于7.8毫秒即可符合视觉暂留要求。此外一次驱动一列或一行(8盏LED)时需外加驱动电路提高电流,否则LED亮度会不足。

2.1点阵屏等效示意图:

2.2ISIS仿真示意图:

2.3protel原理图及PCB:

2.4 硬件电路图设计:

  

 根据项目的功能和要求LED点钟电子钟硬件系统的主要模块包括:晶振电路模块、复位电路模块、显示电路模块、、按键电路模块。其中晶振电路和复位电路构成了单片机最小系统。晶振电路与复位电路构成的单片机最小系统用来完成计时功能,

以及对整个LED点阵显示电子钟的控制。显示电路用来实现LED点阵的显示。按键电路是一个必要的扩展电路,用来对电子钟时间进行调整,闹钟时间调整。

3.课程设计所用的材料清单:

3.1主要使用的芯片:

3.1.1 74LS373锁存器:

74LS373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74LS373芯片。

74LS373工作原理简述:1脚是输出使能(OE),是低电平有效,当1脚是高电平时,不管输入3、4、7、8、13、14、17、18如何,也不管11脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态)。当1脚是低电平时,只要11脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立呈现输入脚3、4、7、8、13、14、17、18的状态。  锁存端LE由高变低时,输

8位信息被锁存,直到LE端再次有效。当三态门使能信号OE为低电平时,三态门导通,允许Q0到Q7输出,OE为高电平时,输出悬空。


3.1.2 74LS138译码器:

74LS138为3线8线译码器,74LS138的工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B) )为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。74LS138功能是利用S1、/S2和/S可级联扩展成24线译码器,若外接一个反相器还可级联扩展成32线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。

74LS138有三个附加的控制端S1、/S2和/S3。当S1、/S2接低电平时,输出为高电平(S=1),译码器处于工作状态。否则,译码器被禁止,所有的输出端被封锁在高电平,如表所示。这三个控制端也叫做“片选”输入端,利用片选的作用可以将多片连接起来以扩展译码器的功能。带控制输入端的译码器又是一个完整的数据分配器。如果把作为“数据”输入端(在同一个时间),而将作为“地址”输入端,那么从送来的数据只能通过所指定的一根输出线送出去。这就不难理解为什么把叫做地址输入了。例如当S1=1、S2=0和S3=1时,门的输入端除了接至输出端的一个以外全是高电平,因此的数据以反码的形式从输出,而不会被送到其他任何一个输出端上。

3.1.3 AT89C51单片机:

微处理器采用AT89C52系列单片机,AT89C52单片机是这几年在我国非常流行的单片机,是一种带8K字节闪存器的高性能单片机,可擦除存储器可以反复擦除100次,具有低功耗,高性能的特点,并且可与工业标准的MSC-51指令集和输出管脚相兼容,对于本设计需要实现的功能,完全可胜任。LED点阵电子钟的设计主要是用AT89C52单片机进行控制,用12MHz的晶振来保证计时的精准性,用具有一定驱动能力的74LS373锁存器和74LS138译码器进行I/O口扩展,并在4块8×8点阵上显示。

3.1.4 其余材料

    电阻:10K*8

按钮开关:3个

无极电容:若干

有级电容:若干

晶体震荡器:1个

4单片机的程序及注释:

ORG 0000H

        LJMP MAIN

          ORG 0003H

          LJMP PINT0

          ORG 000BH

        LJMP INTT0        

          ORG 0013H

          LJMP PINT1

     

        ORG 0030H

MAIN:   MOV SP,#60H

        MOV TMOD,#01H

        MOV TL0,#0e0H

        MOV TH0,#0b1H

        MOV IE,#87H

        MOV 30H,#01H  ;时十位

        MOV 31H,#02H  ;时个位

        MOV 32H,#0AH  ;光标点位

        MOV 33H,#00H  ;分十位

        MOV 34H,#00H  ;分个位

        MOV 35H,#00H  ;秒十位

        MOV 36H,#00H  ;秒个位

          SETB IT0

          SETB IT1

          SETB PT0

        SETB TR0

LOOP0:  LCALL DISP

        LJMP LOOP0

INTT0:  MOV TL0,#0e0H

        MOV TH0,#0b1H

        PUSH ACC

        PUSH PSW

        INC 36H

        MOV A,36H

        CJNE A,#25,PLL

        MOV 32H,#0BH

PLL:    CJNE A,#50,ENDD      ;1S

        MOV 32H,#0AH

        MOV 36H,#00H

        INC 35H

        MOV A,35H

        CJNE A,#60,ENDd    ;分个位

        MOV 35H,#00H

        INC 34H

        MOV A,34H

        CJNE A,#0AH,ENDd    ;分个位

        MOV 34H,#00H

        INC 33H

        MOV A,33H

        CJNE A,#06H,ENDd    ;分十位

        MOV 33H,#00H

        INC 31H

        MOV A,30H

        CJNE A,#02H,END1

        MOV A,31H

        CJNE A,#04H,END1    ;时个位

        MOV 31H,#00H

        MOV 30H,#00H

END1:   MOV A,31H

        CJNE A,#0AH,ENDd    ;时个位

        MOV 31H,#00H

        INC 30H

ENDd:   POP PSW

        POP ACC

        RETI

DISP:   PUSH ACC

        PUSH PSW

        MOV A,30H   ;显示要显示的数字

        MOV B,#08H

        MUL AB

        MOV 3BH,A

        MOV R4,#00H

        MOV R5,#08H

LOOP00: MOV A,3BH

        MOV DPTR,#TABE

        MOVC A,@A+DPTR

        MOV P2,R4

        MOV P0,A

        MOV P1,#0FEH

        INC 3BH

        INC R4

        LCALL DELAY

        DJNZ R5,LOOP00

        MOV A,31H   ;显示要显档的数字

        MOV B,#08H

        MUL AB

        MOV 3BH,A

        MOV R4,#00H

        MOV R5,#08H

LOOP11: MOV A,3BH

        MOV DPTR,#TABE

        MOVC A,@A+DPTR

        MOV P2,R4

        MOV P0,A

        MOV P1,#0FDH

        INC 3BH

        INC R4

        LCALL DELAY

        DJNZ R5,LOOP11

        MOV A,32H   ;显示要显档的数字

        MOV B,#08H

        MUL AB

        MOV 3BH,A

        MOV R4,#00H

        MOV R5,#08H

LOOP22: MOV A,3BH

        MOV DPTR,#TABE

        MOVC A,@A+DPTR

        MOV P2,R4

        MOV P0,A

        MOV P1,#0FBH

        INC 3BH

        INC R4

        LCALL DELAY

        DJNZ R5,LOOP22

        MOV A,33H   ;显示要显档的数字

        MOV B,#08H

        MUL AB

        MOV 3BH,A

        MOV R4,#00H

        MOV R5,#08H

LOOP33: MOV A,3BH

        MOV DPTR,#TABE

        MOVC A,@A+DPTR

        MOV P2,R4

        MOV P0,A

        MOV P1,#0F7H

        INC 3BH

        INC R4

        LCALL DELAY

        DJNZ R5,LOOP33

        MOV A,34H   ;显示要显档的数字

        MOV B,#08H

        MUL AB

        MOV 3BH,A

        MOV R4,#00H

        MOV R5,#08H

LOOP44: MOV A,3BH

        MOV DPTR,#TABE

        MOVC A,@A+DPTR

        MOV P2,R4

        MOV P0,A

        MOV P1,#0EFH

        INC 3BH

        INC R4

        LCALL DELAY

        DJNZ R5,LOOP44

        POP PSW

        POP ACC

        RET

DELAY:  MOV 37H,#50

DEL:    MOV 38H,#4

        DJNZ    38H,$

        DJNZ    37H,DEL

        RET

TABE:   ;0

        DB 00H,18H,24H,24H,24H,24H,18H,00H

        ;1

        DB 00H,10H,30H,10H,10H,10H,38H,00H

        ;2

        DB 00H,18H,24H,04H,18H,20H,3CH,00H

        ;3

        DB 00H,18H,24H,18H,04H,24H,18H,00H

        ;4

        DB 00H,08H,18H,28H,7CH,08H,08H,00H

        ;5

        DB 00H,1CH,10H,18H,04H,24H,18H,00H

        ;6

        DB 00H,18H,24H,38H,24H,24H,18H,00H

        ;7

        DB 00H,3CH,28H,08H,10H,10H,10H,00H

        ;8

        DB 00H,18H,24H,18H,24H,24H,18H,00H

        ;9

        DB 00H,18H,24H,24H,1CH,24H,18H,00H

        ;:

        DB 00H,00H,18H,18H,00H,18H,18H,00H

        ;

        DB 00H,00H,00H,00H,00H,00H,00H,00H

        RET

      

    

 PINT0: lcall yanshi

        JB P3.2, END_DD  

        MOV 36H,#00H

        INC 34H

        MOV A,34H

        CJNE A,#0AH,END_DD    ;分个位

        MOV 34H,#00H

        INC 33H

        MOV A,33H

        CJNE A,#06H,END_DD    ;分十位

        MOV 33H,#00H

END_DD: RETI

PINT1:      lcall yanshi

        JB P3.3,END_D

        INC 31H

        MOV A,30H

        CJNE A,#02H,END_1

        MOV A,31H

        CJNE A,#04H,END_1    ;时个位

        MOV 31H,#00H

        MOV 30H,#00H

END_1:  MOV A,31H

        CJNE A,#0AH,END_d    ;时个位

        MOV 31H,#00H

        INC 30H

END_D: RETI

yanshi:

MOV R6,#60

D1:

MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

RET

END

5组员的分工:

5.1程序编辑:

由中断产生的秒、分、小时数据,经转换子程序转换成适应LED点阵显示屏显示的数据,并通过单片机的输出功能输入到LED点阵显示屏,再通过显示扫描程序,显示出时钟的走时时间。用计时程序来完成计时,数时功能,再通过单片机综合控制将数字显示出来。由此可见,通过AT89C51单片机的控制功能,完全可以实现LED点阵显示电子钟。

通过上述的中心原理以及自己所想要实现的功能对单片机汇编程序进行入手编程,经过多次更改和最后的整理,整理出近乎完美的单片机汇编程序,唯一不足的就是由于程序中编入消抖动程序没有效果,只能用20的电容进行消抖动但是感觉效果不是很好,就是个唯一不足的地方。

5.2 原理图及PCB的制作

经过1天到2天的时间通过原理图的绘制导出PCB,然后经过自己的全局布局,但是由于实在所给的A4的板子太小放不下,最后只能在板子反面进行导线的跳线,所以在PCB的设计和板子的制作上,还是有一定的难度。

下面是原理图:

PCB图的绘制和排版:

5.2 硬件设计思路和控制思路设计:采佳浩

根据项目的功能和要求,可采用AT89C51单片机作为核心控制器。LED点钟电子钟系统组成包括:晶振电路模块、复位电路模块、显示电路模块、显示行驱动电路模块、按键电路模块以及电源模块。

以上是硬件设计思路。

 LED点阵电子钟程序主要功能是屏幕显示时间稳定,精确。所以按照分块设计的法可以把程序分为主程序、显示程序、计时程序,在后面还会加入闹钟程序。主程序主要是用来初始化系统和控制各个子程序之间执行的顺序。显示程序用来完成字在LED点阵上的显示,时钟的显示是使用4块8×8点阵显示屏。计时程序用来完成计时,数时功能。闹钟程序用来完成时钟的闹钟功能

以上是控制思路的设计。

6本次课程设计的总结:

该系统的工作过程是利用AT89C51单片机读时钟芯片DS1302,并通过4块8*8的LED点阵达到显示时间的目的。

由中断产生的秒、分、小时数据,经转换子程序转换成适应LED点阵显示屏显示的数据,并通过单片机的输出功能输入到LED点阵显示屏,再通过显示扫描程序,显示出时钟的走时时间。用计时程序来完成计时,数时功能,再通过单片机综合控制将数字显示出来。由此可见,通过AT89C51单片机的控制功能,完全可以实现LED点阵显示电子钟。

他过本次的单片机实习,以及最后的课程设计,另我们对单片机的应用,以及程序的编辑和板子的制作更加的熟练和精炼,其中一些小的细节也比以前把握的更加的稳妥,出现故障后的排故,和一些小问题的处理,我相信通过本次的课程设计令我们更加深入的了解了AT89C51单片机的应用。

调试过程:

1:万用表检测线路有无短路,开路。

2:检测AT89C51芯片管脚,是否和底座完全接触

3:将导线接至交流电源之上(已设置稳压电路),用手接触芯片外壳,感觉芯片有无发烫。

4:若无显示,检测稳压电路是否有6V直流输出,若有检测芯片20及40号管脚是否有6V输入或者输出

5:若有显示,通过按键进行时间调整,并且检测开始,停止,是否有效。

6:若一切完成,则调试成功。

成品实际图:

相关推荐