版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机流水彩灯设计目录1、方案设计说明,2( 1)设计项目概述,2(2)设计项目功能及操作介绍,2(3)方案设计思路,22、硬件设计说明,3( 1)电路图,3(2)I/O 的分配 ,3(3)电路工作原理,4(4)主要器件介绍,43、软件设计说明,5(1)软件设计概述,51)设计思路,52)总体功能,63)程序流程图,7(2)程序总体结构及程序的执行与工作过程,8(3)重要程序段说明,8(4)程序清单9,4、制作调试说明,13( 1)制作调试过程及结果,13(2)所遇到的问题及解决方法,135、总结,141 、方案设计说明( 1)设计项目概述本次设计的题目是单片机流水彩灯设计通过综合掌握单片机编
2、程的基本思想,以及中断,定时程序的基本编写方法。利用单片机设计并制作流水彩灯。该流水彩灯设置用一个AT89S51 单片机来控制12LED灯产生不同的发光效果。( 2)设计项目功能及操作介绍其中两个按键K1 和 K2,上电后,12 个 LED 灯全亮;两个按键一个用于控制“流水灯”的启动和停止,另一个用于选择“流水”的花样。其中流水灯花样有三种:1)单个LED灯顺次点亮。2)每两个 LED灯顺次点亮然后再顺次返回。3)从两端每三个LED灯顺向中间次点亮。( 3)方案设计思路按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。流水灯实际上就是一个带有12 个发
3、光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。如果要让接在P0.0 口的LED亮起来,那么只要把P0.0 口的电平变为低电平就可以了;相反,如果要接在P0.0 口的LED熄灭,就要把P0.0 口的电平变为高电平;同理, 接在其他接口上LED灯的点亮和熄灭的方法也如此。要实现流水灯功能,我们只要将发光二极管LED1 LED12依次12 只 LED灯便会一亮一暗的做流水灯了。在此我们还由于人眼的视觉暂留效应以及单片机执行每条指令的时我们在控制二极管亮灭的时候应该延时一段时间,否则我们2、硬件设计说明1 )电路图242 ) I/O 的分配单片机4
4、0引脚接+5V的电源,12、 13引脚接开关K1、 K2, 20引脚接地。使用510 电阻和发光二极管组成12 条支路,分别对应连接单片机的8个 P0口、 4个 P2口共 12个。采用共阳极接法40段接上5V 的外加电压,通过单片机的P0、 P2口控制输出高电平还是低电平。当电压为低电平的时候。二极管发光。该电路由2 个 30PF 的电容和一个晶震组成的,其中晶振接在18 和 19 引脚, 这个作用是为单片机提供一个正常的工作时钟频率。( 3)电路工作原理该流水灯实际上就是一个带有十二个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。从原理
5、图中可以看出,如果要让接在P0.0 口的 LED1亮起来,那么只要把P0.0 口的电平变为低电平就可以了;相反,如果要接在P0.0 口的LED1熄灭,就要把P0.0 口的电平变为高电平;同理,接在P0.1 P0.7 口与 P2.4 P2.7 的其他 11 个 LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1 LED12依次点亮、熄灭,12 只 LED灯便会一亮一暗形成“流水灯”。( 4)主要器件介绍AT89S51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB 闪存、128BRAM、 32 根 I/O 口线、
6、2 个 16 位定时 / 计数器、 5 个向量两级中断结构、2 个全双工的串行口,具有4.25 5.50V 的电压工作范围和0 24MHz工作频率,使用AT89S51单片机时无须外扩存储器。在 MCS-51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为引脚XTAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、 C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是1.212MHz。晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。使用晶体振荡器时,C1、 C2 取值30± 10pF。 C1、 C2 的取值虽
7、然没有严格的要求,但电容的大小影响振荡电路的稳定性和快速性,通常取值2030pF。在这里我们取值30 pF 在设计印制电路板时,晶振和电容等应尽可能靠近芯片,以减少分布电容,保证振荡器振荡的稳定性。3、软件设计说明( 1 )软件设计概述1)设计思路单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后, 我们还不能看到流水灯循环点亮的现象,我们还需要编写程 序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中一个重要的组成部分,我们编程实现流水灯的方法是循环移位法,即:在程序一开始就给I/O 口送一个数,这个数本身就是让这个I/O 口先低, 其他位为高
8、,然后延时一段时间,再让这个数据向高位移动,然后再输出至I/O 口,这样就实现流水效果, 另外由于AT89S51系列单片机的指令中只有对累加器中数据左移或右移的指令,所以我们应把需移动的数据先放到中,让其移动,然后将移动后的数据再转送到I/O 口,这样也可以实现流水效果。如果要让接在p0 与 p2 口的发光二极管实现流水的效果, 则是用程序改变p0 与 p2 口的电平,由于我采用的为共阳极的接线方式,因此低电平为亮,高电平熄灭。2)总体功能这次程序总的要实现四个功能,通电后12 个 LED 灯全亮;单个 LED灯顺次点亮;每两个LED灯顺次点亮然后再顺次返回;从两端每三个LED灯顺次向中间点亮
9、。程序的主要功能是p3.2口的按钮为控制启动与停止,p3.3口的按钮为切换三种“流水”的花样 : 会出现一个灯从上至下的循环亮灭,后又从下至上的循环亮灭回来;会出现两个灯从上至下的循环亮灭,后又从下至上的循环亮灭回来;在灯会产生上3 个灯与最下面的三个灯亮到中间6 个灯亮的情况;3)程序流程图( 2)程序总体结构及程序的执行与工作过程这个程序一共分为四个部分:第一个是对下面需要用到的累加器、寄存器的定义;第二个是编写p3.2 接口按钮功能,第三个则是编写 p3.3 接口按钮功能,而其中有三个花样:第四个则是延时子程序。其工作过程如下流程:( 3)重要程序段说明JUMP1:AJMP STYLE1
10、AJMP STYLE2AJMP STYLE3CLR: 是将其后面指定的位清为0,程序中使对应端口输出低电平ACALL:是子程序调用指令,程序中调用了DELAY延时子程序SETB:是将其后面指定的位置成1,程序中使对应端口输出高电平AJMP:是无条件跳转指令,意思是:跳转到指定的标号处继续运行END: 是程序结束的伪指令,意思是告诉编译器,程序到此结束。伪指令只告诉编译器此程序到此有何要求或条件, 它不参与和影响程序的执行。MOV P2, ARR ACALL DELAYJB ACC.4, LOOPBLS2;同样,当P2.4 为 0,即灯亮到P2.4 处在上面源程序中"ACALL DEL
11、AY"指令的作用是调用DELAY延时子程序。一定要用该指令才能看到我们需要的"流水 "效果。如果不用该指令,则由于12 个LED发光与熄灭的时间都很短,我们肉眼无法看到LED的熄灭与点亮,凭我们肉眼看到的是LED1 LED12都同时亮(半亮),而看不到“流水”效果的!( 4)程序清单ORG0000HAJMPMAINORG0003H; 外部中断0 入口地址外部中断0 连接控制流水灯暂停开始MOVDPTR,#JUMP0;储存转移地址基址MOVA,R6; 储存专一地址的变址,可根据基址+变址来执行开始暂停子JMP A+DPTR; 跳转到中断程序ORG0013H; 外部中
12、断1 入口地址MOVDPTR,#JUMP1MOVA,R7JMP A+DPTRORG0100HMAIN:MOVSP,#60HCLR AMOVR7,#00HMOVR6,#00HMOVP0,#00H; 设置12 个灯全亮MOVP2,#00HSETBEX0SETBIT0SETBEX1; 设置外部中断0 跟 1,开中断SETBIT1SETBEASJMP$ORG0200HJUMP0:;外部中断0 的中断响应程序SJMPSTART;跳转到控制流水灯开始的程序SJMPSTOP;跳转到控制流水灯停止的程序ORG0210H; 实际开始程序地址START:MOVR6,#2HLJMPSTYLE1; 跳转到样式1 开始
13、流水STOP:;流水灯停止程序MOVR6,#0HMOVP0,#00H;12 个灯全亮MOVP2,#00HCLR EA; 关总中断JNB P3.2,$JB P3.2,$;等待下一次按键SETBEA;开总中断CALLDELAYMOVP0,#0H;12 个灯全亮MOVP2,#0HRETIORG0400H;实际外部中断1 程序地址JUMP1:AJMPSTYLE1;跳到方式1 执行AJMPSTYLE2AJMPSTYLE3;第一种花样ORG0500HSTYLE1:MOVR7,#2H;R7 储存控制花样地址通过基址+ 变址来控制花样MOVP0,#0FFH;从 12 个灯全灭开始,一个一个亮MOVP2,#0F
14、FHMOVA, #0FEH; 单个LEDLOOPAS1:MOVR0, #8LOOPALS1:MOVP0, ARLACALL DELAYDJNZR0, LOOPALS1MOVP0,#0FFH;P0 口 8个灯流水完毕;后 4个灯(程序中为P2.4-P2.7,可修改)MOVA, #7FH;单个 LEDLOOPBS1:MOVR0, #4HLOOPBLS1:MOVP2, ARRACALLDELAYDJNZR0, LOOPBLS1MOVR1,#3DJNZR1,STYLE1MOVP2,#0FFHRETI;第二种花样STYLE2:MOV R7,#4HMOV P0,#0FFH;同样从12 个灯熄灭然后开始第二
15、种花样MOV P2,#0FFHLOOPAS2:MOV A, #0FCH ;两个 LEDLOOPALS2:MOVP0, ARLACALL DELAY;当 P0.7为0,即亮到P0.7 此处JB ACC.7, LOOPALS2CALL DELAYMOV P0,#07FHMOV P2,#7FHCALL DELAYMOV P0,#0FFHMOV A, #3FH;两个LEDLOOPBLS2:MOV P2, ARR ACALL DELAYJB ACC.4, LOOPBLS2;LOOPCRS2:MOVP2, ARLACALL DELAYJB ACC.7,LOOPCRS2MOV P2,#3FHCALL DEL
16、AYMOV P2,#7FHMOV P0,#7FHCALL DELAYMOV P2,#0FFH;MOV A,#3FHLOOPDRS2:MOVP0, ARRACALL DELAYJB ACC.0,LOOPDRS2;MOV R1,#03HDJNZ R1,STYLE2RETI;第三种花样STYLE3:MOV R7,#0HMOV P0,#0FFHMOV P2,#0FFHLOOPS3:MOV A,#0F8HMOV P0,AMOV A,#8FHMOV P2,ACALL DELAYMOV A,#7HMOV P0,A; 右移,打到流水目的后面的 RL 跟 RR 同理;同样,当P2.4为0,即灯亮到; 循环 3
17、次P2.4 处MOV A,#7FHMOV P2,ACALL DELAYMOV R1,#5HMOV P0,#0FFHMOV P2,#0FFHDJNZ R1,LOOPS3RETI;延时子程序DELAY:MOV R4, #2L1:MOV R2, #250L2:MOV R3, #250L3:DJNZ R3, L3DJNZ R2, L2DJNZ R4, L1RETIEND4、制作调试说明( 1)制作调试过程及结果启动 Keil 单片机集成开发环境,建立新工程,将上面的源程序导入到工程中,设置好Keil 工程的编译参数,编译得到HEX格式的目标文件,用ISP 编程器将HEX格式的目标文件烧写到AT89S5
18、1单片机中,接下来就是将烧写好的AT89S51从编程器上取下,放到我们焊接好的流水灯实验板上,通电,通过控制开关K1、 K2 我们就看到了LED1 LED12不同的"流水"效果了。( 2)所遇到的问题及解决方法问题: 1)只有 P0.0 端口的一个灯亮;2)所有的灯一个都不亮或者全亮; 3) LED 灯没有循环或跳转解决措施:1 )程序中循环跳转书写有误。2)程序编写有误,看有没有初始值或者初始值设置错误。3)延时程序太慢、程序中没有写入跳转。5、总结这次的任务分为两部分,一部分是硬件设计部分,另外一部分是软件编程部分。在设计硬件电路的同时也必须先考虑好程序的设计。因为程序是和电路挂钩的,不然的话就会出错。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艺术场馆营销方案(3篇)
- 2026江苏南京大学南京赫尔辛基大气与地球系统科学学院准聘长聘教师岗位(事业编制)招聘备考题库含答案详解【达标题】
- 装饰构架施工方案(3篇)
- 钳工放线施工方案(3篇)
- 防护挡板施工方案(3篇)
- 顾客裂变营销方案(3篇)
- 高山塌方施工方案(3篇)
- 2026北京燕东微电子股份有限公司春季校园招聘备考题库及参考答案详解(培优)
- 2026湖北武汉人才服务发展有限公司招聘派往武汉市国企工作备考题库附答案详解【培优b卷】
- 2026广西大学期刊中心招聘劳务派遣人员6人笔试模拟试题及答案解析
- 中考语文必背篇目古诗词曲(85首)
- 华为干部管理手册
- 2025年江苏省南通市崇川区中考物理一模试卷
- 汽车理论(第6版)全套课件
- 法律常识100题及答案解析
- 企业行政工作标准作业程序
- 无创呼吸机使用安全操作流程
- 电子专用设备装调工操作能力水平考核试卷含答案
- 2025版头晕眩晕基层诊疗指南
- 白头翁皂苷B4对雄激素致小鼠脱发的治疗效果研究
- 2025年10月“江南十校”2026届新高三第一次综合素质检测 英语试卷(含答案详解)
评论
0/150
提交评论