单片机课程设计报告——数字电压表 下载本文

i=led[k]; P0=a[i]; if(k==3) {

P07 =1; }

delay(); } }

void main(void) {

ET0=1; EA=1;

TMOD=0x02; TH0=216; TL0=216; TR0=1; while(1) {

START=1;

START=0; //启动转换 while(EOC==0); OE=1; tvdata=P1;

tvdata*=20-0.01; OE=0;

ledxianshi(); delay(); } }

void t0(void) interrupt 1 using 0 {

CLK=~CLK; }

六、硬件制作与测试

1、主要仪器及使用方法

主要仪器:5v直流电源,剥线钳,数字万用表,通用版电路板,电烙铁,镊子,USB转串口线。

其中5v电源可以从电脑的USB接口引出,使用电烙铁时注意不要手直接触摸。 调试电路的方法和技巧: (1)目测 检查外部的各种元件或者是电路是否有断点,有无虚焊 (2)用万用表测试 先用万用表符合目测中有疑问的点,再检查各种电源线 与地线之间是否有短路现象 (3)加电检测 给板子加电,检测所有的插座或是器件的电源端的电压 是否符合要求的值

(4)注意事项 在通电检查前,一定要确保电路板没有短路

2、硬件制作步骤

(1)将单片机的最小系统焊接出来,进行调试,检验是否能下载程序、进行电路复位、晶振是否起振。 (2)扩展部分的焊接,在这我采用了ADC0809作为扩展芯片,原因是ADC0808和ADC0809的功能、引脚几乎都相同,用74ls244驱动数码管显示。 (3)焊接完后对电路进行调试,检查结果是否正确。

焊接的电路图如下:

七、设计过程中的问题及解决方案

(1)单片机的最小系统完成后,接上发现显示灯不亮。

检查发光二极管是否接地或接电源,若都接了则检查晶振是否起振,电路是否短路或断路,结果发现忘记将发光二极管接地。 (2)通电后发现数码管显示亮度不均匀

检查与数码连接电路是否有误、短路或短路,若没有则检查74ls244驱动是否问题,经过仔细发现及测试,发现74ls244坏了,换了个芯片后即可显示均匀。

(3)下载程序到单片机后,通电运行,发现怎么改变电压都没有变化且显示5 检查ADC0809所对应的各个引脚有没有接错,若没有则通过将P1口置0,观察各个线路的显示结果,发现ADC0809芯片有问题,换了芯片后可正常显示。 (4)发现每个数码管显示相同的数字

检验段扫描连接是否正确,若无误,在检查程序是否正确,最后发现延时函数有一个地方写错,以致不能扫描,显示相同的数,修改程序后,即可进行扫描。

(5)现数码管显示的数字比较闪

修改程序,调整扫描延时时间,即可改正。

八、心得体会

本次课程设计让我温习了单片机的基本原理、功能以及构造,以及ADC0808/ADC0809的基本工作原理,学会了使用KeilCx51和Protuse这两个软件的基本使用方法,利用C语言在KeilCx51下进行编程实现所需要的功能,同时在Protuse软件上画电路图并进行仿真,通过硬件的制作提高了动手能力和分析问题的能力。

软件部分的编程,主要是通过看芯片的基本资料进行编写的,所以我意识到了当你需要某个东西时,一定要去了解它,弄清楚其工作原理、实现方案以及需要注意的地方,特别是像一些芯片工作的时序图,这是编程之前必须去了解的。

对于硬件部分,我收获颇多。首先,让我对单片机的最小系统有了深刻的理解,特别是通过串口通信将程序下载到单片机中,明白了将程序下载到单片机的方法和原理。其次,对一些基本电路检测问题,能够做到独立解决,像我在实验过程中遇到了各种不同的问题,其实是对自己能力的体现,其实问题多还更加好,那样你可以更加发现自己的不足之处,这样才能够提高。最后,此次设计提高了我的焊接技术,比起以前的课程设计焊的电路图,真的发现自己提高了很多,比如在布局上更加地合理、简洁、美观。

我很早就把电路给焊好了,可是后面的调试花了比较长的时间,在此我领悟到遇到问题时不要心燥、心烦,而是要静下心来认真分析问题之所在,想出各种有效的解决方法,这样才会很好的解决问题,同时提高自己独立思考的能力。