DAC-ADC控制實(shí)驗(yàn)程序
大?。?/span>0.1 MB 人氣: 2017-09-06 需要積分:0
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評論(0)
標(biāo)簽:adc(536857)dac(187989)
ADC溫度控制實(shí)例演練
/* ADC溫度控制實(shí)例演練 (ch11-7-5.c) */#include
/* 聲明驅(qū)動信號陣列 */
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?// 0 ̄4
?????0x92, 0x83, 0xf8, 0x80, 0x98 };?// 5 ̄9
#define? SCANP?P1????//?定義掃瞄信號連接埠?
#define? SEG7P?P2????//?定義七節(jié)顯示器連接埠?
#define off? 35?????//?定義溫度上限?
#define on? 20?????//?定義溫度下限?
sbit?INTR=P3^2; ????//?IRQ接腳?
sbit?relay=P3^3; ???//?繼電器位置?
unsigned char xdata? adc;??//?聲明外部記憶體變量?
unsigned char _adc; ???//?聲明變量?
unsigned char disp[4]={0, 0, 0, 0};?//?聲明顯示區(qū)陣列?
unsigned char _adc;????//?聲明變量?
void dataproc(unsigned char);?//?聲明資料處理函數(shù)?
void display(void);????//?聲明顯示函數(shù)?
void delay1ms(char);???//?聲明延遲函數(shù)?
main()???????//?主程序?
{?while(1)?????//?while開始?
?{?display();????//?顯示?
??_adc=adc;???
??/*讀取外部記憶體,目的是讓ADC0804之RD=0、INTR=1*/
??adc=0xff;
??while(INTR==1); ??//?等待中斷
??_adc=adc; ????//?讀取外部記憶體?
??dataproc(_adc);???//?資料處理?
?}???????//?while結(jié)束?
}????????//?主程序結(jié)束?
//====資料處理函數(shù)====
void dataproc(unsigned char data_in)
{?int results;????//?聲明變量?
?results= data_in;???//?讀取ADC0804轉(zhuǎn)換結(jié)果?
?if (results >=off) relay=0;?
?/* 若溫度高於或等於35度(off),則關(guān)閉繼電器 */
?else if (results <=on) relay=1;
?/* 若溫度低於或等於20度(on),則開啟繼電器 */
?disp[3]=results/1000;??//?取得千位數(shù)?
?disp[2]=(results/100)%10;?//?取得百位數(shù)?
?disp[1]=(results/10)%10;?//?取得十位數(shù)?
?disp[0]=results%10;???//?取得個(gè)位數(shù)?
}????????//?資料處理函數(shù)結(jié)束?
//====顯示函數(shù)====
void display(void)
{?char i, scan;????//?聲明變量?
?char times=20;????//?掃瞄20次?
?while (--times>=0)???//?while循環(huán)開始?
?{?scan=1;?????//?初始掃瞄信號?
??for(i=0;i<4;i++)??//?for敘述開始?
??{?SEG7P=0xff;???//?關(guān)閉7節(jié)顯示器?
???SCANP=~scan;??//?輸出掃瞄信號?
???SEG7P=TAB[disp[i]];?//?轉(zhuǎn)換成驅(qū)動信號,并輸出到P0
???delay1ms(4);??//?延遲4ms
???scan<<=1;???//?下一個(gè)掃瞄信號?
??}??????//?結(jié)束for敘述?
?}???????//?結(jié)束while敘述?
}????????//?display函數(shù)結(jié)束?
//====延遲函數(shù)====
void delay1ms(char x)
{?int i,j;????//?聲明變量?
?for(i=0;i
}???????//?延遲函數(shù)結(jié)束?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
DAC-ADC控制實(shí)驗(yàn)程序下載
相關(guān)電子資料下載
- MOVIPRO:電機(jī)初始化Starting up the motor encoder 15
- 一種用于高精度測量應(yīng)用的低功耗模數(shù)轉(zhuǎn)換器(ADC)解決方案 41
- 學(xué)習(xí)STM32F103的ADC功能 46
- 任意波形發(fā)生器維修AWG4162按鈕失靈故障哪里 40
- 學(xué)習(xí)STM32F103的DAC功能 33
- 如何快速調(diào)整DAC輸出電壓范圍 52
- 失調(diào)誤差是如何影響單極性ADC傳遞函數(shù)的? 29
- STM32速成筆記(7)—ADC 40
- 一文講解ADC模數(shù)轉(zhuǎn)換芯片的原理及轉(zhuǎn)換過程 177
- 如何使用DAC53701來完成555時(shí)基電路的主要功能呢? 39