freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)無(wú)線電子點(diǎn)菜系統(tǒng)畢業(yè)設(shè)計(jì)論文設(shè)計(jì)論文基于畢業(yè)論文pcb圖畢業(yè)設(shè)計(jì)基于單片機(jī)pcb點(diǎn)菜系統(tǒng)點(diǎn)菜寶系統(tǒng)-資料下載頁(yè)

2025-11-20 11:04本頁(yè)面

【導(dǎo)讀】稱為中國(guó)的黃金產(chǎn)業(yè)。無(wú)線電子點(diǎn)菜系統(tǒng)是無(wú)線通信技術(shù)的典型應(yīng)用,把無(wú)線技術(shù)。用于餐飲業(yè)將會(huì)極大提高餐館的工作效率和服務(wù)質(zhì)量。論文給出了無(wú)線電子點(diǎn)菜系統(tǒng)的完整的硬件平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)方案。的協(xié)議來(lái)實(shí)現(xiàn)數(shù)據(jù)交換。設(shè)計(jì)的硬件平臺(tái)時(shí),首先詳細(xì)介紹了平臺(tái)將要用到的一些。芯片,然后使用Protel99SE設(shè)計(jì)出了系統(tǒng)的原理圖和PCB(PrintCircuitBroad,印刷。文中還附帶簡(jiǎn)要介紹了用到的軟件開發(fā)工具,以及系統(tǒng)的局限性,并提出了進(jìn)一步改進(jìn)的方案。遠(yuǎn)端,基本達(dá)到了論文的設(shè)計(jì)目的。

  

【正文】 同。使用 Keil uVision2 開發(fā)硬件驅(qū)動(dòng)程序,它支持眾多不同公司的 MCS51 架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和 C 語(yǔ)言的程序設(shè)計(jì),它的界面和常用的微軟 VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。因此很多開發(fā) 51 應(yīng)用的工程師或普通的單片機(jī)愛好者,都對(duì)它十分喜歡。51 的編程語(yǔ)言常用的有二種,一種是匯編語(yǔ)言,一種是 C 語(yǔ)言。匯編語(yǔ)言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而 C 語(yǔ)言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語(yǔ)言相當(dāng),但可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過(guò)匯編語(yǔ)言,而且 C 語(yǔ)言還可以嵌入?yún)R編來(lái)解決高時(shí)效性的代碼編寫問(wèn)題。對(duì)于開發(fā)周期來(lái)說(shuō),中大型的軟件編寫用 C 語(yǔ)言的開發(fā)周期通常要小于匯編語(yǔ)言很多。綜合以上 C 語(yǔ)言的優(yōu)點(diǎn),在開發(fā)時(shí)選擇了 C51 語(yǔ)言. 主機(jī)端硬件驅(qū)動(dòng)程序主機(jī)端的硬件驅(qū)動(dòng)程序主要有兩種功能:實(shí)現(xiàn)開發(fā)板通過(guò)串行口和 PC 機(jī)通信;實(shí)現(xiàn)開發(fā)板通過(guò)某些 I/O 口和無(wú)線數(shù)據(jù)傳輸模塊進(jìn)行通信。STC89C58RD+單片機(jī)的串行口是一個(gè)全雙工通信接口,即能同時(shí)進(jìn)行發(fā)送和接收,它可以作 UART 用,也可以作為同步移位寄存器用,其禎格式和波特率可以通過(guò)軟件編程來(lái)設(shè)置,在使用上非常方便。基于單片機(jī)的無(wú)線點(diǎn)菜系統(tǒng)的硬件設(shè)計(jì)及實(shí)現(xiàn) 第四章 硬件驅(qū)動(dòng)程序和串行口調(diào)試工具25STC89C58RD+單片機(jī)串行口的工作方式和波特率由控制寄存器 SCON 和特殊功能寄存器 PCON 組成。串行口控制寄存器 SCON:D7 D6 D5 D4 D3 D2 D1 D0SM0 SM1 SM2 REN TB8 RB8 TI RI特殊功能寄存器 PCON:D7 D6 D5 D4 D3 D2 D1 D0SMOD串行口可以通過(guò)軟件設(shè)置四種工作方式,各種工作方式的數(shù)據(jù)格式和波特率均有所不同,這四種工作方式如下:1. 方式 0當(dāng)設(shè)定 SMSM0 為 00 時(shí),串行口工作于方式 0,在方式 0 下,RXD 為數(shù)據(jù)輸入/輸出端,TXD 為同步脈沖輸出端,發(fā)送或接收的數(shù)據(jù)為 8 位,低位在前,高位在后,方式 0 的波特率固定震蕩頻率的 1 /12,也就是每一機(jī)器周期傳送一位數(shù)據(jù)。方式 0 可以外接移位寄存器,將串行口擴(kuò)展為并行口,也可以外接同步輸入/輸出設(shè)備。發(fā)送完畢后,硬件自動(dòng)將 TI 置 1。再次發(fā)送數(shù)據(jù)前,需要軟件將 TI 位清 0。REN 為 1 時(shí),單片機(jī)允許接收數(shù)據(jù)。RXD 為數(shù)據(jù)接收端,接受數(shù)據(jù)保存到 SBUF接收緩沖器中。發(fā)送完畢后,硬件自動(dòng)將 RI 置 1。再次接收數(shù)據(jù)前,需要通過(guò)軟件將 RI 清 0。2. 方式 1當(dāng)設(shè)定 SMSM0 為 01 時(shí),串行口工作方式 1。方式 1 為波特率可變的 8 位異步通信方式,由 TXD 發(fā)送 RXD 接收,一幀數(shù)據(jù)為 10 位,1 位起始位(低電平) ,8位數(shù)據(jù)位(低位在前)和 1 位停止位(高電平) ,波特率取決于定時(shí)器 的 T 溢出率(1/溢出周期)和波特率的選擇位 SMOD。 2 和方式 3 當(dāng)設(shè)定 SM0、SM1 為 10 或 11 時(shí),串行口工作于方式 2 或方式 3,這兩種方式都是 9 位異步通信,僅波特率不同,適用于多機(jī)通信。在方式 2 或方式 3 下,數(shù)據(jù)由TXD 發(fā)送 RXD 接收,1 幀數(shù)據(jù)為 11 位,1 位起始位(低電平) ,8 位數(shù)據(jù)位(低位在前) ,1 位可編程位(第 9 位數(shù)據(jù),用作奇偶校驗(yàn)或地址/數(shù)據(jù)選擇) ,1 位停止位(高電平) 。與方式 1 相比,多了一位可編程位,發(fā)送時(shí),第 9 位數(shù)據(jù)為 TB8,接收時(shí),第 9 位數(shù)據(jù)送入 RB8。 基于單片機(jī)的無(wú)線點(diǎn)菜系統(tǒng)的硬件設(shè)計(jì)及實(shí)現(xiàn) 第四章 硬件驅(qū)動(dòng)程序和串行口調(diào)試工具26通過(guò)以上單片機(jī)串行口各種工作方式的比較,由于使用一個(gè)開發(fā)板和 PC 機(jī)進(jìn)行單獨(dú)的通信,因此工作方式 1 比較適合系統(tǒng)的要求。通過(guò)設(shè)置合適的波特率和幀格式,來(lái)實(shí)現(xiàn)開發(fā)板和 PC 機(jī)之間準(zhǔn)確的數(shù)據(jù)傳遞。由于 PC 機(jī)和單片機(jī)的處理速度的不同,PC 機(jī)給開發(fā)板發(fā)送數(shù)據(jù)時(shí),單片機(jī)采用中斷的方式進(jìn)行數(shù)據(jù)接收。通過(guò)軟件設(shè)置單片機(jī)的傳輸屬性參數(shù)為“9600,N,8,1” ,來(lái)實(shí)現(xiàn)和 PC 機(jī)端串行口傳輸速率同步。開發(fā)板向 PC 機(jī)發(fā)送數(shù)據(jù)時(shí),采用查詢方式,這樣可以節(jié)省單片機(jī)有限的資源。開發(fā)板還要通過(guò)專門的接口和無(wú)線數(shù)據(jù)傳輸模塊進(jìn)行數(shù)據(jù)交換,由于系統(tǒng)設(shè)計(jì)為點(diǎn)對(duì)點(diǎn)通信,因此只使用了 nRF2401 一個(gè)信道。nRF2401 的數(shù)據(jù)傳輸方式為同步傳輸,因此使用普通的 I/O 口通過(guò)軟件方式模擬 SPI 方式傳輸。nRF2401 有四種工作模式:收發(fā)模式,配置模式,空閑模式和關(guān)機(jī)模式 [16][17]。工作模式由 PWR_UP 、CE、TX_EN 和 CS 三個(gè)引腳決定,詳見表 。表 nRF2401 的各種工作模式的設(shè)置方式工作模式 PWR_UP CE CS收發(fā)模式 1 1 0配置模式 1 0 1空閑模式 1 0 0關(guān)機(jī)模式 0 * *前文已經(jīng)講過(guò)有關(guān) nRF2401 的收發(fā)方式,這里重點(diǎn)討論一下它的配置方式。nRF2401 的所有配置工作都是通過(guò) CS、CLK1 和 DATA 三個(gè)引腳完成,把其配置為ShockBurstTM 收發(fā)模式需要 15 字節(jié)的配置字。ShockBurst TM 的配置字可以分為以下四個(gè)部分:(1) 數(shù)據(jù)寬度:聲明射頻數(shù)據(jù)包中數(shù)據(jù)占用的位數(shù)。這使得 nRF2401 能夠區(qū)分接收數(shù)據(jù)包中的數(shù)據(jù)和 CRC 校驗(yàn)碼;(2) 地址寬度:聲明射頻數(shù)據(jù)包中地址占用的位數(shù)。這使得 nRF2401 能夠區(qū)分地址和數(shù)據(jù);(3) 地址:接收數(shù)據(jù)的地址,有通道 1 的地址和通道 2 的地址;(4) CRC:使 nRF2401 能夠生成 CRC 校驗(yàn)碼和解碼。 nRF2401 的配置字如表 所示: 在配置模式下要保持 PWR_UP 引腳為高電平,CE 引腳為低電平,配置字從最高位開始,依次寫入 nRF2401。在 CS 引腳的下降沿,新送入的配置字開始工作。基于單片機(jī)的無(wú)線點(diǎn)菜系統(tǒng)的硬件設(shè)計(jì)及實(shí)現(xiàn) 第四章 硬件驅(qū)動(dòng)程序和串行口調(diào)試工具27表 nRF2401 的配置字位 位數(shù) 名字 功能143:12024 TEST 保留119:1128 DATA2_W 接收頻道 2 有效數(shù)據(jù)長(zhǎng)度111:1048 DATA1_W 接收頻道 1 有效數(shù)據(jù)長(zhǎng)度103:64 40 ADDR2 接收頻道 2 的地址,最高為 5 字節(jié)63:24 40 ADDR1 接收頻道 1 的地址,最高為 5 字節(jié)23:18 6 ADDR_W 接受頻道地址位數(shù)17 1 CRC_L 8 位或 16 位 CRC 校驗(yàn)ShockbBrst TM 配置16 1 CRC_EN 使能 CRC 校驗(yàn)15 1 RX2_EN 使能第二頻道14 1 CM 通信方式設(shè)置13 1 RFDR_SB 發(fā)射數(shù)據(jù)速率12:10 3 XO_F 晶震頻率9:8 2 RF_PWR 發(fā)射輸出電源7:1 7 RF_CH 頻道設(shè)置常用器件配置0 1 RX_EN 接收或發(fā)送操作開發(fā)板通過(guò)串行口和 PC 機(jī)交換數(shù)據(jù)的流程圖如下:開始初始化串行口循環(huán)等待觸發(fā)條件開發(fā)板上有鍵按下否 是RI=1否ACC=SBUF將數(shù)據(jù)在數(shù)碼管上顯示將數(shù)據(jù)發(fā)送到串口發(fā)送緩沖區(qū),關(guān)中斷TI=1?否基于單片機(jī)的無(wú)線點(diǎn)菜系統(tǒng)的硬件設(shè)計(jì)及實(shí)現(xiàn) 第四章 硬件驅(qū)動(dòng)程序和串行口調(diào)試工具28圖 開發(fā)板和 PC 機(jī)通過(guò)串行口交 換數(shù)據(jù)的流程圖開發(fā)板通過(guò) IO 口和無(wú)線數(shù)據(jù)傳輸模塊進(jìn)行數(shù)據(jù)交換的流程圖為圖 。圖 開發(fā)板通 過(guò) IO 口和無(wú)線數(shù)據(jù)傳輸模塊進(jìn)行數(shù)據(jù)交換的流程圖 移動(dòng)端驅(qū)動(dòng)程序移動(dòng)端的開發(fā)板的結(jié)構(gòu)和 PC 機(jī)端的開發(fā)板的結(jié)構(gòu)完全相同,但由于它不需要和 PC 機(jī)通信,只需要和無(wú)線數(shù)據(jù)傳輸模塊進(jìn)行通信。因此相對(duì)另一端的驅(qū)動(dòng)簡(jiǎn)單一些。具體編程規(guī)則在上一節(jié)已經(jīng)詳細(xì)敘述,這里不再多說(shuō),具體的程序是 PC 機(jī)端程序的一部分。 串行口調(diào)試工具串行口調(diào)試工具是用微軟公司的 visual c++[20][21]開發(fā)的。幾乎所有世界級(jí)的軟件,從業(yè)界領(lǐng)先的 Web 瀏覽器到面向任務(wù)的企業(yè)應(yīng)用,都是使用 Microsoft Visual C++開發(fā)系統(tǒng)來(lái)開發(fā)的。要用 C++來(lái)開發(fā) Windows 和 Web 上的高性能應(yīng)用程序,Visual C++是效率最高的首選工具。Visual C++ 在不犧牲靈活性、性能和控制力度的同時(shí),給 C++帶來(lái)了更高水平的生產(chǎn)效率。它具有可視化的界面,封裝了大量的類,使界面制作變的很簡(jiǎn)單,使用它可以方便快捷地開發(fā) Windows 環(huán)境下的應(yīng)用程序。visual c++ 專門為串行口通信提供了 Msm[20][21]控件,使用該控件程序員不必花時(shí)間去了解比較復(fù)雜的 API 函數(shù),通過(guò)簡(jiǎn)單修改控件的屬性和使發(fā)送完畢,開中斷開始配置 nRF2401 的工作方式循環(huán)等待觸發(fā)條件DR1=1否是有數(shù)據(jù)發(fā)送否將數(shù)據(jù)接收到開發(fā)板將數(shù)據(jù)發(fā)送到開發(fā)板是基于單片機(jī)的無(wú)線點(diǎn)菜系統(tǒng)的硬件設(shè)計(jì)及實(shí)現(xiàn) 第四章 硬件驅(qū)動(dòng)程序和串行口調(diào)試工具29用控件提供的方法就可以實(shí)現(xiàn)對(duì)串口的配置,完成串口發(fā)送和接收數(shù)據(jù)。 串行通信的基本原理串行端口的本質(zhì)功能是作為 CPU 和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU 經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。 在 Windows 環(huán)境下,串口是系統(tǒng)資源的一部分。 應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請(qǐng)要求(打開串口) ,通信完成后必須釋放資源(關(guān)閉串口) 。32 位下串口通信程序可以用兩種方法實(shí)現(xiàn):利用 ActiveX 控件;使用 API 通信函數(shù)。在本次課程設(shè)計(jì)中,所用到的是 MFC 的MSComm 控件,下面先將這個(gè)關(guān)鍵的控件做一下簡(jiǎn)單的介紹。Microsoft Communications Control(以下簡(jiǎn)稱 MSComm)是 Microsoft 公司提供的簡(jiǎn)化 Windows 下串行通信編程的 ActiveX 控件,為應(yīng)用程序提供串行通信功能,它為應(yīng)用程序提供了通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。MSComm 控件在串口編程時(shí)非常方便,其實(shí)際上是調(diào)用了 API 函數(shù),但我們不必再了解復(fù)雜的 API 函數(shù)就可控制串行通信。通信的過(guò)程,實(shí)際上是對(duì)屬性的操作和對(duì)控件事件的響應(yīng)。在 Windows 操作系統(tǒng)中,串行通信采用“事件通知”方式,支持?jǐn)?shù)據(jù)按塊傳送。進(jìn)行通信時(shí),Windows 開辟一個(gè)用戶定義的輸入輸出緩沖區(qū),每接收一個(gè)字符就產(chǎn)生一個(gè)低級(jí)硬件中斷,串行驅(qū)動(dòng)程序立即取得控制權(quán),并將字符放入輸入數(shù)據(jù)緩沖區(qū),然后將控制權(quán)返還正在運(yùn)行的應(yīng)用程序。如果輸入數(shù)據(jù)緩沖區(qū)滿了,驅(qū)動(dòng)程序用當(dāng)前定義的流控制機(jī)制通知發(fā)送方停止發(fā)送數(shù)據(jù)。發(fā)送數(shù)據(jù)也采用類似的處理方式,應(yīng)用程序?qū)⑿枰l(fā)送的數(shù)據(jù)放入輸出數(shù)據(jù)緩沖區(qū),串口每發(fā)送一個(gè)字符就產(chǎn)生一個(gè)低級(jí)硬件中斷。Visual C++ 通信控件 Msm 提供了功能完善的串口數(shù)據(jù)的發(fā)送和接收功能,Msm 控件具有兩種處理方式:一是事件驅(qū)動(dòng)(Event-driven)方法,一是查詢法。1)事件驅(qū)動(dòng)方式。當(dāng)通信事件發(fā)生時(shí),MSCOMM 控件會(huì)觸發(fā) OnComm 事件,調(diào)用者可以捕獲該事件,通過(guò)檢查其 CommEvent 屬性便可確認(rèn)發(fā)生的是哪種事件或錯(cuò)誤,從而進(jìn)行相應(yīng)的處理。這種方法的優(yōu)點(diǎn)是響應(yīng)及時(shí)、可靠性高。 2)查詢方式。在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)檢查 CommEvent 屬性的值來(lái)查詢事件和錯(cuò)誤。如果應(yīng)用程序較小,這種方法可能更可取。例如,如果寫一個(gè)簡(jiǎn)單的電話撥號(hào)程序,則沒有必要每接收 1 個(gè)字符都產(chǎn)生事件,因?yàn)槲┮坏却邮盏淖址钦{(diào)制解調(diào)器的確定響應(yīng)。在使用 MSCOMM 控件時(shí),1 個(gè) MSCOMM 控件只能同時(shí)對(duì)應(yīng) 1 個(gè)串口。如果應(yīng)用程序需要訪問(wèn)和控件多個(gè)串口,那么必須使用多個(gè) MSCOMM 控件。 在 VC++中,MSCOMM 控件只對(duì)應(yīng)著 1 個(gè) C++類CMSComm。由于 MSCOMM 控件本身沒有提供方法,所以 CMSComm 類除了 Create()成員函數(shù)外,其他的函數(shù)都是基于單片機(jī)的無(wú)線點(diǎn)菜系統(tǒng)的硬件設(shè)計(jì)及實(shí)現(xiàn) 第四章 硬件驅(qū)動(dòng)程序和串行口調(diào)試工具30Get/Set 函數(shù)對(duì),用來(lái)獲取或設(shè)置控件的屬性。MSCOMM 控件也只有 1 個(gè) OnComm 事件,用來(lái)向調(diào)用者通知有通信事件發(fā)生。 MSCOMM 控件有許多很重要的屬性,限于篇幅只給出幾個(gè)較為重要和常用的屬性。表 MSCOMM 控件的重要屬性屬 性 說(shuō) 明CommPort 通信端口號(hào)Settings 以字符串形式表示的波特率、奇偶校驗(yàn)、數(shù)據(jù)位PortOpen 通信端口的狀態(tài),打開或是關(guān)閉Input 接收數(shù)據(jù)Output 發(fā)送數(shù)據(jù)InputMode 接收數(shù)據(jù)的類型:0 為文本;1 為二進(jìn)制 表 程序中用到的所有控件,以及它們的 ID控件 ID 標(biāo)題按鈕 ID_SEND 發(fā)送按鈕 ID_CLEAR 清空編輯框 IDC_EDIT_SEND編輯框 IDC_EDIT_RCV靜態(tài)文本 IDC_STATIC 接收緩沖區(qū)靜態(tài)文本 IDC_STATIC 發(fā)送緩沖區(qū)組框 IDC_STATIC 端口選擇單選按鈕 IDC_1 端口 1單選按鈕 IDC_
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1