七、实物的组装与调试
1.实物的组装
由于班上每组同学设计题目,设计电路都不一样,所以制作pcb板的想法也就给抹杀了,采取的是手工焊接。而对于我们本组来说,电路模块还是比较复杂的,而选取的电路板对我们来说,就小了很多。这是我们组对元器件的摆放及布局增添了很大的难度。
(1).首先是对元器件的认知。 Ⅰ按键检测
弹性小按键被按下时闭合,松手后自动断开;将数字万用表置于二极管档,接按键任意两个脚,听到响声,则证明两脚是导通的。按键有四个脚,分别两组导通。在焊接时,应只将一组中任意的一个脚接地,另一组的一脚接入电路。 Ⅱ数码管检测
将数字万用表至于二极管档,黑表笔接在1脚,然后用红表笔去接触其他各引脚,发现数码管没有任何显示,此时有两个可能,数码管是坏的或是红黑表笔接反了。此时交换红黑表笔,去接触其他各引脚,发现数码管最左边有显示,所以排除数码管坏掉的可能,我们就可以判读数码管为共阳极结构类型, 数码管引脚图
同时1脚为数码管最左边的位选短,让后将红表笔接1脚,依次可以判定出数码管的段选a,b,c,d,f,e,g,dp,依照此步骤,便可将数码管各引脚检测出来,引脚图如右侧。 (2).实物焊接
小小的板,芯片勉强给装上去了,但是焊接的确是个很大的难题。因此我们采用的是在芯片附近连接上排针,在利用跳线来完成电路的连接。焊接电路如下图。
15
焊接实物图
2.调试
电路焊接完成后,利用跳线完成电路的全部连接。加上5v电压,只有单片机
工作的指示灯亮着,而数码管没有任何反应。于是,开始排查电路中那个模块出现了问题。首先当然想到的是数码管总存在着虚焊的点。利用万用表,测着每个引脚与接地短的电压,发现了果然有几个点存在着虚焊现象。排除这一问题后,加上电压,数码管显示000。但当按键按下,数码管却没开始工作,继续排查原因。结果发现在锁存器u3与其连接时,引脚接错。将其改正后,电路基本上实现了我们所需的抢答功能。
当我们尝试着让每个键是否能正常抢答时,发现2号按键按下没有什么反应。刚开始想着是否是按键出现了问题,利用万用表检测,发现按键工作状态是对的。最终将问题锁定在了跳线上,换了跟跳线。2号按键便能正常工作了。我们的抢答器成功了。
八、心得体会
本次课程设计和以往的两次都不同,实现的项目,只需用单片机来实现,对于做什么,完全可以自己决定。因此我们多了选题这个步骤。在选题中,我们到
16
图书馆,网上查询资料,最终我们小组决定做抢答器。在实习过程中发现了这学期课程中所学的单片机知识只是其中的冰山一角,很多都需要我们学着去扩展。在设计过程中,我们学的用到的都是我们常用的器件,锁存器74hc153,与门74hc08,数码管。这在之前的频率计中对这些芯片已经有了一定的了解了。调试过程是一个考验人耐心的过程。而自己的马虎大意,导致在电路仿真时,停留了很长时间。仿真时,数码管就是不亮,在修改了n次电路问题之后,还是没能驱动它。最终在请教同学后,才知道是自己的程序的问题——While语句后直接添加了“;”。这个问题我曾在看书时,书中还特意强调了while语句的作用,结果自己还是把它抛到脑后了。在制作实物的时候,我们也遇到了不少问题。但在大家的耐心讨论下,这些问题我们都一一解决了。最终,我们的抢答器也成功制作出来了。这次实习,让我们懂得了要熟练地掌握课本上的知识,这样才能对实验中出现的问题进行分析解决。同时,我们也学到了团结合作的精神。
17
附录
1.电路原理图
18
2.子程序 (1)延时程序
void delay_ms(uchar xms) {uchar i,j;
for(i=0;i<=xms;i++) for(j=0;j<=110;j++); }
(2)显示程序
void display(uchar wei,uchar duan) {P0=table0[duan]; dula=1; dula=0;
P0=table1[wei]; wela=1; wela=0; delay_ms(50); P0=0x00; wela=1; wela=0;}
(3)计时器赋初值程序 void T0_init()
{TL0=(65536-50000)%6; TH0=(65536-50000)/256; TMOD=0x01; EA=1; ET0=1; }
(4)中断初始化程序 void int0_init() {IT0=1;
19