利用单片计算机实现彩灯控制_第1页
利用单片计算机实现彩灯控制_第2页
利用单片计算机实现彩灯控制_第3页
利用单片计算机实现彩灯控制_第4页
利用单片计算机实现彩灯控制_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、利用单片计算机实现彩灯控制    利用单片计算机实现彩灯控制 1设计要求    利用彩灯的各种闪烁的变换作为装饰在生活中处处都能够看到。彩灯的闪烁变换可以用简易的数字电路等来实现,在学习了单片计算机之后试着利用单片机的功能来控制其闪烁变换。 2硬件设计方案 电路元器件:面包板;    普通的发光二极管,导通电压0.5V;    芯片插座;    晶振;    

2、;时钟电容:22pF*2;    限流电阻:220*8    限流电阻:1K*1;    复位电路电容:30uF;    点触式开关:1; 2.1 二极管发光的实现 由于单片机P1.口的输出电流仅有十几到几十uF,这样小的电流不能使发光二极管发光,于是采用了“灌电流”的方法,如图1所示 图1 二极管发光的实现 选用的外加电源Vcc=5V,根据二极管的导通电压是0.5V的性质,可以求的限流电阻的阻值,在实验中选用220的电阻即可。 2.2

3、时钟电路的组成 在实验用采用了12M的晶振,与之配合使用的是22pF的陶瓷电容。如图2所示 图2 时钟电路的组成 2.3 复位电路的设计 所谓复位,就是在单片机MPU的RESET引脚上出现3-5个时钟周期的高电平。当MPU被复位以后,其内部的寄存器的各项数值将会被恢复成硬件电路规定的初值。 复位有上电复位和自动复位两种,根据实际用途的需要,在本实验中采用的上电复位,如图3所示 图3 复位电路的组成 2.4 硬件电路其他部分的安排 考虑到本实验的特点,MPU的EA/VPP引脚,即程序存储器选择信号端和编程电源输入端不能悬空,应长置为“1”,这点在芯片插座引脚和外电路的连接上可以体现出来。 2.5

4、 整体的电路图 综上,可以得到总体上的电路原理图。 3软件实现 人眼能看到发光二极管的闪烁是因为其闪烁的时间间隔大于一个特定的值,低于这个值我们将无法看到其闪烁变换,为此,确定二极管的闪烁间隔为0.2s 。这种延时的功能可以用调用延时子程序或者中段服务程序来实现。以下讨论两种方法及其实现: 3.1延时子程序实现延时 单片计算机运行每条程序将占用1个、2个或4个机器周期。为此,可以用一定数量的程序的执行来实现延时。 总延时 ,其中N为指令总数,t为一个周期的时间。 以下是延时程序的代码 ORG 0000H AJMP START ORG 0040H START:MOV P1,#0FFH ;灯全灭&

5、#160;   LCALL DELAY    ;调用延时子程序    MOV P1,#000H    ;灯全亮    LCALL DELAY        MOV P1,#0FFH ;等全灭    LCALL DELAY    MOV P1,#07E

6、H    ;第8、第1灯亮    LCALL DELAY    MOV P1,#03CH    ;第7、8,第1、2灯亮 DALAY:MOV R5,#20    ;延时子程序,延时0.2s D1:MOV R6,#20 D2:MOV R7,#248    DJNZ R7,$    DJNZ R6,D2 

7、0;  DJNZ R5,D1    RET    END 3.2中断实现延时的程序    ORG 0000H    AJMP MAIN     ORG 000BH    AJMP INT0    ORG 0030H MAIN:MOV P1,#03CH    ;

8、第7、8和第1、2灯亮    MOV R7,#00H    MOV TMOD,#010H    MOV TL0,#0E0H    MOV TH0,#0B1H    SETB EA    SETB ET0    SETB TR0 HERE:SJMP HERE INT0:PUSH ACC   

9、 MOV TL0,#0E0H    MOV TH0,#0B1H    INC R7    CJNZ R7,#26,PEND    MOV R7,#00H    MOV P1,#0C3H    ;第3、4、5,6灯亮    POP ACC PEND:RETI    END

10、 4程序的调试 将写好的程序在伟福编译器中进行编译,得到.BIN文件,固化到单片机的芯片中,将芯片插到前面已经组装完毕的硬件电路的芯片插座上,这样就组成了一个完整的彩灯控制电路,当接通电源之后理论上就应该看到彩灯按照预定的方式闪烁。 4.1延时子程序的运行 该程序的运行按照预定的程序运行,每隔0.2s可以看到彩灯闪烁一次,并且8个发光二极管的亮和灭严格按照程序的要求进行; 4.2中断程序实现的延时 由于程序采用了中断方式延时,所以彩灯闪烁的改变只能由中断服务子程序中设定的程序来实现对其的改变,在此程序中,在MAIN主程序中已经设定了彩灯初始时有第1、2和第7、8灯亮,而在中断服务子程序中有第3

11、、4、5,6灯亮,从而实现了“闪烁”,但是这种中断方式的缺点在于闪烁的模式太过于单一,只能进行这两种方式的循环改变。在实际中难以满足人们多样化的需求,这是一个需要解决的问题。     4.3中断程序实现的延时方法的改进 为此,我对以上的程序进行了一点改动,综合子程序延时和中断延时两程序写了下面这些代码:    ORG 0000H    AJMP MAIN0    ;第一种亮的模式    ORG 0

12、00BH    AJMP INT0    AJMP MAIN1    ;第二种亮的模式    ORG 000BH    AJMP INT0    AJMP MAIN2    ;第三种亮的模式    ORG 000BH    AJMP INT

13、0    ORG 0030H MAIN0:MOV P1,#00FH    ;第一种亮的模式:5、6、7,8灯亮    AJMP MAIN MAIN1:MOV P1,#0F0H    ;第二种亮的模式:1、2、3,4灯亮    AJMP MAIN MAIN2:MOV P1,#000H    ;第三种亮的模式:全亮    

14、AJMP MAIN MAIN:MOV R7,#00H    MOV TMOD,#010H    MOV TL0,#0E0H    MOV TH0,#0B1H    SETB EA    SETB ET0    SETB TR0 HERE:SJMP HERE INT0:PUSH ACC    MOV TL0,#0E0H&

15、#160;   MOV TH0,#0B1H    INC R7    CJNZ R7,#26,PEND    MOV R7,#00H    MOV P1,#0FFH    ;灯全灭    POP ACC PEND:RETI    END     在这段程序中,中断服务程序执行的是“灯全灭”这一动作。灯的闪烁模式有三种,由对P1口送指定的立即数来实现。 可以看到,等待计数器计数到FFFF需要一段时间,这也就是灯闪烁的

温馨提示

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

评论

0/150

提交评论