

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 設(shè)計(jì)方案論證2.1整個(gè)系統(tǒng)的原理 SHAPE * MERGEFORMAT 整個(gè)系統(tǒng)的設(shè)計(jì)方案如下面的介紹,主要是,系統(tǒng)原理,控制芯片介紹和管腳的說(shuō)明。2.1.1系統(tǒng)原理說(shuō)明圖2.1 系統(tǒng)原理框圖 從上面的框圖我們很容易的可以看出,CPU是整個(gè)電路的核心,它受電源驅(qū)動(dòng),然后驅(qū)動(dòng)555電路和液晶屏,并且反饋到上位機(jī)。整個(gè)設(shè)計(jì)的大體思想就是這樣,CPU作為最核心的部件,是這給那個(gè)電路的主體,也是整個(gè)電路的控制部分。此次我們采用的是由飛利浦公司生產(chǎn)的P89V5RD2HBA單片機(jī)芯片。芯片的引腳圖如圖2.2所示。本設(shè)計(jì)工作,我主要負(fù)責(zé)的是軟件的編程的工作,這就需要對(duì)所用的主芯片要有一個(gè)詳實(shí)的了解
2、,下面是我們?cè)诖舜卧O(shè)計(jì)中用到的芯片口的詳細(xì)資料,(說(shuō)明,本次設(shè)計(jì)中P2口沒(méi)有用到,作為紅外線報(bào)警器的擴(kuò)展口來(lái)用,以備今后對(duì)紅外線的升級(jí)之用.)2.1.2控制芯片介紹在本系統(tǒng)中采用的控制芯片是P89V51RD2,P89V51RD2 是一款80C51 微控制器,包含64kB Flash 和1024 字節(jié)的數(shù)據(jù)RAM。P89V51RD2 的典型特性是它的X2 方式選項(xiàng)。利用該特性,設(shè)計(jì)工程師可使應(yīng)用程序以傳統(tǒng)的80C51 時(shí)鐘頻率(每個(gè)機(jī)器周期包含12 個(gè)時(shí)鐘)或X2 方式(每個(gè)機(jī)器周期包含6 個(gè)時(shí)鐘)的時(shí)鐘頻率運(yùn)行,選擇X2 方式可在相同時(shí)鐘頻率下獲得2 倍的吞吐量。從該特性獲益的另一種方法是將時(shí)
3、鐘頻率減半而保持特性不變,這樣可以極大地降低電磁干擾(EMI)。Flash 程序存儲(chǔ)器支持并行和串行在系統(tǒng)編程(ISP)。并行編程方式提供了高速的分組編程(頁(yè)編程)方式,可節(jié)省編程成本和上市時(shí)間。ISP 允許在軟件控制下對(duì)成品中的器件進(jìn)行重復(fù)編程。應(yīng)用固件的產(chǎn)生/更新能力實(shí)現(xiàn)了ISP 的大范圍應(yīng)用。它的主要特性如下:(1) 80C51 核心處理單元;(2) 5V 的工作電壓,操作頻率為040MHz;(3) 16/32/64kB 的片內(nèi)Flash 程序存儲(chǔ)器,具有ISP(在系統(tǒng)編程)和IAP(在應(yīng)用中編程)功能;(4) 通過(guò)軟件或ISP 選擇支持12 時(shí)鐘(默認(rèn))或6 時(shí)鐘模式;(5) SPI(
4、串行外圍接口)和增強(qiáng)型UART;(6) PCA(可編程計(jì)數(shù)器陣列),具有PWM 和捕獲/比較功能;(7) 4個(gè)8位I/O 口,含有3個(gè)高電流P1 口(每個(gè)I/O 口的電流為16mA);(8) 3個(gè)16 位定時(shí)器/計(jì)數(shù)器;(9) 可編程看門(mén)狗定時(shí)器(WDT);(10) 8個(gè)中斷源,4個(gè)中斷優(yōu)先級(jí);(11) 2個(gè)DPTR 寄存器;(12) 低EMI 方式(ALE 禁能);(13) 兼容TTL 和CMOS 邏輯電平;(14) 掉電檢測(cè);(15) 低功耗模式(16) 掉電模式,外部中斷喚醒;(17) 空閑模式;(18) DIP40,PLCC44 和TQFP44 的封裝; P89V51RD2的管腳如圖2
5、.2所示。圖2.2系統(tǒng)CPU芯片管腳圖2.1.3管腳的具體說(shuō)明本次設(shè)計(jì)中對(duì)芯片的使用管腳(注:本次只對(duì)設(shè)計(jì)中所用的管腳作介紹)如表2.1所示:表2.1 P89V51RD2的管腳說(shuō)明符號(hào)類(lèi)型描述P0.0P0.7I/OP0 口:P0 口是一個(gè)8 位開(kāi)漏雙向I/O 口。寫(xiě)入1時(shí)P0 口懸浮,可用作高阻態(tài)輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0 口復(fù)用為低位地址和數(shù)據(jù)總線。應(yīng)用中P0 口利用強(qiáng)內(nèi)部上拉來(lái)發(fā)送1電平。P0 口可在外部主機(jī)模式編程過(guò)程中接收代碼字節(jié)和在外部主機(jī)模式校驗(yàn)過(guò)程中發(fā)送代碼字節(jié)。P0口用作程序校驗(yàn)或通用I/O 口時(shí)均需連接一個(gè)外部上拉電阻。P1.0P1.7I/O 帶內(nèi)部上拉P1 口
6、:P1 口是一個(gè)帶內(nèi)部上拉的8 位雙向口。寫(xiě)入1時(shí)P1 口被內(nèi)部上拉拉高,可用作輸入。用作輸入時(shí),由于內(nèi)部上拉的存在,P1 口被外部器件拉低時(shí)將吸收電流( IIL )。此外,P1.5,P1.6,P1.7還有16mA 的高電流驅(qū)動(dòng)能力。在外部主機(jī)模式編程和校驗(yàn)中,P1 口也可接收低位地址字節(jié)。P1.0I/OT2:定時(shí)器/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入或時(shí)鐘輸出。P1.1IT2EX:定時(shí)器/計(jì)數(shù)器2 捕獲/重裝觸發(fā)和方向控制。P1.2IECI:外部時(shí)鐘輸入。PCA 的外部時(shí)鐘輸入。P1.3I/OCEX0:PCA 模塊0 的捕獲/比較外部I/O 口。每個(gè)捕獲/比較模塊連接一個(gè)P1 口用作外部I/O 口。該
7、口線不被PCA 占用時(shí)仍可用作標(biāo)準(zhǔn)I/O 口。P1.4I/O/SS :SPI 從機(jī)選擇輸入。CEX1:PCA 模塊1 的捕獲/比較外部I/O 口。P1.5I/OMOSI:SPI 主機(jī)輸出從機(jī)輸入端。CEX2:PCA 模塊2 的捕獲/比較外部I/O 口。P1.6I/OMISO:SPI 主機(jī)輸入從機(jī)輸出端。CEX3:PCA 模塊3 的捕獲/比較外部I/O 口。P1.7I/OSCK:SPI 主機(jī)輸出從機(jī)輸入端。CEX4:PCA 模塊4 的捕獲/比較外部I/O 口。P2.0P2.7I/O 帶內(nèi)部上拉P2 口:P2 口是一個(gè)帶內(nèi)部上拉的8 位雙向口。寫(xiě)入1時(shí)P2 口被內(nèi)部上拉拉高,可用作輸入。用作輸入時(shí)
8、,由于內(nèi)部上拉的存在,P2 口被外部器件拉低時(shí)將吸收電流( IIL )。在取指外部程序存儲(chǔ)器或訪問(wèn)16 位地址(MOVX DPTR)的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口發(fā)送高位地址。應(yīng)用中P2 口利用強(qiáng)內(nèi)部上拉來(lái)發(fā)送1。 P3.0P3.7I/O 帶內(nèi)部上拉P3 口:P3 口是一個(gè)帶內(nèi)部上拉的8 位雙向口。寫(xiě)入1時(shí)P3 口被內(nèi)部上拉拉高,可用作輸入。用作輸入時(shí),由于內(nèi)部上拉的存在,P3 口被外部器件拉低時(shí)將吸收電流( IIL )。在外部主機(jī)模式編程和校驗(yàn)中,P3 口可接收一些控制信號(hào)和部分高地址位。P3.0IRxD:串口輸入。P3.1OTxD:串口輸出。P3.2I/INT0 :外部中斷0 輸入P3.3I
9、/INT1 :外部中斷1 輸入P3.4IT0:定時(shí)器/計(jì)數(shù)器0 的外部計(jì)數(shù)輸入。P3.5IT1:定時(shí)器/計(jì)數(shù)器1 的外部計(jì)數(shù)輸入。P3.6OWR :外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)。P3.7ORD :外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)。/PSENI/O程序選通使能:/PSEN 是外部程序存儲(chǔ)器的讀選通信號(hào)。/PSEN 在執(zhí)行內(nèi)部程序存儲(chǔ)器的程序時(shí)無(wú)效(高電平),執(zhí)行外部程序存儲(chǔ)器時(shí)每個(gè)機(jī)器周期內(nèi)兩次有效,但當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)兩個(gè)有效/PSEN 脈沖將被跳過(guò)。當(dāng)RST 輸入引腳的高電平時(shí)間大于10 個(gè)機(jī)器周期時(shí),向/PSEN 腳強(qiáng)制輸入一個(gè)高電平到低電平的跳變將使器件進(jìn)入外部主機(jī)模式編程。RSTI復(fù)位:振蕩器
10、工作時(shí),該引腳上2 個(gè)機(jī)器周期的高電平邏輯狀態(tài)將使器件復(fù)位。當(dāng)RST 輸入引腳為高電平時(shí),如果/PSEN 腳輸入一個(gè)高電平到低電平的跳變,器件將進(jìn)入外部主機(jī)模式。否則進(jìn)入正常工作模式。/EAI外部訪問(wèn)使能:若器件要對(duì)外部程序存儲(chǔ)器取指, /EA 就必須與VSS 相連。器件執(zhí)行內(nèi)部程序存儲(chǔ)器的程序時(shí)/EA 必須與VDD 相連。然而,4 個(gè)安全鎖定電平可將/EA 禁能,使器件只能執(zhí)行內(nèi)部程序存儲(chǔ)器的程序。/EA 腳可承受12V 的高壓ALE/PROGI/O地址鎖存使能:ALE 是一個(gè)輸出信號(hào),在訪問(wèn)外部存儲(chǔ)器時(shí)將地址低字節(jié)鎖存。該引腳也用作Flash 的編程脈沖輸入( /PROG )。通常,ALE
11、在1/6 的振蕩頻率時(shí)輸出,可用作外部定時(shí)或外部時(shí)鐘。每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)都有一個(gè)ALE 脈沖被跳過(guò)。但是,只要AO 被置1,ALE就被禁能。NCI/O不連XTAL1I晶振1:反相振蕩放大器的輸入和內(nèi)部時(shí)鐘發(fā)生電路的輸入。XTAL2O晶振2:反相振蕩放大器的輸出。VDDI電源VSSI地 綜上所述P89V51RD2單片機(jī)既具有通用單片機(jī)的特點(diǎn)又有一些獨(dú)特之處,因此,此芯片足以滿足本設(shè)計(jì)的要求,并能很好的控制整個(gè)電路,尤其它所具有的ISP在線調(diào)試功能給本設(shè)計(jì)帶來(lái)了極大的方便。2.2 16x2字符型帶背光液晶顯示模塊 液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖珍式儀表和
12、低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。 2.2.1液晶模塊的認(rèn)識(shí)這里介紹的字符型液晶模塊是一種用5x7點(diǎn)陣圖形來(lái)顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1行16個(gè)字、2行16個(gè)字、2行20個(gè)字等等,這里以常用的2行16個(gè)字的1602液晶模塊來(lái)介紹它的編程方法。 下面是它的實(shí)物圖以及插槽連接圖。圖2.3(液晶顯示模塊的正面視圖)圖2.4(液晶顯示模塊的反面視圖)圖2.5(液晶顯示模塊的引腳插槽)其中,各個(gè)引腳所對(duì)應(yīng)的含義如下表所示。 表2.2 1602管腳說(shuō)明 端自號(hào):標(biāo)記:電平:功能:1VSS-電源電壓GND2VCC-電源電壓5V3V0-液晶驅(qū)動(dòng)電源4RS0H/L寄存器選擇信號(hào):L指令寄存
13、器H:數(shù)據(jù)寄存器5RWH/L讀寫(xiě)選擇信號(hào)L:寫(xiě)操作H:讀操作6ENHH-L使能信號(hào)7-14P00P07H/L數(shù)據(jù)總線15VCC-備光驅(qū)動(dòng)電壓16GND-電源電壓GND2.2.2液晶模塊的編程本次設(shè)計(jì)中所編寫(xiě)的液晶顯示模塊程序如附錄一所示:讀操作時(shí)序?qū)懖僮鲿r(shí)序:液晶模塊的流程圖、程序見(jiàn)附錄一。2.3.串口通信 隨著計(jì)算機(jī)的廣泛應(yīng)用,市場(chǎng)上很多電氣產(chǎn)品應(yīng)用串口通信技術(shù)作為對(duì)外數(shù)據(jù)交換的橋梁,串口通信受到如此重視,主要原因就是這個(gè)技術(shù)簡(jiǎn)單而且容易實(shí)現(xiàn)。所以本次設(shè)計(jì)使用串口進(jìn)行通信。而且本次設(shè)計(jì)使用的是RS-232串口通信。串口通信的認(rèn)識(shí):串口通信在本次的軟件設(shè)計(jì)中擔(dān)任傳輸?shù)淖饔茫瓷衔粰C(jī)和下位機(jī)的數(shù)
14、據(jù)傳輸。(包括程序的下載和數(shù)據(jù)的傳輸)具體連接如圖2.6所示。 圖2.6 RS-232串口通信連接圖串口控制程序一般分為查詢和中斷兩者方式。查詢方式適用于簡(jiǎn)單的應(yīng)用,簡(jiǎn)單可靠,但是缺點(diǎn)是需要占用處理器資源,在發(fā)送或者接收數(shù)據(jù)的時(shí)候不能做其它的事情,處理器利用率低。中斷方式下,在發(fā)送或者接受數(shù)據(jù)的時(shí)候處理器還可以做其它的工作,效率較高。對(duì)于稍微復(fù)雜的系統(tǒng)來(lái)說(shuō),中斷方式管理串口程序?qū)?huì)更加有效。中斷處理方式也可分為幾種,其中采用循環(huán)緩沖區(qū)的方式比較高效。循環(huán)緩沖區(qū)為定義的一定長(zhǎng)度的RAM區(qū)間,對(duì)于接受數(shù)據(jù)來(lái)說(shuō),中斷中收到的數(shù)據(jù)將存入RAM中,然后等待主程序來(lái)讀取。其中會(huì)涉及到數(shù)據(jù)見(jiàn)的協(xié)調(diào)問(wèn)題,寫(xiě)數(shù)
15、據(jù)的時(shí)候不能把還沒(méi)有讀取的數(shù)據(jù)覆蓋掉,讀數(shù)據(jù)的時(shí)候應(yīng)該讀取的是緩沖區(qū)中最老的數(shù)據(jù)。當(dāng)緩沖區(qū)已滿的時(shí)候,寫(xiě)入的新數(shù)據(jù)應(yīng)該覆蓋掉最老的數(shù)據(jù)。這些問(wèn)題的處理可以使用兩個(gè)指針來(lái)實(shí)現(xiàn)。2.4 Visual Basic 與串口通信隨著計(jì)算機(jī)的廣泛應(yīng)用,市場(chǎng)上很多電氣產(chǎn)品應(yīng)用串口通信技術(shù)作為對(duì)外數(shù)據(jù)交換的橋梁,串口通信受到如此的重視,主要原因就是這個(gè)技術(shù)簡(jiǎn)單而且容易實(shí)現(xiàn)。2.4.1Visual Basic簡(jiǎn)單介紹Visual Basic集成開(kāi)發(fā)環(huán)境主要由以下元素組成:工具窗口、工程窗口、屬性窗口、對(duì)象窗口以及代碼組成等。如圖2.7所示圖2.7 Visual Basic集成開(kāi)發(fā)環(huán)境Visual Basic是一
16、般程序設(shè)計(jì)人員在Windows環(huán)境下最常用的串口編程語(yǔ)言。利用Visual Basic開(kāi)發(fā)串口通信程序主要有兩種方法:一是使用MSComm串口控件,二是利用Windows API函數(shù)。在查閱了大量的資料和在實(shí)踐資料中,使用Visual Basic串口控件實(shí)現(xiàn)通信的方法比調(diào)用API動(dòng)態(tài)鏈接庫(kù)的方法更加方便、快捷,而且用較少的代碼可以實(shí)現(xiàn)相同的功能,從而使編程效率大大提高,也減少了因編程不當(dāng)而導(dǎo)致的系統(tǒng)不穩(wěn)定。所以本次的設(shè)計(jì)采用了串口控件實(shí)現(xiàn)。2.4.2MSComm控件MSComm控件全稱為Microsoft Communications Control,是Microsoft公司提供的Active
17、X控件,目的是為了簡(jiǎn)化Windows下串行通信編程,它既可以用來(lái)提供簡(jiǎn)單的串行通信功能,也可以用來(lái)創(chuàng)建功能完備的、事件驅(qū)動(dòng)的高級(jí)通信工具。MSComm控件在串口通信時(shí)非常方便,程序員不必花時(shí)間去了解較為復(fù)雜的API函數(shù),而且在Visual Basic、Visual C+、Delphi等語(yǔ)言中均可使用。使用他可以建立與串行端口的連接,通過(guò)串行端口連接到其他通信設(shè)備(如調(diào)制解調(diào)器),發(fā)出命令,交換數(shù)據(jù),以及監(jiān)視和響應(yīng)串行連接中發(fā)生的時(shí)間和錯(cuò)誤。利用它可以進(jìn)行諸如撥打電話號(hào)碼、監(jiān)視串行端口的輸入數(shù)據(jù)乃至創(chuàng)建功能完備的終端程序等。“引用(3)”MSComm控件處理通信的方式有兩種:一種是事件驅(qū)動(dòng)方式,
18、另一種是查詢方式。MSComm控件有許多屬性,這將會(huì)在上位機(jī)設(shè)計(jì)中作具體說(shuō)明。2.4.3 VB工程建立工程的具體包括如下:(注意:下面的jia.*是本次設(shè)計(jì)的上位機(jī)的文件名) = 1 * GB2 .工程文件()一個(gè)工程只有一個(gè)工程文件,他管理著該工程的所有部件。工程文件中含有該工程的所有窗體文件以及其他的相關(guān)信息(如其他部件的名稱、在磁盤(pán)上的位置等)。此外,每個(gè)工程還會(huì)生成一個(gè)擴(kuò)展名為.vbw的附屬工程文件,它保存了工程在集成環(huán)境中各窗體的狀態(tài)。 = 2 * GB2 .窗體文件() 添加到工程中的每個(gè)窗體都會(huì)單獨(dú)地保存為一個(gè)文件。工程中有幾個(gè)窗體就會(huì)產(chǎn)生幾個(gè)窗體文件。窗體文件中保存了所有該窗體
19、和放置在該窗體中控件的信息,包括對(duì)象名、對(duì)象類(lèi)型、對(duì)象的屬性設(shè)置、對(duì)象的事件過(guò)程代碼和通用過(guò)程代碼。也就是說(shuō),一個(gè)窗體文件保存了這個(gè)窗體所對(duì)應(yīng)的對(duì)象窗口和代碼窗口所有的內(nèi)容。這些內(nèi)容在Visual Basic中被總稱為“窗體模塊”。一個(gè)工程有幾個(gè)窗體就有幾個(gè)窗體模塊和幾個(gè)窗體模塊文件。 = 3 * GB2 .二進(jìn)制窗體文件() 如果一個(gè)窗體中包括了圖片等二進(jìn)制信息(如在屬性窗口中設(shè)置了窗體的Icon屬性、Pircture屬性),則會(huì)產(chǎn)生一個(gè)與窗體*.frm文件同文件名的*.frx文件。 = 4 * GB2 .標(biāo)準(zhǔn)模塊文件() 標(biāo)準(zhǔn)模塊是用來(lái)保存公共變量、常量、數(shù)據(jù)類(lèi)型、過(guò)程的地方,其他的模塊可
20、以調(diào)用標(biāo)準(zhǔn)模塊中的代碼。一個(gè)工程中有多個(gè)標(biāo)準(zhǔn)模塊,也可以沒(méi)有。工程文件()、窗體模塊文件()和標(biāo)準(zhǔn)模塊文件()都是純文本文件,有經(jīng)驗(yàn)的編程者可以使用“記事本”這類(lèi)文本編輯軟件打開(kāi)、查看并進(jìn)行修改。 = 5 * GB2 .類(lèi)模塊文件Visual Basic允許編程者創(chuàng)建新類(lèi),新類(lèi)的定義保存在類(lèi)模塊中。一個(gè)工程中可以有多個(gè)類(lèi)模塊,也可以沒(méi)有。 = 6 * GB2 .建立可執(zhí)行文件前面執(zhí)行應(yīng)用程序的時(shí)候是選擇“運(yùn)行”菜單的“啟動(dòng)”命令來(lái)執(zhí)行的,這種執(zhí)行是解釋執(zhí)行,解釋執(zhí)行只能在Visual Basic開(kāi)發(fā)環(huán)境中進(jìn)行,不能脫離開(kāi)發(fā)環(huán)境。為了使應(yīng)用程序能脫離開(kāi)發(fā)環(huán)境而直接在Windows環(huán)境下運(yùn)行,就必
21、須將應(yīng)用程序編譯成可執(zhí)行文件(5.6.21.44.exe文件,這個(gè)是此次畢業(yè)設(shè)計(jì)的上位機(jī)的運(yùn)行界面的名稱。意思是:五月六日9點(diǎn)44分完成)。生成的方法是:依次選擇“文件”菜單的“生成工程1.exe”命令(這里的“工程1”是工程名),彈出“生成工程”對(duì)話框時(shí),選定保存位置,輸入可執(zhí)行文件的名字,單擊“確定”按鈕即可在指定位置建立一個(gè)可執(zhí)行文件。第三章 設(shè)計(jì)和計(jì)算3.1上位機(jī)設(shè)計(jì)(VB的設(shè)計(jì))定義聲明函數(shù)初始化串口各參數(shù)清零按鈕按下?設(shè)置連接按鈕按下?執(zhí)行相應(yīng)操作退出按鈕按下?結(jié)束退出 N Y Y N Y Y N Y圖3.1 VB程序的流程圖3.1.1 VB編寫(xiě)的上位機(jī)程序程序一:Dim COMB
22、UF As StringPrivate Sub Command3_Click()ngs = 600,N,8,1 設(shè)置數(shù)據(jù)傳輸率,沒(méi)有奇偶校驗(yàn),和數(shù)據(jù)位八位,一位停止位。 ort = 6 設(shè)置通訊串口COM6 Len = 0 設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù),0表示一次讀取所有數(shù)據(jù) ferSize = 512 設(shè)置接收緩沖區(qū)為512ByteferCount = 0 讀取整個(gè)緩沖區(qū)的數(shù)據(jù)。shold = 1 每個(gè)字符到接收緩沖區(qū)都觸發(fā)接收事件字符到接收緩沖區(qū)觸發(fā)接收事件 pen = True 打開(kāi)串口 le = TrueEnd SubPrivate Sub Command1_Click()
23、pen = False 關(guān)閉串口 olor = RGB(0, 255, 0) 綠色 olor = RGB(0, 255, 0) le = True ed = False ed = FalseEnd SubPrivate Sub Command2_Click()Unload Me 退出End SubPrivate Sub MSComm1_OnComm()Dim i As Variant Select Case vent Case comEvReceive COMBUF = Asc()Print 苗家祥.張勇提醒: & COMBUF & 區(qū)報(bào)警 & - & Now olor = RGB(255,
24、0, 0) 紅色 olor = RGB(255, 0, 0) = E:音樂(lè)哈.mp3 ed = True ed = True End SelectEnd SubPrivate Sub Timer1_Timer() Timer控件 = NowEnd SubPrivate Sub Timer2_Timer()le = FalseEnd SubPrivate Sub Timer3_Timer()le = TrueEnd Sub分析: 當(dāng)報(bào)警的時(shí)候就在上位機(jī)的界面上執(zhí)行下面一句:Print 苗家祥.張勇提醒: & COMBUF & 區(qū)報(bào)警 & - & Now 這樣報(bào)警的信息就顯示在界面上了。如下圖所示
25、。 圖3.2 報(bào)警信息圖上述程序中的Timer控件即定時(shí)器控件主要用來(lái)控制界面中的閃爍的紅色小球。如下圖所示: 綠色 紅色正常檢測(cè)狀態(tài) 圖3.3 報(bào)警狀態(tài)開(kāi)始檢測(cè)的時(shí)候,他是綠顏色的,當(dāng)觸發(fā)報(bào)警的時(shí)候,他就變成紅顏色的并且是在不斷閃爍的小球,給人以視覺(jué)沖擊起到報(bào)警的作用。程序中使用了三個(gè)定時(shí)器控件,Timer1主要用來(lái)控制上圖中的時(shí)鐘條 。Timer2和Timer3主要用來(lái)控制小球,設(shè)計(jì)的時(shí)候把Timer2的interval屬性定義成500, Timer3的interval屬性定義成1000.這樣再觸發(fā)下面的事件。Private Sub Timer2_Timer() Private Sub T
26、imer3_Timer()le = False le = TrueEnd Sub End Sub就實(shí)現(xiàn)了小球的不斷閃爍。同時(shí)觸發(fā)WindowsMediaPlayer1發(fā)生報(bào)警信號(hào)。這樣上位機(jī)的聲光報(bào)警就實(shí)現(xiàn)3.2 下位機(jī)設(shè)計(jì)主程序分析:我們的目標(biāo)是,當(dāng)紅外線檢測(cè)到有人闖入時(shí):(1)由P3.4輸出高低電平間隔0.5s的脈沖信號(hào)去驅(qū)動(dòng)聲光報(bào)警電路,產(chǎn)生聲光報(bào)警。這可通過(guò)使P3.4每隔0.5s取反一次實(shí)現(xiàn),而0.5s時(shí)間可同時(shí)定時(shí)器T0(工作于定時(shí)方式1)重復(fù)定時(shí)100ms十次來(lái)實(shí)現(xiàn)。用工作寄存器R1作循環(huán)計(jì)數(shù)器,初值為10(0AH)。(采用中斷方式編程)。(50ms*10=500ms=0.5s)(
27、2)由P0口輸出數(shù)據(jù)到液晶屏顯示報(bào)警所在位置的區(qū)號(hào)(1、2、3、4)。這要通過(guò)在主程序中對(duì)液晶模塊的調(diào)用來(lái)實(shí)現(xiàn)。顯示什么字符,就調(diào)用該字符函數(shù)。(3)通過(guò)RS232串口(由是程序的下載線,當(dāng)下載線不用時(shí))上傳到上位機(jī),并在上位機(jī)當(dāng)中顯示報(bào)警所在位置的區(qū)號(hào)(1234)。上位機(jī)部分要通過(guò)Visual Basic 軟件來(lái)實(shí)現(xiàn)。3.2.1 C編寫(xiě)的下位機(jī)程序主要功能是對(duì)系統(tǒng)進(jìn)行初始化和對(duì)系統(tǒng)進(jìn)行監(jiān)視,看是否有人闖入。其程序流程圖如圖3.3所示。開(kāi)始系統(tǒng)初始化有人闖入?啟動(dòng)定時(shí)等待時(shí)間到時(shí)間到了嗎?NYESEZNoY報(bào)警實(shí)現(xiàn)聲光報(bào)警液晶顯示上位機(jī)顯示圖3.4 主程序流程圖整個(gè)設(shè)計(jì)的主程序如下面的“程序一
28、”所示:下面是中斷程序流程圖。開(kāi)始定義重設(shè)定時(shí)初值1s到嗎?P3.4取反中斷返回圖3.5 聲光報(bào)警中斷程序流程圖NOYES程序一:#include #include#define uchar unsigned char#define uint unsigned int sbit P10=P10; sbit P11=P11; sbit P12=P12; sbit P13=P13; sbit P14=P14; sbit P15=P15; sbit P16=P16; sbit P17=P17; sbit P34=P34;void fun0(void); void fun1(void);Uart_In
29、it();Uart1_Init();extern void lcd_init(void);extern void display_string(unsigned char x,unsigned char y,unsigned char *s);extern void display_char(unsigned char x,unsigned char y,unsigned char dat);unsigned char code str1= BAO JING;uchar code Table_Count4=1,2,3,4; /要顯示的數(shù)字或者字母,放在此區(qū)域void main(void) uc
30、har temp=0; P10=0; P11=0; P12=0; P13=0; Uart_Init(); Uart1_Init(); lcd_init();display_string(8,0,str1); /顯示(bao jing)while(1) if(P1!=0) TR0=1; if(P1!=temp) fun0(); temp=P1; fun1(); void TR0_SER(void) interrupt 1 /中斷 static uchar num=0; TH0=0 x3c; TL0=0 xb0; num+;if(num=10) num=0;P34=P34;void fun0(vo
31、id) /液晶顯示模塊 if(P14=1) display_char(1,0,1); /液晶屏顯示字符1 if(P15=1) display_char(2,0,2); /液晶屏顯示字符2 if(P16=1) display_char(3,0,3); /液晶屏顯示字符3 if(P17=1) display_char(4,0,4); /液晶屏顯示字符4 void fun1(void) /向串口發(fā)送字符模塊 if(P14=1) /PC機(jī)上顯示字符1 SBUF=Table_Count0; while(!TI); /等待發(fā)送完成 TI=0;/清除TI標(biāo)志,準(zhǔn)備下一次發(fā)送。 if(P15=1) /PC機(jī)上
32、顯示字符2 SBUF=Table_Count1; while(!TI); TI=0; if(P16=1) /PC機(jī)上顯示字符3 SBUF=Table_Count2; while(!TI); TI=0; if(P17=1) /PC機(jī)上顯示字符4 SBUF=Table_Count3; while(!TI); TI=0; Uart_Init() /串口初始化。 TMOD=(TMOD & 0 x00) |0 x20; /定時(shí)器1使用方式2 PCON=0 x00; /SMOD為0 SCON=0 x50; /工作于方式1,波特率600,允許接受 TH1=0 xcc;/204 參考文獻(xiàn)12P140-表10.
33、12 TL1=0 xcc; TR1=1; Uart1_Init() /主程序初始化 TMOD=TMOD|0 x01; /定時(shí)器0,方式一; TH0=0 x3c; TL0=0 xb0; ET0=1; /定時(shí)器0允許中斷; EA=1; /CPU允許中斷; P34=0;分析說(shuō)明: = 1 * GB3 主程序初始化的設(shè)計(jì)的計(jì)算:TMOD:0000,0001 定時(shí)器0,方式一,16位(0-65536)Num=1012MHZ/12=1s 0.5s=500000s 500000/10=50000 65536-50000=15536=(3CB0H)即: TH0=0 x3c;TL0=0 xb0; = 2 * G
34、B3 串口初始化的設(shè)計(jì)的計(jì)算:綜合上面的優(yōu)劣,本次的畢業(yè)設(shè)計(jì)采用中斷的方式比較合理。所以在本次軟件設(shè)計(jì)中采用了中斷方式的編程。在其中應(yīng)注意的是初始化串口。初始化串口的程序和下面的相似。根據(jù)“常用波特率對(duì)應(yīng)的初始值表”知因?yàn)楣ぷ黝l率為12M,波特率為600,由查表知:初始值應(yīng)該是0XCC查表:單片機(jī)Keil Cx51應(yīng)用開(kāi)發(fā)技術(shù)-P140頁(yè)中表10.12所以: 初始化串口, 波特率600Uart_Init() /串口初始化。 TMOD=(TMOD & 0 x00) |0 x20; /定時(shí)器1使用方式2PCON=0 x00; /和串口相關(guān)的只有第七位SMOD為0. SCON=0 x50; /工作于
35、方式1,允許接受。波特率600,TH1=0XCC; TL1=0XCC; TR1=1; 第四章 軟硬件調(diào)試及方案校驗(yàn)軟件設(shè)計(jì)的工具主要是Keil軟件和Visual Basic軟件.4.1 上位機(jī)軟件的調(diào)試Visual Basic的一大優(yōu)勢(shì)在與可視化編程,良好、美觀的編程界面對(duì)用戶來(lái)說(shuō)是必要的,應(yīng)用程序的界面用戶有著極大的影響,界面不好將直接影響到應(yīng)用程序的易用性。對(duì)于程序員來(lái)講,需要考慮的是如何將窗體、控件、對(duì)話框、菜單和工具欄等界面元素有機(jī)地組合在一起,從而構(gòu)成一個(gè)完整的易學(xué)易用的應(yīng)用程序。4.1.1 Visual Basic的調(diào)試運(yùn)行Visual Basic程序,出現(xiàn)“新建工程”對(duì)話框,如圖
36、4-1 圖4.1“新建工程”對(duì)話框選擇新建“標(biāo)準(zhǔn)EXE”,執(zhí)行“打開(kāi)”命令,進(jìn)入Visual Basic工程集成開(kāi)發(fā)環(huán)境,窗體設(shè)計(jì)器中會(huì)自動(dòng)出現(xiàn)一個(gè)名為Form1的空白窗體。然后在這里建立工程編輯界面和編寫(xiě)程序。編程完成后的程序和界面如下所示: 從圖4.2可以看出。圖4.2編輯完成后圖程序的編寫(xiě),以及界面的編輯要有所講究。要簡(jiǎn)潔明了的表達(dá)要實(shí)現(xiàn)的功能。說(shuō)明一:界面上有三個(gè)按鈕,分別“設(shè)置連接”、“清零按鈕”、“退出按鈕”,有三個(gè)定時(shí)器控件,和一個(gè)聲音播放控件,還有一個(gè)TEXT1文本框。 說(shuō)明二:程序中有些屬性都在屬性窗口中設(shè)置完成的。 說(shuō)明三:運(yùn)行時(shí),運(yùn)行正常時(shí),時(shí)鐘框和小球是綠色的。但當(dāng)報(bào)警
37、時(shí)同為紅顏色。 說(shuō)明四:報(bào)警時(shí)還伴有報(bào)警的聲音。下面是本次設(shè)計(jì)的日常監(jiān)控時(shí)的界面-如圖4.3所示。觸發(fā)報(bào)警時(shí)所顯示的界面-如圖4.4所示。 綠色 圖4.3監(jiān)控界面點(diǎn)擊“設(shè)置連接”按鈕后,觸發(fā)報(bào)警實(shí)現(xiàn)的界面如下圖4.5所示: 紅色 圖4.4說(shuō)明(報(bào)警時(shí)小球在不斷閃爍,且有報(bào)警聲音出現(xiàn))4.1.2 上位機(jī)調(diào)試的問(wèn)題問(wèn)題一:在VB當(dāng)中MSComm控件比較的重要特別是下面兩句的每一系數(shù)的選擇,都是經(jīng)過(guò)不斷的調(diào)試,在實(shí)踐當(dāng)中我們發(fā)現(xiàn)當(dāng)(ngs = 600,N,7,1 )時(shí),發(fā)現(xiàn)實(shí)現(xiàn)不了要接收的數(shù)據(jù)。發(fā)現(xiàn)問(wèn)題后我們通過(guò)“串口調(diào)試精靈”發(fā)現(xiàn),接收上來(lái)的數(shù)據(jù)是正確的只不過(guò)顯示的是十六進(jìn)制的。經(jīng)過(guò)不斷的調(diào)試,對(duì)
38、數(shù)據(jù)進(jìn)行改進(jìn),我們發(fā)現(xiàn)把數(shù)據(jù)位改為 7位比較合適。即(ngs = 600,N,8,1)這樣,通過(guò)串口傳到上位機(jī)上顯示的數(shù)字就正常了。然后關(guān)掉“串口調(diào)試精靈”,改掉參數(shù),重新打開(kāi)我們的上位機(jī)軟件,問(wèn)題沒(méi)有了。這是由SCON決定的,它的數(shù)據(jù)位就是八位。問(wèn)題二:調(diào)試的時(shí)候我們的程序中有(ngs = 9600,N,7,1)中,傳輸率9600的選擇。開(kāi)始使用的是4800,因?yàn)槲覀儫洺绦虻臅r(shí)候的波特率選的是4800結(jié)果不行,出現(xiàn)錯(cuò)誤。通過(guò)查閱資料我發(fā)現(xiàn)書(shū)中這樣介紹,當(dāng)電源控制寄存器PCON 的SMOD位選擇為“1”時(shí),(即PCON=0 x80; /SMOD為1,波特率增加一倍)因?yàn)楫?dāng)SMOD為“0”時(shí),
39、多出一個(gè)二分頻。這個(gè)解釋還可以參照下面的一個(gè)公式:計(jì)數(shù)器1益出速率)32 波特率=2AVERAGE(SMOD) # 0 通過(guò)上面的公式,就可以發(fā)現(xiàn)選擇1和0的區(qū)別,(即知道了為什么要用9600和4800了)問(wèn)題三:設(shè)計(jì)當(dāng)中的串口問(wèn)題,也占用了我們大量的時(shí)間,由于接觸的不多。我們對(duì)串口的了解,僅存在與學(xué)過(guò)的書(shū)本上一點(diǎn)不知道。實(shí)際應(yīng)用是時(shí)候不知道數(shù)據(jù)怎么傳送,不知道數(shù)據(jù)放在哪里合適,開(kāi)始以為問(wèn)題出在VB這部分。解決方法后來(lái)去圖書(shū)館查閱資料發(fā)現(xiàn)要把傳送的數(shù)據(jù)送到串口:uchar code Table_Count4=1,2,3,4; SBUF=Table_Count0;這兩句比較重要。把字符(1,2,
40、3,4)放到數(shù)組里面,再?gòu)闹鞒绦蚶锩嬲{(diào)用數(shù)組,這樣比較簡(jiǎn)單。然后再在VB程序中用下面的程序:COMBUF = Asc() ; Print COMBUF這樣問(wèn)題就解決了。4.2下位機(jī)軟件的調(diào)試步驟和問(wèn)題Keil 軟件是目前最流行開(kāi)發(fā) MCS-51 系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛紛宣布全面支持 Keil 即可看出。要實(shí)現(xiàn)調(diào)試,首先要建立工程文件,程序在軟件中調(diào)試成功后,并且要可以生成*.HEX文件。這要才可以進(jìn)一步的進(jìn)行下面的調(diào)試工作。4.2.1建立文件 = 1 * GB2 . 點(diǎn)擊“Project-New Project ”菜單,出現(xiàn)一個(gè)對(duì)話框,要求給將要建立的工程起一個(gè)名字,你可以
41、在編緝框中輸入一個(gè)名字(設(shè)為 miao),不需要擴(kuò)展名。點(diǎn)擊“保存”按鈕,出現(xiàn)第二個(gè)對(duì)話框,這個(gè)對(duì)話框要求選擇目標(biāo) CPU(即你所用芯片的型號(hào)),Keil 支持的CPU很多,點(diǎn)擊 ATMEL 前面的“+”號(hào),展開(kāi)該層,這里我們要選擇飛利浦公司生產(chǎn)的P89V5RD2,然后再點(diǎn)擊“確定”按鈕。 = 2 * GB2 . 此時(shí),在工程窗口的文件頁(yè)中,出現(xiàn)了“Target1”,前面有“+”號(hào),點(diǎn)擊“+”號(hào)展開(kāi),可以看到下一層的“ Source Group1”,點(diǎn)擊“Source Group1”使其反白顯然后,點(diǎn)擊鼠標(biāo)右鍵,選中其中的“Add file toGroup”Source Group1”,出現(xiàn)一
42、個(gè)對(duì)話框,要求尋找源文件( = 1 * GB3 主程序.C = 2 * GB3 液晶.C). = 3 * GB2 . 雙擊 = 1 * GB3 主程序.C和 = 2 * GB3 液晶.C 文件,將文件加入項(xiàng)目,然后點(diǎn)擊“Close”即可返回主界面,返回后,點(diǎn)擊“SourceGroup 1”前的加號(hào),會(huì)發(fā)現(xiàn) = 1 * GB3 主程序.C和 = 2 * GB3 液晶.C 文件已在其中。雙擊文件名,打開(kāi)該源程序。4.2.2調(diào)試步驟紅外線防盜報(bào)警器主程序編輯完成以后,調(diào)試沒(méi)問(wèn)題時(shí)。要注意以下步驟: = 1 * GB3 . .要注意必須生成文件,以便燒錄程序(下載程序到硬件)以實(shí)現(xiàn)需要的功能。 = 2
43、 * GB3 . 下載線.下載之前要連接好下載線(這里用的是USB轉(zhuǎn)RS-232下載線),注意電腦上的相應(yīng)驅(qū)動(dòng)要安裝完成才可以使用這樣的轉(zhuǎn)接線,并打開(kāi)硬件上的開(kāi)關(guān)。 = 3 * GB3 . 擦除文件.運(yùn)行“Flash Magic”,選擇界面上的參數(shù),注意:參數(shù)不正確無(wú)法下載。準(zhǔn)備擦除硬件CPU內(nèi)的原始程序。步驟是:點(diǎn)擊菜單欄的“ISP”“ Erase Flash”選中“Eraseall Flash” 點(diǎn)擊“Erase”按一下硬件上的黑色復(fù)位健擦除完成。 = 4 * GB3 . 燒錄.燒錄程序,步驟是:點(diǎn)擊” Browse” 選擇路徑找到先前Keil中生成的“”文件點(diǎn)擊“Start”程序下載完成
44、,(Finished).準(zhǔn)備硬件調(diào)試。具體如下圖所示:圖4.5 Flash Magic界面圖 = 5 * GB3 . 液晶屏.根據(jù)設(shè)計(jì)的要求調(diào)試555聲光報(bào)警電路,調(diào)試液晶屏。 = 6 * GB3 . 上位機(jī).調(diào)試上位機(jī)時(shí),要注意的是硬件上的串口通信開(kāi)關(guān)不能斷開(kāi),要保持在連接狀態(tài)。(即白色按鈕要按下去)。然后保持串口線連接正常后,打開(kāi)上位機(jī)的監(jiān)控界面。點(diǎn)擊“設(shè)置連接”按鈕,進(jìn)行調(diào)試。4.2.3 下位機(jī)調(diào)試問(wèn)題問(wèn)題一:工程建立后出現(xiàn)的問(wèn)題,我們的程序有兩個(gè)???,一個(gè)是主程序模塊,另一個(gè)是液晶屏???。在編譯時(shí)出現(xiàn)下面的錯(cuò)誤“Target not created”。結(jié)果在生成*.HEX文件的時(shí)候,怎
45、么也生成不了。 最后在查閱資料后發(fā)現(xiàn)問(wèn)題。仔細(xì)閱讀程序后才發(fā)現(xiàn),在液晶模快里面也有一個(gè)主程序main()而在主程序??焱瑯右灿幸粋€(gè)main()。犯了一個(gè)本不應(yīng)該犯的錯(cuò)誤。我們的解決方法是把液晶部分的main()去掉,把相應(yīng)的主程序操作,移動(dòng)主程序模塊進(jìn)行實(shí)現(xiàn)。這樣再對(duì)程序進(jìn)行相應(yīng)的調(diào)試,問(wèn)題就可以解決了。問(wèn)題二:設(shè)計(jì)當(dāng)中的液晶屏的顯示,開(kāi)始怎么也調(diào)試不出,那個(gè)液晶屏不出字符?分析:經(jīng)過(guò)我們的不斷發(fā)現(xiàn),不斷地從軟硬件上改善,最終完整實(shí)現(xiàn)了報(bào)警。結(jié)果是軟件上所傳送的字符(1改成1)不對(duì),硬件上的V0(背光驅(qū)動(dòng)電源)根本沒(méi)加上去。查出問(wèn)題后,我們有效的進(jìn)行調(diào)節(jié),給硬件上的V0(背光驅(qū)動(dòng)電源)加上一個(gè)
46、電位器,并在軟件上把1改成“1”。最終實(shí)現(xiàn)了液晶顯示的報(bào)警。問(wèn)題三:燒錄軟件時(shí)遇到如下圖中的問(wèn)題,解決不了。經(jīng)過(guò)不斷的調(diào)試,這種情況在我們的軟件調(diào)試中經(jīng)常遇到,具體有以下幾點(diǎn)可能: = 1 * GB3 .下載線沒(méi)插或者是沒(méi)插好。 = 2 * GB3 .硬件的電源沒(méi)打開(kāi)。 = 3 * GB3 .硬件上面在串口和單片機(jī)之間的一個(gè)白色的開(kāi)關(guān)沒(méi)有連接好,或者根本就沒(méi)有按下去導(dǎo)致無(wú)法下載。 = 4 * GB3 .還有可能是燒錄軟件上面的波特率沒(méi)選好,此次的設(shè)計(jì)中波特率應(yīng)該選擇 600。 = 5 * GB3 .有可能COM口沒(méi)選擇好,要注意的是燒錄器上的COM口要和電腦硬件的接口相對(duì)應(yīng)。問(wèn)題四:有的時(shí)候在
47、下載程序不成功的時(shí)候會(huì)出現(xiàn)電腦上面的畫(huà)面停滯導(dǎo)致無(wú)法繼續(xù)操作。分析:這樣的情況應(yīng)該是我們的誤操作所致,和電腦上的問(wèn)題差不多。經(jīng)過(guò)我們的調(diào)試和經(jīng)驗(yàn)可知,處理的最好的方法就是,關(guān)掉硬件電源,然后拔掉電腦上的USB下載線,重新插上,問(wèn)題迎刃而解。注意出現(xiàn)這樣的問(wèn)題可能是下載的步驟不正確所致。只要注意設(shè)計(jì)中上面的步驟,再重新進(jìn)行調(diào)試,問(wèn)題就迎刃而解了。第五章 結(jié)論和改進(jìn)意見(jiàn)5.1 總結(jié)此次的畢業(yè)設(shè)計(jì),應(yīng)該說(shuō)是這幾年來(lái)的一個(gè)結(jié)果的體現(xiàn)吧,從開(kāi)始的選題到最后的完稿,中間經(jīng)歷了許多,從毫無(wú)頭緒到一點(diǎn)點(diǎn)的梳理完成,再到成竹在胸,是要付出許多的。我們有過(guò)許多不眠之夜,有過(guò)幾天不出宿舍的設(shè)計(jì)。本次的設(shè)計(jì)完全完成了
48、老師布置的任務(wù),而且在此基礎(chǔ)上我們又作出了拓展。改善了以往的單調(diào)的報(bào)警,同時(shí)在價(jià)值上也不可小計(jì),我們的紅外線報(bào)警已經(jīng)在理論和實(shí)踐中達(dá)到了和市面上的報(bào)警器相同的功能,甚至在有些地方已經(jīng)有所超越。我們的紅外線報(bào)警器不僅有現(xiàn)場(chǎng)聲光報(bào)警(這個(gè)報(bào)警是利用比較傳統(tǒng)的555電路做成的),而且還添加了上位機(jī)的部分。并且可以在上位機(jī)上實(shí)現(xiàn)聲音報(bào)警,和屏面報(bào)警(顯示界面上有個(gè)紅色圓形報(bào)警區(qū)域在報(bào)警時(shí)會(huì)不斷閃爍),我們?cè)O(shè)計(jì)的紅外線報(bào)警器設(shè)計(jì)的還比較的細(xì)致,他的功能很強(qiáng)大,它可以捕捉到一分一秒的報(bào)警,每一區(qū)的報(bào)警我們?cè)O(shè)計(jì)的報(bào)警器可以精確到幾點(diǎn)幾分幾秒。還有在報(bào)警的時(shí)候,我們還利用其他的軟件和音頻設(shè)備自己制作出了報(bào)警的
49、聲音。這個(gè)給我們的設(shè)計(jì)可以說(shuō)是增光添彩了。我們的紅外報(bào)警器有了這些優(yōu)點(diǎn)特色以后,完全可以有效防止不法分子的不法行為。完全完成了畢業(yè)設(shè)計(jì)的任務(wù)。欣喜之情自不必說(shuō)。付出了努力才會(huì)有所回報(bào)。此次的設(shè)計(jì)不僅在能力上得到了提升。而且在心理素質(zhì)上也得到了許多的鍛煉。5.2改進(jìn)建議當(dāng)然,人無(wú)完人,事無(wú)完事,我們?cè)O(shè)計(jì)的東西也一樣。此次的設(shè)計(jì)的產(chǎn)品由于時(shí)間的關(guān)系,只在實(shí)驗(yàn)設(shè)計(jì)中得以實(shí)現(xiàn),它的有效傳播距離由于條件限制,我們無(wú)法測(cè)量。在傳播距離這一塊,可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件實(shí)現(xiàn)。在軟件上我的主要思路就是利用PWM脈沖,發(fā)射紅外線去控制相應(yīng)的受控裝置時(shí),其控制的距離與發(fā)射功率成正比。為了增加紅外線的控制距離
50、,紅外發(fā)光二極管工作于脈沖狀態(tài),因?yàn)槊}動(dòng)光(調(diào)制光)的有效傳送距離與脈沖的峰值電流成正比,只需盡量提高峰值Ip,就能增加紅外光的發(fā)射距離。提高Ip的方法,是減小脈沖占空比,即壓縮脈沖的寬度,一些彩電紅外遙控器,其紅外發(fā)光管的工作脈沖占空比約為1/41/3;一些電氣產(chǎn)品紅外遙控器,其占空比是1/10。減小沖占空比還可使小功率紅外發(fā)光二極管的發(fā)射距離大大增加。常見(jiàn)的紅外發(fā)光二極管,其功率分為小功率(1mW10mW)、中功率(20mW50mW)和大功率(50mW100mW以上)三大類(lèi)。要使紅外發(fā)光二極管產(chǎn)生調(diào)制光,只需在驅(qū)動(dòng)管上加上一定頻率的脈沖電壓。由于時(shí)間的原因,我們做的還不夠完美,許多好的想法
51、都沒(méi)來(lái)得及實(shí)現(xiàn),比如,我們的液晶屏當(dāng)在某一區(qū)報(bào)警的時(shí)候,如果能實(shí)現(xiàn)字符的閃動(dòng),那就更好了,更能表達(dá)報(bào)警的效果。還有下面的字符,如果能夠?qū)崿F(xiàn)下面的固定的字符的滾動(dòng),那就會(huì)使,報(bào)警器“活”起來(lái)了,那樣看上去效果會(huì)更好。希望將來(lái)在有機(jī)會(huì)的話能夠完善它。理論和實(shí)踐的結(jié)合是需要時(shí)間的,這將在以后的社會(huì)實(shí)踐中再去完善吧。參考文獻(xiàn)周興華 編著 單片機(jī)智能化產(chǎn)品C語(yǔ)言設(shè)計(jì)實(shí)例詳解北京:北京航空航天大學(xué)出版社 2006年 田立 田清 貸方震 編著51 單片機(jī)C語(yǔ)言程序設(shè)計(jì)快速入門(mén) 北京 :人民郵電出版社 2006李江全 岑紅雷 編著Visual Basic 串口通信與測(cè)控應(yīng)用技術(shù)實(shí)戰(zhàn)詳解北京:人民郵電出版社 2
52、007毛玉良 張赤斌 編著微機(jī)系統(tǒng)原理及應(yīng)用 南京:東南大學(xué)出版社 2006魏立峰 王寶興 編著單片機(jī)原理與應(yīng)用北京:北京大學(xué)出版社 2006年8月楊將新.李震華 編著單片機(jī)程序設(shè)計(jì)及應(yīng)用從基礎(chǔ)到實(shí)踐電子工業(yè)出版社 2006年3月何立民 編著單片機(jī)實(shí)驗(yàn)與實(shí)踐教程三 北京航空航天大學(xué)出版社 2006年3月萬(wàn)光毅 遍著單片機(jī)實(shí)驗(yàn)與實(shí)踐教程一北京航空航天大學(xué)出版社 2006年3月汪文 陳林 編著單片機(jī)原理及運(yùn)用 華中科技大學(xué)出版社,2007年7月趙亮 侯國(guó)銳 編著 單片機(jī)C編程與實(shí)例人民郵電出版社 2003年7月肖來(lái)勝 馮建蘭 編著單片機(jī)技術(shù)實(shí)驗(yàn)教程華中科技大學(xué)出版社 2004年1月王為青 程國(guó)鋼 編著 單片機(jī)LEIL C51 應(yīng)用開(kāi)發(fā)技術(shù) 人民郵電出版社 2007年2 月 液晶模塊流程圖/*液晶顯示模塊*/#include /調(diào)用頭文件(單片機(jī)內(nèi)部的寄存器定義) sbit LCD_RS = P3 7;sbit LCD_RW = P3 6; sbit LCD_E = P3
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025北京車(chē)位租賃合同范本
- 《空氣的污染與凈化》課件
- 《國(guó)際市場(chǎng)營(yíng)銷(xiāo)策略分析》課件
- 2025精簡(jiǎn)版房屋交易合同范本
- 第八單元第二節(jié) 海水“曬鹽”教學(xué)設(shè)計(jì)-2023-2024學(xué)年九年級(jí)化學(xué)魯教版下冊(cè)
- 2025建筑工程材料采購(gòu)合同范本
- 2025網(wǎng)絡(luò)平臺(tái)會(huì)員商務(wù)技術(shù)服務(wù)合同
- 2025聯(lián)合市場(chǎng)推廣代理合同范本
- 2025電競(jìng)館網(wǎng)咖賓館裝修設(shè)計(jì)合同 官方版 模板
- 2025深圳經(jīng)濟(jì)特區(qū)房產(chǎn)租賃合同書(shū)
- 住院患者轉(zhuǎn)科交接登記本
- 說(shuō)課-青霉素皮試液的配置
- 無(wú)違法犯罪記錄證明申請(qǐng)表(個(gè)人)
- 農(nóng)村垃圾清運(yùn)投標(biāo)方案
- 涉密計(jì)算機(jī)安全策略
- 雨污水施工組織設(shè)計(jì)
- (6.3)-第三節(jié) 種子凈度分析
- 性激素六項(xiàng)的解讀 課件
- 漢語(yǔ)言文學(xué)專(zhuān)業(yè)自評(píng)報(bào)告
- 中建項(xiàng)目目標(biāo)成本測(cè)算操作指南
- 新課標(biāo)背景下:如何進(jìn)行大單元整體教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論