当前位置:文档之家› ADC0832模数转换与显示...

ADC0832模数转换与显示...

ADC0832模数转换与显示
电路所用元器件清单
0832介绍
• 工作时序与通道选择
主程序
• • • • • • • • • • • • • • • //主程序 //----------------------------------------------void main() { uchar i; uint d; //注意d的类型 LCD_Initialise(); //初始化LCD DelayMS(10); Set_Disp_Pos(0x01);
//设置显示位
//显示第一行字 //设
//显示电压值
系统程序设计
1、软件总体框图设计 系统软件的总体框架,主程序采用死循环 结构,在其中调节了三个子程序:初始化 程序,A/D转换子程序,动态显示子程序。 首先,单片机选A/D转换器,然后发出信号启 动A/D装换。若有,即信号采集,对A/D转 换器的数据输出口送来的数据进行存储, 数据处理完之后,将电压数值送显示器显 示出来。
程序总流程图
2、A/D转换子程序
A/D转换子程序用来控制对输入模块电压信号 的采集测量,并将对应的数值存入相应的 内存单元。
A/D转换子程序流程图
3、LCD显示子程序
LCD显示程序的设计一般先要确定LCD的初 始化、光标定位、确定显示字符。
实物图
总结
• 本次设计即基于A/D转换器原理,通过一个A/D( ADC0832模拟数字转换)芯片采集外界信息后, 将外侧电压信号转换成数字型号,再由AT89C51 单片机分析并进行处理信号,最终输出信号,由 1602液晶曲线显示。
//设置显示位置
while(1) { //获取AD转换值,最大值255对应于最高电压5.00v //本例中设计为显示三个数位,故使用500 d=Get_AD_Result()*500.0/255;
• • • • • • •
• • • •
//将AD转换后得到数据分解为三个数位 Display_Buffer[0]=d/100+'0'; Display_Buffer[2]=d/10%10+'0'; Display_Buffer[3]=d%10+'0'; Set_Disp_Pos(0x01); 置 i=0; while(Line1[i]!='\0') LCD_Write_Data(Line1[i++]); 符串 Set_Disp_Pos(0x46); 置显示位置 i=0; while(Display_Buffer[i]!='\0') LCD_Write_Data(Display_Buffer[i++]) ;
相关主题