一、实验目的
1.熟悉Keil uVision2软件的安装和应用;
2.熟悉Proteus7.8软件的安装和应用;
3.掌握《单片机多功能彩灯控制器的设计》的编程、仿真和调试方法。
二、实验环境
1.微机一台;
2.Proteus7.8电路设计和仿真软件;
3.Keil uVision2编译和调试软件;
三、实验原理
图1是单片机多功能彩灯控制器的电路原理图,P2接8只LED,限流电阻为220Ω,时钟电路接在单片机的DIP18、DIP19,复位电路接在单片机的DIP9, DIP31接Vcc。
要求用C语言编写程序,使该电路的功能为,上电后8只LED的显示状态为:
【○○○○○○○●】→【○○○○○○●○】→【○○○○○●○○】→【○○○○●○○○】→
【○○○●○○○○】→【○○●○○○○○】→【○●○○○○○○】→【●○○○○○○○】→
【○○○○○○○○】,
时间间隔为300mS,循环往复。
图1单片机输出控制电路原理图
多功能彩灯控制器的参考程序如下:
#include <AT89X51.H>
unsigned char code table001[]={128,64,32,16,8,4,2,1,0};
void delay300ms();
main()
{
unsigned char m;
while(1)
{
for(m=0;m<=8;m++)
{
P2=~table001[m];
delay300ms();
}
}
}
void delay300ms()
{
unsigned char i,j,k;
for(i=3;i>0;i--)
for(j=200;j>0;j--)
for(k=248;k>0;k--);
}
四、实验步骤
1.安装Keil uVision2;
2.安装Proteus 7.8;
3.在Proteus ISIS环境下设计一个用单片机的I/O口(P2)作为Output控制8只LED的电路;
4.在Keil uVision2环境下,用C语言编写多功能彩灯控制器的程序,编译生成hex文件。当出现错误时,使用Debug调试和修改程序,直到生成hex文件。
5.将生成的hex文件加载到单片机,运行仿真,观察现象,记录结果;
五、实验记录与处理
1. 多功能彩灯控制器的实验结果(仿真)如下:
数据处理:从以上数据我们可以看出,
六、思考题
1.简述单片机的硬件最小系统,分为几个部分?
答:
2.简述单片机的软件最小系统,用了单片机的多少资源?
答:
3.8只LED采用的是什么连接方式,为什么要这样,否则会怎样?
答:
4.7段共阳数码管采用的是什么连接方式,为什么要这样,否则会怎样?
答:
5.实验过程中出现了什么问题,你是如何处理的?
答:
七、实验小结
通过实验我熟悉了
第二篇:彩灯设计数电实验报告
西安邮电学院
电子设计报告书
——多路彩灯控制器
课程设计题目:多路彩灯控制器
一、实验目的
1、熟悉常用集成芯片的性能,并利用芯片的功能设计电路;
2、对所学理论进行的巩固和检验,并进一步学习;
3、提高动手能力,在实践中达到更好的学习效果。
二、实验要求
设计一个至少8路的移存型彩灯控制器,彩灯用发光二极管LED灯模拟。
具体要求如下:
1、多路彩灯的模型至少要有8盏;
2、实现多路彩灯的多种花型自动变换(至少要求3中花型);
3、选做内容:将能够显示的花型种类增加至 4 种;
4、实现多路彩灯的节拍的自动变换(至少要有快慢2种节拍)。
三、使用元件
四、总体方案的设计
时钟脉冲采用简单易行的555振荡器来实现,产生周期为1s的时钟脉冲,经过一片74LS74进行分频,产生周期为2s的时钟脉冲然后用74LS151 8选1数据选择器进行快慢输出的选择。信号经过分频之后经过控制电路两片74LS161级联来实现花型的变化,然后输出到移位寄存器74LS194的位移端。选择移位寄存器的原因是花型要求不多,因此采用移位寄存器来组成彩灯控制电路。
彩灯控制器是以高低电平来控制彩灯的亮与灭。如果以某种节拍按一定规律改变彩灯的输入电平值,控制彩灯的亮与灭,即可按预定规律显示一定的花型。因此彩灯控制电路需要一个能够按一定规律输出不同高低电平编码信号的信号发生器,同时还需要信号发生器所要求的时序信号和控制信号。综上所述,彩灯控制器应由节拍产生、节拍切换、花型切换、及花型显示模块组成:
其结构框图如图所示:
五、单元电路的设计
1、三种花型的设计:
(1)定时器由555振荡器及少量电阻、电容构成,产生定时脉冲1s,再经过74LS74中的D触发器产生分频信号为2s脉冲;
其电路图如下所示:
(2)节拍切换模块是有74LS151和74LS74构成,在这里74LS151 8选1数据选择器主要起到快慢切换的作用,当高位74LS161的输出取反为0时选择D0输出,则花型变换为慢节拍。反之,则为快节拍。
(3)花型控制模块,用两片 74LS161 构成模值为32的计数器,控制三种花型,第一种花型有16个节拍(从第一个到最后一个逐个点亮,然后逐个熄灭),第二种花型有8个节拍(第四个与第八个等逐个点亮,逐个熄灭),第三种花型有8个节拍(第四个与第五个等逐个向两边点亮,然后逐个熄灭),故这三种花型依次循环一遍共需32个节拍,两片芯片连法如下。
其电路图如下:
(4)花型显示模块有两片移位寄存器74LS194控制,移位寄存器的左右移动受,的控制, =0 1时花型右移, =1 0时花型左移,其输入信号与花型切换信号的关系,用低位片的QC和QD和高位片的QA控制,如下表所示:
(5)
根据上图可利用卡诺图写出上下移位寄存器的输入:
上边移位寄存器:SL =/QC , SR=1, S1=QD+QA ,S0=/S1
上边移位寄存器:SL=QA+/QC ,SR=/QA*QC+QA*/QC S1=/QD*QA+QD*/QA , S0=/S1。
其电路结构图为:
六、总系统电路图
三种花型系统
七、心得体会及分析
两周的实习,转眼便结束了,体会到实践并不是像每个人期许的那样。开始的几天,我使用Multisim软件进行电路的设计,从验证时钟产生电路555,之后的模32位计数器,以及移位寄存器电路的设计,还有产生2s脉冲,每一步都会在仿真软件中加上示波器或者二极管进行验证,直到实现我想要实现的功能,然后就觉得大功告成了。
实习的第二周我开始正式插面包板,由于心急,所以一次性把所有器件都按照电路图连接好,忙活了很久,但是八个彩灯没有一个被点亮。我意识到了自己的错误,开始像仿真软件一样,逐步开始,555信号发生器是很早以前就验证过的,所以在输出时钟端口始终加一个LED,在模32计数器后也加彩灯,发现计数器并没有实现计数功能,一上午反复的拆了几次板子,结果没有任何收获。为了尽快完成,我下午又和其他班级的同学一起继续插面包板,但32计数器正常工作后,连接其他电路后还是无法实现功能。然后我就开始验证每一个器件。当然,其中检查了很多次每一个芯片的接地线和接正电平的线。保证接地线和接正电平的线都没有问题,先验证74LS00输入分别接高电平,低电平,还有分别接高低电平,在输出加LED,经验证,74LS00的每一个与非门都正常工作,用同样方法我依次验证了74LS04,74LS08,74LS32,74LS86。发现我的74LS08只有一个与门的功能正常。逻辑门器件验证完毕后,我又验证了74LS161,即用最高位取反,接在LOAD端,实现8位计数功能。
由于线路排列不整齐,所以周二我依然纠结于花型凌乱的问题。即时每次连接之后,我都会用万用表来测试线路是否连接,但是还是没有实现功能。最后发现是由于32位计数器的功能不够完备,经过修改之后,周三终于完成了一种节奏的彩灯。加入变节拍电路,由于分频点没有选对,使得LED闪烁依然很乱,最后,我采用了74LS161高位片QA取反的方法作为分频点,最终实现功能,但是缺陷就是有一个花型的闪烁会有两个LED同时点亮,很遗憾没有解决这个问题。虽然尽可能不出现交叉线路,将每条线路都平铺在面包板上,各4个模块都分布清晰,但是线路还是有些凌乱。。
通过这次课程设计,我增长了不少实践的能力,懂得理论与实践之间的差别,也明白了为什么在Multisim上仿真可是实现的功能在电路板上为什么不可以实现。并深入理解了理论与实践要相结合的道理。很感谢老师在我遇到问题时帮我分析,令我茅塞顿开,并指正我原理图出现的问题。设计实验的过程中,让我对课本上的知识有了更清晰的认识和了解,学会了运用一些器件来完成某些具体的功能,对器件功能的了解更深入,应用也更灵活了,重要的是我学会了思考问题的方法和思路。另外也培养了我解决问题的能力和习惯。
西安邮电学院 电子设计成绩鉴定表