标题:
基于单片机和adc0832的电压表设计 精确到第三位小数点,protues仿真
[打印本页]
作者:
酷酷天天
时间:
2017-6-7 20:28
标题:
基于单片机和adc0832的电压表设计 精确到第三位小数点,protues仿真
这是我做的基于adc0832的电压表,模拟电压输入0-5v,adc0832模数转换
运用四位数码管显示,精确到第三位小数点,protues仿真,单片机型号为stc89c52
0.png
(954.23 KB, 下载次数: 118)
下载附件
2017-6-8 02:58 上传
0.png
(60.32 KB, 下载次数: 118)
下载附件
2017-6-8 02:58 上传
单片机源程序如下:
#include<AT89x51.h>
#include<intrins.h> //头文件声明
#define uchar unsigned char
#define uint unsigned int //定义数据类型
sbit CS=P2^3; //0832的cs为单片机p2.3
sbit CLK=P2^2; //0832的clk为单片机p2.2
sbit DO=P2^1; //0832的do为单片机p2.1
sbit DI=P2^0; //0832的di为单片机p2.0
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};//共阳数码管编码
uint vvv,i; //声明电压值vvv
void delay (int tt) //延时函数,时间为tt*0.5ms
{
while(tt--)
{
for(i=0;i<300;i++);
}
}
uchar Get_AD_Result()
{
uint j=0;
uchar dat1=0;
CS=1;
CLK=0; _nop_(); _nop_();
CS = 0; _nop_(); _nop_();
CLK = 1; _nop_(); _nop_(); //第一个上升沿
DI = 1; _nop_(); _nop_(); //起始信号
CLK = 1; _nop_(); _nop_();
CLK = 0;DI = 1; _nop_(); _nop_(); //第一个下降
CLK = 1; _nop_(); _nop_();
CLK = 0;DI = 1; _nop_(); _nop_(); //第二个下降
CLK = 1;DI = 0; _nop_(); _nop_();
CLK = 0;DI = 1; _nop_(); _nop_(); //第三个下降后,须将DI置高,准备接收数据
for(j=0;j<8;j++)
{
CLK = 1; _nop_(); _nop_(); //第四个下,一位一位的读取数据
CLK = 0; _nop_(); _nop_();
if(DO) //如果这一位数据为1,dat1与0x01或等,最后一位变为1
{
dat1|=0x01;
}
else //或者这一位数据为0,将dat1于0xfe与等,最后一位变成0
{
dat1&=0xfe;
}
CLK=0;
_nop_();
CLK=1; //上升沿,输出数据
dat1=dat1<<1; //将数据进行左移运算,一直到8位移入完成
}
CS = 1; //使能置高,禁用AD芯片
return dat1; //返回AD值
}
void display(uint dat) //显示函数程序
{
P1=0xff; //消隐 ,显示方式为动态显示
P0=0x08; //通过p0口驱动,显示最高位,个位
P1=tab[dat/100]&0x7f; //计算出个位数字,并带小数点进行显示
delay(1); //延时
P1=0xff;
P0=0x04; //显示小数点后第一位
P1=tab[dat%100/10];
delay(1);
P1=0xff;
P0=0x02; //显示小数点后第二位
P1=tab[dat%10];
delay(1);
P1=0xff;
P0=0x01; //显示最后一位
P1=tab[dat%1];
delay(1);
P1=0xff;
} //主函数
void main()
{
//P1=0xff; //清零
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
adc0832.rar
(63.36 KB, 下载次数: 80)
2017-6-8 03:00 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
bomber_kk
时间:
2017-12-13 12:02
take a look
作者:
bomber_kk
时间:
2017-12-13 12:07
学习一下先
作者:
bomber_kk
时间:
2017-12-15 15:54
没有币
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1