單片機(jī)課程設(shè)計(jì)——自動(dòng)滾動(dòng)廣告牌的設(shè)計(jì)_第1頁
單片機(jī)課程設(shè)計(jì)——自動(dòng)滾動(dòng)廣告牌的設(shè)計(jì)_第2頁
單片機(jī)課程設(shè)計(jì)——自動(dòng)滾動(dòng)廣告牌的設(shè)計(jì)_第3頁
單片機(jī)課程設(shè)計(jì)——自動(dòng)滾動(dòng)廣告牌的設(shè)計(jì)_第4頁
單片機(jī)課程設(shè)計(jì)——自動(dòng)滾動(dòng)廣告牌的設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課程設(shè)計(jì) 題 目: 自動(dòng)滾動(dòng)廣告牌 所在院系: 機(jī)電汽車工程學(xué)院 專 業(yè): 機(jī)101-4班 學(xué) 號(hào): 姓 名: 完成日期: 指導(dǎo)教師: 目錄一、 課程設(shè)計(jì)任務(wù)書二、 設(shè)計(jì)項(xiàng)目簡介 (一)設(shè)計(jì)思路 (二)任務(wù)分工三、 設(shè)計(jì)過程 (一)電路原理圖及各器件原理介紹 (二)程序模塊四、 程序框圖五、 程序清單六、 系統(tǒng)功能簡介 (一)產(chǎn)品的功能簡介 (二)產(chǎn)品使用方法 (三)產(chǎn)品性能簡介七、 產(chǎn)品說明書八、 總結(jié)一、 課程設(shè)計(jì)任務(wù)書基于單片機(jī)的自動(dòng)滾動(dòng)廣告牌的設(shè)計(jì)廣告牌有四張宣傳彩頁,卷入一卷軸,依次來回顯示每一頁,每一頁顯示的時(shí)間相同。本設(shè)計(jì)以MCS-51系列單片機(jī)為核心,采用常用電子器件設(shè)計(jì)

2、,自行設(shè)計(jì)電源。設(shè)計(jì)廣告彩頁的顯示時(shí)間長度,時(shí)間一到就用直流電動(dòng)機(jī)旋轉(zhuǎn)控制彩頁切換,用一臺(tái)直流電動(dòng)機(jī)控制廣告彩頁的旋轉(zhuǎn)(正轉(zhuǎn)/反轉(zhuǎn))。用一個(gè)光敏電阻傳感器測量光強(qiáng)度,當(dāng)光線較暗的時(shí)候啟動(dòng)背景燈。設(shè)置三個(gè)按鍵:手動(dòng)/自動(dòng)切換、手動(dòng)正轉(zhuǎn)和手動(dòng)反轉(zhuǎn),用一個(gè)發(fā)光二極管顯示手動(dòng)/自動(dòng)狀態(tài)。設(shè)置若干個(gè)位置控制行程開關(guān),設(shè)置彩頁的顯示位置。按鍵輸入采用中斷方式。二、 設(shè)計(jì)項(xiàng)目簡介設(shè)計(jì)思路(1)選用ATMEL公司的AT89C51單片機(jī)。·與MCS-51 兼容·4K字節(jié)可編程FLASH存儲(chǔ)器·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-2

3、4MHz·三級程序存儲(chǔ)器鎖定·128×8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路(2)通過I/O口直接控制廣告彩頁的切換,通過程序?qū)崿F(xiàn)顯示延時(shí),通過debug確定準(zhǔn)確延時(shí)時(shí)間長度。(3)通過掃描按鍵實(shí)現(xiàn)監(jiān)測自動(dòng)與手動(dòng)、正轉(zhuǎn)與反轉(zhuǎn)按鍵狀態(tài)。由于選用單片機(jī)沒有足夠的外部中斷,且掃描按鍵的方法更加簡潔,故此處違背了設(shè)計(jì)任務(wù)書,希望可以得到諒解。(4)利用比較器設(shè)計(jì)光感電路(仿真中使用電位器模擬光敏電阻),提供光線信號(hào)。通

4、過I/O口輸出信號(hào),控制背景燈驅(qū)動(dòng)器(仿真中使用74HC573驅(qū)動(dòng)一拍黃色LED小燈模擬),進(jìn)而控制背景燈開關(guān)。(5)利用L298驅(qū)動(dòng)器驅(qū)動(dòng)直流電機(jī),通過I/O口信號(hào)控制L298輸出信號(hào),進(jìn)而控制電機(jī)正轉(zhuǎn),反轉(zhuǎn)及停轉(zhuǎn)的狀態(tài)。(6)通過I/O口信號(hào)直接控制“手動(dòng)/自動(dòng)”狀態(tài)顯示指示燈亮滅。(7)使用四個(gè)行程開關(guān)(仿真中使用按鍵模擬)在自動(dòng)狀態(tài)下控制電機(jī)正轉(zhuǎn),反轉(zhuǎn)及停轉(zhuǎn)。通過掃描按鍵的方式實(shí)現(xiàn)監(jiān)測行程開關(guān)狀態(tài)。(8)設(shè)計(jì)外部晶振及復(fù)位電路。(9)由于以上任務(wù)較簡單,較早完成了任務(wù),經(jīng)過組內(nèi)商議,為挑戰(zhàn)一下自己,決定添加溫度檢測并顯示的功能。通過DS18b20芯片完成溫度檢測,A/D轉(zhuǎn)換,使用串口通

5、信單片機(jī)將檢測的溫度讀取,經(jīng)數(shù)據(jù)轉(zhuǎn)換,并通過I/O口顯示在四位共陰極數(shù)碼管上。任務(wù)分工分四個(gè)工段:獨(dú)立模塊功能單獨(dú)設(shè)計(jì)電路、程序,仿真;各模塊整合,調(diào)試,仿真;修整,優(yōu)化,添加擴(kuò)展及附加功能;整理產(chǎn)品說明書、課程報(bào)告及其他材料。分三個(gè)小組:任務(wù)分工表:第一小組第二小組第三小組工段一按鍵模塊電機(jī)驅(qū)動(dòng)模塊行程開關(guān)監(jiān)測自動(dòng)展示程序光感模塊背景燈模塊工段二電路原理圖仿真電路圖程序整合程序調(diào)試提前整理產(chǎn)品說明書工段三添加擴(kuò)展及附加功能修整,優(yōu)化整理產(chǎn)品說明書,確定初稿工段四修正產(chǎn)品說明書,整理課程報(bào)告及其他材料。三、 設(shè)計(jì)過程電路原理圖及各器件原理介紹(1)整體電路圖展示(2) 各模塊原理介紹1. 光感

6、比較電路U3=RV1URV1+R2 U2=R3UR3+R1光線越強(qiáng)RV1越小,U3越小,當(dāng)小到一定值(設(shè)定5K)U3<U2。通過比較器比較U2、U3,U3<U2時(shí)輸出0,控制背景燈關(guān),U3>U2時(shí)輸出1,控制背景燈開。2. DS18b20溫度傳感器DSl820數(shù)字溫度計(jì)提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DSl820或從DSl820送出,因此從主機(jī)CPU到DSl820僅需一條線(和地線),DSl820的電源可以由數(shù)據(jù)線本身提供而不需要外部電源。DSl820的測量范圍從-55到+125增量值為0.5可在l s(典型值)內(nèi)把溫度變換成數(shù)字。每一個(gè)DSl

7、820包括一個(gè)唯一的64位長的序號(hào),該序號(hào)值存放在DSl820內(nèi)部的ROM(只讀存貯器)中,開始8位是產(chǎn)品類型編碼(DSl820編碼均為10H)接著的48位是每個(gè)器件唯一的序號(hào),最后8位是前面56位的CRC(循環(huán)冗余校驗(yàn))碼DSl820中還有用于貯存測得的溫度值的兩個(gè)8位存貯器RAM,編號(hào)為0號(hào)和1號(hào),1號(hào)存貯器存放溫度值的符號(hào)如果溫度為負(fù),則1號(hào)存貯器8位全為1,否則全為0,0號(hào)存貯器用于存放溫度值的補(bǔ)碼LSB(最低位)的1表示0.5攝氏度,將存貯器中的二進(jìn)制數(shù)求補(bǔ)再轉(zhuǎn)換成十進(jìn)制數(shù),并除以2就得到被測溫度值(-55125攝氏度)。3. L298芯片驅(qū)動(dòng)電機(jī)L298N 為SGS-THOMSON

8、 Microelectronics 所出產(chǎn)的雙全橋步進(jìn)電機(jī)專用驅(qū)動(dòng)芯片( Dual Full-Bridge Driver ) ,內(nèi)部包含4信道邏輯驅(qū)動(dòng)電路,可同時(shí)驅(qū)動(dòng)2個(gè)減速直流電機(jī),內(nèi)含二個(gè)H-Bridge 的高電壓、大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯準(zhǔn)位信號(hào),可驅(qū)動(dòng)46V、2A以下的步進(jìn)電機(jī),且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機(jī)的IO端口來提供模擬時(shí)序信號(hào),控制轉(zhuǎn)速。OUTl、OUT2 和OUT3、OUT4之間分別接2個(gè)電機(jī);input1input4 輸入控制電位來控制電機(jī)的正反轉(zhuǎn);Enable 則控制電機(jī)停轉(zhuǎn)。4. 四位共陰極數(shù)碼管的驅(qū)動(dòng)74HC573芯片驅(qū)動(dòng)數(shù)碼

9、管顯示接口,通過單片機(jī)I/O接口直接控制數(shù)碼管位選。共陰極數(shù)碼管真值表十六進(jìn)制0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x000x40顯示符號(hào)0123456789空-74HC573為八進(jìn)制 3 態(tài)非反轉(zhuǎn)透明鎖存器,輸入是和標(biāo)準(zhǔn) CMOS 輸出兼容的;加上拉電阻,他們能和 LS/ALSTTL 輸出兼容。當(dāng)鎖存使能端LE為高時(shí),這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同步)。當(dāng)鎖存使能變低時(shí),符合建立時(shí)間和保持時(shí)間的數(shù)據(jù)會(huì)被鎖存。5. 獨(dú)立按鍵模塊按鍵一端接地,另一端與單片機(jī)I/O口相連并外接上拉電阻。按鍵按下時(shí)I/O口由高電位轉(zhuǎn)為低點(diǎn)位,經(jīng)單片機(jī)讀取引

10、腳信號(hào),將按鍵狀態(tài)輸入。6. 外部晶振電路51單片機(jī)單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTAL1為輸入端,XTAL2為輸出端。兩個(gè)引腳間跨接晶體振蕩器與微調(diào)電容組成并聯(lián)諧振電路,構(gòu)成一個(gè)自激振蕩器為內(nèi)部時(shí)鐘提供振蕩時(shí)鐘。振蕩期的頻率主要取決于晶體的振蕩頻率,一般晶體可在1.2MHz12MHz之間任選。電容C1,C2通常取30pF左右。7. 復(fù)位電路51單片機(jī)51系列單片機(jī)系統(tǒng)通常有上電復(fù)位和按鍵復(fù)位兩種方式。最簡單的一種上電復(fù)位及按鍵復(fù)位電路圖如上圖所示。上電后,由于電容充電,使RST持續(xù)一段時(shí)間的高電平,完成復(fù)位操作;當(dāng)單片機(jī)處于運(yùn)行中或者死鎖時(shí),按下“復(fù)位”按鈕,也可以

11、使單片機(jī)進(jìn)入復(fù)位狀態(tài)。程序模塊1. 數(shù)碼管動(dòng)態(tài)掃描函數(shù)void refresh_led()P2=Disp_Taba0;P1=dispbit0;P1=0xff;/每個(gè)數(shù)碼管按負(fù)值、打開、關(guān)閉的順序P2=Disp_Taba1;P1=dispbit1;P1=0xff;P2=Disp_Taba2 |0x80;P1=dispbit2;P1=0xff;P2=Disp_Taba3;P1=dispbit3;P1=0xff; 每個(gè)數(shù)碼管依次按負(fù)值、打開、關(guān)閉的順序受控,從而實(shí)現(xiàn)動(dòng)態(tài)掃描。2. 溫度轉(zhuǎn)換模塊程序void start_temp_sensor(void)DS18b20_reset();write_by

12、te(0xCC);/ 發(fā)Skip ROM命令write_byte(0x44); / 發(fā)轉(zhuǎn)換命令/* 讀存溫度*/void read_temp()uint8 temp_data2; / 讀出溫度暫放uint16 temp=0,c;double wd;start_temp_sensor();delay_ms(100);DS18b20_reset(); / 復(fù)位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位temp =

13、 temp_data1;/一下三步將溫度高八位低八位整合temp <<= 8;temp |= temp_data0;if (temp_data1&0xf0)/判斷溫度是否為負(fù)temp=(temp)+1;/為負(fù)時(shí),取反加一wd=temp*0.0625;/轉(zhuǎn)為攝氏溫度,0.0625為溫感芯片儲(chǔ)存精度a0=11; /為負(fù)時(shí),第一個(gè)數(shù)碼管顯示負(fù)號(hào)elsewd=temp*0.0625;a0=10; /為正時(shí),第一個(gè)數(shù)碼管不顯示c=wd;/將攝氏溫度轉(zhuǎn)為整型a2=c%10; /第三個(gè)數(shù)碼管顯示個(gè)位a1=c/10%10; /第二個(gè)數(shù)碼管顯示十位c=wd*10; a3=c%10; /第四個(gè)

14、數(shù)碼管顯示小數(shù)位3. 背景燈控制模塊程序void beijingdeng ()if(ggxh)led_bjd=1;elseled_bjd=0; 光感信號(hào)為高電平時(shí),背景燈控制引腳輸出高電平,控制背景燈關(guān);光感信號(hào)為低電平時(shí),背景燈控制引腳輸出低電平,控制背景燈亮。4. 自動(dòng)控制模塊程序void zidong ()led_zs=0;/點(diǎn)亮 自動(dòng)/手動(dòng)指示燈while(1)if (i)/判斷電機(jī)正反轉(zhuǎn)狀態(tài),并控制電機(jī)正反轉(zhuǎn)dj_zz=1;dj_fz=0;elsedj_zz=0;dj_fz=1;if (kg1=0)/監(jiān)測行程開關(guān)1狀態(tài)dj_zz=0;/關(guān)閉電機(jī)并延時(shí)dj_fz=0;delay_ms(

15、100);i+;/控制電機(jī)下次啟動(dòng)換向read_temp();/讀存溫度信息if (kg2=0)/監(jiān)測行程開關(guān)2狀態(tài)dj_zz=0;dj_fz=0;delay_ms(100);read_temp();if (kg3=0)/監(jiān)測行程開關(guān)3狀態(tài)dj_zz=0;dj_fz=0;delay_ms(100);read_temp();if (kg4=0)/監(jiān)測行程開關(guān)4狀態(tài)dj_zz=0;dj_fz=0;delay_ms(100);i-;/控制電機(jī)下次啟動(dòng)換向read_temp();beijingdeng ();/調(diào)入背景燈控制函數(shù),監(jiān)測感光信號(hào)refresh_led();/顯示溫度信息if(aj_qh=

16、0)/監(jiān)測自動(dòng)/手動(dòng)切換_按鍵狀態(tài)dj_zz=0;/監(jiān)測到切換到手動(dòng)狀態(tài)時(shí),電機(jī)停轉(zhuǎn)dj_fz=0; break;/跳出自動(dòng)控制循環(huán),進(jìn)入主函數(shù) 自動(dòng)控制狀態(tài)下,手動(dòng)/自動(dòng)指示燈控制引腳輸出為低電平,指示燈亮;判斷電機(jī)正反轉(zhuǎn)狀態(tài),并控制電機(jī)正反轉(zhuǎn);監(jiān)測行程開關(guān)1狀態(tài),若為低電平,則關(guān)閉電機(jī),延時(shí)并控制電機(jī)下次啟動(dòng)換向;若為高電平,則不變。然后讀存溫度信息并依次監(jiān)測行程開關(guān)2、3狀態(tài),若為低電平,則關(guān)閉電機(jī),延時(shí)并讀存溫度信息。然后監(jiān)測行程開關(guān)4狀態(tài),若為低電平,則關(guān)閉電機(jī),延時(shí)并控制電機(jī)下次啟動(dòng)換向。最后監(jiān)測自動(dòng)/手動(dòng)切換_按鍵狀態(tài),若為低電平,則電機(jī)停轉(zhuǎn),跳出自動(dòng)控制循環(huán),進(jìn)入主函數(shù)。5.

17、手動(dòng)控制模塊程序void shoudong ()/手動(dòng)控制子函數(shù)led_zs=1;/關(guān)閉 自動(dòng)/手動(dòng)指示燈while (1)if(aj_zz=0)/按下正轉(zhuǎn)按鍵時(shí),電機(jī)正轉(zhuǎn) dj_zz=0;dj_fz=1;if(aj_fz=0) /按下反轉(zhuǎn)按鍵時(shí),電機(jī)反轉(zhuǎn)dj_zz=1;dj_fz=0;if(aj_fz=1&&aj_zz=1)/無按鍵按下,電機(jī)停轉(zhuǎn)dj_zz=0;dj_fz=0;if(aj_qh=1)/監(jiān)測自動(dòng)/手動(dòng)切換_按鍵狀態(tài)break;/監(jiān)測到切換到自動(dòng)狀態(tài)時(shí),跳出手動(dòng)控制循環(huán), /進(jìn)入主函數(shù)refresh_led();/顯示溫度信息beijingdeng ();/調(diào)入背

18、景燈控制函數(shù),監(jiān)測感光信號(hào)手動(dòng)控制狀態(tài)下,手動(dòng)/自動(dòng)指示燈控制引腳輸出為高電平,指示燈滅;若按下正轉(zhuǎn)按鍵,則L298芯片OUT1輸出+12V,OUT2輸出0V,電機(jī)正轉(zhuǎn);若按下反轉(zhuǎn)按鍵,則L298芯片OUT1輸出0V,OUT2輸出+12V,電機(jī)反轉(zhuǎn);若無按鍵按下,則L298芯片OUT1輸出0V,OUT2輸出0V,電機(jī)停轉(zhuǎn)。6. 主程序模塊程序main()while(1) if(aj_qh=0)/監(jiān)測自動(dòng)/手動(dòng)切換_按鍵狀態(tài), /并控制進(jìn)入相應(yīng)子函數(shù)shoudong(); else zidong(); 若自動(dòng)/手動(dòng)切換_按鍵按下時(shí),控制引腳輸出為低電平,電機(jī)狀態(tài)為手動(dòng)控制;若自動(dòng)/手動(dòng)切換_按鍵

19、無按下時(shí),控制引腳輸出為高電平,電機(jī)狀態(tài)為自動(dòng)控制。四、 程序框圖五、 程序清單#include <reg52.h>externvoid_nop_ (void);typedef unsignedchar uint8;typedef unsignedint uint16;typedef unsigned long uint32;typedef char int8;typedefint int16;code uint8 Disp_Tab =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;code uint8 dis

20、pbit4 =0xfe,0xfd,0xfb,0xf7; /數(shù)碼管位選控制變量uint8 a4;/數(shù)碼管顯示控制變量uint8 i=0;/電機(jī)正反轉(zhuǎn)控制變量#define nops(); _nop_(); _nop_(); _nop_(); _nop_(); /定義空指令,調(diào)整控制溫感驅(qū)動(dòng)時(shí)序sbitdj_zz = P30;/定義電機(jī)正反轉(zhuǎn)控制引腳sbitdj_fz = P31;sbitled_bjd= P32;/定義背景燈控制引腳sbitled_zs= P33;/定義指示燈控制引腳sbit DQ = P36;/溫度輸入口sbitggxh = P37;/定義感光信號(hào)引腳sbit kg1 = P0

21、0;/定義行程開關(guān)1信號(hào)引腳sbit kg2 = P01;/定義行程開關(guān)2信號(hào)引腳sbit kg3 = P02;/定義行程開關(guān)3信號(hào)引腳sbit kg4 = P03;/定義行程開關(guān)4信號(hào)引腳sbitaj_fz= P04;/定義電機(jī)正反轉(zhuǎn)_按鍵信號(hào)引腳sbitaj_zz= P05;sbitaj_qh= P06;/定義自動(dòng)/手動(dòng)切換_按鍵信號(hào)引腳/* 數(shù)碼管動(dòng)態(tài)掃描函數(shù)*/voidrefresh_led()P2=Disp_Taba0;P1=dispbit0;P1=0xff;/每個(gè)數(shù)碼管按負(fù)值、打開、關(guān)閉的順序P2=Disp_Taba1;P1=dispbit1;P1=0xff;P2=Disp_Tab

22、a2|0x80;P1=dispbit2;P1=0xff;P2=Disp_Taba3;P1=dispbit3;P1=0xff; /*兩個(gè)延時(shí)函數(shù)*/void delay(uint16 n)while (n-);voiddelay_ms(uint16 n)uint8 m=120;while (n-)while (m-)refresh_led();/刷新顯示溫度信息/* 18B20復(fù)位函數(shù)*/void DS18b20_reset(void)bit flag=1;while (flag)while (flag)DQ = 1;delay(1);DQ = 0;delay(50); /延時(shí)550usDQ =

23、 1; delay(6); /延時(shí)66usflag = DQ;delay(45); /延時(shí)500usflag = DQ;DQ=1;/* 18B20寫1個(gè)字節(jié)函數(shù)*/voidwrite_byte(uint8 val)uint8i;for (i=0; i<8; i+)DQ = 1;_nop_();DQ = 0;nops(); /4usDQ = val& 0x01; /最低位移出delay(6); /延時(shí)66usval>>= 1; /右移一位DQ = 1;delay(1); /* 18B20讀1個(gè)字節(jié)函數(shù)*/uint8 read_byte(void)uint8i, valu

24、e=0;for (i=0; i<8; i+)DQ=1;_nop_();value>>= 1;DQ = 0;nops(); /延時(shí)4usDQ = 1;nops(); /延時(shí)4us if (DQ)value|=0x80;delay(6); /延時(shí)66usDQ=1;return(value);/* 啟動(dòng)溫度轉(zhuǎn)換*/voidstart_temp_sensor(void)DS18b20_reset();write_byte(0xCC);/ 發(fā)Skip ROM命令write_byte(0x44); / 發(fā)轉(zhuǎn)換命令/* 讀存溫度*/voidread_temp()uint8 temp_dat

25、a2; / 讀出溫度暫放uint16 temp=0,c;doublewd;start_temp_sensor();delay_ms(100);DS18b20_reset(); / 復(fù)位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位temp = temp_data1;/一下三步將溫度高八位低八位整合temp<<= 8;temp |= temp_data0;if (temp_data1&0xf0)

26、/判斷溫度是否為負(fù)temp=(temp)+1;/為負(fù)時(shí),取反加一wd=temp*0.0625;/轉(zhuǎn)為攝氏溫度,0.0625為溫感芯片儲(chǔ)存精度a0=11;/為負(fù)時(shí),第一個(gè)數(shù)碼管顯示負(fù)號(hào)elsewd=temp*0.0625;a0=10;/為正時(shí),第一個(gè)數(shù)碼管不顯示c=wd;/將攝氏溫度轉(zhuǎn)為整型a2=c%10;/第三個(gè)數(shù)碼管顯示個(gè)位a1=c/10%10;/第二個(gè)數(shù)碼管顯示十位c=wd*10;a3=c%10;/第四個(gè)數(shù)碼管顯示小數(shù)位/*背景燈控制子函數(shù)*/voidbeijingdeng ()if(ggxh)led_bjd=1;elseled_bjd=0;/*自動(dòng)控制子函數(shù)*/voidzidong ()

27、led_zs=0;/點(diǎn)亮自動(dòng)/手動(dòng)指示燈while(1)if (i)/判斷電機(jī)正反轉(zhuǎn)狀態(tài),并控制電機(jī)正反轉(zhuǎn)dj_zz=1;dj_fz=0;elsedj_zz=0;dj_fz=1;if (kg1=0)/監(jiān)測行程開關(guān)1狀態(tài)dj_zz=1;/關(guān)閉電機(jī)并延時(shí)dj_fz=1;delay_ms(100);i+;/控制電機(jī)下次啟動(dòng)換向read_temp();/讀存溫度信息if (kg2=0)/監(jiān)測行程開關(guān)2狀態(tài)dj_zz=1;dj_fz=1;delay_ms(100);read_temp();if (kg3=0)/監(jiān)測行程開關(guān)3狀態(tài)dj_zz=1;dj_fz=1;delay_ms(100);read_temp();if (kg4=0)/監(jiān)測行程開關(guān)4狀態(tài)dj_zz=1;dj_fz=1;delay_ms(100);i-;/控制電機(jī)下次啟動(dòng)換向read_temp();beijingdeng ();/調(diào)入背景燈控制函數(shù),監(jiān)測感光信號(hào)refresh_led();/顯示溫度信息if(aj_qh=0)/監(jiān)測自動(dòng)/手動(dòng)切換_按鍵狀態(tài)dj_zz=1;/監(jiān)測到切換到手動(dòng)狀態(tài)時(shí),電機(jī)停轉(zhuǎn)dj_fz=1;break;/跳出自動(dòng)控制循環(huán),進(jìn)入主函數(shù)void shoudong ()/手動(dòng)控制子函數(shù)led_zs=1;/關(guān)閉自動(dòng)/手動(dòng)指示燈while (1)if(aj_z

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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

提交評論