六通道溫度巡回檢測系統(tǒng)_第1頁
六通道溫度巡回檢測系統(tǒng)_第2頁
六通道溫度巡回檢測系統(tǒng)_第3頁
六通道溫度巡回檢測系統(tǒng)_第4頁
六通道溫度巡回檢測系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、六通道溫度巡回檢測系統(tǒng)設(shè)計(jì)要求設(shè)計(jì)一個(gè)六通道溫度巡回檢測系統(tǒng),溫度檢測范圍為0-199.9,精度為0.1%,系統(tǒng)配有4*4鍵盤,5位LED顯示器,溫度超限聲光報(bào)警電路及微型打印機(jī)。系統(tǒng)工作可由鍵盤設(shè)定為定點(diǎn)及巡檢方式:可由鍵盤輸入/修改報(bào)警的上/下限溫度值;可由鍵盤建立/取消報(bào)警;可由鍵盤實(shí)時(shí)查看設(shè)定的上/下限報(bào)警值及啟動/停止打印機(jī)工作??杉僭O(shè)溫度傳感器輸出已經(jīng)放大處理為標(biāo)準(zhǔn)的0-2V或0-5V信號,請按如下要求設(shè)計(jì):1. 畫出硬件電路圖;2. 編寫顯示子程序,若系統(tǒng)工作在巡檢方式,編寫出六通道巡回檢測一遍輪流顯示的程序。顯示緩沖區(qū)地址為70H74H(高-低);六通道溫度值有效地址為30H-

2、33H、34-37H等。每個(gè)通道顯示2s。3. 若0BH、0CH分別為上限、下限鍵,調(diào)節(jié)報(bào)警溫度值,可由數(shù)字鍵調(diào)節(jié)修改,0FH為存入鍵。設(shè)置打印功能。第一章、方案論證與比較1.1溫度傳感器的選擇采用熱電偶或者電阻溫度計(jì)或者半導(dǎo)體溫度計(jì)。1.2輸入鍵盤的選擇利用鍵盤掃描顯示芯片,這里選用CH451。原因如下:CH451芯片可以動態(tài)驅(qū)動64位LED點(diǎn)陣或者8位數(shù)碼管,具有速度快、功耗小、操作簡單等特點(diǎn),可以很方便地通過1線或者可以級聯(lián)的4線串行接口與單片機(jī)等交換數(shù)據(jù)。1.3顯示選擇選用接口芯片。由于其具有壽命長、動態(tài)范圍廣、工作穩(wěn)定可靠、低功耗和快速的時(shí)間響應(yīng)等優(yōu)點(diǎn),成為眾多顯示媒體中的佼佼者,是

3、戶外作業(yè)顯示理想的選擇。用CH451芯片驅(qū)動LED點(diǎn)陣有以下特點(diǎn):速度快,功耗小,動態(tài)顯示掃描控制,直接驅(qū)動64位LED點(diǎn)陣,可以軟件控制LED的亮度,以減小功耗。CH451可以通過1線或者可以級聯(lián)的4線串行接口與單片機(jī)等控制器交換數(shù)據(jù)。CH451的串行接口是由硬件實(shí)現(xiàn)的,控制器可以頻繁地通過串行接口進(jìn)行高速操作,而絕對不會降低CH451的工作效率。用它設(shè)計(jì)的電路,不僅軟硬件設(shè)計(jì)簡單,而且功耗低,響應(yīng)速度快,驅(qū)動能力強(qiáng),占用的IO口線較少,是一種性價(jià)比高、應(yīng)用靈活的設(shè)計(jì)方案。1.4溫度超限報(bào)警器件選擇選擇三極管8550待嗡鳴器 但是如果考慮充分,用戶一定不希望在停電重啟后每次都要輸入報(bào)警值,所

4、以有必要加一個(gè)EEPROM進(jìn)行數(shù)據(jù)儲存。1.5 AD的選擇考慮到成本和外圍電路的簡潔,直接選用STC12C5608AD單片機(jī)自帶的AD。 STC12C5608AD系列帶A/D轉(zhuǎn)換的單片機(jī)的A/D轉(zhuǎn)換口在P1口(P1.7-P1.0),有8路10位高速A/D轉(zhuǎn)換器,STC12C5608AD系列是10位精度的A/D, 速度均可達(dá)到100KHz(10萬次/秒)。8路電壓輸入型A/D,可做溫度檢測、電池電壓檢測、按鍵掃描、頻譜檢測等。上電復(fù)位后P1 口為弱上拉型I/O 口,用戶可以通過軟件設(shè)置將8 路中的任何一路設(shè)置為A/D 轉(zhuǎn)換,不需作為A/D 使用的口可繼續(xù)作為I/O 口使用。這樣即節(jié)省的I/O端口

5、,減少的外圍設(shè)備,同時(shí)STC12C5608AD提供EEPROM,可以解決設(shè)置溫度儲存的問題。通過,數(shù)字濾波處理,可以很好地修正數(shù)值,外圍加上微功率電壓參考二極管LM285連到AD的一個(gè)通道做數(shù)值校正,可以很好的解決系統(tǒng)誤差。第二章、總設(shè)計(jì)圖第三章、使用說明左下角的六個(gè)電位器可以模擬調(diào)節(jié)0-5V電壓,即為模擬0-199.9C溫度。菜單共分0-6項(xiàng)共7個(gè)菜單,其中0是由18B20測得的準(zhǔn)確的當(dāng)前溫度,其余均為電位器模擬。默認(rèn)情況下為巡檢模式,按下巡檢鍵,再按下確認(rèn)鍵可取消或開啟巡檢,報(bào)警鍵同理,任何通道若有超過其設(shè)定值即報(bào)警。菜單上下,溫度上下可改變設(shè)定值,確定即儲存,取消即不更改設(shè)定值。開機(jī)默認(rèn)

6、150 C°第四章、總程序程序已通過Keil4調(diào)試并下載,完全可行。#include<reg52.h>#include"CH451m2t1.h"/*/ LED_printf(uchar *LED_Data); /添加數(shù)據(jù)的字符串地址 例如:uchar led8=7,6,5,4,3,2,1,0; LED_printc(uchar p,uchar LED_data); /對單個(gè)數(shù)據(jù)顯示 第一位是位置,第二位是數(shù)值 例如:LED_printc(2,3); LED_prints(unsigned char *led_string); /直接顯示字符串地址 例如

7、:LED_prints("123456"); CH451_Init();*/#include"STC_AD.h"#include"18B20.h"/#include"STC_EPROM.h"#define uint unsigned int#define uchar unsigned char/char menu;uchar display8=0,19,19,16,16,16,16,17;/將顯示內(nèi)送開設(shè)顯示緩存區(qū)RAM,菜單-溫度Cint stcAD7=1000,1000,1000,1000,1000,1000,

8、200;int stcset7=300,1500,1500,1500,1500,1500,1500;int stctemp7; uint nCount=0;bit ok=0,cancel=0,detect=1,alarm=1; /1為執(zhí)行,0為不執(zhí)行/void DisplayChannelTemp(uchar channel) unsigned long tempAD,sum=0; uchar n; for(n=0;n<20;n+) /進(jìn)行數(shù)字濾波處理 GetADCResult(channel); /得到通道的AD值(10位) stcADchannel=(ADC_DATA<<

9、2|ADC_LOW2); if(stcADchannel<10)tempAD=0; else tempAD=(stcADchannel+1)*1999L/1023; sum+=tempAD; sum/=20; stcADchannel=sum;void ScanAll(void) uchar n; for(n=0;n<7;n+) if(n>0&&n<7) DisplayChannelTemp(n-1); if(n=0) stcAD6=Get_Tmp(); void DisplayAllTemp(void) /顯示當(dāng)前菜單與溫度值 if(menu>0

10、&&menu<7) DisplayChannelTemp(menu-1); /當(dāng)前狀態(tài)顯示 if(stcADmenu-1/1000=0)display3=16; else display3=stcADmenu-1/1000; display4=stcADmenu-1%1000/100; /display5=stcADmenu-1%100/10; display6=stcADmenu-1%10; display0=menu; LED_printf(display); LED_printpointc(6,stcADmenu-1%100/10); if(menu=0) stcA

11、D6=Get_Tmp(); if(stcAD6/1000=0)display3=16; else display3=stcAD6/1000; display4=stcAD6%1000/100; display6=stcAD6%10; display0=menu; LED_printf(display); LED_printpointc(6,stcAD6%100/10); void delay10ms(void) /誤差 -0.173611111111us unsigned char a,b; for(b=200;b>0;b-) for(a=200;a>0;a-);void Copy

12、()uint n; for(n=0;n<7;n+) stctempn=stcsetn;void CopyBack()uint n; for(n=0;n<7;n+) stcsetn=stctempn;void Interrupt()/中斷初始化TMOD=0x00;/設(shè)置為一方式定時(shí)器中斷 TH0=0x00;/一方式最長時(shí)長4.4msTL0=0x00;/TH1=0x00;/TL1=0x00;TR0=1;/計(jì)數(shù)器開始計(jì)數(shù)/TR1=1;ET0=1; /開啟定時(shí)器中斷/ET1=1;EA=1; /開啟總中斷PT0=1; /設(shè)置為低優(yōu)先級/PT1=0;void main()uint n;menu

13、=0;CH451_Init(); InitADC();Interrupt();while(1) if(detect=1) menu+; if(menu>6)menu=0; for(n=0;n<500;n+) delay10ms(); void Timer0() interrupt 1 using 0/定時(shí)掃描鍵盤 顯示 CH451_scan();if(key!=8) Copy(); while(ok!=1 && cancel!=1) CH451_scan(); switch(key) case 3:stcsetmenu+;if(stcsetmenu>1999)

14、stcsetmenu=0;break; case 7:stcsetmenu-;if(stcsetmenu<0)stcsetmenu=1999;break; case 2:menu+;if(menu>6)menu=0;while(CH451_scan()!=8);break; case 6:menu-;if(menu<0)menu=6;while(CH451_scan()!=8);break; case 0:ok=1;while(CH451_scan()!=8);break; case 1:cancel=1;while(CH451_scan()!=8);break; case

15、4:detect=detect;while(CH451_scan()!=8);break; case 5:alarm=alarm; while(CH451_scan()!=8);break; default:break; delay10ms(); if(stcsetmenu/1000=0)display3=16; else display3=stcsetmenu/1000; display4=stcsetmenu%1000/100; display6=stcsetmenu%10; display0=menu; LED_printf(display); LED_printpointc(6,stc

16、setmenu%100/10); if(ok=1)ok=0; else cancel=0;CopyBack(); if(nCount>50) /對于顯示依然太快,進(jìn)行50分頻nCount=0;DisplayAllTemp();ScanAll();/更新數(shù)據(jù)if(alarm=1) if(stcAD6>stcset0| stcAD0>stcset1| stcAD1>stcset2| stcAD2>stcset3| stcAD3>stcset4| stcAD4>stcset5| stcAD5>stcset6) Ming=Ming; else Ming=

17、1;else Ming=1;nCount+;#ifndef _18B20_H_#define _18B20_H_sbit DQ=P16;sbit Ming=P26;#define uint unsigned int#define uchar unsigned charuint temp=320,setemp=300;/*18B20*/void delay(long i)while(-i);void Init_Ds18b20(void) /DS18B20初始化DQ=0; /單片機(jī)拉低總線delay(500); /精確延時(shí),維持至少480usDQ=1; /釋放總線,即拉高了總線delay(200)

18、; /此處延時(shí)有足夠,確保能讓DS18B20發(fā)出存在脈沖。uchar Read_One_Byte() /讀取一個(gè)字節(jié)的數(shù)據(jù) /讀數(shù)據(jù)時(shí),數(shù)據(jù)以字節(jié)的最低有效位先從總線移出uchar i=0;uchar dat=0;for(i=8;i>0;i-) DQ=0; /將總線拉低,要在1us之后釋放總線 /單片機(jī)要在此下降沿后的15us內(nèi)讀數(shù)據(jù)才會有效。 _nop_(); _nop_(); /至少維持了1us,表示讀時(shí)序開始 dat>>=1; /讓從總線上讀到的位數(shù)據(jù),依次從高位移動到低位。 DQ=1; /釋放總線,此后DS18B20會控制總線,把數(shù)據(jù)傳輸?shù)娇偩€上delay(2); /

19、延時(shí)7us,此處參照推薦的讀時(shí)序圖,盡量把控制器采樣時(shí)間放到讀時(shí)序后的15us內(nèi)的最后部分 if(DQ) /控制器進(jìn)行采樣 dat|=0x80; /若總線為1,即DQ為1,那就把dat的最高位置1;若為0,則不進(jìn)行處理,保持為0 delay(26); /此延時(shí)不能少,確保讀時(shí)序的長度60us-很重要return (dat);void Write_One_Byte(uchar dat)uchar i=0;for(i=8;i>0;i-) DQ=0; /拉低總線 _nop_(); _nop_(); /至少維持了1us,表示寫時(shí)序(包括寫0時(shí)序或?qū)?時(shí)序)開始 DQ=dat&0x01;

20、/從字節(jié)的最低位開始傳輸 /指令dat的最低位賦予給總線,必須在拉低總線后的15us內(nèi), /因?yàn)?5us后DS18B20會對總線采樣。 delay(26); /必須讓寫時(shí)序持續(xù)至少60us -很重要 DQ=1; /寫完后,必須釋放總線, /* _nop_(); */ dat>>=1; /因?yàn)?5us后DS18B20會對總線采樣。delay(1);uint Get_Tmp() /獲取溫度float t;uchar a=0,b=0;Init_Ds18b20(); /初始化Write_One_Byte(0xcc); /忽略ROM指令Write_One_Byte(0x44); /溫度轉(zhuǎn)換指

21、令delay(60000);Init_Ds18b20(); /初始化Write_One_Byte(0xcc); /忽略ROM指令Write_One_Byte(0xbe); /讀讀RAM的存儲器指令a=Read_One_Byte(); /讀取到的第一個(gè)字節(jié)為溫度LSBb=Read_One_Byte(); /讀取到的第二個(gè)字節(jié)為溫度MSBtemp=b;temp=temp<<8;temp=temp|a;t=temp*0.0625;temp=t*10+0.5; return(temp);#endif#ifndef _CH451_H_#define _CH451_H_/*/ LED_prin

22、tf(uchar *LED_Data); /添加數(shù)據(jù)的字符串地址 例如:uchar led8=7,6,5,4,3,2,1,0; LED_printc(uchar p,uchar LED_data); /對單個(gè)數(shù)據(jù)顯示 第一位是位置,第二位是數(shù)值 例如:LED_printc(2,3); LED_prints(unsigned char *led_string); /直接顯示字符串地址 例如:LED_prints("123456"); CH451_Init();*/*/#include<reg52.h>#define uint unsigned int#define

23、 uchar unsigned char#define CH451_DIG0 0x0800 /對CH451輸出管腳進(jìn)行定義#define CH451_DIG1 0x0900#define CH451_DIG2 0x0a00#define CH451_DIG3 0x0b00#define CH451_DIG4 0x0c00#define CH451_DIG5 0x0d00#define CH451_DIG6 0x0e00#define CH451_DIG7 0x0f00sbit DOUT=P22; /串行接口數(shù)據(jù)輸出sbit LOAD=P23; /串行數(shù)據(jù)加載sbit DIN =P33; /串行

24、數(shù)據(jù)輸入sbit DCLK=P34; /串行數(shù)據(jù)時(shí)鐘線uchar key=1,keyold=2;/*針對m2t1板BCD轉(zhuǎn)換* 文件名:unsigned char BCD 功能:由于SEG07與adp不對應(yīng),編驅(qū)動轉(zhuǎn)換 入口參數(shù):無 出口參數(shù):無*/unsigned char code BCD=0xbe,0x24,0xea,0xe6, /0,1,2,3, 0x74,0xd6,0xde,0xa4, /4,5,6,7, 0xfe,0xf6,0xfc,0x5e, /8,9,a,b, 0x4a,0x6e,0xda,0xd8, /c,d,e,f, 0x00,0xda,0x24,0x40; /0x10無顯

25、示(16),0x11度(17),0x12雙點(diǎn)(18),0x13-號(19)unsigned char code BCDPoint=0xbf,0x25,0xeb,0xe7, /0,1,2,3, 0x75,0xd7,0xdf,0xa5, /4,5,6,7, 0xff,0xf7;/*向CH451發(fā)送指令*名稱:void CH451_Write(uint dat,uint length)功能:向CH451發(fā)送指令入口參數(shù):uint dat 需要發(fā)送的指令 uint length 發(fā)送指令(dat)的長度出口參數(shù):無*/void CH451_Write(unsigned dat) /uint lengt

26、h uint i; LOAD=1; /串行數(shù)據(jù)加載端置1 for(i=12;i>0;i-) DCLK=0; /串行數(shù)據(jù)時(shí)鐘線 置0 if(dat&0x01)=0x01) /判斷data最低位是否為1 DIN=1; / data最低位為1的話就向din(串行數(shù)據(jù)輸入)寫1 else DIN=0; / data最低位為0的話就向din(串行數(shù)據(jù)輸入)寫0 DCLK=1; /串行數(shù)據(jù)時(shí)鐘線 置1 dat=dat>>1; /data向右移動一位 LOAD=0; /串行數(shù)據(jù)加載端置1 LOAD=1; /給load一個(gè)上升沿使data數(shù)據(jù)全部導(dǎo)入CH451 /*數(shù)碼顯示*名稱:v

27、oid LED_Display(LED_Data1,LED_Data2,LED_Data3,LED_Data4, LED_Data5,LED_Data6,LED_Data7,LED_Data8)功能:數(shù)碼顯示橫向位置轉(zhuǎn)換入口參數(shù):LED_Data1,LED_Data2,LED_Data3,LED_Data4,LED_Data5, LED_Data6,LED_Data7,LED_Data8 需要顯示的代碼出口參數(shù):無*/void LED_printf(uchar *LED_Data) CH451_Write(CH451_DIG2|BCD LED_Data7 );/第8位顯示,LED_Data8位

28、要顯示的內(nèi)容 CH451_Write(CH451_DIG1|BCD LED_Data6 );/第7位顯示 CH451_Write(CH451_DIG3|BCD LED_Data5 );/第6位顯示 CH451_Write(CH451_DIG0|BCD LED_Data4 );/第5位顯示 CH451_Write(CH451_DIG4|BCD LED_Data3 );/第4位顯示 CH451_Write(CH451_DIG5|BCD LED_Data2 );/第3位顯示 CH451_Write(CH451_DIG6|BCD LED_Data1 );/第2位顯示 CH451_Write(CH451

29、_DIG7|BCD LED_Data0 );/第1位顯示 void LED_printc(uchar p,uchar LED_data) switch(p) case 8:CH451_Write(CH451_DIG2|BCD LED_data );break;/第8位顯示,LED_Data8位要顯示的內(nèi)容 case 7:CH451_Write(CH451_DIG1|BCD LED_data );break;/第7位顯示 case 6:CH451_Write(CH451_DIG3|BCD LED_data );break;/第6位顯示 case 5:CH451_Write(CH451_DIG0|

30、BCD LED_data );break;/第5位顯示 case 4:CH451_Write(CH451_DIG4|BCD LED_data );break;/第4位顯示 case 3:CH451_Write(CH451_DIG5|BCD LED_data );break;/第3位顯示 case 2:CH451_Write(CH451_DIG6|BCD LED_data );break;/第2位顯示 case 1:CH451_Write(CH451_DIG7|BCD LED_data );break;/第1位顯示 void LED_printpointc(uchar p,uchar LED_d

31、ata) switch(p) case 8:CH451_Write(CH451_DIG2|BCDPoint LED_data );break;/第8位顯示,LED_Data8位要顯示的內(nèi)容 case 7:CH451_Write(CH451_DIG1|BCDPoint LED_data );break;/第7位顯示 case 6:CH451_Write(CH451_DIG3|BCDPoint LED_data );break;/第6位顯示 case 5:CH451_Write(CH451_DIG0|BCDPoint LED_data );break;/第5位顯示 case 4:CH451_Wri

32、te(CH451_DIG4|BCDPoint LED_data );break;/第4位顯示 case 3:CH451_Write(CH451_DIG5|BCDPoint LED_data );break;/第3位顯示 case 2:CH451_Write(CH451_DIG6|BCDPoint LED_data );break;/第2位顯示 case 1:CH451_Write(CH451_DIG7|BCDPoint LED_data );break;/第1位顯示 void LED_prints(unsigned char *led_string) unsigned char i=0; wh

33、ile(led_stringi!=0x00) if(led_stringi>='0'&&led_stringi<='9') LED_printc(i+1,led_stringi-0x30); else if(led_stringi>='a'&&led_stringi<='z') LED_printc(i+1,led_stringi-'a'+10); i+; /*鍵盤傳出準(zhǔn)備* 文件名:void KeyStart() 功能:傳送0111 到DIN 入口參數(shù):無

34、出口參數(shù):無*/void KeyStart() uint i,dat=0x07; LOAD=1; /串行數(shù)據(jù)加載端置1 for(i=4;i>0;i-) DCLK=0; /串行數(shù)據(jù)時(shí)鐘線 置0 if(dat&0x01)=0x01) /判斷data最低位是否為1 DIN=1; / data最低位為1的話就向din(串行數(shù)據(jù)輸入)寫1 else DIN=0; / data最低位為0的話就向din(串行數(shù)據(jù)輸入)寫0 DCLK=1; /串行數(shù)據(jù)時(shí)鐘線 置1 dat=dat>>1; /data向右移動一位 LOAD=0; /串行數(shù)據(jù)加載端置1 LOAD=1; /給load一個(gè)上

35、升沿使data數(shù)據(jù)全部導(dǎo)入CH451/*對傳出數(shù)據(jù)對應(yīng)轉(zhuǎn)換* 文件名:CH451_ReadChange() 功能:轉(zhuǎn)換輸入7位到數(shù)字 入口參數(shù):無 出口參數(shù):無*/CH451_ReadChange(uint dat) uint a; switch(dat) case 0x40: a=0; break;/0鍵按下按鍵 case 0x43: a=1; break;/1鍵按下按鍵 case 0x41: a=2; break;/2鍵按下按鍵 case 0x42: a=3; break;/3鍵按下按鍵 case 0x48: a=4; break;/4鍵按下按鍵 case 0x4b: a=5; break

36、;/5鍵按下按鍵 case 0x49: a=6; break;/6鍵按下按鍵 case 0x4a: a=7; break;/7鍵按下按鍵/* case 0x00: a=10; break;/0鍵釋放按鍵 case 0x03: a=11; break;/1鍵釋放按鍵 case 0x01: a=12; break;/2鍵釋放按鍵 case 0x02: a=13; break;/3鍵釋放按鍵 case 0x08: a=14; break;/4鍵釋放按鍵 case 0x0b: a=15; break;/5鍵釋放按鍵 case 0x09: a=16; break;/6鍵釋放按鍵 case 0x0a: a

37、=17; break;/7鍵釋放按鍵*/ default: a=8; break; return a;/*鍵盤傳出CH451_Read()* 文件名:CH451_Read() 功能:傳送輸入7位 入口參數(shù):按鍵 出口參數(shù):鍵值0007 1017*/CH451_scan() uint i,dat=0; KeyStart(); for(i=7;i>0;i-) DCLK=1; if(DOUT=1) dat=dat|0x01; DCLK=0; dat=dat<<1; dat=dat>>1; DOUT=1; dat=CH451_ReadChange(dat); key=da

38、t; if(key!=8) keyold=key; return dat;/*CH451初始化*名稱:void CH451_Init()功能:CH451初始化,設(shè)置CH451選擇4線串行接口入口參數(shù):無出口參數(shù):無*/void CH451_Init() DIN=0; / 給DIN一個(gè)高電平 設(shè)置CH451選擇4線串行接口 DIN=1; DCLK=1;/置為默認(rèn)的高電平 LOAD=1; DOUT=1;/置為輸入CH451_Write(0x403); /設(shè)定系統(tǒng)參數(shù),數(shù)碼顯示使能 CH451_Write(0x500); / 最末位為亮度調(diào)節(jié)#endif#include <intrins.h&

39、gt;typedef unsigned int WORD;typedef unsigned char BYTE; /*Declare SFR associated with the ADC */ sfr ADC_CONTR = 0xC5; /ADC control register sfr ADC_DATA = 0xC6; /ADC high 8-bit result register sfr ADC_LOW2 = 0xBE; /ADC low 2-bit result register sfr P1M0 = 0x91; /P mode control register0 sfr P1M1 =

40、 0x92; /P mode control register /*Define ADC operation const for ADC_CONTR*/ #define ADC_POWER 0x80 /ADC power control bit #define ADC_FLAG 0x10 /ADC complete flag #define ADC_START 0x08 /ADC start control bit #define ADC_SPEEDLL 0x00 /080 clocks #define ADC_SPEEDL 0x20 /80 clocks #define ADC_SPEEDH 0x40 /540 clocks #define ADC_SPEEDHH 0x60 /270 clocks void InitADC(); BYTE GetADCResult(BYTE ch); void ADDelay(WORD n);/*- Get ADC result -*/ BYTE GetADCResult(BYTE ch) ADC_CONTR = ADC_POWER |

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論