毕业设计论文:基于单片机的摇摇棒设计

基于单片机的摇摇棒设计

苏州高等职业技术学校

专科毕业设计(论文)

题 目 基于单片机的摇摇棒设计

学生姓名

专业班级 08电信工程技术(4)班

学 号

所 在 系 电子信息工程技术

指导教师

完成时间

基于单片机的摇摇棒设计

苏州高等职业技术学校

毕业设计(论文)任务书

题目 基于单片机的摇摇棒设计

专业 电信工程 学号 姓名

主要内容:1.根据设计要求确定系统的总体框图。

2.了解掌握单片机的基本结构和应用特点。

3.熟悉水银开关和集成电路的要求。

4.根据系统的要求绘制系统硬件电路图,进行部分软件功能的设计。

基本要求:1.设计摇摇棒的总体方案与硬件设计。

2.绘出总体程序流程图和模块化设计,并作相关程序编译。

3.对设计进行调试,模拟电路的工作过程。

主要资料:现代单片机技术与系统、单片机汇编语言常用模块与综合系统设计、单片机原理及

其应用。

完 成 期 限: 年 月

指导教师签名:

评审小组负责人签名:

年 月 日

基于单片机的摇摇棒设计

毕业设计(论文)开题报告表

毕业设计论文基于单片机的摇摇棒设计

基于单片机的摇摇棒设计

基于单片机的摇摇棒设计

摘 要

随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。

“摇动显示装置”,俗称“摇摇棒”,是基于人的视觉暂留原理的,通过分时刷新16个发光二极管来显示输出文字或图案等信息的显示装置。输出信号频率的控制通过单片机来实现,用水银开关来检测当前摇动状态。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。

本文以单片机的实际应用为背景,介绍了以单片机为核心系统显示设计的基本结构和基本原理。

关键词 单片机/发光二极管/水银开关

I

基于单片机的摇摇棒设计

Based on single-chip shaking his stick design

ABSTRACT

As people material standard of living rise, people pursuit to cultural life also becomes strong, the desire of information have become the people of the essential needs, more forthright and novel the

information transfer mode will undoubtedly bring people to find everything new and fresh feeling. And modern tools to the simple, portable, therefore, shaking the display device, the arrival of will give people brings a kind of new convenient cultural transfer mode.

"Shake display device," called "to shake the great", it is to be based on visual temporarily leave the principle, through the timeshare refresh 16 leds to display text or design output information display device. The output signal frequency control through the single-chip microcomputer to realize, with

mercury switch test current moved state. When shaken, as the men's vision for a principle, will be in the light emitting diode shaking area produce a visual plane, the plane within the vision of different

frequency refresh diode through, will produce an image in shaking area, so as to achieve the vision in the plane of conveying information function.

Based on the MCU application for background, introduces the single-chip microcomputer and sensor as the core system moved display design the basic structure and the basic principle.

KEY WORDS Chip, leds, the mercury switch

II

基于单片机的摇摇棒设计

目 录

摘 要 ..................................................................................................................................I ABSTRACT ........................................................................................................................II 1 引言 ............................................................................................................................

1.1单片机的定义 ...................................................................................... 2

1.2 单片机介绍 ................................................................................................................ 2

1.3 单片机的工作过程 ..................................................................................................... 4

1.4 摇摇棒简介 .............................................................................................................. 10

2 AT89S52单片机简介 ......................................................................................................... 5

2.1 AT89S52主要功能 ..................................................................................................... 5

2.2 AT89S52各引脚功能 ................................................................................................ 5

2.3 AT89S52单片机内部结构简图 ..................................................................................... 8

2.4 AT89S52单片机的最小系统 ........................................................................................ 9

3 系统设计方案 ................................................................................................................. 10

3.1 摇摇棒原理 .............................................................................................................. 10

3.2 摇摇棒介绍 .............................................................................................................. 10

3.3 设计目的 ..................................................................................................................11

3.4 设计要求 ..................................................................................................................11

3.5 设计思路 ..................................................................................................................11

4 系统硬件设计 ................................................................................................................. 12

4.1 单元电路设计 .......................................................................................................... 12

4.2 LED 显示模块......................................................................................................... 13

4.3 各部分功能 .............................................................................................................. 15

4.4 系统硬件 ................................................................................................................. 15

5.系统软件设计 ................................................................................................................. 17

5.1 软件设计思路 .......................................................................................................... 17

5.2 主程序流程图 .......................................................................................................... 17

6 系统的硬件调试及软件调试 ............................................................................................ 19

6.1 常见的硬件故障 ....................................................................................................... 19

6.2 硬件调试方法 .......................................................................................................... 20

6.3 软件调试方法 .......................................................................................................... 21

6.4 本次设计中,具体调试过程.................................................................................... 22

结束语 ............................................................................................................................... 23 致 谢 ................................................................................................................................... 附 录 ...................................................................................................................................

基于单片机的摇摇棒设计

基于单片机的摇摇棒设计

引言

单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(single chipmicrocomputer).它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:(1)最小应用系统是指能维持单片机运行的最简单配置的系统。这种系统成本低廉,结构简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等。片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.(2)最小功耗应用系统是指为了保证正常运行,系统的功耗最小.(3)典型应用系统是指单片机要完成工业测控功能所必须的硬件结构系统。

本文将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。掌握利用8051型单片机对发光二极管阵列进行摇动控制的方法。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态,用16个发光二极管进行不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED) ,而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。

1 单片机简介

1.1 单片机定义

单片机是一种集成在电路芯片上,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器和计数器等功能(可能还包括显示驱动电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成

1

基于单片机的摇摇棒设计

的一个小而完善的小型计算机系统。

1.2 单片机介绍

单片微型计算机简称单片机,它广泛应用在嵌入式系统等领域。嵌入式一般指非PC(PersonalComputer)系统,它包括硬件呵软件两部分。它由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

随着现代电子技术的发展,人们正处在一个信息时代,单片机已在嵌入式系统中占主导地位。人们每天都要通过电视,广播,通信,互联网等多种媒体获取大量的信息。而现代信息的储存,处理和传输越来越趋于数字化。在人们的日常生活中,常用的那个计算机,电视机,音响系统,视频记录设备,长途电信等电子设备或电子系统,无一不采用数字电路或数字系统。因此,数字电子技术的应用越来越广泛。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL.i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。

单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。

2

基于单片机的摇摇棒设计

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个单片机系统连接到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。

单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。

它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。

单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积

3

基于单片机的摇摇棒设计

小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

1.3 单片机的工作过程

单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。

程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在其中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。

4

基于单片机的摇摇棒设计

2 AT89S52单片机简介

AT89S52为 ATMEL 所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。

2.1 AT89S52主要功能

(1)、拥有灵巧的8位CPU和在系统可编程Flash

(2)、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)

(3)、内部程序存储器(ROM)为 8KB

(4)、内部数据存储器(RAM)为 256字节

(5)、32 个可编程I/O 口线

(6)、8 个中断向量源

(7)、三个 16 位定时器/计数器

(8)、三级加密程序存储器

(9)、全双工UART串行通道

2.2 AT89S52各引脚功能

毕业设计论文基于单片机的摇摇棒设计

VCC:

AT89S52电源正端输入,接+5V。

5

基于单片机的摇摇棒设计

VSS:

电源地端。

XTAL1:

单芯片系统时钟的反相放大器输入端。

XTAL2:

系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。

RESET:

AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

EA/Vpp:

"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。

ALE/PROG:

ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。

PSEN:

此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程

6

基于单片机的摇摇棒设计

序存储器可以合并在一起而共用64K的定址范围。

PORT0(P0.0~P0.7):

端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。

PORT2(P2.0~P2.7):

端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。

PORT1(P1.0~P1.7):

端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。

PORT3(P3.0~P3.7):

端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。

其引脚分配如下:

P3.0:RXD,串行通信输入。

P3.1:TXD,串行通信输出。

P3.2:INT0,外部中断0输入。

P3.3:INT1,外部中断1输入。

P3.4:T0,计时计数器0输入。

7

基于单片机的摇摇棒设计

P3.5:T1,计时计数器1输入。

P3.6:WR:外部数据存储器的写入信号。

P3.7:RD,外部数据存储器的读取信号。

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:来自反向振荡器的输出。

2.3 AT89S52单片机内部结构简图

毕业设计论文基于单片机的摇摇棒设计

8

基于单片机的摇摇棒设计

2.4 AT89S52单片机的最小系统

毕业设计论文基于单片机的摇摇棒设计

9

基于单片机的摇摇棒设计

2 系统设计方案

3.1摇摇棒简介

摇摇棒是一种利用视觉暂留效应制作的“高科技”玩具。可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED) ,而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。它是由单片机控制一排LED灯有规律地亮暗,再通过摇动使之在空中呈现一幅段时间的画面。

摇摇棒的设计需要解决几个问题。因为通过摇动产生的图像是有方向的,所以,要使图像正确不重叠,就要将摇摇棒设计成单方向才显示图像。如果摇动一下的速度比显示一幅图像的速度慢,可能会出现:第二幅图的前面部分在第一下摇动的末尾,后面部分在第二下摇动的开始。这就要使摇摇棒在一次摇动中只显示一次图像。

人的视觉暂留时间是100ms—400ms。如果要设计一个16X20分辨率的摇摇棒,LED数为16只,LED每5ms—10ms变换一次,共变换20次组成一幅图像。测试间隔8ms效果较好。其中亮灯3ms,暗灯5ms。这样能使亮点不呈一条横线,黑暗宽度与LED间隔相近。

单片机系统可采用AT89S52单片机。选择P0和P2口输出,连接16只LED灯。P3.2为外部中断INT0,低电平触发方式,接一个轻触开关,功能为切换图像。P3.3为外部中断INT1,低电平触发方式,接一个水银开关,功能是使摇摇棒只有向一个方向摇动时才显示图像,使图像完整。

3.2 摇摇棒原理

“摇摇棒”是基于人的视觉暂留原理的,通过分时刷新16个发光二极管 来显示输出文字或图案等信息的显示装置。输出信号频率的控制通过单片机来实现,用水银开关检测当前摇动状态。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。

3.3 摇摇棒介绍

摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。 可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED 发光二 极管(后简称LED) ,而一旦按照一定的频率去摇晃它,它就会随着位置的变 化而变化(亮或灭),最终显示一幅图片或字符串。本设计要求制作完成一个LED 的显示棒。要求LED 灯线状排列,通过摇动 时形成的亮灯扇形区域能够分辨出如:“电”、“A”、五环之类的汉字或图案 且可以使用按键对显示内容进行切换。

10

基于单片机的摇摇棒设计

本系统要求设计一个 LED 显示棒,,它主要是由中央控制部分、LED 驱动部分、LED 显示部分以及电源部分组成, LED 显示棒系统,单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应 的字模代码通过 I/O 口输出,使 LED 点亮,利用视觉暂留原理最终使图案完整 的显示在摆动的显示屏中。

本设计的难点在于送数据的时间间隔以及较长画面或文字的完整显示。LED 灯的选择为传统LED 发光二极管。颜色多样,在可以同样显示图案的前提下使 用它更为经济,但是颜色较为黯淡,不鲜亮。

单片机的字模读取是通过在水银开关闭合的次数上来取设计子程序的代码(即设变量N,水银开关每闭合一次,N加一,数组指向下一个字模代码)。

使用水银开关。通过摇晃使得水银开关与焊接的左右两个触点接触,利用这种接触产生的电平变化来改变数组指向,结合软件控制显示,制作简单,使用方便。

3.4 设计目的

本次设计制作的是一个显示棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。通过本次设计,加强学生对AT89S52单片机的深刻理解,提高学生的设计能力和动手能力。

3.5 设计要求

设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。

3.6 设计思路

本系统要求设计一个LED显示棒且需要有按键进行内容切换,它主要是由中央控制部分,LED驱动部分,LED显示部分以及电源部分组成。

单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED灯点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。

(1),LED灯的选择:传统LED发光二极管。颜色多样,在可以同样显示图案的前提下使用它更为经济。

(2),外部中断信号产生方式:通过外部中断可以控制数据开始传输的时刻。选择好外部中断来源是本次制作的难点及重点。使用惯性开关。通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。

11

基于单片机的摇摇棒设计

(3),抗重影方案的选择:使用外部中断控制数据传输时刻。外部中断信号由惯性开关产生,触发方式为下降沿触发。惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。惯性开关处于不同位置进入不同的中断,从而决定何时送数据。该方案简单易行,可以保证数据是单程传输的,避免了重影。不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。

4 系统硬件设计

4.1 单元电路设计

毕业设计论文基于单片机的摇摇棒设计

毕业设计论文基于单片机的摇摇棒设计

图二 复位电路 图三时钟电路

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期24个振荡周期以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。手动按钮复位需要人为在复位输入端RST上加入高电平(图二)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特

12

基于单片机的摇摇棒设计

触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。

时钟在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式(如图三)。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。

外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡方式的外部电路如下图所示。

图三中,电容器C01,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。

4.2 LED 显示模块

首先,我们根据 LED 点阵屏的显示原理:点阵屏的显示分为行扫描与列扫 描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图 案的一部分,将其读出、显示。它的顺序可以总结为:行不断的送数据,每送完 设置的信息后列进行读取,然后行再次送数据,列再次读取依次循环下去, 一幅完整的图案就显示在了显示屏上。 而本次设计的 LED 显示棒数据传输原理与LED点阵屏相似。可以把 LED 显示棒看成是 LED 点阵屏中的一列。为了使显示的图案清晰,我们使用了 16 个LED 管将它们排成一列,整个屏在静止时也就相当于16 行×1 列。数据传输 时我们同样使用行送数据、列扫描。在摆动过程中,应用视觉暂留原理,我们点 亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高 于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了。

基本原理图为:

13

基于单片机的摇摇棒设计

基本原理与硬件电路设计:

16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象看到的是一幅完整的画面。与LED点阵的显示有几分相仿。

其硬件电路如上图中所示:

系统电源VCC为5V,下载程序和调试时一定要保证5V电压,MCS-51单片机作为控制器,在它的P1,P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。P1口,P2口的上拉电阻不能少。串在LED公共端的二极管D1会产生一定的压降,用来保护LED,经试验测试LED点亮时两端电压为3V左右,在LED的安全承受范围之内。

毕业设计论文基于单片机的摇摇棒设计

14

基于单片机的摇摇棒设计

4.3 各部分功能

(1),按键模块

使用一个按键对显示的所有内容进行切换,通过按钮按下的次数确定显示的内容。

S1:水银开关 功能为棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一支水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。

S2:画面切换开关 功能为用于切换显示不同内容。

S3:手动复位开关 功能为可以控制系统的启停

(2),LED显示模块

首先,我们根据LED点阵屏的显示原理:点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图案的一部分,将其读出、显示。它的顺序可以总结为:行不断的送数据,每送完设置的信息后列进行读取,然后行再次送数据,列再次读取??依次循环下去,一幅完整的图案就显示在了显示屏上。

而本次设计的LED显示棒数据传输原理与LED点阵屏相似。可以把LED显示棒看成是LED点阵屏中的一列。为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行×1列。数据传输时我们同样使用行送数据、列扫描。在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了。

4.4 系统硬件

系统功能主要体现在3个部分:

(1),单片机控制(AT89S52)

本装置采用了AT89S52单片机,它支持直接通过串口线下载程序,对于本设计而言,显示文字需经常改变,AT89S52方便许多,因此选择AT89S52作为本设计所用的单片机。

(2), 显示功能。(D1~D16)

信息传递主要由显示来完成,本设计显示功能由16个发光二极管来完成。16个发光二极管分为4组,以共阳的方式连接,共用P1口和P2口作为输出口。

15

基于单片机的摇摇棒设计

系统的元器件明细表:

毕业设计论文基于单片机的摇摇棒设计

16

基于单片机的摇摇棒设计

5.系统软件设计

5.1 软件设计思路

在摇动LED棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。因此当系统开始工作后通过惯性开关的位置来使单片机实现单程传送数据给LED。如果惯性开关位于右边,则进入外部中断1并将一变量置1。在变量为1期间让单片机以一定的频率将数据传送给LED。如果惯性开关位于左边,则进入外部中断0并将变量置0,。在这期间单片机不会传送数据给LED。在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。之后再立刻熄灭LED并开始重新判断惯性开关的位置。

5.2 主程序流程图

17

基于单片机的摇摇棒设计

通过软件设计思路分析,得到该系统的主程序流程图如下:

系统开始运行,内部进行初始化后,等待外部中断。当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。显示完成返回主程序,等待下一个摇动周期的到来。

毕业设计论文基于单片机的摇摇棒设计

18

基于单片机的摇摇棒设计

6 系统的硬件调试及软件调试

单片机应用系统的硬件调试和软件调试是分不可的,许多硬件故障是在调试软件时才发现的。但通常是先排除系统中明显的硬件故障后才和软件结合起来调试的。其一般的调试过程如下:

6.1 常见的硬件故障

(1),逻辑错误

样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线,开路,短路等几种,其中短路时最常见的故障。在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。

(2),器件失效

元器件失效的原因有两个方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误而造成的元器件失效,如电解电容,二极管的极性错误,集成块安装方向错误等。

(3),可靠性差

引起系统不可靠的因素很多,如金属化孔,接插件接触不良会造成系统时好时坏;内部和外部的干扰,电源纹波系数过大,器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。

(4),电源故障

若样机中存在电源故障,则加电后将造成器件损坏。电源的故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率不足,负载能力差。

19

基于单片机的摇摇棒设计

6.2 硬件调试方法

(1),脱机调试

脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号,规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查拓展系统总线是否存在相互间的短路或其他信号线的短路。

对于样机所用的电源事先必须单独调试,调试好后,检查其电压值,负载能力,极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细检查各地点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。

(2),联机调试

通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除。

联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。一切正常,即可打开电源。

通电后执行开发机读写指令,对用户机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用示波器观察波形。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上的逻辑错误、有断线或短路现象、集成电路失效等。

20

基于单片机的摇摇棒设计

6.3 软件调试方法

软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好以后,再进行系统程序总调试。如果采用实时多任务操作系统,一般是逐个任务,下面进一步予以说明。

对于模块结构程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。各程序模块通过后,可以把各功能块联系起来一起进行整体程序综合调试。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。若用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。

单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还要做适当修正。对于实时多任务操作系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。逐个任务调试好以后,再使各个任务同时运行,如果操作系统中没有错误,一般情况下系统就能正常运转。

在全部调试修改完成后,将用户软件固化于EPROM中,插入用户样机后,用户系统即能离发机独立工作,至此系统研制完成。

21

基于单片机的摇摇棒设计

6.4 本次设计中,具体调试过程

在开始实验设计前,根据实验要求,分析实验所涉及的相关知识点,查阅身边的资料,并根据自己以前所学的理论知识,有了大概设计框图后,在PROTEL中画出原理图,然后根据原理图分析模块焊出电路板,并对模块进行测试。

第一步,测试LED显示电路和S51单片机最小系统。首先测试LED,输入一个简单程序,发现有一个LED不亮,于是检查该LED的引脚,发现线路断了,接好后LED亮了。于是输入摇摇棒程序,但LED灯不闪,猜测是数码管芯片与插槽接触不良的问题,就把插槽重新焊接,之后,再次检测时,发现有时闪烁有时灯不亮。说明不是插槽的问题,于是反复检查最小系统模块,通过用电压表最数码管的每个引脚进行高低电平测试,最总发现原来是接线问题,即是一根线忘了连接。使得硬件与软件的设置不匹配,从而导致了LED显示不正常。改正后重新测试。手动摇晃可呈现图像。

第二步,测试驱动电路,该模块完好。

第三步,软件测试。在软件方面,改部分主要调延时函数,调试过程简单但费时。于是,多次耐心尝试后软件调试才成功,能够完整并较为清晰地完整图像,最终,实现摇摇棒功能。

22

基于单片机的摇摇棒设计

结束语

在赵老师的指导下,通过几周的时间完成了摇摇棒的设计,本次设计以水银开关和单片机的实际应用为背景,介绍了以单片机为核心显示设计的基本结构和基本原理。

本次将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。掌握利用AT89S52型单片机对发光二极管阵列进行摇动控制的方法。输出信号频率的控制通过单片机来实现,用水银开关摆动状态和16个发光二极管进行不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。

设计具有市场前景,可满足各种大型演出、集会、游行等宣传需要,为人们的生活提供便利,通过这次课程设计,使我学会了编写程序,焊接电路板,增强了我的动手能力,为以后参加工作打下了坚实的基础!

23

相关推荐