基于c51的数字电压表.docx
- 文档编号:27647074
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:9
- 大小:68.61KB
基于c51的数字电压表.docx
《基于c51的数字电压表.docx》由会员分享,可在线阅读,更多相关《基于c51的数字电压表.docx(9页珍藏版)》请在冰豆网上搜索。
基于c51的数字电压表
设计要求和条件
要求:
利用开发板和ADC0809构成一数字电压表,实现对外部多路电压信号的巡回测量和显示,电压范围为0~5V。
条件:
开发板、AT89C52、ADC0809
设计方案论证(包括设计思路、设计方法、有关计算、图表、程序等。
)
主要设计方框图如下:
数码管显示
单片机处理
模数转换
电压采集
1、主控芯片
四、电路设计思路
模拟电压经过档位切换后形成七段码,经隔离干扰送到A/D转换器进行A/D转换,转换成BCD码。
然后送到单片机中进行数据处理。
处理后的数据送到74ls47形成数码管的段选和74ls138形成数码管的位选。
而硬件电路又大体可分为A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用Keil和PROTEUS软件对其编译和仿真。
一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。
我利用数码管与三极管串联作为驱动电路。
本实验采用AT89C52单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表。
该电路通过ADC0809芯片采样输入口IN0输入的0~5V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给AT89C52芯片的P1口。
AT89C52负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P0口传送给数码管。
同时它还通过其三位I/O口P0.4、P0.5、P0.6产生位选信号,控制数码管的亮灭。
另外,AT89C52还控制着ADC0809的工作。
其P3.3管脚为ADC0809提供了1MHz工作的时钟脉冲;P3.5控制ADC0809的地址锁存端(ALE);P3.6控制ADC0809的启动端(START);P3.4控制ADC0809的输出允许端(OE);P3.7控制ADC0809的转换结束信号(EOC)。
1、模数转换
电路原理图如下所示,三个地址位ADDA,ADDB,ADDC均接地,因而所需测量的外部电压可由ADC0809的IN0端口输入。
由于ADC0809
在进行A/D转换时需要有CLK信,本设计中利用AT89C52的定时中断产生一个100KHZ的脉冲,由P3.5口送给ADC0809的时钟端,通过软件给其输入一个正脉冲,可立即启动A/D转换。
在软件设计中,由于我们对单片机知识还没能很熟练的掌握,用中断方式较复杂,且这个程序CPU工作量不大,查询方式对速度不会产生影响,所以我们采用查询方式,确保仿真的进度和准确度。
系统原理图
2、数据处理及控制
A/D转换完毕后,单片机的P3.6口接收到一高电平,立马通过P3.4将OE置1,ADC0809的三态输出锁存器被打开,转换完的数字信号经过与D0~D7相连的P1口进入AT89C52。
AT89C52将数字信号转换为模拟量,然后利用程序获取模拟量的每一位,分别通过P0口输出经74ls47和74ls138在数码管上进行显示。
与此同时,AT89C52会通过P0.4~P0.6口选择用哪一段LED显示所传出的数据。
例如,当P0.4~P0.6=1110,则LED接收到的数据会在第四段LED上显示。
另外,AT89C52一旦获得了数据后便会将ST置0,即模数转换器停止转换,知道LED获得新的数据并显示出来,ST才会重新置1.由于AT89C52转换速率很快(微妙量级),所以不会影响其接收新的数据。
四、部分电路介绍
1、晶振电路
接12MHz晶振,根据芯片手册,适合并联30pf微调电容,从而构成并联谐振,帮助和稳定输出波形。
2、复位电路
AT89C52单片机要求至少两个高电平,以便单片机做好准备工作。
当上电时,由于电容的电压不能突变,会输出高电平,当电容充电到一定程度,就会输出低电平,单片机利用输出高电平的这段时间复位。
电阻和电容的值选择要合适。
在这要求R1< ,R2=10 。 六、硬件制作与测试 1、主要仪器及使用方法 主要仪器: 5v直流电源,剥线钳,数字万用表,通用版电路板,电烙铁,镊子,USB转串口线。 其中5v电源可以从电脑的USB接口引出,使用电烙铁时注意不要手直接触摸。 调试电路的方法和技巧: (1)目测 检查外部的各种元件或者是电路是否有断点,有无虚焊 (2)用万用表测试 先用万用表符合目测中有疑问的点,再检查各种电源线 与地线之间是否有短路现象 (3)加电检测 给板子加电,检测所有的插座或是器件的电源端的电压 是否符合要求的值 (4)注意事项 在通电检查前,一定要确保电路板没有短路 2、硬件制作步骤 (1)将单片机的最小系统焊接出来,进行调试,检验是否能下载程序、进行电路复位、晶振是否起振。 (3)焊接完后对电路进行调试,检查结果是否正确。 设计结果与分析 设计体会 本次课程设计让我温习了单片机的基本原理、功能以及构造,以及ADC0808/ADC0809的基本工作原理,学会了使用KeilCx51和Protuse这两个软件的基本使用方法,利用C语言在KeilCx51下进行编程实现所需要的功能,同时在Protuse软件上画电路图并进行仿真,通过硬件的制作提高了动手能力和分析问题的能力。 软件部分的编程,主要是通过看芯片的基本资料进行编写的,所以我意识到了当你需要某个东西时,一定要去了解它,弄清楚其工作原理、实现方案以及需要注意的地方,特别是像一些芯片工作的时序图,这是编程之前必须去了解的。 对于硬件部分,我收获颇多。 首先,让我对单片机的最小系统有了深刻的理解,特别是通过串口通信将程序下载到单片机中,明白了将程序下载到单片机的方法和原理。 其次,对一些基本电路检测问题,能够做到独立解决,像我在实验过程中遇到了各种不同的问题,其实是对自己能力的体现,其实问题多还更加好,那样你可以更加发现自己的不足之处,这样才能够提高。 最后,此次设计提高了我的焊接技术,比起以前的课程设计焊的电路图,真的发现自己提高了很多,比如在布局上更加地合理、简洁、美观。 我很早就把电路给焊好了,可是后面的调试花了比较长的时间,在此我领悟到遇到问题时不要心燥、心烦,而是要静下心来认真分析问题之所在,想出各种有效的解决方法,这样才会很好的解决问题,同时提高自己独立思考的能力。 程序: ORG 0000H LJMPSTART org00bh ljmpT0_INT START: MOVTMOD, #02H MOV TH0, #254 MOV TL0, #254 SETB TR0 MOV IE, #82H CLRA SETBP3.7 CLRP0.4 CLRP0.5 CLRP0.6 mova,#88h MOVP3,A MOV70H,#0 MOV78H,#0 MOV79H,#0 MOV7AH,#0 MOVA,#0FFH MOVP1,A MOVP0,A MAIN: LCALLAD_SUB LCALLTURN_SUB LCALLDISP_SUB LJMPMAIN AD_SUB: mova,#88h MOVP3,A MOVR0,#70H LCALLAD_ST WAIT: JBP3.7,DATASAVE AJMPWAIT AD_ST: SETBP3.5 SETBP3.6 nop nop CLRP3.5 CLRP3.6 RET DATASAVE: SETBP3.4 LCALLDELAY MOVA,P1 MOV@R0,A CLRP3.4 mova,#88h MOVP3,A RET TURN_SUB: MOVA,@R0 MOVB,#51 DIVAB MOV78H,A MOVA,B CLRF0 SUBBA,#1AH MOVF0,C MOVA,#10 MULAB MOVB,#50 DIVAB JBF0,LOOP1 ADDA,#5 LOOP1: MOV79H,A MOVA,B CLRF0 SUBBA,#1AH MOVF0,C MOVA,#10 MULAB MOVB,#50 DIVAB JBF0,LOOP2 ADDA,#5 LOOP2: MOV7AH,A RET DISP_SUB: MOVR1,#78H MOVR4,#00H LCALLPLAY nop nop LCALLDELAY INCR1 MOVR4,#10H LCALLPLAY nop nop LCALLDELAY INCR1 MOVR4,#20H LCALLPLAY nop nop LCALLDELAY RET PLAY: MOVA,@R1 movr5,a MOVA,R4 ANLA,#0F0H 继续阅读
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 c51 数字 电压表