電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>C語(yǔ)言|源代碼>溫度量測(cè)與電壓量測(cè)實(shí)例程序分析

溫度量測(cè)與電壓量測(cè)實(shí)例程序分析

2017-09-06 | rar | 0.15 MB | 次下載 | 免費(fèi)

資料介紹

溫度量測(cè)與電壓量測(cè)實(shí)例程序分析

1、溫度量測(cè)實(shí)例演練

/* 溫度量測(cè)實(shí)例演練(ch11-7-4.c) */
#include
/* 聲明驅(qū)動(dòng)信號(hào)陣列 */
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?// 0 ̄4
?????0x92, 0x83, 0xf8, 0x80, 0x98 };?// 5 ̄9
#define? SCANP?P1???//?定義掃瞄信號(hào)連接埠?
#define? SEG7P?P2???//?定義七節(jié)顯示器連接埠?
sbit?INTR=P3^2; ???//?定義IRQ接腳?
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é)果?
?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;?????//?初始掃瞄信號(hào)?
??for(i=0;i<4;i++)??//?for敘述開始?
??{?SEG7P=0xff;???//?關(guān)閉7節(jié)顯示器?
???SCANP=~scan;??//?輸出掃瞄信號(hào)?
???SEG7P=TAB[disp[i]];?//?轉(zhuǎn)換成驅(qū)動(dòng)信號(hào),并輸出到P0
???delay1ms(4);??//?延遲4ms
???scan<<=1;???//?下一個(gè)掃瞄信號(hào)?
??}??????//?結(jié)束for敘述?
?}???????//?結(jié)束while敘述?
}????????//?display函數(shù)結(jié)束?
//====延遲函數(shù)====
void delay1ms(char x)
{?int i,j;????//?聲明變量?
?for(i=0;i ??for(j=0;j<120;j++);?//?內(nèi)循環(huán)?
}???????//?延遲函數(shù)結(jié)束?

2、電壓量測(cè)實(shí)例演練之

/* 電壓量測(cè)實(shí)例演練之三(ch11-7-3.c) */
#include
/* 聲明驅(qū)動(dòng)信號(hào)陣列 */
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?// 0 ̄4
?????0x92, 0x83, 0xf8, 0x80, 0x98 };?// 5 ̄9
#define? SCANP?P1???//?定義掃瞄信號(hào)連接埠?
#define? SEG7P?P2???//?定義七節(jié)顯示器連接埠?
unsigned char xdata?adc;?//?聲明外部資料變量?
unsigned char _adc;???//?聲明變量?
unsigned char disp[4]={0, 0, 0, 0};?//?聲明顯示區(qū)陣列?
void display(void);???//?聲明顯示函數(shù)?
void delay1ms(char);??//?聲明延遲函數(shù)?
main()??????//?主程序?
{?IE=0x81;????//?設(shè)定中斷
?TCON=0x01;????//?設(shè)定觸發(fā)方式?
?_adc=adc;???
?// 讀取ADC0804,其目的是輸出RD=0到ADC0804,讓其INTR=1
?adc=0xff; ???
?// 寫入ADC0804,其目的是輸出WR=0到ADC0804,即SOC
?display();???//?顯示資料?
?while(1); ???//?等待?
}??????//?主程序結(jié)束?
//====中斷函數(shù)====
void int_adc(void)? interrupt? 0
{?int results;????//?聲明變量?
?results= 196*adc;???//?讀取ADC0804轉(zhuǎn)換結(jié)果乘以196倍?
?disp[3]=results/10000;??//?取得千位數(shù)?
?disp[2]=(results/1000)%10;?//?取得百位數(shù)?
?disp[1]=(results/100)%10;?//?取得十位數(shù)?
?disp[0]=results%10;???//?取得個(gè)位數(shù)?
?display();?????//?顯示資料?
?_adc=adc;
?// 讀取ADC0804,其目的是輸出RD=0到ADC0804,讓其INTR=1
?adc=0xff; ???
?// 寫入ADC0804,其目的是輸出WR=0到ADC0804,即SOC
}??????//?資料處理函數(shù)結(jié)束?
//====顯示函數(shù)====
void display(void)
{?char i,scan;??//?聲明變量?
?char times=20;??//?掃瞄20次?
?while (--times>=0)?//?while循環(huán)開始?
?{?scan=1;???//?初始掃瞄信號(hào)?
??for(i=0;i<4;i++)//?for敘述開始?
??{?SEG7P=0xff;?//?關(guān)閉7節(jié)顯示器?
???SCANP=~scan;//?輸出掃瞄信號(hào)?
???SEG7P=TAB[disp[i]];?//?轉(zhuǎn)換成驅(qū)動(dòng)信號(hào),并輸出到P0
???delay1ms(4);//?延遲4ms
???scan<<=1;?//?下一個(gè)掃瞄信號(hào)?
??}????//?結(jié)束for敘述?
?}?????//?結(jié)束while敘述?
}??????//?display函數(shù)結(jié)束?
//====延遲函數(shù)====
void delay1ms(char x)
{?int i,j;????//?聲明變量?
?for(i=0;i ??for(j=0;j<120;j++);?//?內(nèi)循環(huán)?
}???????//?延遲函數(shù)結(jié)束?
?

3、電壓量測(cè)實(shí)例演練之二

/* 電壓量測(cè)實(shí)例演練之二(ch11-7-2.c) */
#include
/*聲明驅(qū)動(dòng)信號(hào)陣列 */
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?// 0 ̄4
?????0x92, 0x83, 0xf8, 0x80, 0x98 };?// 5 ̄9
#define? SCANP?P1???//?定義掃瞄信號(hào)連接埠?
#define? SEG7P??P2??//?定義七節(jié)顯示器連接埠?
sbit?INTR=P3^2;
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*196;?//?讀取ADC0804轉(zhuǎn)換結(jié)果乘以196倍?
?disp[3]=results/10000;?//?取得千位數(shù)?
?disp[2]=(results/1000)%10;?//?取得百位數(shù)?
?disp[1]=(results/100)%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;????//?初始掃瞄信號(hào)?
??for(i=0;i<4;i++)?//?for敘述開始?
??{?SEG7P=0xff;??//?關(guān)閉7節(jié)顯示器?
???SCANP=~scan;?//?輸出掃瞄信號(hào)?
???SEG7P=TAB[disp[i]];?//?轉(zhuǎn)換成驅(qū)動(dòng)信號(hào),并輸出到P0
???delay1ms(4);?//?延遲4ms
???scan<<=1;??//?下一個(gè)掃瞄信號(hào)?
??}?????//?結(jié)束for敘述?
?}??????//?結(jié)束while敘述?
}???????//?display函數(shù)結(jié)束?
//====延遲函數(shù)====
void delay1ms(char x)
{?int i,j;????//?聲明變量?
?for(i=0;i ??for(j=0;j<120;j++);?//?內(nèi)循環(huán)?
}???????//?延遲函數(shù)結(jié)束?
?
?
?

4、電壓量測(cè)實(shí)例演練之

/* 電壓量測(cè)實(shí)例演練之一(ch11-7-1.c) */
#include
/*聲明驅(qū)動(dòng)信號(hào)陣列*/
char code TAB[10]={?0xc0, 0xf9, 0xa4, 0xb0, 0x99,?// 0 ̄4
?????0x92, 0x83, 0xf8, 0x80, 0x98 };?// 5 ̄9
#define? ADC?P0?//?定義ADC連接埠?
#define? SCANP?P1?//?定義掃瞄信號(hào)連接埠?
#define? SEG7P?P2?//?定義七節(jié)顯示器連接埠?
//=========================================
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;?//?讀取外部記憶體?
??dataproc(_adc);?//?資料處理?
?}????//?while結(jié)束?
}?????//?主程序結(jié)束?
//====資料處理函數(shù)====
void dataproc(unsigned char data_in)
{?int results;????//?聲明變量?
?results= data_in*196;??//?讀取ADC0804轉(zhuǎn)換結(jié)果乘以196倍?
?disp[3]=results/10000;??//?取得千位數(shù)?
?disp[2]=(results/1000)%10;?//?取得百位數(shù)?
?disp[1]=(results/100)%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;????//?初始掃瞄信號(hào)?
??for(i=0;i<4;i++)?//?for敘述開始?
??{?SEG7P=0xff;??//?關(guān)閉7節(jié)顯示器?
???SCANP=~scan;?//?輸出掃瞄信號(hào)?
???SEG7P=TAB[disp[i]];?//?轉(zhuǎn)換成驅(qū)動(dòng)信號(hào),并輸出到P0
???delay1ms(4);?//?延遲4ms
???scan<<=1;??//?下一個(gè)掃瞄信號(hào)?
??}?????//?結(jié)束for敘述?
?}??????//?結(jié)束while敘述?
}???????//?display函數(shù)結(jié)束?
//====延遲函數(shù)====
void delay1ms(char x)
{?int i,j;????//?聲明變量?
?for(i=0;i ??for(j=0;j<120;j++);?//?內(nèi)循環(huán)?
}???????//?延遲函數(shù)結(jié)束?
?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1490次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7藍(lán)牙設(shè)備在嵌入式領(lǐng)域的廣泛應(yīng)用
  14. 0.63 MB  |  3次下載  |  免費(fèi)
  15. 89天練會(huì)電子電路識(shí)圖
  16. 5.91 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)