单片机花样彩灯课程设计报告.doc_第1页
单片机花样彩灯课程设计报告.doc_第2页
单片机花样彩灯课程设计报告.doc_第3页
单片机花样彩灯课程设计报告.doc_第4页
单片机花样彩灯课程设计报告.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文由麻辣龙王贡献 doc文档可能在wap端浏览体验不佳。建议您优先选择txt,或下载源文件到本机查看。 1、引言 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。 led 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广 泛的应用,用彩灯来装饰已经成为一种时尚。但目前市场上各式样的 led 彩灯 控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成 品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮 灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、 电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单 调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行 改进。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几 乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用 电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有 1-2 部单片机。而 个人电脑中也会有为数不少的单片机在工作。汽车上一般配备 40 多部单片 机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机 的数量不仅远超过 pc 机和其他计算的总和,甚至比人类的数量还要多。 课程设计是学完一门课后应用本课知识及以前的知识积累而进行的 综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。 进一步巩固和加深“单片机”课程的基本知识,了解单片机设计知识在 实际中的应用。综合运用“单片机”课程和先修课程的理论及生产实际 知识去分析和解决电路设计问题,进行单片机电路设计的训练。学习单 片机设计电路的一般方法,了解和掌握单片机电路的设计过程和进行方 式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体电 路设计能力。通过计算和绘图,学会运用标准、规范和查阅有关技术资 料等,培养单片机电路设计的基本技能。 该 程 序 示 例 了 单 片 机 键 盘 控 制 p1 口 流 水 灯 花 样 的 方 法 ; 具 体 表 现 为:p3.2 3.2 3.4 3.5 四个小本文提出了一种基于 at89s51 单片机的彩灯 控制方案,实现对 led 彩灯的控制。按键,分别实现了四个控制。通过这 次实验,我们也了解了团队合作的重要性,集体的力量是伟大的,一个人 如何融入一个团队是是一个重要问题,讲究合作才能取得最后的成功! 2、设计原理 、 2.1 mcs51 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 rst/vpd rxd p3.0 txd p3.1 int0 p3.2 int1 p3.3 t0 p3.4 t1 p3.5 wr p3.6 rd p3.7 xtal2 xtal1 vss vcc p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 ea/vpp ale/prog psen p2.7 p2.6 p2.5 p2.4 p2.3 p2.2 p2.1 p2.0 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 单片机 引脚说明 mcs 单片机都采用 40 引脚的双列直插封装方式。图 2-9 为引脚排列图, 40 条引脚说明如下: 1、主电源引脚 vss 和 vcc vss 接地 vcc 正常操作时为+5 伏电源 2、外接晶振引脚 xtal1 和 xtal2 xtal1 内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当 采用外部振荡器时,此引脚接地。 xtal2 内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采 用外部振荡器时,此引脚接外部振荡源。 3、控制或与其它电源复用引脚 rst/vpd,ale/ prog , psen 和 ea /vpp rst/vpd 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由 低到高跳变) ,将使单片机复位 在 vcc 掉电期间,此引脚可接 图 2-9 8051 引脚排列图 上备用电源,由 vpd 向内部提供备用电源,以保持内部 ram 中的数据。 ale/ prog 正常操作时为 ale 功能(允许地址锁存)提供把地址的 8031 8051 8751 1 )周期性地 6 发出正脉冲信号。 因此, 它可用作对外输出的时钟, 或用于定时目的。 但要注意, 每当访问外部数据存储器时,将跳过一个 ale 脉冲,ale 端可以驱动(吸收或输 出电流)八个 lsttl 电路。 对于 eprom 型单片机,在 eprom 编程期间,此引 低字节锁存到外部锁存器,ale 引脚以不变的频率(振荡器频率的 脚接收编程脉冲( prog 功能) psen 外部程序存储器读选通信号输出端,在从外部程序存储取指令 (或数据)期间, psen 在每个机器周期内两次有效。 psen 同样可以驱动八 lsttl 输入。 ea /vpp 、 ea /vpp 为内部程序存储器和外部程序存储器选择端。当 ea /vpp 为高电平时,访问内部程序存储器,当 ea /vpp 为低电平时,则访问外 部程序存储器。 对于 eprom 型单片机,在 eprom 编程期间,此引脚上加 21 伏 eprom 编程电 源(vpp) 。 4、输入/输出引脚 p0.0 - p0.7,p1.0 - p1.7,p2.0 - p2.7,p3.0 - p3.7。 p0 口(p0.0 - p0.7)是一个 8 位漏极开路型双向 i/o 口,在访问外部 存储器时,它是分时传送的低字节地址和数据总线,p0 口能以吸收电流的方式 驱动八个 lsttl 负载。 p1 口(p1.0 - p1.7)是一个带有内部提升电阻的 8 位准双向 i/o 口。 能驱动(吸收或输出电流)四个 lsttl 负载。 。 p2 口(p2.0 - p2.7)是一个带有内部提升电阻的 8 位准双向 i/o 口, 在访问外部存储器时,它输出高 8 位地址。p2 口可以驱动(吸收或输出电流)四 个 lsttl 负载。 p3 口(p3.0 - p3.7)是一个带有内部提升电阻的 8 位准双向 i/o 口。能驱动(吸收或输出 电流)四个 lsttl 负载 2.2 led 显示数码管 led 有共阴极和共阳极两种。如图所示。二极管的阴极连接在一起,通常 此公共阴极接地, 而共阳极则将发光二极管的阳极连接在一起, 接入+5v 的电压。 一位显示器由 8 个发光二极管组成,其中 7 个发光二极管构成字型“8”的各个 笔划(段)ag,另一个小数点为 dp 发光二极管。当在某段发光二极管施加一 定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段 led 不被损坏, 需外加限流电阻 。 数码管结构原理图: led 数码管结构原理图 共阳极 at89c2051 芯片的 20 个引脚功能为: vcc gnd rst xtal1 xtal2 p1 口 电源电压。 接地。 复位输入。当 rst 变为高电平并保持 2 个机器周期时,所有 i/o 引脚 反向振荡放大器的输入及内部时钟工作电路的输入。 来自反向振荡放大器的输出。 8 位双向 i/o 口。引脚 p1.2p1.7 提供内部上拉,当作为输入并被 复位至“1” 。 外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。p1.0 和 p1.1 需要外部上拉,可用作片内精确模拟比较器的正向输入(ain0)和反向输入 (ain1) ,p1 口输出缓冲器能接收 20ma 电流,并能直接驱动 led 显示器;p1 口 引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,p1 口也可接收 编码数据。 p3 口 引脚 p3.0p3.5 与 p3.7 为 7 个带内部上拉的双向 i/0 引脚。p3.6 在 内部已与片内比较器输出相连,不能作为通用 i/o 引脚访问。p3 口的输出缓冲 器能接收 20ma 的灌电流;p3 口写入“1”后,内部上拉,可用输入。p3 口也 可用作特殊功能口。 中断指令。 2.3 中断指令 在 cpu 和外设交换信息时,存在着快速 cpu 和慢速外设间的矛盾,机器内 部有时也可能出现突发事件,为此,计算机中通常采用中断技术。 cpu 和外设并行工作, 当外设数据准备好( 或有某种突发事件发生)时向 cpu 提出请求,cpu 暂停正在执行的程序转而为该外设服务(或处 理紧急事件),处 理完毕再回到原断点继续执行原程序。 中断优先级:当有多个中断源同时 向 cpu 申请中断时,cpu 优先响应最需 紧急处理的中断请求,处理完毕再响应优先级别较低的 ,这种预先安排的响应 次序。 中断的嵌套:在中断系统中,高优先级的 中断请求能中断正在进行的较低级 的中断源处理, (1)中断技术是实时控制中的常用技术,51 系列单片机有三个内部中断,二 个外部中断。所谓 外部中断就是在外部引脚上有产生中断所需要的信号。 每个中断源有固定的中断服务程序的入口地址(称矢量地址或向量地址)。当 cpu 响应中断以 后单片机内部硬件保证它能自动的跳转到该地址。因此,此地 址是应该熟记的,在汇编程序 中,中断服务程序应存放在正确的向量地址内。 (或存放一条转移指令);而在 c 语言中是靠 interrupt n 的关键字 n 自动设置的。 (2)单片机的中断是靠内部的寄存器管理的,这就是中断允许寄存器 ie,中 断优先权寄存器 ip ,必须在 cpu 开中断即开全局中断开关 ea,开各中断源的 中断开关,cpu 才能响应该中断源的 中断请求,其中缺一不可。 (3)从程序表面看来,主程序和中断服务程序好象是没有关连的,只有掌握 中断响应的过程, 才能理解中断的发生和返回,看得懂中断程序,并能编写高 质量中断程序。 表 2.1 常用中断 符号 名 称 外部中断 0 中 断 引 起 原 因 p3.2 引脚的低电平或下降沿信号 中断服务程序入口 int0 0003h int1 外部中断 1 p3.3 引脚的低电平或下降沿信号 0013h t0 t1 t2 定时器 0 中断 定时器 1 中断 定时器 2 中断 定时计数器 0 计数回零溢出 定时计数器 1 计数回零溢出 定时计数器 2 中断(tf2 或 t2ex 信 号) 000bh 001bh 002bh ti/ri 串行口中断 串行通信完成一帧数据发送或接收 引起中断 0023h 3、硬件原理图 、 晶振(12mhz)定时 1 秒,对于 12mhz 的晶振而言,其时钟周期 t=1/f=1/12us,而 89c51 的一个机器周期包括 12 个时钟周期, 所以一 个机器周期为 1us,对于 t0 而言,使之工作于 16-bit,最大计时为 65536*1=65536us,需要多次定时才能实现一秒定时。 vcc+5v c 2 30nf r 1 270 d 1 x1 cry al st led-r d e c 1 u 1 19 xt al1 30nf p0.0/ad 0 p0.1/ad 1 p0.2/ad 2 p0.3/ad 3 p0.4/ad 4 p0.5/ad 5 p0.6/ad 6 p0.7/ad 7 p2.0/a 8 p2.1/a 9 p2.2/a 10 p2.3/a 11 p2.4/a 12 p2.5/a 13 p2.6/a 14 p2.7/a 15 p3.0/r xd p3.1/t xd p3.2/in 0 t p3.3/in 1 t p3.4/t 0 p3.5/t 1 p3.6/w r p3.7/r d 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 r 2 270 d 2 vc c+5v led-r d e r 3 270 d 3 led-r d e 18 xt al2 c 3 9 r st 1nf r 4 270 d 4 led-r d e r 9 10k r 5 270 d 5 led-r d e 29 30 31 pse n ale e a r 6 270 d 6 led-r d e 1 2 3 4 5 6 7 8 p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 at 89c51 sr cfile=1.a m s pr g o ram e =1.h x r 7 270 d 7 led-r d e r 8 270 d 8 led-r d e r10 r11 r12 r13 10k 10k 10k 10k vcc+5v 4、软件设计 、 4.1 流程图 初始化 n int1按下? 有键按下? y int0按下? int1按下? t0按下? t1按下? n y 流水灯 n y 逐点点亮 n y 间隔点亮 动点亮 n y 逐点熄灭 4.2 源程序 org 0000h ljmp start org 0003h reti org 000bh reti org 0013h reti org 001bh reti clear: ret; ;start:acall clear ; 初始化程序 ; 主 程 序 ;中断入口程序; star1:mov p3,#0ffh jnb p3.2,fun2 jnb p3.3,fun3 jnb p3.4,fun0 jnb p3.5,fun1 jnb f0,star1 ret; fun0:lcall dl10ms jb p3.4,star1 waitl0:jnb p3.4,waitl0 setb f0 fun01:lcall fun00 lcall star1 ljmp fun01; fun1:lcall dl10ms jb p3.5,star1 waitl1:jnb p3.5,waitl1 setb f0 fun10:lcall fun11 lcall star1 ljmp fun10; fun2:lcall dl10ms jb p3.2,star1 waitl2:jnb p3.2,waitl2 setb f0 fun20:lcall fun22 lcall star1 ljmp fun20; fun3:lcall dl10ms ;消除抖动 ;等待键释放 ;消除抖动 ;等待键释放 ;消除抖动 ;等待键释放 ;消除抖动 ;曾经有键按下 f0 置 1 ;关闭按纽 jb p3.3,star1 waitl3:jnb p3.3,waitl3 clr f0 mov p1,#0ffh ljmp star1; fun00:mov a,#0feh fun000:mov p0,a lcall dl05s jnb acc.7,out rl a ajmp fun000 out: ret; fun11:mov a,#0feh fun111:mov p1,a lcall dl05s jz out rl a anl a,p1 ajmp fun111; fun22:mov a,#0feh fun222:mov p1,a lcall dl01s cpl a rl a mov p1,a lcall dl01s ret; fun33: mov a,#01h fun333: mov p1,a ;逐点熄灭 ;间隔点亮 ;从 p1.0 到 p1.7 依次点亮 ;从 p1.0 到 p1.7 移动点亮 ;关显示 ;等待键释放 lcall dl01s jnz out rl a orl a,p1 ajmp fun333 dl01s:mov r2,#0ffh mov r7,#02h loop1: djnz r2,loop1 loop5:djnz r7,dl512 ret dl10ms:mov r3,#14h loop2: lcall dl512 djnz r3,loop2 ret dl05s:mov r4,#0ah loop3: lcall dl10ms

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论