您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机实验报告-数字电压表
关键词:AD0831,SPI总线一、电路功能模数转换芯片将0~5V模拟电压值转换为数字量后传输给单片机,单片机接收后在数码管上显示。二、电路电路原理:三、原理1.A/D转换A/D转换的过程首先是对输入的模拟电压信号取样,取样结果后进入保持时间,在这段时间内将取样的电压量化为数字量,并按一定的编码形式给出转换结果。A/D转换需要一定的时间,称为转换时间。编码时,每一个二进制数字值对应着输入电压从最低到最高的某个值,最高值由参考电压确定,一般选用输入电压的最高值。2.SPI总线串行外设(SPI)接口是一种同步串行外设接口,一般使用4条线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SSEL。A/D转换SPI传输数码管显示数据写到SPI发送缓冲区后,一个时钟信号SCK对应一位数据的发送(MISO)和另一位数据的接收(MOSI);在主机中数据从移位寄存器中自左向右发出送到从机(MOSI),同时从机中的数据自右向左发到主机(MISO),经过8个时钟周期完成1字节的发送。输入字节保留在移位寄存器中,然后从接收缓冲区中读出1字节的数据。四、关键器件ADC08318位单通道逐次逼近型模数转换器,采用SPI通信协议。单电源5V供电,转换时间32um。引脚图:1.CS̅̅̅:片选2.V𝐼𝑁(+):正输入端3.V𝐼𝑁(−):负输入端4.GND:地5.V𝑅𝐸𝐹:参考电压输入端6.DO:串行数据输出端7.CLK:时钟输入脚8.VCC:电源AD0831的时序图为:当CS̅̅̅为低电平时,ADC0831开始模数转换,从第二个时钟下降沿开始传输转换后的数字量,一次传输8位。五、程序#includereg51.h#includeintrins.hunsignedcharCharacter[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};sbitCC1=P3^1;sbitCC2=P3^0;sbitCS=P3^2;sbitCLK=P3^3;sbitDO=P3^4;unsignedcharConversionValue=0;unsignedcharDisplayValue=0;voiddelayms(unsignedintx);voidRead_ADC0831(void);voidmain(void){while(1){Read_ADC0831();DisplayValue=(unsignedchar)(((float)ConversionValue)/255*50);P1=Character[DisplayValue%10];CC1=0;CC2=1;delayms(1);CC1=1;P1=Character[DisplayValue/10]|0x80;CC1=1;CC2=0;delayms(1);CC2=1;}}voiddelayms(unsignedintx)//延时函数,单位ms{unsignedinti,j;for(i=x;i0;i--)for(j=110;j0;j--);}voidRead_ADC0831(void){unsignedchari,temp=0;DO=1;CS=1;CLK=0;_nop_();_nop_();CS=0;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=0;_nop_();_nop_();for(i=0;i8;i++){CLK=1;_nop_();_nop_();CLK=0;_nop_();_nop_();temp=1;if(DO==1)temp++;}CS=1;ConversionValue=temp;}六、Proteus仿真
本文标题:单片机实验报告-数字电压表
链接地址:https://www.777doc.com/doc-2594471 .html