版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、23 -?425 2040 仁1 2H 514 4IK114k715-XTAL2RST1 nALi曙一龍遵iff尸 0 OXADO PO 1XAD1P0 2XAD2 PO 3/AD3P0 倂D4P0 5XAD5P0EQD6 P0 7D7numrlPSEN ALEP2.A8 P2.VA9 P2.2CA10 P2.3fA11 P2 4fAl2 P2 5fA13 P2 6fA1 4 P2 7fAl5P1 1P1.2P1.3P14P1.5P1.6P1.7尸:a(RXD : in r.P3.2frjTOP3 3riNTT P3.4fT0 P3.3HPS.&vTTP3 7/RCfU2GND 圭亠全-esc
2、鈔136ZZKTALyP0 0JAD0U .AD1PO 222KTAL2P0 31AD3迅DS18B20測(cè)溫顯示,proteus仿真。Writte n by jinson glia ng具體程序如下Main.c :#include#includelib51v3.c#include18b20.c#includesegv3.cvoid main (void)unsigned char disp5=10,0,0,14,2;signed char temp=0;while(1)/*1 、讀取溫度值 */ temp=Get_Temputer();/2 、顯示前處理 */if(temp0;n-);18b2
3、0.c :/* 時(shí)序很重要,移植時(shí)注意延時(shí)函數(shù)*/#define B20_PORT#define B20_CHANNEL#define R_B20_CHANNEL()#define W_B20_CHANNEL_1()#define W_B20_CHANNEL_0()#define SKIP_ROM#define TEMPUTER_CONVERT#define READ_ROMP1 / 此處可以設(shè)置 I/O 口0B20_PORT&(1B20_CHANNEL) B20_PORT|=(1B20_CHANNEL) B20_PORT&=(1B20_CHANNEL) 0xCC0x440xBE/one/*初
4、始化函數(shù),失敗會(huì)返回 1,初始化過(guò)程見(jiàn)注釋 若單片機(jī)讀到了數(shù)據(jù)線上的低電平“ 0”后,還要做延時(shí), 其延時(shí)的時(shí)間從單片機(jī)發(fā)出的高電平算起最少要480 微秒。之后單片機(jī)將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。*/static unsigned char Init_18b20 (void) unsigned char x=0;W_B20_CHANNEL_1();Delay_Nus(8);/1 、從單片機(jī)拉高數(shù)據(jù)線開(kāi)始/6*n useconds lib51v3.cW_B20_CHANNEL_0();Delay_Nus(81);W_B20_CHANNEL_1();Delay_Nus(14);/2 、單片
5、機(jī)拉低數(shù)據(jù)線 480us 以上,拉高數(shù)據(jù)線,釋放/3 、之后 ds18b20 ,1560us 以后反應(yīng),拉高數(shù)據(jù)線x=R_B20_CHANNEL();/4 、單片機(jī)讀取數(shù)據(jù)線if(x)/x=0 代表復(fù)位成功return x; Delay_Nus(20); return x;/two static void Write_18b20(unsigned char w_data)unsigned char i;unsigned char temp; for(i=0;i8;i+)W_B20_CHANNEL_1(); temp=w_data&(10);W_B20_CHANNEL_0(); / 單片機(jī)從高到
6、低,拉低 1us 以上,并在 15us 內(nèi)產(chǎn)生寫(xiě)間隙 B20_PORT=temp=1;W_B20_CHANNEL_1(); Delay_Nus(4);/threestatic unsigned char Read_18b20(void)unsigned char i;unsigned char temp;unsigned char r_data=0x00;for(i=0;i=1;W_B20_CHANNEL_1();W_B20_CHANNEL_0(); / 從高到低 15us 內(nèi),再到高,產(chǎn)生讀間隙 Delay_Nus(1);W_B20_CHANNEL_1(); temp=B20_PORT(7-
7、B20_CHANNEL); / 讀數(shù)據(jù) , 從低位開(kāi)始 temp&=(17);r_data+=temp;Delay_Nus(8); / 整個(gè)讀一位過(guò)程在 60120us W_B20_CHANNEL_1();return r_data;/ 復(fù)位 18b20/ 跳過(guò) ROM/ 溫度變換/ 復(fù)位 18b20/ 跳過(guò) ROM/ 讀暫存存儲(chǔ)器/ 讀數(shù)據(jù)/four/* 若要讀出當(dāng)前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個(gè)周期為復(fù)位、跳過(guò)ROM旨令、執(zhí)行溫度轉(zhuǎn)換存儲(chǔ)器操作指令、等待500uS溫度轉(zhuǎn)換時(shí)間。緊接著執(zhí)行第二個(gè)周期為復(fù)位、跳過(guò)ROM旨令、執(zhí)行讀RAM的存儲(chǔ)器操作指令、讀數(shù)據(jù)(最多為 9個(gè)字節(jié),中
8、途可停止,只讀簡(jiǎn)單溫度值則讀前2 個(gè)字節(jié)即可)*/signed char Get_Temputer (void) / 讀取溫度值,返回的帶符號(hào)字符型 -55 到+127;128 無(wú)法顯示,初始化失敗會(huì)顯示 00.C unsigned char tem_h,tem_l;signed char temp;if(Init_18b20()=0)Write_18b20(SKIP_ROM);Write_18b20(TEMPUTER_CONVERT);elsereturn temp=0;/Delay_Nus(100); if(Init_18b20()=0) Write_18b20(SKIP_ROM);Wri
9、te_18b20(READ_ROM); elsereturn temp=0;tem_l=Read_18b20(); tem_h=Read_18b20();/*只要高字符的低四位和低字符的高四位, 溫度范圍 099,temp 為補(bǔ)碼,直接由 unsigned char 賦值給 signed char 內(nèi)容不變,代表的值改變*/temp=(tem_h4);return temp;Segv3.c :#define COMMON_ANODIC#define COMMON_CATHODAL#define SEG_CATEGORY0/ 共陽(yáng)數(shù)碼管1/ 共陰數(shù)碼管0 / 選擇共陽(yáng)數(shù)碼管#define SEG
10、8_A(10)#define SEG8_B(11)#define SEG8_C(12)#define SEG8_D(13)#define SEG8_E(14)#define SEG8_F(15)#define SEG8_G(16)#define SEG8_DP(17)/ 段 A 亮?xí)r為 0,屬共陽(yáng)數(shù)碼管#define SEG8_CHAR_0(SEG8_G&SEG8_DP)#define SEG8_CHAR_1(SEG8_A&SEG8_D&SEG8_E&SEG8_F&SEG8_G&SEG8_DP)#define SEG8_CHAR_2(SEG8_C&SEG8_F&SEG8_DP)#define
11、SEG8_CHAR_3(SEG8_E&SEG8_F&SEG8_DP)#define SEG8_CHAR_4(SEG8_A&SEG8_D&SEG8_E&SEG8_DP)#define SEG8_CHAR_5(SEG8_B&SEG8_E&SEG8_DP)#define SEG8_CHAR_6(SEG8_B&SEG8_DP)#define SEG8_CHAR_7(SEG8_D&SEG8_E&SEG8_F&SEG8_G&SEG8_DP)#define SEG8_CHAR_8SEG8_DP#define SEG8_CHAR_9(SEG8_E&SEG8_DP)#define SEG8_CHAR_0#def
12、ine SEG8_CHAR_E(SEG8_B&SEG8_C&SEG8_DP)#define SEG8_CHAR_R(SEG8_A&SEG8_B&SEG8_C&SEG8_D&SEG8_F&SEG8_DP)#define SEG8_CHAR_SUB(SEG8_A&SEG8_B&SEG8_C&SEG8_D&SEG8_E&SEG8_F&SEG8_DP)/#defineSEG8_CHAR_A/#defineSEG8_CHAR_B #define SEG8_CHAR_C (SEG8_B&SEG8_C&SEG8_G&SEG8_DP)/#defineSEG8_CHAR_D/#defineSEG8_CHAR_F
13、/#defineSEG8_CHAR_H#if SEG_CATEGORY=COMMON_ANODIC static const unsigned char SEG8_CODE=SEG8_CHAR_0,SEG8_CHAR_1,SEG8_CHAR_2,SEG8_CHAR_3,SEG8_CHAR_4,SEG8_CHAR_5,SEG8_CHAR_6,SEG8_CHAR_7,SEG8_CHAR_8,SEG8_CHAR_9,SEG8_CHAR_, /SEG8_CODE10SEG8_CHAR_E,/SEG8_CODE11SEG8_CHAR_R,/SEG8_CODE12SEG8_CHAR_SUB, /SEG8_
14、CODE13 SEG8_CHAR_C /SEG8_CODE14 ;#elsestatic const unsigned char SEG8_CODE= SEG8_CHAR_0, SEG8_CHAR_1, SEG8_CHAR_2, SEG8_CHAR_3, SEG8_CHAR_4, SEG8_CHAR_5, SEG8_CHAR_6, SEG8_CHAR_7, SEG8_CHAR_8, SEG8_CHAR_9, SEG8_CHAR_,/SEG8_CODE10SEG8_CHAR_E,/SEG8_CODE11SEG8_CHAR_R,/SEG8_CODE12SEG8_CHAR_SUB/,/SEG8_CO
15、DE13 SEG8_CHAR_C/SEG8_CODE14;/ 此處可以設(shè)置 I/O 口#endif#define BIT0#define BIT1#define BIT2#define BIT3#define SEG8_BIT0_ON() #define SEG8_BIT0_OFF() #define SEG8_BIT1_ON()#define SEG8_BIT1_OFF()#define SEG8_BIT2_ON()#define SEG8_BIT2_OFF()#define SEG8_BIT3_ON()#define SEG8_SLECT_PORT P323SEG8_SLECT_PORT|
16、=(1BIT0)SEG8_SLECT_PORT&=(1BIT0)SEG8_SLECT_PORT|=(1BIT1)SEG8_SLECT_PORT&=(1BIT1)SEG8_SLECT_PORT|=(1BIT2)SEG8_SLECT_PORT&=(1BIT2)SEG8_SLECT_PORT|=(1BIT3)#define SEG8_BIT3_OFF() SEG8_SLECT_PORT&=(1BIT3)#define SEG8_CODE_PORT P2 / 此處可以設(shè)置 I/O 口void Seg_Display (char *p)unsigned char temp4;temp0=SEG8_CODE*p+;temp1=SEG8_CODE*p+;temp2=SEG8_CODE*p+;temp3=SEG8_CODE*p+;if(*p4)#if SEG_CATEGORY=COMMON_ANODIC temp*p&=SEG8_DP;#elsetemp*p|=SEG8_DP;#endifunsigned char i;for(i=0;i150;i+)SEG8_CODE_PORT = t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年風(fēng)電場(chǎng)35kV輸電線路工程合同3篇
- 2024建筑材料多孔磚買賣協(xié)議版B版
- 2024年運(yùn)輸合同物流金融產(chǎn)品設(shè)計(jì)與風(fēng)險(xiǎn)管理3篇
- 中考英語(yǔ)-英語(yǔ)-任務(wù)型閱讀理解專題練習(xí)(附答案)
- 2025年度土地承包經(jīng)營(yíng)權(quán)終止合同范本3篇
- 2025年度安全生產(chǎn)信息化系統(tǒng)設(shè)計(jì)與實(shí)施協(xié)議2篇
- 2025年度物流保險(xiǎn)采購(gòu)合同執(zhí)行細(xì)則3篇
- 湖南工藝美術(shù)職業(yè)學(xué)院《化妝品化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 通化師范學(xué)院《植物生物技術(shù)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶醫(yī)科大學(xué)《精細(xì)化學(xué)品分析檢測(cè)技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 初中音樂(lè)欣賞課型互動(dòng)教學(xué)策略的構(gòu)建及實(shí)踐
- 《新媒體運(yùn)營(yíng)》高職新媒體運(yùn)營(yíng)全套教學(xué)課件
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)教程 課件全套 王曉明 第1-11章 創(chuàng)新與創(chuàng)新能力 -中國(guó)國(guó)際大學(xué)生創(chuàng)新大賽與“挑戰(zhàn)杯”大學(xué)生創(chuàng)業(yè)計(jì)劃競(jìng)賽
- 2024年蘭州大學(xué)專業(yè)課《金融學(xué)》科目期末試卷B(有答案)
- 初中物理寶典
- 人工智能基礎(chǔ)與應(yīng)用-課程標(biāo)準(zhǔn)
- 綠化養(yǎng)護(hù)工作日記錄表
- 耳尖放血的護(hù)理
- 人工智能趣味科普系列
- 中醫(yī)五臟課件
- 安谷鐵龍煤礦整合技改施工組織設(shè)計(jì)樣本
評(píng)論
0/150
提交評(píng)論