版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)題目:溫度采集與顯示系統(tǒng)1課程設(shè)計(jì)內(nèi)容1.1設(shè)計(jì)要求利用STC89C52、DS18B20、LCD1602、AT24C02等元器件設(shè)計(jì)溫度采集與顯示系統(tǒng)。系統(tǒng)具有以下功能:1)能正確檢測溫度;2)在1602上實(shí)時(shí)顯示溫度;3)每隔10秒采集一次溫度數(shù)據(jù)并保存到AT24C02;4)按鍵按下后,可逐個(gè)顯示之前采集到的數(shù)據(jù);5)其他功能可根據(jù)系統(tǒng)上的資源自行設(shè)定。1.2設(shè)計(jì)任務(wù)1)根據(jù)設(shè)計(jì)內(nèi)容與要求,弄清系統(tǒng)及各個(gè)模塊的工作流程,完成電路原理圖,包括單片機(jī)最小系統(tǒng)模塊、LCD顯示模塊、存儲(chǔ)模塊、串行口下載模塊和電源模塊,最終在萬用板上焊接,完成整個(gè)系統(tǒng)硬件設(shè)計(jì)。2)根據(jù)設(shè)計(jì)內(nèi)容與要求,弄清系統(tǒng)及各個(gè)模塊的工作流程,完成系統(tǒng)的軟件設(shè)計(jì),包括系統(tǒng)主程序、溫度讀取子程序、LCD顯示子程序、存儲(chǔ)子程序等,可使用匯編語言或是C語言編寫,建議使用C語言編寫。3)完成系統(tǒng)的仿真與調(diào)試,使得系統(tǒng)在脫機(jī)情況下,能穩(wěn)定可靠的工作。1.3課程設(shè)計(jì)原理基于DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)主要由數(shù)字溫度傳感器、單片機(jī)控制電路、數(shù)碼顯示電路組成。DS18B20測量溫度采用了特有的溫度測量技術(shù)。它是通過計(jì)數(shù)時(shí)鐘周期來實(shí)現(xiàn)的。低溫度系數(shù)振蕩器輸出的時(shí)鐘信號(hào)通過由高溫度系數(shù)振蕩器產(chǎn)生的門周期而被計(jì)數(shù)。計(jì)數(shù)器被預(yù)置在與-55°C相對(duì)應(yīng)的一個(gè)基權(quán)值。如果計(jì)數(shù)器在高溫度系數(shù)振蕩周期結(jié)束前計(jì)數(shù)到零,表示測量的溫度值高于-55C,被預(yù)置在-55C的溫度寄存器的值就增加1C,然后重復(fù)這個(gè)過程,直到高溫度系數(shù)振蕩周期結(jié)為止這時(shí)溫度寄存器中的值就是被測溫度值,這個(gè)值以16位形式存放在便箋式存貯器中,此溫度值可由主機(jī)通過發(fā)存貯器讀命令而讀出,讀取時(shí)低位在前,高位在后。斜率累加器用于補(bǔ)償溫度振蕩器的拋物線特性。讀出的二進(jìn)制數(shù)可以直接轉(zhuǎn)換為十進(jìn)制由單片機(jī)驅(qū)動(dòng)數(shù)碼管顯示輸出。DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9?12位的數(shù)字值讀數(shù)方式。溫范圍一55C?+125C,在-10?+85°C時(shí)精度為±0.5°C;可編程的分辨率為9?12位,對(duì)應(yīng)的可分辨溫度分別為0.5C、0.25C、0.125C和0.0625C,可實(shí)現(xiàn)高精度測溫,典型的轉(zhuǎn)換時(shí)間為200ms;用戶可以設(shè)定溫度的上下限;獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。DS1820具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),所以在測量領(lǐng)域得到廣泛的運(yùn)用。2課程設(shè)計(jì)思路3硬件設(shè)計(jì)3.1單元模塊設(shè)計(jì)本節(jié)主要介紹系統(tǒng)中單片機(jī)STC89C52外圍電路重要模塊的功能和電路原理圖分析。并對(duì)電路中的核心器件進(jìn)行必要的說明單元模塊設(shè)計(jì)3.1.1時(shí)鐘電路3.1.2復(fù)位電路圖3.2復(fù)位電路3.1.3報(bào)警電路圖3.3報(bào)警電路3.1.4溫度采集電路圖3.4溫度采集電路3.1.5存儲(chǔ)電路3.1.6LCD顯示模塊圖3.6LCD模塊電路3.1.7按鍵部分圖3.7按鍵電路3.1.8串口通信電路圖3.8串口通信電路3.2核心器件介紹3.2.1單片機(jī)STC89C52介紹STC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。主要特性如下:工作電壓:5.5V?3.3V(5V單片機(jī))/3.8V?2.0V(3V單片機(jī)。工作頻率范圍:0?40MHz,相當(dāng)于普通8051的0?80MHz,實(shí)際工作頻率可達(dá)48MHz。用戶應(yīng)用程序空間為8K字節(jié)。片上集成512字節(jié)RAM。通用I/O口(32個(gè))復(fù)位后為FFH,P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片具有EEPROM功能。具有看門狗功能。共3個(gè)16位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T2。外部中斷4路,下降沿中斷或低電平觸發(fā)電路,PowerDown模式可由外部中斷低電平觸發(fā)中斷方式喚醒。STC89C52RC引腳功能說明VCC(40引腳):電源電壓。VSS(20引腳):接地。P0端口(P0.0-P0.7P0.7,39?32引腳):P0口是一個(gè)漏極開路的8位雙向I/O口。作為輸出端口,每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL負(fù)載,對(duì)端口P0寫入每個(gè)引腳能驅(qū)動(dòng)寫入“1時(shí),可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí)在訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線位數(shù)據(jù)的復(fù)用總線。此時(shí),P0口內(nèi)部上拉電阻有效。在FlashROM編在程時(shí),P0端口接收指令字節(jié)端口接收指令字節(jié);而在校驗(yàn)程序時(shí),則輸出指令字節(jié)則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。P1端口(P1.0?P1.7,1?8引腳):P1口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動(dòng)(吸收或者輸出電流方式)4個(gè)TTL輸入。對(duì)端口寫入1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時(shí),因?yàn)橛袃?nèi)部上拉電阻,那些被外部拉低的引腳會(huì)輸出一個(gè)電流()。此外,P1.0和P1.1還可以作為定時(shí)器/計(jì)數(shù)器2的外部技術(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體參見下表:在對(duì)FlashROM編程和程序校驗(yàn)時(shí),P1接收低8位地址。P2端口(P2.0?P2.7,21?28引腳):P2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)TTL輸入。對(duì)端口寫入1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電平,這時(shí)可用作輸入口。P2作為輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流(I)。在訪問外部程序存儲(chǔ)器和16位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行“MOVX@DPTR”指令)時(shí),P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行“MOVX@R1”指令)時(shí),P2口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中的P2寄存器的內(nèi)容),在整個(gè)訪問期間不會(huì)改變。在對(duì)FlashROM編程和程序校驗(yàn)期間,P2也接收高位地址和一些控制信號(hào)。P3端口(P3.0?P3.7,10?17引腳):P3是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)TTL輸入。對(duì)端口寫入1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可用作輸入口。P3做輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸入一個(gè)電流()。在對(duì)FlashROM編程或程序校驗(yàn)時(shí),P3還接收一些控制信號(hào)。P3口除作為一般I/O口外,還有其他一些復(fù)用功能,如下所示:RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個(gè)機(jī)器周期以上高電平時(shí)為有效,復(fù)位高電平有效。ALE/ROG(30引腳)地址鎖存控制信號(hào):(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在Flash編程時(shí),此引腳(ROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過。XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。
圖3.9AT89C52引腳圖P1.0—/VCCP1.IPQ.0P1.2P0.1P13P0.2圖3.9AT89C52引腳圖P1.0—/VCCP1.IPQ.0P1.2P0.1P13P0.2PlJP0.3PI.5P0.4P16P0.5PL?7P爵RSTVPD定P0?RNDP3.0HVPPTXDP3.1云ALE或DCHP3.S-P2.7TOP3-?=P2.6ILPS.5P25KRP3.6P2.4Riyp3._?2.3XTAL2P2JXTAL1P2AvssP2.0圖3.11LCD1602引腳圖具有3引腳TO-92小體積封裝形式;DS18B20是DALLAS公司生產(chǎn)的一線式傳感器,溫度測量范圍為-55攝氏度到+125攝氏度,可編程為9到12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625攝氏度,被側(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生。CPU只需一根端口線就能與諸多具有3引腳TO-92小體積封裝形式;DS18B20主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH個(gè)TL、配置寄存器。DS18B20中的溫度傳感器可完成對(duì)溫度的測量,用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625攝氏度/LSB形式表達(dá),其中S為符號(hào)位。例如+125攝氏度的數(shù)字輸出為07DOH,+25.0625攝氏度的數(shù)字輸出為0191H,-25.0625攝氏度的數(shù)字輸出為FF6FH,-55攝氏度的數(shù)字輸出為FC90H.圖3.10DS18B20的兩種封裝形式DS18B20采用一線通信接口。因?yàn)橐痪€通信接口,必須在先完成ROM設(shè)定,否則記憶和控制功能將無法使用。主要首先提供以下功能命令之一:⑴讀ROM指令0X33,⑵ROM匹配指令0X55,⑶搜索ROM指令0XF0,⑷跳過ROM指令0XCC,⑸報(bào)警檢查指令0XEC。這些指令操作作用在沒有一個(gè)器件的64位光刻ROM序列號(hào)。3.2.3LCD1602介紹(LCD1602引腳圖見圖3.11)1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖形。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。液晶顯示器各種圖形的顯示原理:線段的顯示點(diǎn)陣圖形式液晶由MxN個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16x8=128個(gè)點(diǎn)組成,屏上64x16個(gè)顯示單元與顯示RAM區(qū)1024字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時(shí),則屏幕的左上角顯示一條短亮線,長度為8個(gè)點(diǎn);當(dāng)(3FFH)=FFH時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,......(00EH)=00H,(00FH)=00H時(shí),則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。字符的顯示用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6x8或8x8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。漢字的顯示漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占32B,分左右兩半,各占16B,左邊為1、3、5......右邊為2、4、6......根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)可找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié)直到32B顯示完就可以LCD上得到一個(gè)完整漢字?!?602LCD主要技術(shù)參數(shù):顯示容量:16x2個(gè)字符芯片工作電壓:4.5—5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95x4.35(WxH)mm■引腳功能說明及11條控制指令1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明17SS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3ML液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)J命令選擇12D5數(shù)據(jù)5R/W讀厚選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)1DO數(shù)據(jù)15日心背光源正極序號(hào)指令RSR/WD7D6D5D4D3D2D1D0id清顯示)00000000012光標(biāo)返回n000000001*3置輸入模式「00000001I/DS4顯小開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**■6置功能「00001DLNF**7置字符發(fā)生存貯或地址0001字符發(fā)生存貯器J曲址圖3.10蠢7堰杼能哭刊1MLCD1602中文字符-■■-一■-r--■■?代碼,與二己符I瓦末瀚堰在曠哭址州卜圖形對(duì)應(yīng)的關(guān)廠IL、F10與數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或HDDRAM讀豉11讀出的數(shù)據(jù)內(nèi)容「1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表下:DC3>,強(qiáng)口置■a1h三cepAn.1OO1<a.ic*><s>豐OITI3I七#15EIUI—13&IGFIMI-FI^I>iTlGiuins<18HIXIH-ixl>1-911IV[i7*1sIJINI8In|+1M|K|EIfc|<|,|<|L|¥|1I1I~I=IM|3[ml>|.i>zn—■I才*ZLu二3p=i十i*i方ig]兀勺Ir\jiibF*Hindis頃Itri匕口xklxml電言心巾L后p15P=S]?3.2.4AT24C02引腳圖及MAX232E引腳圖AO匚18A1匚27A2匚36GND匚45□SDAvccJWPSCLC1+i,D16VccV+215GNDCLLTtotfrC2+MAX220間R1inMAX232C2-MAX233A12V-11「inT2qut~17|T&n3f^ouiMAX232E引腳圖AT24C02引腳圖4軟件設(shè)計(jì)用模塊化程序設(shè)計(jì)此課程設(shè)計(jì),各模塊程序如下所示總程序main模塊#include<reg52.h>#include<function.h>charmiao,shi,fen;uints1num;ucharcount;uintsu,tt,mm,m,n;ucharbuff[4];unsignedcharpDat[7],pDat1[7];sbits1=P2A3;sbits2=P2A4;sbits3=P2A5;voidmain(){m=0;n=0;init();EX0=1;while(1){write_sfm(10,miao);write_sfm(7,fen);write_sfm(4,shi);dis_temp(tt);dis_temp1(mm);keyscan();}}voidint_{EA=0;IRcvStr(0xa0,n,&pDat1[0],8);0()interrupt0mm=pDat1[0]*100+pDat1[1]*10+pDat1[2];pDat1[0]=0;pDat1[1]=0;pDat1[2]=0;n=n+8;EA=1;}voidkeyscan(){if(s1==0){delay(5);if(s1==0){s1num++;while(!s1);if(s1num==1){TR0=0;write_com(0x80+0x40+10);write_com(0x0f);}}if(s1num==2){write_com(0x80+0x40+7);}if(s1num==3){write_com(0x80+0x40+4);}if(s1num==4){s1num=0;write_com(0x0c);TR0=1;}}if(s1num!=0){if(s2==0){delay(5);if(s2==0){while(!s2);if(s1num==1){miao++;if(miao==60)miao=0;write_sfm(10,miao);write_com(0x80+0x40+10)}if(s1num==2){fen++;if(fen==60)fen=0;write_sfm(7,fen);write_com(0x80+0x40+7);}if(s1num==3)(shi++;if(shi==24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4);}}}if(s3==0){delay(5);if(s3==0){while(!s3);if(s1num==1){miao--;if(miao==-1)miao=59;write_sfm(10,miao);write_com(0x80+0x40+10);}if(s1num==2){fen--;if(fen==-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7);}if(s1num==3){shi--;if(shi==-1)shi=23;write_sfm(4,shi);write_com(0x80+0x40+4);}}}}}voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;su++;if(su==20)(su=0;tempchange();tt=get_temp();pDat[0]=tt/100;pDat[1]=(tt%100)/10;pDat[2]=tt%10;ISendStr(0xa0,m,&pDat[0],8);m=m+8;pDat[0]=0;pDat[1]=0;pDat[2]=0;}count++;if(count==20)(count=0;miao++;if(miao==60)(miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;}//write_sfm(4,shi)}//write_sfm(7,fen)}//write_sfm(10,miao);}}I2C程序模塊#include<reg52.h>#include<intrins.h>#include<Function.h>#defineNOP()_nop_()#define_Nop()_nop_()sbitSCL=P2A1;sbitSDA=P2A0;bitack;voidStart_I2c(){SDA=1;_Nop();SCL=1;_Nop();_Nop();_Nop();_Nop();_Nop();SDA=0;_Nop();_Nop();_Nop();_Nop();_Nop();SCL=0;_Nop();_Nop();}voidStop_I2c(){SDA=0;_Nop();SCL=1;_Nop();_Nop();_Nop();_Nop();_Nop();SDA=1;_Nop();_Nop();_Nop();_Nop();}voidSendByte(unsignedcharc){unsignedcharBitCnt;for(BitCnt=0;BitCnt<8;BitCnt++){if((c<<BitCnt)&0x80)SDA=1;elseSDA=0;_Nop();SCL=1;_Nop();_Nop();_Nop();_Nop();_Nop();SCL=0;}_Nop();_Nop();SDA=1;_Nop();_Nop();SCL=1;_Nop();_Nop();_Nop();if(SDA==1)ack=0;elseack=1;SCL=0;_Nop();_Nop();}unsignedcharRcvByte()(unsignedcharretc;unsignedcharBitCnt;retc=0;SDA=1;for(BitCnt=0;BitCnt<8;BitCnt++){_Nop();SCL=0;_Nop();_Nop();_Nop();_Nop();_Nop();SCL=1;_Nop();_Nop();retc=retc<<1;if(SDA==1)retc=retc+1;_Nop();_Nop();}SCL=0;_Nop();_Nop();return(retc);}voidAck_I2c(bita)
{if(a==0)SDA=0;elseSDA=1;_Nop();_Nop();_Nop();SCL=1;_Nop();_Nop();_Nop();_Nop();_Nop();SCL=0;_Nop();_Nop();}AT24C02模塊#include<Function.h>bitISendStr(unsignedcharsla,unsignedcharsuba,unsignedcharcharno)(unsignedchari;Start_I2c();SendByte(sla);if(ack==0)return(0);SendByte(suba);if(ack==0)return(0);for(i=0;i<no;i++)(SendByte(*s);if(ack==0)return(0);s++;}Stop_I2c();return(1);}bitIRcvStr(unsignedcharsla,unsignedcharsuba,unsignedcharcharno)(*s,unsigned*s,unsignedunsignedchari;*s,unsigned*s,unsignedStart_I2c();SendByte(sla);if(ack==0)return(0);SendByte(suba);if(ack==0)return(0);Start_I2c();SendByte(sla+1);if(ack==0)return(0);for(i=0;i<no-1;i++)(*s=RcvByte();Ack_I2c(0);s++;}*s=RcvByte();Ack_I2c(1);Stop_I2c();return(1);}Lcd模塊#include<reg52.h>#include<function.h>sbitrs=P3A5;sbitlcden=P3A4;ucharcodetablenum[]="0123456789";ucharcodetable[]="00.0Rem00.0";ucharcodetable1[]="00:00:00";voiddelay(uintz)(uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom)(rs=0;lcden=0;P1=com;delay(5);lcden=1;delay(5);lcden=0;voidwrite_date(uchardat)(rs=1;lcden=0;P1=dat;delay(5);lcden=1;delay(5);lcden=0;}voidinit()(ucharnum;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num<13;num++)(write_date(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<12;num++)(write_date(table1[num]);delay(5);}TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}voidwrite_sfm(ucharadd,uchardat)(uchars,g;s=dat/10;g=dat%10;write_com(0x80+0x40+add);write_date(tablenum[s]);write_date(tablenum[g]);}voidwrite_sfm1(ucharadd,uchardat)(write_com(0x80+add);write_date(tablenum[dat]);DS18B20模塊#include<reg52.h>#include<stdio.h>#include<function.h>sbitds=P2A2;uinttemp;floatf_temp;voiddsreset(void)(uinti;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bittempreadbit(void)(uinti;bitdat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return(dat);}uchartempread(void)(uchari,j,dat;dat=0;for(i=1;i<=8;i++)(j=tempreadbit();dat=(j<<7)l(dat>>1);}return(dat);}voidtempwritebyte(uchardat)(uinti;ucharj;bittestb;for(j=1;j<=8;j++)(testb=dat&0x01;dat=dat>>1;if(testb)(ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}voidtempchange(void){dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0x44);}uintget_temp(){uchara,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp<<=8;temp=temp|a;f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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中介服務(wù)項(xiàng)目協(xié)議
- 2024適用房產(chǎn)中介購房協(xié)議格式范本
- 2024年期建筑工人勞務(wù)承攬協(xié)議
- 2024年專利技術(shù)許可格式協(xié)議
- 2024年化玉米購銷協(xié)議模板
- 2024屆安徽省安慶二中、天成中學(xué)高中數(shù)學(xué)試題競賽模擬(二)試題
- 2023-2024學(xué)年浙江省鎮(zhèn)海中學(xué)高三高考沖刺第一次考試數(shù)學(xué)試題
- 2024年安全煙花爆竹零售協(xié)議樣本
- 2024年材料采購協(xié)議典范
- 2024年度商品采購協(xié)議樣式
- QJ44型直流雙臂電橋使用說明書
- 帷幕灌漿孔原始記錄表
- 《臨床決策分析》課件.ppt
- 淚道沖洗PPT學(xué)習(xí)教案
- 新課程背景下初中語文教學(xué)的轉(zhuǎn)變與創(chuàng)新
- 淺談校園影視在學(xué)校教育中的作用
- 咖啡種植標(biāo)準(zhǔn)化規(guī)程
- 上海大眾汽車商務(wù)禮儀培訓(xùn)PPT課件
- 理論力學(xué)習(xí)題集含答案
- 驅(qū)動(dòng)壓在肺保護(hù)性通氣策略中的研究進(jìn)展(全文)
- 公路工程施工安全技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論