国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
51單片機+ADC0808做電壓表能測試0~5v的電壓誤差很小 proteus仿真
[打印本頁]
作者:
coolfire
時間:
2021-4-25 14:23
標題:
51單片機+ADC0808做電壓表能測試0~5v的電壓誤差很小 proteus仿真
附件里有完整源碼和仿真
1.jpg
(98 KB)
下載附件
2021-4-25 14:16 上傳
單片機程序:
//功能:晶振11.0592M,通過采集模擬信號,讓數碼管顯示當前電壓//
#include<reg51.h>
sbit duancun= P2^1 ; //控制鎖存器段選
sbit weicun= P2^2; //控制鎖存器位選
sbit OE = P1^0; //輸出使能,OE=0高阻,OE=1 ADC轉換結果輸出到單片機
sbit ST = P1^2; //啟動信號,上升沿復位清零ADC,下降沿啟動轉換,低電平保持轉換
sbit ALE = P1^1;
sbit OEC = P1^3;
sbit p07 = P0^7;
#define uint unsigned int
#define uchar unsigned char
void delay(uint x)
{
while(x--);
}
/**********************************
函數名:xianshi()
變量:i
功能:處理 i的數據 ,讓i能夠顯示到數碼管上
***********************************/
void xianshi(uint i)
{ unsigned char code duan[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char code led[]={0x00,0x01,0x02,0x04,
0x08,0x10,0x20,0x40,0x80};
delay(50);
duancun=1;
P0=duan[i%10];
duancun=0;
weicun=1;
P0=led[8];
weicun=0;
P0=0xff;
delay(50);
duancun=1;
P0=duan[i/10%10];
duancun=0;
weicun=1;
P0=led[7];
weicun=0;
P0=0xff;
delay(50);
duancun=1;
P0=duan[i/100%10]&0x7f;
duancun=0;
weicun=1;
P0=led[6];
weicun=0;
P0=0xff;
}
void main()
{ float qq=1.962;
while(1)
{
ALE =1;
ST =1;
delay(5);
ALE = 0;
ST = 0;
delay(5);
ALE = 1;
ST = 1;/*啟動A/D轉換,上升沿復位清零ADC,下降沿啟動轉換,低電平保持轉換*/
delay(50);
OE = 0; //輸出使能,OE=1高阻,OE=0 ADC轉換結果允許輸出到單片機
xianshi((P3*qq)); //因為P3的數據最大只有255,電壓最大是5V,所以乘0.962就約等于500
OE = 1; //輸出使能,OE=0高阻
}
}
復制代碼
需要Proteus8.8及以上版本打開
AD轉換c程序和proteus仿真.zip
(84.22 KB, 售價: 1 E幣)
2021-4-25 14:23 上傳
點擊文件名下載附件
售價: 1 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0