资源描述
目录
1.引言 1
2.总体设计方案 1
2.1设计内容与设计思路及关键技术 1
2.2 设计方框图 2
2.3.8X8点阵LED工作原理说明 2
2.4.最小系统电路图和下载线电路图 3
2.5.广告牌设计的总电路图 4
2.6.用Protel DXP软件设计的PCB图 4
2.7.最终的效果图 5
3.广告牌设计程序的主程序 6
4.系统硬件电路 12
4.1.芯片由AT89C51的主要特性 12
4.2.管脚说明 12
4.3.振荡器特性 一三
5.总结与体会 14
6.参考文献 14
8X8 LED点阵公益广告牌设计
摘要:本设计随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中广告牌的应用就是一个典型的例子,特别在商业广告领域有重要的应用,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
关键词:单片机,控制,8X8 LED点阵,广告牌,AT89S52,动态显示
1.引言
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的是单片机的一些简单的应用,最小系统的复位,INT0和INT1的一些应用来控制输出,达到控制彩灯(流水灯)文字及弹奏乐曲。近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。本系统采用单片机AT89C52为中心器件,用8*8位LED显示元件XY一五88ASR(24脚共阳管)来设计控制彩灯(流水灯)文字及弹奏乐曲,系统实用性强、操作简单、扩展性强。也可以为我们更好地了解单片机的应用加深我们对单片机的认识,对我们以后的学习都带来很大的帮助。
2.总体设计方案
2.1设计内容与设计思路及关键技术
单片机采用用AT89S52芯片,控制彩灯(流水灯)文字及弹奏乐曲。8X8LED点阵公益广告牌设计将在8X8LED点阵显示屏上左右滚动显示:“生命在于运动”,然后左右滚动显示:“Life depends on exercises .”。 改变字库的内容,可以显示其它汉字或一些简单的图形;改变滚动显示模式,使显示内容左右、上下滚动。按此要求设计硬件和软件以实现这一功能。
要控制文字左右滚动显示需要不断地利用动态扫描来显示,利用视觉停留,我们可以观察到动态的文字。以及得用频率不同,通过不断发出连续的信号输出到蜂鸣器,我们就可以听到音乐。P1口涉及下载线,而P3口的P3.2和P3.3作用于外部中断,所以就用P0和P2口来控制滚动显示文字,通过P0口接8*8位LED阳极,P2口接8*8位LED负极来不断扫描显示。
2.2 设计方框图
广告牌设计总体设计方框图如图1所示,控制器采用单片机AT89S52,用8*8位LED显示元件XY一五88ASR(24脚共阳管)。
图1 广告牌设计总体设计方框图
主控制器采用低功耗,高性能COMS 8位单片机AT89S52芯片;单片机复位则由最小系统决定,由电源复位产生;时钟振荡则由12MHz的晶振产生;LED显示则由用8*8位LED显示元件XY一五88ASR(24脚共阳管)来设计。
2.3.8X8点阵LED工作原理说明
8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列(Y)置1电平,某一行(X)置0电平,则相应的二极管就亮。
图2.8X8点阵LED结构图
从图2中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现。
2.4.最小系统电路图和下载线电路图
单片机最小系统是一个电源上电复位的系统,由12MHz的晶振产生时钟振荡带六针接口下载线,由于选购的问题,本次实验是用了十针的下载线,取其中的六个接口;下载线采用244芯片由稳压管4148提供稳定电压。
图3.最小系统电路图和下载线电路图
2.5.广告牌设计的总电路图
广告牌设计的总电路图在最小系统的基础上加上了由9014三极管驱动的蜂鸣器、外部中断的两个开关(实现外部中断控制)、P0和P2口的跳线(实现外扩展)、还有用三极管驱动的8*8位LED显示元件XY一五88ASR(24脚共阳管)。
图4. 总电路图
2.6.用Protel DXP软件设计的PCB图
经过很多次布置元器件,布线,相关的设置等工作,最终完成的用Protel DXP软件设计的PCB图。
图5.设计的PCB图
2.7.最终的效果图
实际要制作的电路板并不是最终生成的PCB图,还要经过一些改动,和一些打印的技巧,最终要印在电路板上的电路如图6所示。
图6.效果图
3.广告牌设计程序的主程序
ORG 0000H
AJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START: CLR P1.0
MOV A,#00H ;清除屏幕
MOV P0,A
MOV P2,#0FFH
MOV R2,#0C8H ;延时100MS
D100MS: MOV R3,#0FAH
DJNZ R3,$
DJNZ R2,D100MS
ACALL DISP ;调用显示子程序
ACALL MOVE ;调用左移子程序
AJMP START
;**************************************************************
DISP: MOV 30H,#00H ;取码指针暂存地址30H初值为00H
D4: MOV R4,#07FH ;扫描指针初值
MOV R1,#0FFH ;每幕停留的时间
D5: MOV R6,#08H
MOV R0,30H ;取码指针存入R0
D2: ACALL READ1 ;调用取码子程序
MOV A,R4
RL A ;循环左移
MOV R4,A ;扫描下一列
DJNZ R6,D2 ;显示1幕?
MOV R4,#07FH
DJNZ R1,D5 ;每幕停留时间到了?
RET
;********************************************************
READ1: MOV A,R4 ;扫描指针载入A
MOV P2,A ;输出至P2扫描列
MOV A,R0 ;取码指针载入A
MOV DPTR,#TAB ;数据指针指到TAB
MOVC A,xA+DPTR ;到TAB取上半部的数据码
MOV P0,A ;输出至P0显示
INC R0 ;取码值加1
MOV R3,#19H ;延时一列的停留时间
DJNZ R3,$
MOV A,#00H ;清除屏幕
MOV P0,A
MOV R3,#02H ;延时
D7: MOV R5,#32H
DJNZ R5,$
DJNZ R3,D7
RET
;*************************************************
MOVE: MOV 30H,#00H ;取码指针暂存地址20H初值为00H
MOV R4,#07FH ;扫描指针初值
M1: MOV R1,#0FFH ;每幕停留的时间
M2: MOV R6,#08H
MOV R0,30H ;取码指针存入R0
M3: ACALL READ1 ;调用取码子程序
MOV A,R4
RR A
MOV R4,A ;扫描下一列
JNB P3.2,L5
JNB P3.3,STYLE1
DJNZ R6,M3 ;显示1幕?
MOV R4,#07FH
DJNZ R1,M2 ;每幕停留时间到了?
MOV A,30H ;取码指针载入A
ADD A,#01
MOV 30H,A ;再存入20H地址取码指针
SUBB A,#175 ;字是否都左移完毕了?
JNZ M1 ;循环
RET
STYLE1: LJMP L2
L5: LJMP MUSIC
TAB:DB 0H,00H,00H,0H,0H,0H,0H,0H
;生
DB 10H,21H,69H,29H,0FFH,29H,29H,21H
DB 0H,0H
;命
DB 10H,2EH,4AH,0A4H,0AFH,4AH,2EH,10H
DB 0H,0H
;在
DB 4H,28H,37H,0E9H,29H,3FH,29H,29H
DB 0H,0H
;于
DB 20H,20H,0A0H,0A2H,0FFH,0A0H,0A0H,20H
DB 0H,0H
;运
DB 51H,1EH,21H,0ADH,0B5H,0A5H,0A9H,25H
DB 0H,0H
;动
DB 27H,0A9H,0B2H,21H,22H,0FCH,21H,3FH
DB 0H,0H,0H,0H,0H,0H,0H,0H
;Life depends on exercises.
DB 0FCH,4H,4H,4H,0H,0BCH,0H,10H
DB 10H,0FFH,90H,90H,0H,7CH,54H,54H
DB 74H,0H,0H,7CH,44H,0F8H,4H,0H
DB 7CH,54H,54H,74H,0H,7FH,44H,44H
DB 7CH,0H,7CH,54H,54H,74H,0H,7CH
DB 20H,40H,7CH,0H,7CH,44H,0F8H,4H
DB 0H,0H,38H,44H,44H,38H,0H,7CH
DB 20H,40H,7CH,0H,0H,7CH,54H,54H
DB 74H,0H,44H,28H,10H,28H,44H,0H
DB 7CH,54H,54H,74H,0H,7CH,20H,40H
DB 0H,38H,44H,44H,44H,0H,0BCH,0H
DB 74H,54H,54H,5CH,0H,7CH,54H,54H
DB 74H,0H,0CH,0CH,0H,0H,0H,0H
DB 0H,0H,0H,0H
RET
;*************************************************
MUSIC: MOV P0,#0AAH
MOV P2,#55H
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0: NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MUSIC1: NOP
CLR A ;A清零
MOVC A,xA+DPTR ;查表取代码
JNB P3.3,S2
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5 ;如果是休止符,往下执行
LJMP MUSIC3
S2: LJMP L2
MUSIC5: NOP
MOV R6,A ;R6=一八H音符的频率
INC DPTR ;DPTR加一
MOV A,#0
MOVC A,xA+DPTR ;取节拍代码送R7
MOV R7,A ;R7=30H音符发音的时间
SETB TR0 ;启动计数
MUSIC2: NOP
CPL P1.0 ;P1.0是音乐输出引脚
MOV A,R6
MOV R3,A ;R3=R6=一八H
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
LJMP MUSIC1
MUSIC3: NOP ;休止100毫秒
CLR TR0
MOV R2,#0DH ;R2=一三
MUSIC4: NOP
MOV R3,#0FFH ;R3=255
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0: LJMP DISP
DEL: NOP
DEL3: MOV R4,#02H
DEL4: NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
DB 一八H, 30H, 1CH, 10H,20H, 40H, 1CH, 10H
DB 一八H, 10H, 20H, 10H,1CH, 10H, 一八H, 40H
DB 1CH, 20H, 20H, 20H,1CH, 20H, 一八H, 20H
DB 20H, 80H, 0FFH, 20H,30H, 1CH, 10H , 一八H
DB 20H, 一五H, 20H , 1CH,20H, 20H, 20H , 26H
DB 40H, 20H , 20H , 2BH,20H, 26H, 20H , 20H
DB 20H, 30H , 80H , 0FFH,20H, 20H, 1CH , 10H
DB 一八H, 10H, 20H , 20H,26H, 20H , 2BH , 20H
DB 30H, 20H , 2BH , 40H,20H, 20H , 1CH , 10H
DB 一八H, 10H, 20H, 20H,26H, 20H , 2BH, 20H
DB 30H, 20H, 2BH , 40H,20H, 30H, 1CH , 10H
DB 一八H, 20H , 一五H , 20H,1CH, 20H , 20H , 20H
DB 26H, 40H, 20H , 20H,2BH, 20H, 26H , 20H
DB 20H, 20H, 30H , 80H,20H, 30H, 1CH , 10H
DB 20H, 10H, 1CH , 10H,20H, 20H, 26H , 20H
DB 2BH, 20H, 30H , 20H,2BH, 40H, 20H , 一五H
DB 1FH, 05H, 20H , 10H,1CH, 10H, 20H , 20H
DB 26H, 20H, 2BH , 20H,30H, 20H, 2BH , 40H
DB 20H, 30H, 1CH , 10H,一八H, 20H , 一五H , 20H
DB 1CH, 20H , 20H , 20H,26H, 40H, 20H , 20H
DB 2BH, 20H, 26H , 20H,20H, 20H, 30H, 30H
DB 20H, 30H, 1CH, 10H,一八H, 40H, 1CH, 20H
DB 20H, 20H, 26H, 40H,一三H, 60H, 一八H , 20H
DB 一五H, 40H, 一三H , 40H,一八H, 80H, 00H
RET
;*************************************************
L1: LJMP MUSIC
L2: CLR P1.0
NOP
MOV R3,#3
LOP2: MOV R4,#8
MOV R2,#0
LOP1: MOV P0,#0FFH
MOV DPTR,#TABA
MOV A,R2
MOVC A,xA+DPTR
MOV P2,A
INC R2
LCALL DELAY
DJNZ R4,LOP1
DJNZ R3,LOP2
MOV R3,#3
LOP4: MOV R4,#8
MOV R2,#7
LOP3: MOV P0,#0FFH
MOV DPTR,#TABA
MOV A,R2
MOVC A,xA+DPTR
MOV P2,A
DEC R2
LCALL DELAY
DJNZ R4,LOP3
DJNZ R3,LOP4
MOV R3,#3
LOP6: MOV R4,#8
MOV R2,#0
LOP5: MOV P2,#00H
MOV DPTR,#TABB
MOV A,R2
MOVC A,xA+DPTR
MOV P0,A
INC R2
LCALL DELAY
DJNZ R4,LOP5
DJNZ R3,LOP6
MOV R3,#3
LOP8: MOV R4,#8
MOV R2,#7
LOP7: MOV P0,#00H
MOV DPTR,#TABB
MOV A,R2
MOVC A,xA+DPTR
MOV P0,A
DEC R2
LCALL DELAY
DJNZ R4,LOP7
DJNZ R3,LOP8
LJMP L2
DELAY: JNB P3.2,L1
MOV R5,#10
D10: MOV R6,#20
D9: MOV R7,#248
DJNZ R7,$
DJNZ R6,D9
DJNZ R5,D10
RET
TABA: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
TABB: DB 01H,02H,04H,08H,10H,20H,40H,80H
RET
;*************************************************
4.系统硬件电路
4.1.芯片由AT89C52的主要特性
•与MCS-51 兼容
•寿命:>1000写/擦循环ISP FLASH ROM
•32可编程I/O线
•3个16位定时器/计数器
•2个外部中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
4.2.管脚说明
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚 备选功能
P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
4.3.振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。
5.总结与体会
本系统是以单片机AT89C52芯片为核心部件,完成8X8LED点阵公益广告牌设计在8X8LED点阵显示屏上左右滚动显示及弹奏乐曲功能。此次在软件上设计PCB板和制作PCB板上花费时间最多,也是由于是自己第一次亲手做PCB板的原因吧!不过好从中学到了不少的知识。我们上网找资料,上图书馆,尽可能的了解有关于单片机的基本原理,8X8LED点阵显示技术和动态显示等这方面的知识。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能有了更进一步的提高。
在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,也从中学会了很多。经过将近二周的单片机课程设计,终于完成了我的广告牌的设计,硬件方面还算满意,只是时间的关系,编写程序方面的时间少了,但还是基本上达到实验的目的。希望这次的经验可以对以后的学习带来更好的帮助。
6.参考文献
[1]李朝青.单片机原理及接口技术(第3版).北京航天航空大学出版社,2005年10月.
[2]求是科技.单片机典型外围器件及应用实例.北京:人民邮电出版社,2006年2月
[3]辛友顺.单片机应用系统设计与实现.2005年3月
[4]戴胜华.单片机原理与应用. 2005年4月
.(.....)成立于2004年,专注于企业管理培训。
提供60万企业管理资料下载,详情查看:...../map.htm
提供5万集管理视频课程下载,详情查看:...../zz/
提供2万GB高清管理视频课程硬盘拷贝,详情查看:...../shop/
2万GB高清管理视频课程目录下载:...../12000GB.rar
高清课程可提供免费体验,如有需要请于我们联系。
咨询x020-.
值班手机:.
网站网址:....
3.2.202512:3312:33:4125.3.212时33分12时33分41秒3月. 2, 252 三月 202512:33:41 下午12:33:41
2025年3月2日星期日12:33:41
展开阅读全文