




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南大学物理与电子学院2014级单片机课程设计论文流水灯设计论文作者姓名:作 者 学 号:合作者姓名:作 者 学 号:所 在 学 院:所 学 专 业:任 课 老 师:论文完成时间:一、前言:4二、设计方案41.设计目的42.设计要求43.硬件组成42.3.1、STC89C52RC介绍5三、硬件设计方案11四、软件111.软件设计方案112.延时的计算13五、系统调试及分析结果13六、结论13七、参考文献14八、附录14摘 要:计算机技术的飞速发展和提高,把我们带入了崭新的时代,现在,计算机的应用已经深入到千家万户。单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。单片机在现在社会有着广泛的应用,小到人们的日常电子用品,大到航天飞机、宇宙飞船,上面都有单片机的广泛应用。单片机具有体积小、功能强大、低功耗、应用广泛等特点。本文主要介绍以 AT89C52单片机来实现流水灯的设计。关键词:单片机 流水灯 程序设计一、 前言:单片机,它是将计算机的主要组成部分集成在一个芯片上的微型计算机。为了发挥单片机的强大功能,必须要依靠外围电子器件与其构成电路。因此,单片机的学习不仅仅只学习这单一的芯片,还需要逐步学习它外围电子器件及外围电路的设计与调试等等。本文介绍如何通过单片机实现流水灯的效果。二、 设计方案1. 设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。学习单片机课程以后,为了加深对理论知识的理解,加强理论知识在实际当中的运用,强化自己的动手能力,通过单片机课程设计,提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力。2. 设计要求 通过 52系列单片机的 P1 口送不同的数字,实现 8 位LED 灯的流水显示效果。1)P1.0 控制 LED1 灯的亮灭,P1.1 控制 LED2 灯的亮灭,.,P1.7 控制 LED8 灯的亮灭。2)先让 LED1 灯亮,一段时间后灭,同时 LED2 亮;LED2 亮一段时间后灭,同时 LED3 亮,以此类推,最后LED8 亮一段时间后灭,同时 LED1 亮,如此循环。3)因为单片机每条指令执行时间很短,而人眼对光的反应需要一段时间,所以我们在 LED 灯点亮的时候需要延时一段时间才能看见流水灯的“流水”效果。3. 硬件组成单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路、按键输入、显示输出等。单片机接口电路主要用来连接计算机和其它外部设备。各功能模块的选择及论证如下:复位电路:由电容和电阻构成,由电路图并结合电容电压不能突变的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。本设计中R=10K,C=10uF。晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)同时也可取12MHz(产生精确的微秒级时歇,方便定时操作),因设计需要,本设计采用12M晶振。单片机:一片AT89S51/52或其他51系列兼容单片机,本设计采用STC89C52RC。接口电路:具有人机交互接口。具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。 通过该最小系统,我们可以用keil软件进行编程从而实现对一些外设的控制!比如一些简单的实验:闪烁灯、跑马灯、数码管和蜂鸣器的展示等等!2.3.1、STC89C52RC介绍 STC89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 P0 口P0 口是一个三态双向口,可作为地址/数据分时复用,也可作为通用I/O接口。P0口由八个相同的电路组成,每个电路分别由锁存器(起输出锁存的作用,8个构成了特殊功能寄存器P0)、场效应V1、V2组成的输出驱动器(增大带载能力)、三态门1(引脚输入缓冲器)、三态门2(用于读锁存器端口)、与门3、倒相器4及模拟开关构成的输出控制电路。P0口作为地址/数据分时复用总线时,可分为两种情况:一种是从P0口输出地址或数据,另一种是从P0口输入数据。当P0口作为通用I/O接口使用,端口输入输出数据时需要注意:一,在输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号正常输出必须接上拉电阻;二,P0口作为通用I/O使用时是一准双向口。其特点是在输入数据时,应先口置1,此时锁存器的Q为0,使V1、V2截止,引脚处于悬空状态才可高阻输入,所以说P0口作为通用I/O使用时,是一个准双向口。综上所述,P0口在有外部扩展存储器时被作为地址/数据总线口时,访问外部存储器期间CPU会自动向P0口的锁存器写入0FFH,故对用户而言,此时是一个真正的三态双向口。在没有外部扩展存储器时,P0口也可作为通用的I/O接口,但此时只是一个准双向口。此外,P0口具有驱动8个LSTTL负载的能力,即输出电流不小于800uA。在本设计中,LED发光二级管为外部电源驱动,所以I/O口低电平有效,此时P0口输出0LED发光二级管被点亮,所以不需要接上拉电阻P1 口 P1 是一个带内部上拉电阻的8 位标准的准双向I/O 口,它在结构上与P0的区别在于输出驱动部分由场效应管V1与内部上拉电阻组成,即有内部上拉电阻,没有反相器。从功能上来讲,即输入输出I/O接口,具有输入、输出、端口操作三种工作方式,每1位口线能独立地用作输入/输出线。当作为输出线时 P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(TTL)。与AT89C51相比,STC89C52RC的不同之处是,P1.0 和P1.1 除作为通用I/O接口线外,还具有第二功能,即P1.0可作为定时器/计数器2的外部计数脉冲输入端T2,P1.1可作为定时器/计数器2的外部控制输入端T2EX。P2 口P2 是一个带有内部上拉电阻的8 位准双向I/O 口,它具有通用I/O接口或高8位地址总线输出两种功能,所以其输出驱动结构比P1口输出驱动结构多了一个输出模拟转换开关MUX和反相器3。当作为准双向通用I/O接口使用时,控制信号开关接锁存器,锁存器Q端经反相器3接V1,其工作原理与P1相同,也具有输入、输出、端口操作三种工作方式,负载能力也与P1口相同。当P2作为外部扩展存储器的高8位地址总线使用时,控制信号使转换开关接地址总线,由程序计数器PC来的高8位地址PCH,或数据指针DPTR来的高8位地址DPH经反相器和V1原样呈现在P2口的引脚上,输出高8位地址A8至A15。在上述情况下,锁存器的内容不受影响,所以,取指或访问外部存储器结束后,由于转换开关又接回锁存器,使驱动器与锁存器Q端相连,引脚上将恢复原来的数据。 P3 口 P3 口是一组带有内部上拉电阻的8 位双向I/O 口。它的输出驱动由与非门3、V1组成,比P0、P1、P2口结构多了一个缓冲器。它除了可作为通用准双向I/O接口外,没1根线还具有第二功能。当P3口作为通用I/O接口时,第二功能输出线为高电平,使与非门3的输出取决于锁存器的状态。在这种情况下,P3仍是一个准双向口,它的工作方式、负载能力均与P1、P2口相同。当P3口作为第二功能使用时,其锁存器Q端必须为高电平,否则V1管导通,引脚被箝位在低电平,无法输入或输出第二功能信号。当Q端为高电平时,P3口的状态就取决于第二功能输出线的状态。同样,P3口的每一位可独立的定义为第一功能输入输出或第二功能输入输出。另外,在P3口的引脚信号输入通道中有2个缓冲器,第二功能输入信号取自缓冲器4(后加缓冲器)的输出端,通用输入信号仍取自缓冲器1(原有缓冲器)的输出端。RST/VPD(9脚)复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。RST即RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚出现持续两个机器周期的高电平,就可实现复位操作,使单片机恢复到初始状态。当VCC发生故障、降低低电平规定值或掉电时,该引脚可接上备用电源VDP(+5+/-0.5V)为内部RAM供电,以保证RAM中数据不丢失。 ALE/(30脚)当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)以每周期两次的信号输出,用于锁存出现在P0口的低8为地址。在不访问外部存储器时,ALE仍以上述不变的频率(振荡周期的1/6),周期行地出现正脉冲信号,可作为对外输出的时钟脉冲或用于定时目的。但要注意,在访问片外数据存储器期间,ALE脉冲会跳过一个,此时作为时钟输出就不妥当了。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚为编程脉冲的输入端。(29脚)片外程序存储器读选通信号输出端,低电平有效,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 有效,即输出两个脉冲,以通过数据总线口读回指令或常数,在此期间,当访问外部数据存储器,将跳过两次信号,即信号不出现。/VPP(31脚)外部访问允许,即为访问外部程序存储器控制信号,低电平有效。当保持高电平时,单片机访问片内程序存储器的程序8KB(MCS52子系列为8KB,MCS51子系列为4KB)。若超出该范围时自动转去执行外部存储器的程序。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH), 端必须保持低电平(接地)。对于片内含有EPROM(Erasable Programmable Read-only Memory ,可编程可擦写只读存储器)的单片机,在EPROM编程期间,该引脚用于接21V的编程电源VPP。 XTAL1(19脚)振荡器反相放大器及内部时钟发生器的输入端。接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号输入。 注:CHMOS是CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)和HMOS(高密度沟道MOS工艺)的结合,除了保持HMOS高速度和高密度之外,还有CMOS低功耗的特点。两类器件的功能是完全兼容的,区别在CHMOS器件具有低功耗的特点。(HMOS:高性能金属氧化物半导体)XTAL2(18脚)振荡器反相放大器的输出端。接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端;对于CHMOS芯片,该引脚悬空不接三、 硬件设计方案8*8点阵等效图根据循环流水灯的十五种运行状态,可以看出,每盏灯的每种状态我们可以做同样的处理,因此在电路设计中,可以在每种状态下,对单片机的对应引脚做同样的输出,这样我们就可以实现基于 51 单片机最小系统电路(如图 1a 所示)流水灯模型的硬件设计了,值得说明的是我们这里采用的是共阴极连接方式(如图 1b 所示),所谓共阴极连接方式即发光二极管的阴极连接在一起形成一个公共端。如图 1b 中的 D0-D7 八个发光二极管就为共阴极连接方式。在这里每个发光二极管上还串联了一个限流电阻,那此限流电阻的阻值又该如何选取呢?由于单片机上提供的电压一般为 +5V, 发光二极管的导通压降一般为 1.7V 左右,需要的电流一般为 3m A,所以限流电阻阻值的计算公式为,所以可以选择阻值为 1K 的电阻,当然为了使发光二极管亮点更高还可以选择阻值更低些的电阻如 700、500 等。四、 软件1. 软件设计方案 状态控制码的确定所谓状态控制码,就是要使流水灯工作在某一种状态,我们应该向单片机的控制口所输出的编码,由前面的硬件设计可知,在某一个状态下,当 P0 口的某一引脚输出为 1 时,对应的发光二极管点亮,当 P0 口某一引脚输出为 0 时,对应发光二极管熄灭,因此我们前方十五种状态所对应的 P0 口控制码可以依次写出,以状态 1D0 灯亮为例,我们可以得到00000001 的一个状态码,也就是 01(十六进制),因此我们只需要为 01 通过 P0 口输出就可以实现状态 1 的显示了。在确定了控制码之后就可以进行程序流程的设计了,上电后,取状态 1 的控制码,并且通过 P0 口输出实现 D0 灯亮,延迟一定时间后,取状态 2 的控制码实现 D1 灯亮,按照这个流程直到取状态 15 的控制码,实现对应灯点亮,再从状态一开始执行,实现这十五种状态的循环切换控制。 本次设计采用了C51语 言,并 基 于keil C51开发环境进行实现在main主程序当中,完成主循环任务,对于15种状态的控制,其实是一样的都是将操作码送给P0口,而且延时时间也是相同的,所以可以用一个延时子函数来编写。主程序如下:2. 延时的计算在本次设计中采用的延时程序为while(count-),即延时时间为count*指令周期,所以可采用将count值在范围内改变,或采用多层嵌套,来更改延时时间,从而灵活应用,如改变速度等。由于方案中采用12MHZ的晶振,一个机器周期=12个振荡周期=1us,也就是说,一个基本操作占用时间为1us。那么当delay(50000)时,延时时间为0.5秒。五、 系统调试及分析结果根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试,最后将各模块组合后进行整体测试。对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。软件调试采用单片机仿真器及微机,将编好的程序进行调试,主要是检查语法错误。将调试好的硬件和软件进行联调,主要调试系统的实现功能。六、 结论在本次课程设计中我们以STC89C52单片机作为主控核心, LED流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路,利用kill软件编程烧录程序到单片机来实现对LED灯的控制。经过这次课程让我受益匪浅,不敢说我得到了多少知识,但是至少对单片机的认识更进了一步,无论是熟悉单片机的接口及性能还是查找资料的能力,都有所提升了,而且提高了的动手能力,尤其是在调试的过程中,让我自己解决实际问题的能力又有了进一步的提升,相信在以后的学习中我能够更加的锻炼自己。最重要的是通过本次课程设计,我的编程能力有了进一步的提高,相当于是对之前的知识的巩固,尤其是以前对编程不太感兴趣,现在觉得编程还挺有意思的。我以后会多多研究编程,也算是本次收获最大的地方了吧。七、 参考文献【1】谭浩强 C 程序设计M 北京: 清华大学出版社,1991【2】胡汉才 单片机原理及接口M 北京: 清华大学出版社,2004【3】模拟电子技术基础(第4版)(作者:华成英,童诗白)出版社:高等教育出版社【4】数字电子技术基础(第5版)(作者:阎石)出版社:高等教育出版社八、 附录附录一:程序#include#include#define uchar unsigned char #define uint unsigned int uchar i;uchar temp;uchar show_love=0xff,0x99,0x66,0x7e,0xbd,0xdb,0xe7,0xff;uchar show=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar show_wang=0xFF,0xC1,0xF7,0xC1,0xF7,0xC1,0xFF,0xFF;uchar show_feng=0xFF,0xC6,0xD5,0xD7,0x87,0xBD,0xA2,0x9F;uchar show_flag;uchar flag;void Timer0Init(void)/1毫秒11.0592MHzTMOD &= 0xF0;/设置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收银设备销售合同范本
- 商业种植花卉合同范本
- 个人销售酒合同范本
- 厂房公摊合同范本
- 铲车机械费合同范本
- 物业委托 服务合同范本
- 珠宝订货定金合同范本
- 社区居务基础知识培训课件
- 大棚购销合同范本
- 社区安全知识培训课件记录
- 2022年上海市法院系统辅助文员招聘128人笔试备考题库及答案解析
- 北师大版九年级数学上九年级第一二单元综合数学试题
- 二级建造师成绩复核申请
- 全过程工程咨询服务技术方案
- GB/T 35568-2017中国荷斯坦牛体型鉴定技术规程
- GB/T 28707-2012碟簧支吊架
- GB/T 2791-1995胶粘剂T剥离强度试验方法挠性材料对挠性材料
- GB/T 25702-2010复摆颚式破碎机颚板磨耗
- GB 29541-2013热泵热水机(器)能效限定值及能效等级
- 住宅项目实测实量操作指引(图文并茂)
- 流体力学-流体力学基本方程课件
评论
0/150
提交评论