单片机课程设计--流水灯

用单片机I/O口实现流水灯电路

课程名称:单片机课程设计

姓名:gdpnzzm

学号:gdpnzzm@https://www.360docs.net/doc/fa9057366.html, 序号:

系:

专业:

班级:

指导教师:

目录

一课程设计目的 (3)

二课程设计内容及其要求 (3)

三设计原理 (3)

四总原理图及元器件清单 (4)

五仿真图与程序代码 (4)

六调试所遇问题及排除措施 (7)

七设计心得体会 (7)

八参考文献 (8)

九本课程设计还可改善的地方 (8)

一、课程设计目的:

以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目的。

二、课程设计内容及其要求:

1、用单片机控制LED灯轮流亮与灭,达到流水灯效果。

2、利用外部中断程序,使得LED灯由一个一个亮变成两个两个亮。

三、设计原理

单片机的设计主要是通过写程序控制芯片的电位变化从而实现电路的变化。本次流水灯的设计主要体现了这一原理。由于二极管是正向导通,逆向截止的。流水灯的亮灭主要是通过控制芯片引脚电压的变化从而实现灯的亮灭,而多个灯的亮灭从而实现了流水灯的效果。

此次课程设计我们使用到的软件主要有Isis professional、altium designer、Keil uVision3、还有stc_isp v4。我们用ISIS professional 进行电路仿真,减少在硬件电路中的错误检查次数。而且更能直观的观察程序和硬件电路的正误。通过仿真,我们走少了很多弯路。可以说仿真是课程设计很重要的一个环节。

我们的程序代码是用Keil uVision3编写的,芯片的型号是用AT89C52,Keil uVision3也是一个很好的编程软件,他提供了hex文件让我们在isis professional软件中仿真。

altium designer是我们用来制作电路原理图和PCB图的工具,对于它的使用我还不是很了解,但是在此次课程设计中我也学会了很多,比如以前只会笨拙的用线连接各个电气连接点,现在学会了使用网络标识。

四、总原理图及元器件清单

本次课程设计的总原理图如下

本次使用的元器件清单有

五、仿真图与程序代码

本程序的程序代码由Keil uVision3

#include

#include

unsigned char temp=0xfe;

unsigned char i;

void delay(void)

{

unsigned char m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=250;s>0;s--);

}

void main(void)

{

IT0=1; //外部中断INT0边沿触发

EX0=1; //外部中断INT0允许

EA=1; //打开CPU总中断请求

temp=0xfe;

while(1)

{

P1=temp;

delay();

temp=_crol_(temp,1);

}

}

void int0() interrupt 0 using 1

{

temp=0xfc;

while(1)

{

P1=temp;

delay();

temp=_crol_(temp,2);

}

}

本程序最主要的一条语句是temp=_crol_(temp,1);,这主要是调用了

在接受外部中断的后,先把temp赋值为0xfc,即:1111 1100,此时有两个是低电平,二极管正向导通,通过循环左移两位,实现两个灯轮流亮灭的效果。

六、调试所遇问题及排除措施

虽然仿真图在仿真软件上通过了,可是实物连接还是出现了问题,我们的PCB 板在打洞的时候少打了一个洞,后来去实验室解决了。还有就是我们的PCB板本来是使用四脚开关,结果买来的器件却是贴片开关,我们的引脚距离也太小,还好最后我们在别的同学那里找到了我们想要的开关。

比较复杂的问题是,负责画PCB图的同学,在画图的时候,由于少加了网络标识符,所以在生成的PCB上,C1没有连接VCC,R3成了一个无用的电阻。最后通过电路检查,我们使用了跳线,完成了这一功能。

还有一个是芯片插座接触不好,DC头插拔次数过多也导致接触不好,导致电路很多时候出现了不应该出现的错误,比如没有亮灯,没有中断,或者只有中断程序的现象。我们通过使用万用表排查电路故障,研究程序,更换底座,检查连线的各种方法,解决了这种问题。可以说在芯片接触不好这方面的问题是消耗了我们最多时间的,而且这方面的问题可能还有待改进。

七、设计心得体会

本次实验,我主要负责的是电路的仿真还有电路的程序制作。由于时间紧张,期末临近,本来打算用一个中断实现两种亮灯效果的想法没有实施。在这次做实验中,我们学会了如何去利用I/O口的电压,从而实现电路的改变。当我们排除了很多的故障之后,终于看到自己所制作的程序达到了我们预期的目标,那种喜悦真的是不可言状的。

我们在排除故障的时候,几次几乎想放弃,重新做一块板,但是我们还是坚持了下来,相信坚持了下来让我们学到的东西更多。做这次实验,是我们整个宿舍熬夜加班做完成了,对于每个舍友的努力,真的感受到真就是一个团队,一个真正的团队不需要每个人都很厉害,但是要齐心协力,这样就能把力量发挥到最好。

在这次设计中,我也感受到了知识的魅力,其实很多东西我们可以用自己所学的知识,还有自己的双手将它实现出来。我相信,以后我在路上看到的LED广告灯不再只是关注广告的内容,而是关注它的原理,看到它,我会想起,这是用什么原理做成的呢?

而且通过这次课程设计,我以后看到LED灯,我也会想,自己也能做一个出

来。

通过这次课程设计,我更加喜欢上了单片机,虽然以前早有接触,但是一直没有机会能做出一样真正的实物,这是很遗憾的的,这次的课程设计让我们感受到,我们所学的知识,不是死的,是活的,是可以被自己运用的。

通过这次课程设计,我更好的掌握了电路知识,还有各种仿真,PCB制作软件的应用,这对我以后的职业生涯有不可忽视的重要作用。

八、参考文献

《51单片机C语言教程》------郭天祥

《单片机原理与应用系统设计》------电子工业出版社

九、本课程设计还可改善的地方

1、由于器件购买得不好,有时候会出现接触不良现象,可以购买更好的元器件进行安装调试。

2、可以增加复位按键。我们的单片机的复位电路是自复位,没有手动复位键,下次做可以做一个双方法复位电路。

3、可以增加其他LED灯亮灯效果。

相关文档
最新文档