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

正文內(nèi)容

基于pc機控制的led顯示屏的設(shè)計畢業(yè)論文(編輯修改稿)

2024-07-16 12:37 本頁面
 

【文章內(nèi)容簡介】 74LS154行驅(qū)動模塊第四章 系統(tǒng)軟件設(shè)計隨著科技的發(fā)展,現(xiàn)代化的生產(chǎn)對智能化的要求越來越高,如何迅速獲取現(xiàn)場數(shù)據(jù)以便及時對生產(chǎn)過程進行調(diào)控,是其關(guān)鍵所在?,F(xiàn)在大量的智能儀器或數(shù)據(jù)采集模塊都采用了RS—232或485通訊接口,通過相應(yīng)的通訊協(xié)議,將測試、采集的數(shù)據(jù)傳輸給上位機,以滿足各種形式的數(shù)據(jù)處理的要。VisualBasic6.0(以下簡VB)是許多工程技術(shù)人員熟悉和常用的應(yīng)用程序開發(fā)軟件,VB以其簡單易學(xué)、32位面向?qū)ο蟮某绦蛟O(shè)計等特點,倍受廣大計算機開發(fā)者的青睞,已廣泛地應(yīng)用于各個領(lǐng)域;如何用VB編寫數(shù)據(jù)通訊程序,并進行數(shù)據(jù)處理,意義重大。 用VB開發(fā)串口通訊一般有兩種方法:一是采用VB自身的標準控件MSComm來實現(xiàn);另一種是利用windows的通訊API函數(shù)。在單片機系統(tǒng)中,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上對其合理的調(diào)配和使用,從而完成應(yīng)用系統(tǒng)所要完成的任務(wù)。軟件的設(shè)計是設(shè)計控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在總體設(shè)計和硬件設(shè)計的基礎(chǔ)上,確定程序結(jié)構(gòu),分配內(nèi)RAM資源,劃分功能模塊,然后進行主程序和各模塊程序的設(shè)計,最后連接起來成為一個完整的應(yīng)用程序。在進行系統(tǒng)總體設(shè)計時,曾經(jīng)規(guī)劃過軟件結(jié)構(gòu),但由于硬件系統(tǒng)尚未仔細確定,軟件結(jié)構(gòu)框圖十分粗糙,當硬件設(shè)計接口擴展及各功能模塊與CPU連接關(guān)系確定后,就能夠具體明確對軟件設(shè)計的要求。本設(shè)計的LED顯示屏軟件的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號,使屏幕按設(shè)計的要求顯示。根據(jù)軟件分層次設(shè)計的原理,可把顯示屏的軟件系統(tǒng)分成兩大層:第一層是底層的顯示驅(qū)動程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動程序負責(zé)向屏體送顯示數(shù)據(jù),并負責(zé)產(chǎn)生行掃描信號和其它控制信號,配合完成LED顯示屏的掃描顯示工作。顯示驅(qū)動程序由定時器T0中斷程序?qū)崿F(xiàn)。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、顯示效果處理等工作,由主程序來實現(xiàn)。從有利于實現(xiàn)語言的直觀,易于記憶和檢查,可讀性較好和使語言程序占用較少的單片機存儲空間,實時處理系統(tǒng)可以快速的執(zhí)行指令的角度考慮,本設(shè)計中顯示屏程序采用匯編語言編寫。 使用C 語言肯定要使用到C 編譯器,以便把寫好的C 程序編譯為機器碼,這樣單片機才能執(zhí)行編寫好的程序。 KEIL uVISION3 是眾多單片機應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51 架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時還支持, PLM,匯編和C 語言的程序設(shè)計,它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強大的功能。 軟件的選擇 方案一:采用匯編語言編程,由于匯編語言是比較低層的開發(fā)語言,它要求開發(fā)者非常熟悉單片機的硬件結(jié)構(gòu),存儲器結(jié)構(gòu)等等。加上匯編語言可讀性差,一般人是很難看懂的。還有也是比較致命的一點,可移植性比較差,所以使用匯編語言編程將需要大量的時間用于軟件的編寫和調(diào)試。 方案二:采用C語言編程,它不要求開發(fā)者深入了解單片機和硬件接口的結(jié)構(gòu),編譯器自動完成變量的存儲單元的分配,可讀性比較好,可移植性強,這是C語言最大的優(yōu)勢。而且現(xiàn)在很多編譯器都能很好的支持C語言的編譯和調(diào)試?;谝陨戏治?,我們決定采用方案二。 方案一:采用網(wǎng)上下載的上位機控制傳輸軟件,由于他人制作的上位機軟件具有局限性,功能也達不到自己的要求,用起來也不方便。不能很好的體現(xiàn)系統(tǒng)的功能。 方案二:采用自己編寫的上位機軟件,不僅功能上可以滿足系統(tǒng)控制需要,并且通信協(xié)議可以自己給定,能更好的完成信息的交換。 基于以上分析,我們決定采用方案二。系統(tǒng)主程序的總體結(jié)構(gòu)如圖41所示。系統(tǒng)的主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時器、中斷和端口;然后LED顯示屏進入開機狀態(tài),轉(zhuǎn)入正常的顯示。首先是向上滾動顯示“單片機是工業(yè)中最基本的應(yīng)用方式”15個漢字,;接著再向上滾動顯示“我愛單片機”這5個漢字。由于單片機沒有停機指令,所以可以設(shè)置系統(tǒng)程序不斷地循環(huán)執(zhí)行上述顯示效果。系統(tǒng)程序結(jié)構(gòu)屬中斷方式,絕大多數(shù)功能在中斷服務(wù)子程序中完成。根據(jù)總體結(jié)構(gòu),可將程序劃分為幾個功能化模塊:串行口中斷服務(wù)程序、多字滾動顯示子程序、單字顯示子程序、掃描程序。各個模塊可進行獨立設(shè)計、調(diào)試和查錯,最終再連接成一個整體。這樣可方便程序調(diào)用,程序整體層次清晰,結(jié)構(gòu)一目了然,方便閱讀。圖42為顯示驅(qū)動程序(顯示屏掃描函數(shù))流程圖。根據(jù)流程圖可以編寫出相應(yīng)的顯示程序。顯示驅(qū)動程序在進入中斷后首先要對定時器T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀頻)計算公式如下:刷新率(幀頻)=T0溢出率 =其中f為晶振頻率,t為定時器T0初值(工作在16位定時器模式)。T0初值=2-其中N與工作方式有關(guān),本設(shè)計定時/計數(shù)器工作于方式1,如圖43所示,方式1構(gòu)成一個16位定時計數(shù)器,即N=16。方式1最大計數(shù)值為216=65536 ,若fosc=12MHz,則定時時間范圍為1~65536μs。機周時間與主振頻率有關(guān),機器周期是時鐘周期的12倍,因此,機周時間=12/ fosc。當fosc=12MHz時,1機周=1μs。 圖43 定時/計數(shù)器T0工作方式1邏輯電路結(jié)構(gòu)圖 然后顯示驅(qū)動程序查詢當前燃亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時候產(chǎn)生拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。顯示程序給出了各控制信號和顯示數(shù)據(jù),其作用及相互配合關(guān)系均已在硬件部分作過介紹,相應(yīng)的程序部分在清單的注釋區(qū)內(nèi)分別進行了說明,在此不再一一詳述。1串口的定義串口是計算機上一種非常通用設(shè)備通信的協(xié)議。大多數(shù)計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS—232口。同時,串口通信協(xié)議可以用于獲取遠程采集設(shè)備的數(shù)據(jù)。 串口通信(Serial Communications)的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè)備線總長不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口而言,長度可達1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:①地線,②發(fā)送,③接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進行通信的端口,這些參數(shù)必須匹配。 a波特率:這是一個衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個數(shù)。例如300波特表示每秒鐘發(fā)送300個bit。當我們提到時鐘周期時,我們就是指波特率例如如果協(xié)議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠遠大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。 b數(shù)據(jù)位:這是衡量通信中實際數(shù)據(jù)位的參數(shù)。當計算機發(fā)送一個信息包,實際的數(shù)據(jù)不會是8位的,標準的值是7和8位。如何設(shè)置取決于你想傳送的信息。比如,標準的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡單的文本(標準 ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗位。由于實際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語“包”指任何通信的情況。 c停止位:用于表示單個包的最后一位。典型的值為1。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。 d奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位為1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。RS232(ANSI/EIA232標準)是IBMPC及其兼容機上的串行連接標準??捎糜谠S多用途,比如連接鼠標、打印機或者Modem,同時也可以接工業(yè)儀器儀表。用于驅(qū)動和連線的改進,實際應(yīng)用中RS232的傳輸長度或者速度常常超過標準的值。RS232只限于PC串口和設(shè)備間點對點的通信。RS232串口通信最遠距離是50英尺。 在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。 RS232(ANSI/EIA232標準)是IBMPC及其兼容機上的串行連接標準。可用于許多用途,比如連接鼠標、打印機或者Modem,同時也可以接工業(yè)儀器儀表。用于驅(qū)動和連線的改進,實際應(yīng)用中RS232的傳輸長度或者速度常常超過標準的值。RS232只限于PC串口和設(shè)備間點對點的通信。RS232串口通信最遠距離是50英尺。 主要任務(wù)是負責(zé)接收上位機控制命令和數(shù)據(jù),同時也負責(zé)對單片機信息采集通過串口返回給上位機。本系統(tǒng)采用了MAX232電平轉(zhuǎn)換電路實現(xiàn)了上位機的通信難題,MAX232具有短距離傳輸穩(wěn)定行好的功能。MAX232是由德州儀器公司(TI)推出的一款兼容RS232標準的芯片。由于電腦串口RS232電平是10V +10V,而一般的單片機應(yīng)用系統(tǒng)的信號電壓是TTL電平0 +5V,MAX232就是用來進行電平轉(zhuǎn)換的,該器件包含2個驅(qū)動器、2個接收器和一個電壓發(fā)生電路提供TIA/EIA232F電平。在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現(xiàn),如一條發(fā)送線、一條接收線及一條地線。 MAX232是標準的串口通信接口,對于一般的雙向通訊,只需要使用串行輸入口RXD(第12腳)、串行輸出TXD(第11腳)和地線(第10腳)。 串行通訊的方式有異步通訊和同步通訊方式,這里簡單介紹異步通信方式:異步通訊用一個起始位表示字符的開始,用停止位表示字符的結(jié)束。其每幀的格式如下: 在一幀格式中,先是一個起始位0,然后是8個數(shù)據(jù)位,規(guī)定低位在前,高位在后,接下來是奇偶校驗位(可以省略),最后是停止位1。用這種格式表示字符,則字符可以一個接一個地傳送。一、上位機對單片機的通信協(xié)議上位機與主機的通信采用標準的RS232通信,我們設(shè)置波特率為9600b/s,一位停止位,一位起始位,無校驗位等作為RS232協(xié)議。上位機通信數(shù)據(jù)幀格式,上位機在發(fā)送數(shù)據(jù)之間先發(fā)送命令字,如“設(shè)置時間”就會在時間前加上命令“ST”,在6位時間數(shù)據(jù)后面加上‘\n’,表示一幀數(shù)據(jù)信息發(fā)送結(jié)束, 命令和數(shù)據(jù)之間有空格,這在命令解析中很重要。單片機收到上位機發(fā)過來的數(shù)據(jù),首先存儲數(shù)據(jù),直到收到‘\n’,將處理收到的數(shù)據(jù),然后解析命令字,根據(jù)命令字調(diào)用相關(guān)處理函數(shù)。其他命令的處理基本類似,只是各命令都有自己獨立的處理函數(shù)和不同的命令字。 圖410 單片機接收命令流程圖 圖411 上位機接收信息流程圖二、單片機對上位機的通信協(xié)議單片機對上位機的通信主要是要發(fā)送實時時間,日期,星期,溫度等,以完成在上位機相應(yīng)的顯示。單片機對上位機通信協(xié)議,在發(fā)送數(shù)據(jù)之前會添加標示符,如時間數(shù)據(jù)的話用‘T’做標示符,在數(shù)據(jù)后加上‘\n’,表示數(shù)據(jù)信息
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1