ADC0804程序
)测量取平均值的程序 ADC0804+51单片机,多次(10
显示部分用的是TX-1C单片机开发板子。
ADC0804的运用主要就是时序的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
,搞清楚了时序,把时序中
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
现出来的高低电平一
句一句写出来就可以实现测量,还有片选的问题。
得到的8位二进制数据除以256(2 ),再乘上你用的参考电压,就可以显示真正的电压
值。
这个程序很简单我就不怎么注释了,看不懂的可以联系我。
E-MAIL:hqtn1@sina.com
程序:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2 ;
sbit wela=P2 ; //根据tx-1c板子写的显示部分
sbit adwr=P3 ;
sbit adrd=P3 ;
uchar code table_dian[]={
0xbf,0x86,0xdb,0xcf, //带点的显示位
0xe6,0xed,0xfd,0x87,
0xff,0xef};
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(int qian,int bai,int shi,int ge) 子
{
dula=1;
P0=table_dian[qian];
dula=0;
P0=0xff;
wela=1;
P0=0x7e;
wela=0;
delayms(5);
//显示子程序,基于TX_1C板
dula=1; P0=table[bai]; dula=0; P0=0xff; wela=1; P0=0x7d; wela=0; delayms(5); dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0x7b; wela=0; delayms(5); dula=1; P0=table[ge]; dula=0; P0=0xff;
}
wela=1; P0=0x77; wela=0; delayms(5); //如果想显示的稳定点,可以在最后把所有的位
选都关掉
uchar add(uchar a[10]) {
}
void main()
{
uchar i=0,sum=0; for(i=0;i<10;i++) sum=sum+a[i]; //加和函数 return sum; //主函数
uchar i,j,adval[10],adval_aver; int A1,A2,A3,A4; float adval_final,adval_dis; wela=1; P0=0x7f; //片选AD wela=0;
while(1) { for(j=0;j<10;j++) { }
adval_aver=add(adval); adval_final=(float)adval_aver/256*5.00; adval_dis=adval_final*1000; A1=(int)adval_dis/1000; A2=(int)adval_dis%1000/100; A3=(int)adval_dis%100/10;
A4=(int)adval_dis%10; adwr=1;_nop_(); adwr=0;_nop_(); adwr=1; for(i=10;i>0;i--) display(A1,A2,A3,A4); P1=0xff; adrd=1;_nop_(); adrd=0;_nop_(); adval[j]=P1; adrd=1; adval[j]=adval[j]/10;
} display(A1,A2,A3,A4); }