畢業論文-基于單片機的紅外線電子鎖探頭設計與實現_第1頁
畢業論文-基于單片機的紅外線電子鎖探頭設計與實現_第2頁
畢業論文-基于單片機的紅外線電子鎖探頭設計與實現_第3頁
畢業論文-基于單片機的紅外線電子鎖探頭設計與實現_第4頁
畢業論文-基于單片機的紅外線電子鎖探頭設計與實現_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

大連東軟信息學院本科畢業設計(論文)論文題目論文題目:基于單片機的紅外線電子鎖探頭設計與實現系所:電子工程系專業:電子信息工程(微電子制造方向)學生姓名:學生學號:指導教師:導師職稱:副教授完成日期:2014年4月28日大連東軟信息學院DalianNeusoftUniversityofInformation

畢業設計(論文)題目:基于單片機的紅外線電子鎖探頭設計與實現設計(論文)的基本內容:本文所設計的紅外遙控密碼鎖是以紅外線作為載波,將數碼指令信號調制到載波上,然后通過紅外發射二極管發射出去;接收端接收到調制信號后將經過限幅、濾波、解調等過程還原出原數碼指令信號。該信號通過控制電路可以控制密碼鎖閉合和開啟。本設計充分利用了紅外線解碼技術,通過紅外遙控器向紅外接收裝置發射密碼。接收裝置將接收到的密碼發送到單片機,由單片機進行解碼。解析出遙控器接收的密碼,與存儲在存儲器的里面的密碼進行比對,如果一致開鎖成功。成功后可以通過LED的閃爍來代表開鎖成功。如果密碼不一致則開鎖失敗,進行下一次的開鎖。通過LED燈常亮代表開鎖失敗。在單片機接受到密碼時,所顯示到LCD的密碼是“*”號形式進行顯示,起到保密的作用。在開鎖成功后,可以對密碼進行修改,兩次設置密碼一致密碼修改成功。每次紅外遙控器按鍵按下,如果單片機解碼成功,會通過蜂鳴器發出響聲,提示解碼成功。畢業設計(論文)專題部分:題目:基于單片機的紅外線電子鎖探頭設計與實現設計或論文專題的基本內容:學生接受畢業設計(論文)題目日期第1周指導教師簽字:年月日大連東軟信息學院畢業設計(論文)摘要V基于單片機的紅外線電子鎖探頭設計與實現摘要本設計是以單片機為控制核心的紅外線電子鎖探頭,它具有安全可靠、成本低廉、連接方便、簡單易用、結構緊湊等特點。本課題實現的電子鎖探頭就是一種通過紅外線來控制電路或者芯片工作,從而控制機械開關的閉合、完成開鎖、閉鎖等任務。本設計充分利用了紅外線解碼技術,通過紅外遙控器向紅外接收裝置發射密碼。接收裝置將接收到的密碼發送到單片機,由單片機進行解碼。解析出紅外接收裝置接收的密碼,與存儲在存儲器的里面的密碼進行比對,如果一致開鎖成功。成功后可以通過LED的閃爍來代表開鎖成功。如果密碼不一致則開鎖失敗,進行下一次的開鎖。通過LED燈常亮代表開鎖失敗。在單片機接受到密碼時,所顯示到LCD的密碼是“*”號形式進行顯示,起到保密的作用。在開鎖成功后,可以對密碼進行修改,兩次設置密碼一致密碼修改成功。每次紅外遙控器按鍵按下,如果單片機解碼成功,會通過蜂鳴器發出響聲,提示解碼成功。本設計主要是以STC12C5A60S2單片機為核心,硬件設計電路主要由LCD1602顯示電路、紅外接收電路、電磁繼電器控制電路、聲光報警等電路組成,并包括遙控發射和主機接收兩大硬件組成部分。關鍵詞:紅外線解碼,電子鎖頭,單片機大連東軟信息學院畢業設計(論文)AbstractDesignandImplementationofElectronicLockwithInfraredProbeBasedonSingleChipMicrocomputerAbstractWiththedevelopmentofthescienceandtechnology,peopleinsuranceforthesafetydevicesdemandinghavebecomeincreasinglyineverydaylife.Inordertomeettheuser'srequirements,toimprovethereliabilityandsecurityofthelocks,infraredremotepasswordlocksystemcameintobeing.Thedesignisbasedonmicrocontrollercoreinfraredelectroniclockprobe,itissafety,reliable,lowcost,easytoconnect,easytouse,andcompactstructure.Thetopicoftheelectroniclockisaprobetothecontrolcircuitorchipworkviainfraredtocontrolthemechanicalswitch,completedlock,latchandothertasks.Thedesignwastakenadvantageofinfrareddecodingtechnologytotransmitinfraredreceiverdevicepasswordviaaninfraredremotecontrol.Parsingthereceivedremotecontrolcode,tocomparethestoredpasswordinsidethememory,ifconsistentwillsuccess.AfterthesuccesscanberepresentedbytheLEDflashingunlockingsuccess.Ifthepasswordsdonotmatchthelockfailstounlockandthenexttimeunlock.LEDlightslitbyrepresentativesoftheunlockfailed.Whenthemicrocontrollerreceivesapassword,thepasswordisdisplayedontheLCD"*"intheformofdisplay,playtheroleofsecrecy.Afterunlockingsuccessfully,youcanmodifythepassword,thepasswordtwicetosetapasswordtomodifyaconsistentsuccess.Everytimeaninfraredremotecontrolbuttonispressed,ifthemicrocontrollerdecodingissuccessful,willbeissuedthroughthebuzzersound,indicatingasuccessfuldecode.ThisdesignmainlySTC12C5A60S2microcontrollercore,hardwaredesigncircuitmainlybyLCD1602displaycircuit,infraredreceivercircuit,electromagneticrelaycontrolcircuit,soundandlightalarmcircuit,andhastwohardwarecomponents,includingremotecontroltransmitterandreceiverportionshost.Keywords:IRdecoding,Electroniclock,SCM,Remotecontrollaunch大連東軟信息學院畢業設計(論文)目錄目錄TOC\o"1-3"\uAbstract II第1章緒論 11.1研究現狀 11.2研究目的及意義 11.3課題預期成果 2第2章關鍵技術介紹 32.1紅外通信原理 32.2解碼原理 3第3章系統硬件設計 53.1系統結構 53.2對主CPU的選擇 53.3所用單片機介紹 63.4硬件電路的設計 73.4.1單片機最小系統電路 73.4.2單片機顯示電路 83.4.3實時時鐘電路的設計 83.4.4蜂鳴器報警電路 93.4.5紅外接收電路設計 93.5硬件電路的設計 10第4章系統設計 114.1系統開發環境 114.2軟件流程圖 114.3系統的功能結構設計 124.3.1紅外解碼程序設計 124.3.2LCD1602主要驅動程序 14第5章系統測試 165.1初始狀態測試 165.2初始密碼測試 165.3輸入新密碼測試 17第6章結論 19參考文獻 20致謝 21大連東軟信息學院畢業設計(論文)-第1章緒論隨著科學技術的不斷發展,人們對日常生活中的安全保險器件的要求越來越高。為了滿足用戶的要求與需要,提高鎖具的可靠性和安全性,紅外遙控密碼鎖系統應運而生,本課題實現的電子鎖探頭就是一種通過紅外線來控制電路或者芯片工作,從而控制機械開關的閉合、完成開鎖、閉鎖等任務。1.1研究現狀密碼鎖經歷了幾個階段,如機械密碼鎖、數字密碼鎖、紅外密碼鎖等。隨著科學技術得發展,以單片機為核心的新型密碼鎖不斷出現。單片機正朝著高性能和多品種方向發展,逐步實現低功耗、體積小、容量小、性能高、外圍電路內裝化。單片機從根本上改變了傳統的控制系統方法。電子技術的飛速發展,給古老的鎖具帶來了巨大變化。目前,全世界鎖具已超過1.3萬種,隨著新材料、新工藝和新技術的應用,特別是電子技術、傳感技術、紅外技術等快速發展,使鎖具發展日趨活躍,針對傳統的機械鎖的各種缺點,出于安全、方便等考慮,新型鎖具例如語音鎖、指紋鎖、電腦感應鎖、紅外線電子鎖等高檔鎖具相繼問世。目前國內外密碼鎖系統的主要發展方向是接觸式密碼鎖系統和非接觸式密碼鎖系統,但也存在著很多缺點。相比來看,紅外遙控電子密碼鎖系統的成本較低,并且還可以近距離遙控,使用方便,具有一定的發展前景。紅外遙控是單工的紅外通信方式,是以紅外技術實現兩點間的近距離保密通信和信息的轉發。它通常以兩個紅外發射和接收系統構成。放射體系對一個紅外輻射源進行調配后放射紅外信號,而接收體系用光學設備和紅外線探測器進行接收,如此就形成了紅外通信系統。紅外通訊一般采用光波波長范圍為850~900nm的紅外線[1]。1.2研究目的及意義在日常的生活和工作中,住所與部門的防范與安全、重要文件與檔案的保存、財務上的報表和個人資料的保管多以上鎖的方式來解決。如果用傳統的機械式鎖,通常要攜攜帶許多鑰匙,使用不方便,容易弄混,并且加入鑰匙丟,安全性就會下降很多,所以密碼鎖應運而生,電子密碼鎖再一些方面逐漸取代傳統機械鎖也已成為必然趨勢。特別是單片機的問世,出現了帶微處理器的智能密碼鎖,它除具有電子密碼鎖的功能外,還引入了智能化管理、專家分析系統等功能,從而使密碼鎖具有很高的安全性、可靠性、應用日益廣泛。本片論文設計的紅外遙控密碼鎖以過紅外線作載波,使得數碼指令信號調配至載波上,通過紅外發射二極管放射出去;接收端收到調配信號將用限幅、濾波、解調等過程解碼出原數碼指令信號。此信號通過控制電路可以控制密碼鎖閉合和開啟。紅外通信具有保密性強,信息容量大,結構簡單等特點,既可以在室內使用,也可以在野外使用,由于它具有良好的方向性,日常家用電器很多用紅外進行遙控開關。電子鎖的產生也是經歷了一些階段的,隨著科學技術的發展,一些以芯片特別是單片機為處理核心的新型密碼鎖開始不斷出現[2]。本設計是基于單片機為控制核心的紅外線電子鎖探頭,它具有安全可靠、成本低廉、連接方便、簡單易用、結構緊湊等特點。紅外線遙控是目前使用最廣泛的一種通信和遙控手段,采用紅外線作為傳輸媒介進行數據通信是一種既方便又經濟實用的選擇,在小型移動設備中得到了廣泛的應用。1.3課題預期成果本設計充分利用了紅外線解碼技術,通過紅外遙控器向紅外接收裝置發射密碼。接收裝置將接收到的密碼發送到單片機,由單片機進行解碼。解析出遙控器接收的密碼,與存儲在存儲器的里面的密碼進行比對,如果一致開鎖成功。成功后可以通過LED的閃爍來代表開鎖成功。如果密碼不一致則開鎖失敗,進行下一次的開鎖。通過LED燈常亮代表開鎖失敗。在單片機接受到密碼時,所顯示到LCD的密碼是“*”號形式進行顯示,起到保密的作用。在開鎖成功后,可以對密碼進行修改,兩次設置密碼一致密碼修改成功。每次紅外遙控器按鍵按下,如果單片機解碼成功,會通過蜂鳴器發出響聲,提示解碼成功。本設計主要是以STC12C5A60S2單片機為核心,硬件設計電路主要由LCD1602顯示電路、紅外接收電路、電磁繼電器控制電路、聲光報警等電路組成,并具有兩大硬件組成部分,包括遙控發射和主機接收部分。大連東軟信息學院畢業設計(論文)第2章關鍵技術介紹2.1紅外通信原理當下,大家所了解的通信都指的是狹義上的通信,即信息的傳遞,從一個地方到另一個的信息傳輸和交換信息。事實上,在科技高速發展的當下,通信早已不是局限于單一的信息傳遞[3]。在此,我們應用一種基于無線通信的紅外通信技術。紅外遙控是單向的紅外通信方式,通過紅外技術達到點與點間的近距離秘密通信和轉發信息,由紅外發射系統與接收系統兩大模塊構成。發射系統對紅外放射源進行調配之后放射紅外線信號,接收系統是通過光學裝置與紅外探測器實現接收的目的,就組成了紅外通訊系統。紅外線是波長在750nm到1mm之間的電磁波,他的頻率大于微波卻小于可見光,是一種通過肉眼看不見的光線。紅外通訊大多是采取紅外波段內的近紅外線,波長在0.75um到25um之間,但是因為要保證各個廠商之間的紅外線產品都能有最好的通訊效果,紅外線數據通訊所采取的光波波長范圍一般限定在850nm到900nm之間[4]。紅外通訊的基本原理是發送端將二進制信號調配為一系列的脈沖串信號(載波信號),再通過紅外發射管發射紅外信號。常規的方法有通過脈沖寬度來達到使信號調制的脈寬調制(PWM)的目的,還有通過脈沖串之間的時間間隔來實現信號調制的脈時調制(PPM)這兩種方法[5]。目前在世界范圍內,紅外通信技術是被廣泛使用的一種無線通信技術,通過紅外光脈沖和數據電脈沖間的轉換來實現無線數據的收發。許多硬件軟件的平臺都支持并運用這項技術,尤其是嵌入式系統。2.2解碼原理通用的紅外遙控系統是由發射系統和接收系統兩個模塊構成,應用專用的芯片來進行編/解碼從而控制操作,具體解碼原理:使用脈寬調制串行碼,脈寬度為0.565ms、間隔為0.56ms、周期1.125ms得構成體現二進制的“0”;用脈寬度為0.565ms、間隔1.685ms、周期為2.25ms的構成體現二進制的“1”,“0”和“1”的波形如圖2.1所示[6]。圖2.1“0”和“1”波形圖上面“0”和“1”構成的32位二進制碼經38kHz載頻調制2次,來提升發射效率,產生降低電源功耗的結果,再利用紅外發射二極管產生紅外線向空間發射,如圖2.2所示。圖2.2接收信號波形圖UPD6121G制造的遙控編碼是一個連續的32位二進制碼組,前16位是用戶識別碼,可以區分各種電器設備,避免各個機種遙控碼相互干擾。廠商把用戶識別碼設置為十六進制的一組數碼;后16位是8位操作碼(功能碼)及反碼。UPD6121G至多可以有128種不同排列的編碼[7]。當遙控器按下遙控鍵按后,周期性的放出同一種32位的二進制碼,周期大約是108ms。一組碼自身的持續時間根據他包括的二進制“0”和“1”的數量不同而不一樣,大概在45ms至63ms。一個鍵按下超過36ms時,振蕩器使芯片被激活,會發射一組大約為108ms的編碼脈沖,這個108ms發射代碼是由一個起始碼(9ms)和一個結果碼(4.5ms),低8位地址碼(9ms~18ms)和高8位地址碼(9ms~18ms),8位數據碼(9ms~18ms)和這8位數據的反碼(9ms~18ms)組成。假如按鍵按下超過108ms后仍然沒松開,再以后發射的代碼(連發代碼)會只通過起始碼(9ms),結束碼(2.5ms)構成[8]。第3章系統硬件設計3.1系統結構紅外遙控電子密碼鎖,主要通過由兼容NEC的Upd6121G的芯片對其進行編碼,然后解碼后發送出的紅外線信號會發送到接收模塊。接收模塊將接收到的信息發送到單片機,由單片機進行解碼。解析出遙控器所發送的密碼,解析出的密碼通過處理以“*”的模式通過LCD1602顯示,同時將解析出的密碼與存儲器里面的密碼進行比較。如果一致,LED燈就會閃爍,如果不一致LED燈常亮。開鎖成功后可以對密碼進行重新設定,存儲到存儲器中。當單片機對每一次遙控器按鍵解碼成功后,都會通過蜂鳴器發出響聲,提示解碼成功。系統結構框圖如圖3.1所示。圖3.1系統結構框圖3.2對主CPU的選擇對于紅外數據需要有CPU對其進行分析和處理,進行解碼,所以選擇合適的CPU來處理數據是對于一個好的作品是非常重要的。主流單片機是意法半導體公司生產的STM32系列單片機,是目前比較流行的一款單片機,該款單片機是基于ARMCortex-M3內核的單片機,他是一款32位單片機,具有強大的數據處理能力。但是由于是基于ARM內核的單片機,他的程序資源比較復雜,不適合像我們這樣剛入門的新手[9]。MSP430也是目前一款非常流行的單片機,他是由德州儀器公司生成的一款超低功耗的單片機。他是一款16位的單片機,也有較強的數據處理能力。它的功耗低到可以用水果電池讓它工作。而且它有豐富的外設,精簡指令集,便于開發。但是由于其單個價錢稍貴。而且引腳較多,較密,對于像我們這樣對硬件還不太熟練的新手在硬件設計和前期實驗上困難較大。而且MSP430不能在PROTUES環境中仿真。因此作為本次項目的開發也不是一款合適的單片機。一直都非常受大家喜歡的51系列單片機,自70年代誕生以來就有很多公司來研發、生成各種型號的51單片機。Intel公司最早生成MSC-51系列單片機的廠商之一,隨后又有許多公司,許多工程師來研發,使用該款單片機[10]。無論是在技術的成熟度還是在芯片的功能方面都高于同類產品。雖然在今天已經有很多其他型號的單片機,但是51單片機仍然占有重要的地位。更是較早引進國內的8位單片機,51單片機的技術在國內已經非常成熟,許多初學者都是先學51單片機再學其他的單片機的。大多數大學更是以51單片機為基礎來教學。因此在本設計中采用處理數據的單片機是MSC-51系列的單片機。不但價格便宜,技術成熟,而且也非常容易在PROTUES中進行仿真,非常適合我們這樣剛剛入門的初學者。MSC-51系列單片機有很多公司都在生產,比較著名的是ATMEL公司生成的AT89C51系列單片機和國內生產的STC12C5A60S2系列單片機。AT89C51系列單片機的穩定性非常高,有較高的性價比。但是它下載程序的方式ISP下載方式,就是每次調試,下載程序都需要特殊的編程序才能給實物下載程序,因此比較麻煩。而STC12C5A60S2系列單片機下載程序是只需要串口下載就可以了,就是只有一根串口線我們就可以對單片機進程程序的下載,調試。不但如此,STC12C5A60S2系列單片機在價格上也占有一定的優勢,比AT89C51單片機每片要便宜2-5元錢。在資源上也遠遠多于AT89C51單片機,無論是在中斷、時鐘還是在內存方面都要優越于AT89C51單片機。因此本設計是以STC12系列單片機為基礎而設計的。具體的單片機型號是STC12C5A60S2單片機[11]。 3.3所用單片機介紹STC12C5A60S2單片機是由宏晶科技研制的新一代增強型單片機,具有超強的抗干擾/高速/低功耗等能力,指令代碼完全兼容8051單片機,具有12時鐘/機器周期和16時鐘/機器周期兩種模式。造價低廉。STC12C5A60S2單片機中包含中央處理器(CPU)、程序存儲器(Flash)、數據存儲器(SRAM)、定時/計數器、UART串口、串口2、I/O接口、高速A/D轉換、SPI接口、PCA、看門狗及片內R/C振蕩器和外部晶體振蕩電路等模塊。STC12C5A60S2系列單片機幾乎包含了數據采集和控制中所需的所有單元模塊,可稱得上一個片上系統。它有5V和3V兩種電壓的工作模式,工作范圍比其他的單片機要大0~40MHZ,實際的工作頻率可達到48MHZ,有4K的ROM最大可達到62K,RAM擴展到512字節和1280字節。具有ISP(系統可編程)和IAP(在應用可編程)兩種模式,可以通過串口直接下載用戶程序簡單,方便[12]。具有EEFROM和看門狗定時器功能。3個16位定時器,2個8位定時器,4路外部中斷可用下降沿觸發和低電平觸發外部中斷。3.4硬件電路的設計系統硬件電路有兩個模塊電路組成,包括主板模塊和控制模塊。主板模塊是本設計的主題部分,主要包括的電路有STC12C5A60S2的最小系統電路,LCD1602的顯示電路,接收電路和蜂鳴器報警電路。而控制模塊主要包括STC12C5A60S2的最小系統電路,LCD1602顯示電路,解碼電路,繼電器相關電路等組成。3.4.1單片機最小系統電路單片機最小系統包括一個復位電路和一個時鐘電路。復位電路又分為上電復位電路和開關復位電路。我使用的復位是上電復位電路,如圖3.2所示。圖3.2STC單片機最小系統時鐘電路又分為內時鐘和外時鐘兩種模式,本設計采用外部時鐘,因為內部時鐘的頻率比較低,當在XTAL1和XTAL2之間加上一個晶振,單片機內部振蕩器便能產生自激震蕩,產生時鐘信號,在晶振的兩側加上20~60pF的瓷片電容起到了微調時鐘頻率的作用,讓頻率更加穩定。STC12C5A60S2系列單片機的程序存儲器和數據存儲器是各自獨立編址的。STC12C5A60S2系列單片機的所有程序存儲器都是片上Flash存儲器,不能訪問外部程序存儲器,因為沒有外部訪問使能信號-EA和程序存儲啟用信號-PSEN。STC12C5A60S2系列單片機內部有1280字節的數據存儲器,其在物理和邏輯上都分為兩個地址空間:內部RAM(256字節)和內部擴展RAM(1024字節)。另外,STC12C5A60S2系列單片機還可以訪問在片外擴展的64KB外部數據存儲器[13]。單片機的置位和復位,其目的都是為了把電路初始化到一個確定狀態。單片機實現電復位的原理是在其復位的引腳RST上外接電容和電阻。復位時在單片機內部單片機是將存儲設備和一些寄存器裝入生產廠商預設的一個值。一般來說,單片機復位電路的作用是把一個狀態機初始化到一個空的狀態。當復位電平持續兩個機器周期以上時復位有效單片機,本文采用的是上電復位即上電后電容被放電、RST也被拉到高電平,而且由于電容的充電,會保持一段時間的高電平來使單片機復位。3.4.2單片機顯示電路LCD1602的顯示電路如圖3.3所示。圖3.3LCD1602電路原理圖圖中1腳和2腳表示電源,3腳接一個10千歐的電位器調節液晶的對比度,4腳是向液晶控制器寫數據/寫命令選擇端,5腳液晶讀寫選擇端,6端是液晶的使能信號端,4,5,6分別接到單片機的P12,P11,P10接口。7~14引腳是液晶的數據總線用了傳輸數據/命令,接到單片機的P0口,在他們之間加上10K的上拉電阻使傳輸的數據更加穩定。15,16引腳是液晶的背光電源[14]。3.4.3實時時鐘電路的設計DS1302一種高性能、低功耗、具備RAM得實時時鐘電路,他能對年、月、日、時、分、秒進行精準計算,且有閏年補償的功能,工作需要的電壓是2.5V至5.5V。采用三線接口與CPU進行同步通信,并可采取突發形式一次性傳輸數個字節的時鐘信號或者是RAM數據。DS1302中有一個31×8的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力[15]。本設計設計實時時鐘電路如下圖3.4所示[。圖3.4實時時鐘電路該實時時鐘電路可以用于實現實時時間的顯示功能。3.4.4蜂鳴器報警電路蜂鳴器的連接電路如圖3.5所示,蜂鳴器的一端接地,另一端接電源。由于單片機的引腳提供的高電平不能提供蜂鳴器足夠的電壓,所以需要一個三極管來驅動蜂鳴器,通過單片機控制三極管的開關來控制蜂鳴器發音。圖3.5蜂鳴器電路3.4.5紅外接收電路設計接收電路選用了LM1838接收紅外信號,其載波頻率為38KHZ,由于發射端的晶振頻率一般為455KHZ,經過整數分頻12分頻,455KHZ/12=37.9KHZ=38KHZ。通過該接收頭將紅外信號放大傳給單片機。1腳是信號端接到單片機的外部中斷(P33腳),這樣用信號來就可以觸發單片機的中斷,讓單片機執行中斷程序,進行解碼。2腳,3腳分別是GND和VCC,在GND端接個電容起到了整流濾波的作用,讓電壓更加穩定[16]。電路如圖3.6所示。圖3.6接收電路3.5硬件電路的設計通過軟件AltiumDesignerRelease10進行PCB圖設計,版圖由單片機最小系統電路,液晶顯示電路,繼電器控制模塊,接受模塊,蜂鳴器以及控制模塊組成。如圖3.7所示。圖3.7PCB圖隨后為保證PCB板的穩定性,對PCB圖進行覆銅處理,將處理好的文件發送給制造商開板。第4章系統設計4.1系統開發環境操作系統:Window7;軟件開發工具:KeiluVision4;畫圖工具:AltiumDesignerRelease10;硬件控制器:STC12C5A60S2。4.2軟件流程圖開始開始數據初始化按鍵按下?液晶顯示順序輸入6位密碼輸入密碼與原來密碼一致?解鎖成功,LED燈閃設置新密碼輸入6位新密碼第一次密碼輸入完?再次輸入密碼確認兩次密碼一致?解碼NY按鍵值15按鍵值45Y解鎖失敗,LED燈常亮N結束NY圖4.1軟件控制流程圖軟件控制流程圖如圖4.1所示。系統上電后,軟件會對系統進行初始化,包括對各種變量初始化,LCD1602液晶顯示初始,外部中斷INT1和定時器的設置初始化,有了這些初始化才能保證系統數據的可靠性和正確性[17]。屏幕上第一行會顯示“inputpassword!”字樣。然后等待遙控器的按鍵按下,如果遙控器有按鍵按下,單片機采集紅外線信號對其進行解碼。解碼后如果按鍵值是“15”則是可以進行解鎖,順次輸入六位密碼。輸入密碼時可以看見屏幕上的密碼是以“*”號代替所輸入的密碼,起到保護作用。如果輸入密碼正確,則解鎖成功。如果輸入密碼錯誤,LED燈會常亮。等待新的密碼輸入或退出系統。如果解碼值是“45”,系統將進入設置密碼的狀態,要順次輸入兩次密碼。只有兩次密碼輸入完全一致時才能正確的設置密碼。如果兩次不一致,需要重新輸入兩次密碼,直到輸入正確為止。4.3系統的功能結構設計系統主要包括的程序是紅外線解碼程序、LCD1602液晶顯示的驅動程序以及按鍵設定程序。系統中關鍵的程序是紅外解碼程序和LCD1602底層驅動程序的設計。4.3.1紅外解碼程序設計本設計的關鍵技術是紅外解碼程序的設計與實現,用于采用的遙控器采用的是HX1838紅外一體化接收頭進行編碼,該解碼芯片兼容ENC傳輸數據模式。NEC傳輸的數據包括一組引導碼和連續的32位二進制碼組成,前16位是用戶碼,有8位是用戶碼,后8位是用戶的反碼。用戶碼的作用是可以區別不同的信號以前廠商的紅外產品,避免發生干擾,這16位設由各自的廠商決定的。后16位二進制編碼是操作碼,及每個按鍵的具體碼值,同樣可以分為8位的操作碼和8位的操作反碼[18]。如圖4.2所示。圖4.2紅外編碼組成首先傳入單片機的應該是一組引導碼,它由一個9ms的高電平和一個4.5ms的低電平組成,接下來的32位二進制碼可以分為4組8位的二進制數。本設計不必考慮不同廠家遙控設備,因此用戶碼可以不用。只要能區別不同的按鍵值,所用到操作碼,操作碼的前8位和后8位是相反的因此用其中任意一組二進制碼都可以。而如何識別“0”和“1”是解碼程序難點,本程序設計采用測量脈寬的時間長度來確定“0”和“1”,“0”為0.56ms,“1”為1.68ms。無論是“0”還是“1”都是從0.56ms以后的高電平開始計算的,如果一個0.56ms以后接下來再經過一個0.56ms的時間檢測是低電平則為“0”,反之則為“1”第二個0.56ms的時間可以稍微長些[19]。voidinfrared()interrupt2 //外部中斷,接收一個數據位{ uint8i,j;unsignedinttemp;EX1=0; //關閉外部中斷1,不再接收二次紅外信號的中斷,只解碼當前紅外信號//檢測引導碼的9ms低電平temp=GetLowTime();if(temp<c(8500)||temp>c(9500)){ gotoexit;}//檢測引導碼的4.5ms高電平temp=GetHighTime(); if(temp<c(4000)||temp>c(5000)){ gotoexit;}//檢測后續4字節數據for(i=0;i<4;i++){for(j=0;j<8;j++){ temp=temp>>1; //temp中各個數據位右移一位,因為先讀出來的是高字節temp=GetLowTime();if(temp<c(200)||temp>c(800)){gotoexit; //低電平不在合理的范圍內,認為出錯,停止解碼}//由高電平時間判斷該bit的值temp=GetHighTime();if(temp>c(2000)&&temp<c(200)){//如果高電平時間在560us左右,則該位為0gotoexit;} Ir_Buf[i]>>=1; if(temp>c(1120)) Ir_Buf[i]|=0x80;}}//保存第3字節的鍵碼值 //紅外108ms發射代碼由一個起始碼9ms,一個結果碼4.5ms,低八位地址碼9-18ms,高八位地址碼,8位數據位,8位數據位的反碼SendData(Ir_Buf[2]);exit:IE1=0; //外部中斷標志位清零EX1=1;}這是外部中斷的識別引導碼的程序,該程序采用計數器來計算脈寬,然后再根據脈寬來判斷高低電平,從而判斷引導碼是否正確。當引導碼識別成功后,采用該段程序來講引導碼后面的32位二進制數來分成4組8位的二進制數,他們將分別裝著用戶碼,用戶反碼,操作碼和操作反碼,本設計只使用操作碼。4.3.2LCD1602主要驅動程序LCD1602液晶顯示的驅動程序是比較基礎和底層的驅動程序。主要包括讀數據,指令和寫數據,指令程序,可以概括為讀程序和寫程序。本設計中并沒有用到它的讀程序,下面重點介紹LCD1602的寫程序。通過圖4.3LCD1602的寫時序我們可以看出,對1602進行寫內容時主要分為四部分,RS、R/W、E、DB0-DB7。RS是1602寄存器控制端,它決定對1602進行寫數據還是寫命令,RS=0是寫入命令,RS=1寫入數據。R/W是1602的讀寫控制器,它決定的是對1602進行讀操作還是寫操作,R/W=0對其進行寫操作。E是1602的使能控制位,對1602寫數據時需要E的一個高脈沖。DB0-DB7是1602的總線,負責傳輸數據和命令[20]。圖4.3LCD1602的寫時序如果對1602進行寫命令,需要將RS設置為低電平,R/W設置為低電平,這時如果讓E由低電平跳變到高電平,單片機中的命令寫入到1602當中。下面是寫入命令的程序。voidwrite_cmd(ucharcmd){ wait(); lcdE=0; lcdRS=0; lcdWR=0; Wait30us; P0=cmd; Wait30us; lcdE=1; Wait30us; lcdE=0;}下面是寫入數據的程序。voidwrite_dat(uchardat){ wait(); lcdE=0; //根據1602液晶顯示器協議編寫 P0=dat; lcdRS=1; lcdWR=0; Wait30us; lcdE=1; lcdE=0;}大連東軟信息學院畢業設計(論文)第5章系統測試設計完成后,保證作品功能實現,對作品進行整體測試,測試包括軟件代碼功能測試和硬件功能實現測試。軟件代碼測試主要測試代碼是否能準確完成相應的功能,而硬件測試則在軟件代碼功能實現的基礎上對其性能進行測試。5.1初始狀態測試方案:將代碼寫入系統,上電,觀察顯示屏顯示的信息。按照設計,系統上電后第一行應該顯示“InputPassword:”字樣,如圖5.1,等待密碼輸入。圖5.1第一屏顯示的信息5.2初始密碼測試方案:系統的初始密碼鎖是“123456”,用遙控器輸入密碼。此時輸入密碼“123456”,輸入密碼時可以看見輸入的密碼是用“*”號顯示的,起到保密的作用。如圖5.2所示。圖5.2輸入初始密碼如果輸入的密碼正確,屏幕的第二行會顯示“Right!”字樣,另外蜂鳴器響三聲,代表解鎖成功。如圖5.3所示。圖5.3密碼輸入正確如果密碼輸入錯誤,LCD1062顯示“Error!”字樣。如圖5.4所示。圖5.4密碼輸入錯誤綜上所測試的,在系統輸入密碼后,密碼正確和錯誤都有不同的顯示和現象來區別。測試達到預期的結果,因此系統的輸入密碼功能可以正常運行。5.3輸入新密碼測試方案:進入系統后,如果想修改密碼,要按遙控器上門的右箭頭按鍵,測試LCD顯示“newpassword:”字樣,代表輸入新密碼,如圖5.5所示。圖5.5第一次輸入新密碼輸入6為密碼以后,顯示器自動顯示“Again:”字樣,表示要輸入第二次密碼來確認密碼,如圖5.6所示。圖5.6第二次輸入密碼如果密碼輸入正確,系統會提示設置成功字樣,再次進入則需輸入新密碼,如圖5.7所示。5.7重復密碼成功狀態如果輸入的密碼兩次不一致,屏幕上會顯示“NotSucceed!”字樣,需要重新輸入新密碼來修改密碼。通過以上不同階段的測試,初始狀態、進入系統測試、設置新密碼等功能的測試,所有功能都達到預期的設想。大連東軟信息學院畢業設計(論文)第6章結論自從開始選題到至今已經有近三個月的時間,在這三個多月的時間里,經過無數次的查資料,摸索,實驗。使我不僅僅學會了單片機軟硬件設計和紅外線解碼結束,而且更主要的是學會了如何去開發設計一個項目,如何去發現設計中的問題和缺陷并如何去解決。我想后面是我在這次畢業設計中收獲最大的,對我今后走向研發設計崗位有著非常大的幫助。首先,在選題階段,老師給我們確定了一個大的方向,可以說這個課題如今是一個非常熱門的話題,無論是在國內還是在國外都有很多研發人員在研究該課題,因此我對這個課題非常感興趣,我在網上查了很多相關的信息。這些信息都是平時理論課所設計不到的,所以選題階段也使我豐富了課外知識量,初步了解了一下最新的發展方向。其次,在確定論題階段,這個階段主要是翻譯相關的英文文檔,寫課題申報表和開題報告的基礎性工作。通過這些更加詳細了解所選課題的相關技術和設計思路,對設計有個整體的構思。這個階段雖然基礎,但是也是比較難的一個階段,首先我們要了解和學習一門新的技術,還要通過這些英文文檔來熟悉些芯片的相關資料,對于英語水平不高的我來說閱讀一般的英文文章都比較吃力,就別說這些專業水平很高的英文文檔了,因此在這上我花了比較多的時間來翻譯和整理相關資料。通過這次設計我體會到如果英文水平不高很難學好嵌入式,因為很多的最新,最全的技術文檔都是用英文來編寫的,在以后的學習過程中加強英文學習也是非常重要的。最后,設計和調試階段,這個階段是最重要的階段。設計包括硬件和軟件的設計,根據前面所學的知識硬件電路圖很快就設計完成,在設計程序時費比較多的時間,尤其是在紅外線解碼階段的程序設計。首先就是解碼,雖然有了前面的理論知識,但是實際操作起來卻有很多問題,經過老師的幫助和自己的鉆研,終于將困難一個接一個的解決了,增強了自己解決實際問題的能力。當然,由于是第一次這么完整的設計一件作品,無論是在硬件設計和軟件調試方面都有很多的不足之處。但總的看來,本設計在技術上實現了對紅外遙控器的成功解碼,實現了對電子密碼鎖的紅外控制,完成了設計要求。以后進一步擴展研究,可以做出萬能遙控器,家里所有的設備只要通過手中的紅外遙控器,就能簡單方便的進行控制,實現智能家居的生活。參考文獻[1].郭天祥.51單片機C語言教程[M],電子工業出版社,2009[2].張靖武,周靈彬.應用與PROTEUS仿真[M],電子工業出版社,2008[3].彭偉.單片機C語言程序設計實訓100例[M],電子工業出版社,2009[4].徐瑋.用增強型51實驗板實現紅外遙控[EB],,2006[5].朱華光.淺談LCD1602的編程技巧[EB],,2010[6].徐德杰.AT24C02在單片機中的應用[EB],,2005[7].黃明強.DS1302在單片機系統中的應用[EB],,2004[8].王偉生,鄭小真.紅外遙控在節能和無線操作方面的應用[EB],,2010

[9].梁超,謝皓.紅外遙控系統設計及應用[EB],,2010[10].徐煜明.C51單片機及應用系統設計[M],電子工業出版社,2009[11].李學海.標準80C51單片機基礎教程[M],京航空航天大學出版社,2006[12].孔維功.C51單片機編程與應用[M],電子工業出版社,2011[13].MeehanJoanne.Benefitsandbarriers[J],TQMJournal,2008,(5):26-45[14].張曉鄉.89C51單片機實用教程[M],電子工業出版社,2010[15].桑森.模擬集成電路設計精粹[M],清華大學出版社,2008[16].林紅,周鑫霞.模擬電路基礎[M],清華大學,2007[17].肖運虹,電視技術[M],西安電子科技大學出版社,2000[18].YeagerBrent,Howtotroubleshootyourelectronicscale[J],PowderandBulkEngineeringPowderandBulkEngineering,1995,7(6):87-2419].MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J],TQMJournal,2008,21(6):182-187[20].胡漢才.單片機原理及接口技術[M],清華大學出版社,1996,(9):24-12致謝歷經三個月的工作學習,我的畢業設計已全部完成。這離不開平時的學習和訓練,離不開老師的悉心教導。因此首先應該感謝我的指導老師,宋文斌老師,正是他的辛勤教導才換來我今天的成果。宋文斌老師在日常的學習生活中,以自身為榜樣,帶領我們不斷學習不斷進取。對我們學習和生活中的每一個問題都報以關心并作出指導,從選題至今,宋文斌老師對我的幫助是巨大的,無私的,不辭辛苦的。在此,謹向宋文斌老師表示崇高的敬意和衷心的感謝!無法用更多言語形容感激,惟愿師生情誼一生延續走的最快的總是時間,來不及感嘆,大學生活已近尾聲,四年多的努力與付出,隨著本次論文的完成,將要劃下完美的句號。當我寫完這篇畢業論文時,感慨頗多。我還要感謝我的各位老師,同學在學習生活上給我提供的幫助和支持。他們鼓勵我不斷向前,我也從他們身上不斷汲取知識和為人處世的道理。這是我人生中重要的一段篇章。本論文從選題到完成,每一步都是在導師的指導下完成的,傾注了導師大量的心血。在我的畢業設計期間,導師為我提供了種種專業知識上的指導和一些富于創造性的建議,老師一絲不茍的作風,嚴謹求實的態度使我深受感動,沒有這樣的幫助和關懷,我不會這么順利的完成畢業設計。感謝微電子10002班的同學們,他們讓我獲得了情同手足的真摯友情,我們互相傾聽、探討未來的時光,這些都將成為我大學四年的美好回憶。在畢業設計的這段時間里,你們給了我很多的啟發,提出了很多寶貴的意見,對于你們幫助和支持,在此我表示深深地感謝。附錄#include"Common.h"#include"Infrared.h"#include"LCD1602.h"#include"UartCom.h"#include"EEPROM.h"#include"DS1302.h"bitbusy;uintTimer0Count;uintPasswordCounter;unsignedintbLogined; //0:尚未登陸;1:已經登陸驗證U8I2CBuf[6]={0x0C,0x18,0x5E,0x08,0x1C,0x5A}; //初始密碼123456U8NewPwd[6]={0x00};U8ReNewPwd[6]={0x00};U8strCode[10]={0x16,0x0C,0x18,0x5E,0x08,0x1C,0x5A,0x42,0x52,0x4A};voidSendData(BYTEdat);voidSendString(char*s);voidw_string(unsignedcharaddr_start,unsignedchar*p);unsignedchari,len=6;unsignedintnMode=0; //0:正常模式;1:設置密碼;2:re設置密碼voidmain(){ unsignedinti,nControlMode; //控制模式0:手動模式1:自動模式 unsignedintYear,Month,Day,Hour,Minute,Second; unsignedintAlarmHour,AlarmMinute,AlarmSecond; unsignedintStartHour,StartMinute,StartSecond; unsignedintStopHour,StopMinute,StopSecond; unsignedintnMode; //0:正常模式; //1602 Init_LCD1602(); uart_init(); //紅外初始化 InfraredInit();// TR1=1; //Timer1startrun 啟動定時器/計數器1/// ES=1; //EnableUARTinterrupt /// ET0=1; //此句不應該有,應該是不允許產生中斷 EA=1; //Openmasterinterruptswitch P4SW=0x70; //令P4.4、P4.5、P4.6為IO口 nControlMode=0; //默認手動模式 PasswordCounter=0; bLogined=0; AlarmHour=12; AlarmMinute=0; AlarmSecond=0; StartHour=21; StartMinute=47; StartSecond=0; StopHour=21; StopMinute=48; StopSecond=0; Year=14; Month=4; Day=3; Hour=10; Minute=0; Second=0; //初始化系統時間 timedata[6]=Year; timedata[5]=20; timedata[4]=Month; timedata[3]=Day; timedata[2]=Hour; timedata[1]=Minute; timedata[0]=Second; sprintf(strDisplayLine1,"%s","InputPassword:"); w_string(0x80,strDisplayLine1); sprintf(strDisplayLine2,"%s",""); w_string(0xC0,strDisplayLine2); /*i2c_serwrite(I2CBuf,0,len);*/ for(i=0;i<len;i++) I2CBuf[i]=0x16; for(i=0;i<6;i++) { //IapProgramByte(IAP_ADDRESS+i,(unsignedchar)I2CBuf[i]); I2CBuf[i]=IapReadByte(IAP_ADDRESS+i); }/// SendString(I2CBuf); Set_RTC();//寫入時鐘值,如果使用備用電池時候,不需要沒每次上電寫入,此程序應該屏蔽 while(1) { /*Read_RTC();//秒分時日月周年 Year=(timedata[6]&15)+((timedata[6]>>4)*10); Month=(timedata[4]&15)+((timedata[4]>>4)*10); Day=(timedata[3]&15)+((timedata[3]>>4)*10); Hour=(timedata[2]&15)+((timedata[2]>>4)*10); Minute=(timedata[1]&15)+((timedata[1]>>4)*10); Second=(timedata[0]&15)+((timedata[0]>>4)*10); sprintf(strDisplayLine1,"Timeis:%02d:%02d:%02d",Year,Month,Day); sprintf(strDisplayLine2,"Timeis:%02d:%02d:%02d",Hour,Minute,Second); w_string(0x80,strDisplayLine1); w_string(0xC0,strDisplayLine2); */ }}/*定時器0中斷*//*voidTIM0_ISR()interrupt1{ TR0=0; BEEP=!BEEP; TH0=Timer0_H; TL0=Timer0_L; TR0=1;}*///外部中斷1voidinfrared()interrupt2 //外部中斷2,接收一個數據位{ uint8i,j;unsignedinttemp;EX1=0; //關閉外部中斷1,不再接收二次紅外信號的中斷,只解碼當前紅外信號//檢測引導碼的9ms低電平temp=GetLowTime();if(temp<c(8500)||temp>c(9500)){ gotoexit;}//檢測引導碼的4.5ms高電平temp=GetHighTime(); if(temp<c(4000)||temp>c(5000)){ gotoexit;}//檢測后續4字節數據for(i=0;i<4;i++){for(j=0;j<8;j++){ temp=temp>>1; //temp中各個數據位右移一位,因為先讀出來的是高字節temp=GetLowTime();if(temp<c(200)||temp>c(800)){gotoexit; //低電平不在合理的范圍內,認為出錯,停止解碼}//由高電平時間判斷該bit的值temp=GetHighTime();if(temp>c(2000)&&temp<c(200)){ //如果高電平的時間在560us左右,則該位為0gotoexit;} Ir_Buf[i]>>=1; if(temp>c(1120)) Ir_Buf[i]|=0x80;}}//保存第3字節的鍵碼值 //紅外108ms發射代碼由一個起始碼9ms,一個結果碼4.5ms,低八位地址碼9-18ms,高八位地址碼,8位數據位,8位數據位的反碼///SendData(Ir_Buf[2]); if(Ir_Buf[2]==0x09) { PasswordCounter=0; sprintf(strDisplayLine1,"%s","InputPassword:"); sprintf(strDisplayLine2,"%s",""); for(i=0;i<16;i++) { strTruePassword[i]=0; } } elseif(Ir_Buf[2]==0x47) //按了最右上面的按鈕 { nMode=0; bLogined=0; sprintf(strDisplayLine1,"%s","InputPassword:"); sprintf(strDisplayLine2,"%s",""); } elseif(Ir_Buf[2]==0x43) //按了向右快進箭頭,重置密碼 { if(bLogined) { PasswordCounter=0; sprintf(strDisplayLine1,"%s","NewPassword:"); sprintf(strDisplayLine2,"%s",""); for(i=0;i<16;i++) { strTruePassword[i]=0; } nMode=1; //重置密碼 } else { sprintf(strDisplayLine1,"%s","InputPassword:"); sprintf(strDisplayLine2,"%s","LoginFirst..."); } } else { if(nMode!=0) { if(nMode==1) { NewPwd[PasswordCounter]=Ir_Buf[2]; strDisplayLine2[PasswordCounter]='*'; PasswordCounter++; if(PasswordCounter==6) { nMode=2; PasswordCounter=0; sprintf(strDisplayLine1,"%s","AgainPassword:"); sprintf(strDisplayLine2,"%s",""); } } else { ReNewPwd[PasswordCounter]=Ir_Buf[2]; strDisplayLine2[PasswordCounter]='*'; PasswordCounter++; if(PasswordCounter==6) { /// SendString(ReNewPwd);/// SendString(NewPwd); if(NewPwd[0]==ReNewPwd[0]&&NewPwd[1]==ReNewPwd[1]&&NewPwd[2]==ReNewPwd[2]&&NewPwd[3]==ReNewPwd[3]&&NewPwd[4]==ReNewPwd[4]&&NewPwd[5]==ReNewPwd[5]) { sprintf(strDisplayLine2,"%s","Success!"); NoPowerBuzzerBeep(); //正確蜂鳴器提示音 I2CBuf[0]=NewPwd[0]; I2CBuf[1]=NewPwd[1]; I2CBuf[2]=NewPwd[2]; I2CBuf[3]=NewPwd[3]; I2CBuf[4]=NewPwd[4]; I2CBuf[5]=NewPwd[5]; /// i2c_serwrite(I2CBuf,0,len); //重新將新密碼寫入I2C IapEraseSector(IAP_ADDRESS);//擦除扇區(60s2兩個扇區) for(i=0;i<len;i++) { IapProgramByte(IAP_ADDRESS+i,(unsignedchar)I2CBuf[i]); } } else { sprintf(strDisplayLine2,"%s","NotSuccess!"); } nMode=0; PasswordCounter=0; } } } else { if(PasswordCounter==0) //清屏 { sprintf(strDisplayLine1,"%s","InputPassword:"); sprintf(strDisplayLine2,"%s",""); w_string(0x80,strDisplayLine1); w_string(0xC0,strDisplayLine2); } strTruePassword[PasswordCounter]=Ir_Buf[2]; strDisplayLine2[PasswordCounter]='*'; PasswordCounter++; if(PasswordCounter==6) { if(strTruePassword[0]==I2CBuf[0]&&strTruePassword[1]==I2CBuf[1]&&strTruePassword[2]==I2CBuf[2]&&strTruePassword[3]==I2CBuf[3]&&strTruePassword[4]==I2CBuf[4]&&strTruePassword[5]==I2CBuf[5]) { sprintf(strDisplayLine2,"%s","Right!"); NoPowerBuzzerBeep(); //正確蜂鳴器提示音 G5VControl(); //繼電器打開 bLogined=1; //登陸驗證通過 } else { sprintf(strDisplayLine2,"%s","Error!"); } PasswordCounter=0; } } } w_string(0x80,strDisplayLine1); w_string(0xC0,strDisplayLine2); exit:IE1=0; //外部中斷標志位清零EX1=1;}#if!defined_STC12C5A60S2_H#define_STC12C5A60S2_H////新一代1T8051系列單片機內核特殊功能寄存器C51CoreSFRs//76543210ResetValuesfrACC=0xE0;//Accumulator累加器0000,0000sfrB=0xF0;//BRegister0000,0000sfrPSW=0xD0;//ProgramStatusWordCYACF0RS1RS0OVF1P0000,0000//sbitCY=PSW^7;sbitAC=PSW^6;sbitF0=PSW^5;sbitRS1=PSW^4;sbitRS0=PSW^3;sbitOV=PSW^2;sbitP=PSW^0;//sfrSP=0x81;//StackPointer0000,0111sfrDPL=0x82;//DataPointerLowByte0000,0000sfrDPH=0x83;//DataPointerHighByte0000,0000////新一代1T8051系列單片機系統管理特殊功能寄存器//76543210ResetValuesfrPCON=0x87;//PowerControlSMODSMOD0LVDFPOFGF1GF0PDIDL0001,0000//76543210ResetValuesfrAUXR=0x8E;//AuxiliaryRegisterT0x12T1x12UART_M0x6BRTRS2SMODBRTx12EXTRAMS1BRS0000,0000//sfrAUXR1=0xA2;//AuxiliaryRegister1-PCA_P4SPI_P4S2_P4GF2ADRJ-DPS0000,0000/*PCA_P4:0,缺省PCA在P1口1,PCA/PWM從P1口切換到P4口:ECI從P1.2切換到P4.1口,PCA0/PWM0從P1.3切換到P4.2口PCA1/PWM1從P1.4切換到P4.3口SPI_P4:0,缺省SPI在P1口1,SPI從P1口切換到P4口:SPICLK從P1.7切換到P4.3口MISO從P1.6切換到P4.2口MOSI從P1.5切換到P4.1口SS從P1.4切換到P4.0口S2_P4:0,缺省UART2在P1口1,UART2從P1口切換到P4口:TxD2從P1.3切換到P4.3口RxD2從P1.2切換到P4.2口GF2:通用標志位ADRJ:0,10位A/D轉換結果的高8位放在

溫馨提示

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

評論

0/150

提交評論