简易数字电压表制作——adc0832模数转换应用程序

上传人:kms****20 文档编号:40479748 上传时间:2018-05-26 格式:DOC 页数:10 大小:41KB
返回 下载 相关 举报
简易数字电压表制作——adc0832模数转换应用程序_第1页
第1页 / 共10页
简易数字电压表制作——adc0832模数转换应用程序_第2页
第2页 / 共10页
简易数字电压表制作——adc0832模数转换应用程序_第3页
第3页 / 共10页
简易数字电压表制作——adc0832模数转换应用程序_第4页
第4页 / 共10页
简易数字电压表制作——adc0832模数转换应用程序_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《简易数字电压表制作——adc0832模数转换应用程序》由会员分享,可在线阅读,更多相关《简易数字电压表制作——adc0832模数转换应用程序(10页珍藏版)》请在金锄头文库上搜索。

1、简易数字电压表制作简易数字电压表制作ADC0832ADC0832 模数转换应用程序模数转换应用程序/*/*简易数字电压表制作ADC0832 模数转换应用程序(C 语言版)*/*目标器件:AT89S51 */*晶振:12.000MHZ */*编译环境:Keil uVision2 V2.12 */*/*包含头文件*/#include #include /*端口定义*/sbit CS = P35;sbit Clk = P34;sbit DATI = P33;sbit DATO = P33;/*定义全局变量*/unsigned char dat = 0x00; /AD 值unsigned char c

2、ount = 0x00; /定时器计数unsigned char CH; /通道变量unsigned char dis = 0x00, 0x00, 0x00; /显示数值/*共阳 LED 段码表*/unsigned char code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*函数功能:AD 转换子程序入口参数:CH出口参数:dat*/unsigned char adc0832(unsigned char CH)unsigned char i,test,adval;adval = 0x00;test = 0x00;Clk =

3、 0; /初始化DATI = 1;_nop_();CS = 0;_nop_();Clk = 1;_nop_();if ( CH = 0x00 ) /通道选择Clk = 0;DATI = 1; /通道 0 的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 0; /通道 0 的第二位_nop_();Clk = 1;_nop_(); elseClk = 0;DATI = 1; /通道 1 的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 1; /通道 1 的第二位_nop_();Clk = 1;_nop_();Clk = 0;D

4、ATI = 1;for( i = 0;i = 1;if (DATO)test |= 0x80;else test |= 0x00;_nop_();Clk = 1;_nop_();Clk = 0;if (adval = test) /比较前 8 位与后 8 位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉dat = test;_nop_();CS = 1; /释放 ADC0832DATO = 1;Clk = 1;return dat;/*函数功能:延时子程序入口参数:出口参数:*/void delay(void)int k;for(k=0;k500;k+);/*函数功能:将 0-255

5、级换算成 0.00-5.00 的电压数值入口参数:i出口参数:*/void convdata(unsigned char i)dis0 = i/51; /个位dis1 = (i%51)*10/51; /小数点后第一位dis2 = (i%51)*10%51)*10/51; /小数点后第二位/*函数功能:数码管显示子程序入口参数:出口参数:*/void display(void) P2=0xff;P0=tabdis0 /显示个位和小数点P2=0xfe;delay();P2=0xff;P0=tabdis1; /显示小数点后第一位P2=0xfd;delay();P2=0xff;P0=tabdis2;

6、/显示小数点后第二位P2=0xfb; delay();/*函数功能:定时器中断延时程序 这一段的作用时隔一段时间抽样一次 否侧显示的最后一位会不稳定入口参数:出口参数:*/void timer0(void) interrupt 1 TMOD = 0x01;TH0 = 0x00;TL0 = 0x00;IE = 0x82;TR0 = 01;count+;if (count = 0x0A)count = 0x00;dat = adc0832(CH);/*函数功能:主程序入口参数:出口参数:*/void main(void)P2=0xff; /端口初始化P0=0xff; CH = 0x00; /在这里选择通道 0x00 或 0x01TMOD = 0x01; /设置中断 TH0 = 0x00;TL0 = 0x00;IE = 0x82;TR0 = 01;while(1) /主循环 convdata(dat); /数据转换display(); /显示数值

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号