欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于單片機+ADC0809芯片的電壓表Proteus仿真程序 注釋很詳細
[打印本頁]
作者:
一杯酒
時間:
2021-7-8 15:56
標題:
基于單片機+ADC0809芯片的電壓表Proteus仿真程序 注釋很詳細
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
(69.5 KB, 下載次數: 96)
下載附件
2021-7-8 17:56 上傳
單片機源程序如下:
//*********************************************************************************
//程序:AD0809LED.c
//功能:AT89C51+ADC0809電壓測量顯示程序(Keil uVision5+Proteus 7.8仿真通過)
//*********************************************************************************
#include<reg51.h> /*包含頭文件reg51.h */
#define uchar unsigned char /*宏定義后方便書寫*/
#define uint unsigned int /*宏定義后方便書寫*/
uchar code DigitSTARTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //LED碼表
uchar DisplayBuffer[4]; //顯示碼數據緩沖區
uchar AD_Data; //AD0809原始數據
uint Temp; //處理后的數據
sbit START=P3^0; //定義P3.0引腳位名稱為START
sbit OE=P3^1; //定義P3.1引腳位名稱為OE
sbit EOC=P3^2; //定義P3.2引腳位名稱為EOC
sbit CLK=P3^3; //定義P3.3引腳位名稱為CLK
sbit ADDA=P3^4; //定義P3.4引腳位名稱為ADDA
sbit ADDB=P3^5; //定義P3.5引腳位名稱為ADDB
sbit ADDC=P3^6; //定義P3.6引腳位名稱為ADDC
sbit LED0=P2^0; //定義P2.0引腳位名稱為LED0,選擇LED的0位
sbit LED1=P2^1; //定義P2.1引腳位名稱為LED1,選擇LED的1位
sbit LED2=P2^2; //定義P2.2引腳位名稱為LED2,選擇LED的2位
sbit LED3=P2^3; //定義P2.3引腳位名稱為LED3,選擇LED的3位
sbit LED_DP=P1^7; //定義P1.7引腳位名稱為LED_DP,選擇LED的DP位
//*********************************************************************************
//函數名:Delay
//函數功能:軟件延時函數
//形式參數:uint i
//*********************************************************************************
void Delay(uint i)
{ uint j;
for(;i>0;i--)
{ for(j=0;j<50;j++)
;
}
}
//*********************************************************************************
//函數名:TimeInitial
//函數功能:定時器初始化函數 T0方式2,自動重裝初值:10,定時:10us,
//信號周期T:20us 信號頻率f:f=1/T=1000000/20=50 000HZ=50KHZ
//*********************************************************************************
void TimeInitial() //定時器初始化
{ TMOD=0x02; //定時器工作模式
TH0=246; //定時器初值高8位
TL0=246; //定時器初值低8位
EA=1; //開總中斷
ET0=1; //開定時器中斷
TR0=1; //啟動定時器
}
//*********************************************************************************
//函數名:Time0
//函數功能:定時器0中斷服務子程序函數
//*********************************************************************************
void Time0(void) interrupt 1 using 0 //定時器中斷服務子程序
{
CLK=~CLK; //產生AD0809工作脈沖:50KHZ
}
//*********************************************************************************
//函數名:Display
//函數功能:LED數碼管顯示函數
//*********************************************************************************
void Display()
{
P1=DigitSTARTable[DisplayBuffer[3]]; //取數據送P1端口顯示(十位)
LED0=0; // LED0管子開
Delay(5); // 延時顯示
LED0=1; // LED0管子關
P1=DigitSTARTable[DisplayBuffer[2]];//取數據送P1端口顯示(個位)
LED_DP=1; // 小數點顯示
LED1=0; // LED1管子開
Delay(5); // 延時顯示
LED1=1; // LED1管子關
P1=DigitSTARTable[DisplayBuffer[1]];//取數據送P1端口顯示 (小數1位)
LED2=0; // LED2管子開
Delay(5); // 延時顯示
LED2=1; // LED2管子關
P1=DigitSTARTable[DisplayBuffer[0]];//取數據送P1端口顯示(小數2位)
LED3=0; // LED3管子開
Delay(5); // 延時顯示
LED3=1; // LED3管子關
}
//*********************************************************************************
//函數名:main
//函數功能:主函數
//*********************************************************************************
void main()
{
TimeInitial(); //啟動定時器初化
while(1)
{
ADDA=0; //ADC0809通道選擇
ADDB=0;
ADDC=0;
OE=0; //輸出關閉
START=0;
START=1; //START由低到高跳變(上跳沿),寄存器清零
START=0; //START由高到低跳變(下跳沿),啟動AD轉換
while(EOC==0) ; //等待轉換結束
OE=1; //輸出允許
AD_Data=P0; //讀ADC0809原始數據
OE=0; //輸出關閉
Temp=(AD_Data*1.0/255*5)*100; //數據處理:輸出值=輸入值*5/255 參數5是基準電壓5V
DisplayBuffer[0]=Temp%10; //取處理后的數據個位,對應顯示溫度值的小數2位
DisplayBuffer[1]=Temp/10%10; //取處理后的數據十位,對應顯示溫度值的小數1位
DisplayBuffer[2]=Temp/100%10; //取處理后的數據百位,對應顯示溫度值的個位
DisplayBuffer[3]=Temp/1000; //取處理后的數據千位,對應顯示溫度值的十位
Display(); //調用顯示函數
}
}
復制代碼
所有資料51hei提供下載:
ad0809.rar
(135.06 KB, 下載次數: 129)
2021-7-8 15:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
這個是用LCD顯示的版本:
AD0809 LCD.rar
(126.38 KB, 下載次數: 91)
2021-7-8 15:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
記憶猶新
時間:
2022-4-1 15:35
樓主
ADC0809要不要編程?
作者:
heizidanpianji9
時間:
2022-5-16 11:40
記憶猶新 發表于 2022-4-1 15:35
樓主
ADC0809要不要編程?
不用啊啊
作者:
Summer·
時間:
2022-5-20 23:11
LCD壓縮包里程序和hex文件不匹配,只有單獨的hex文件能用,通過程序編譯之后生成的hex文件放進沒顯示!!!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1