第一篇:《嵌入式系統(tǒng)》課程設(shè)計題目
《嵌入式系統(tǒng)》
課程設(shè)計題目及要求
設(shè)計報告要求:
1.課題研究意義、現(xiàn)狀及應(yīng)用分析; 2.課題總體方案設(shè)計及功能模塊介紹; 3.系統(tǒng)硬件平臺及接口設(shè)計;
4.系統(tǒng)軟件功能設(shè)計,包括必要的注釋; 5.總結(jié)、心得體會; 6.附主要的參考文獻。
課程設(shè)計題目:(以下題目僅供參考,可自擬題目)
基于ARM的LED點陣顯示系統(tǒng)的設(shè)計與實現(xiàn)
要求:在ARM開發(fā)平臺下,實現(xiàn)接收串口發(fā)送的數(shù)據(jù),在16*16的點陣屏上顯示,按鍵上設(shè)置幾個固定顯示內(nèi)容,當按下相應(yīng)的按鍵時,點陣屏上顯示相應(yīng)的內(nèi)容。
基于ARM的環(huán)境監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)
要求:在ARM開發(fā)平臺下,實現(xiàn)采集環(huán)境的溫度、濕度、煙霧等參數(shù)的設(shè)定,在液晶屏上顯示出來?;贏RM的步進電機控制系統(tǒng)的設(shè)計與實現(xiàn)
要求:在ARM開發(fā)平臺下,實現(xiàn)步進電機的驅(qū)動,可通過實驗平臺上的電位器調(diào)整電機的轉(zhuǎn)速,或者用按鍵控制電機的運轉(zhuǎn)。ARM實驗平臺的Android移植
要求:將開源的Android平臺移植到ARM實驗平臺下。
基于ARM的CAN總線通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺CAN通信程序,實現(xiàn)兩個ARM平臺或ARM與其它設(shè)備的CAN通信。可將CAN總線接收到的數(shù)據(jù)通過串口輸出,同時可將串口接收到的數(shù)據(jù)通過CAN總線接口發(fā)送出去。
基于ARM的RS485通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編程RS485通信程序,實現(xiàn)兩個ARM平臺或ARM與PC機之間RS485通信。
基于ARM的嵌入式Web服務(wù)器設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下移植一個嵌入式Web服務(wù)器(如BOA或THTTPD),并實現(xiàn)基于ARM平臺的Web動態(tài)網(wǎng)頁監(jiān)測系統(tǒng)。
基于ARM的嵌入式數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺下編寫ADC接口的模入/模出程序,實現(xiàn)基于ARM平臺的嵌入式3路模擬信號的數(shù)據(jù)采集,并將采集到的數(shù)據(jù)通過串口或液晶 輸出結(jié)果。
基于ARM的無線數(shù)據(jù)終端設(shè)計
要求:用ARM處理器作為主控器,與GPRS模塊進行通信,能夠?qū)崿F(xiàn)收發(fā)短信、撥打接聽電話、連接數(shù)據(jù)服務(wù)器等功能?;贏RM的無線數(shù)據(jù)采集系統(tǒng)設(shè)計
要求:用ARM處理器作為主控器,與GPRS模塊進行通信,通過發(fā)送短信到平臺上獲取平臺采集到的數(shù)字量信息(溫度、濕度、電壓等信息)?;谇度胧较到y(tǒng)的無線傳感器網(wǎng)絡(luò)的應(yīng)用研究
要求:(無線傳感器網(wǎng)絡(luò)是集成了傳感器、嵌入式系統(tǒng)、網(wǎng)絡(luò)和無線通信四大技術(shù)而形成的一種全新的信息獲取和處理技術(shù),它是一種新型的無基礎(chǔ)設(shè)施的無線網(wǎng)絡(luò),能夠?qū)崟r監(jiān)測、感知和采集各種環(huán)境或監(jiān)測對象的信息,并對其進行處理、傳送到需要這些信息的用戶)基于UcosII在ARM平臺上的移植 要求:將UcosII移植到ARM9或者ARM11平臺上
MPlayer播放器在ARM9(或ARM11)平臺上的移植與實現(xiàn)
基于ARM的建議GUI的設(shè)計
要求:設(shè)計一個簡易的GUI界面,在ARM平臺下運行,并實現(xiàn)簡單的交互。
基于ARM的TCP網(wǎng)絡(luò)通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫以太網(wǎng)接口的TCP通訊程序,要求:將MPlayer播放器移植到ARM平臺上,并且能夠運行 實現(xiàn)兩個ARM平臺或ARM與PC機之間的TCP協(xié)議通訊系統(tǒng)。
基于ARM的UDP網(wǎng)絡(luò)通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫以太網(wǎng)接口的UDP通訊程序,實現(xiàn)兩個ARM平臺或ARM與PC機之間的UDP協(xié)議通訊系統(tǒng)。
基于ARM和MiniGUI的嵌入式圖形用戶界面設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,采用MiniGUI圖形界面編程方法,實現(xiàn)基于ARM平臺和MiniGUI圖形界面的嵌入式測控操作平臺。
基于ARM和QT的嵌入式圖形用戶界面設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,采用QT圖形界面編程方法,實現(xiàn)基于ARM平臺和QT圖形界面的嵌入式測控操作平臺。
基于ARM和Linux的步進電機控制系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,編程實現(xiàn)基于ARM平臺的步進電機控制系統(tǒng)方案。
基于ARM和Linux的直流電機控制系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,編程實現(xiàn)基于ARM平臺的直流電機控制系統(tǒng)方案?;贏RM和Linux的CAN總線通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫CAN總線通信程序,實現(xiàn)兩個ARM平臺或ARM與PC機之間CAN總線通信。
基于ARM和Linux的CAN總線遠程監(jiān)控系統(tǒng)研究與設(shè)計
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫CAN總線通信程序,并設(shè)計和實現(xiàn)一個基于ARM平臺CAN總線遠程監(jiān)控系統(tǒng)。
基于ARM的視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,采用USB接口的攝像頭模塊,設(shè)計和實現(xiàn)基于ARM平臺視頻監(jiān)控系統(tǒng)。
基于ARM的Modbus/TCP主站協(xié)議程序設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,基于ARM平臺的RJ-45以太網(wǎng)接口,設(shè)計和實現(xiàn)基于ARM平臺Modbus/TCP主站協(xié)議程序,該Modbus/TCP主站協(xié)議可與基于ARM平臺或PC機的Modbus/TCP從站協(xié)議實現(xiàn)通訊。
基于ARM的Modbus/TCP從站協(xié)議程序設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,基于ARM平臺的RJ-45以太網(wǎng)接口,設(shè)計和實現(xiàn)基于ARM平臺Modbus/TCP從站協(xié)議程序,該Modbus/TCP從站協(xié)議可與基于ARM平臺或PC機的Modbus/TCP主站協(xié)議實現(xiàn)通訊?;贏RM和Linux的嵌入式測控系統(tǒng)研究與設(shè)計
要求:在嵌入式ARM平臺及Linux環(huán)境下,可在ARM平臺的AD/DA、串口、以太網(wǎng)接口、CAN總線接口等基礎(chǔ)上,采用QT或MiniGUI圖形用戶編程方法,設(shè)計和實現(xiàn)基于ARM平臺和Linux的嵌入式綜合測控系統(tǒng)。
Mplay在Linux平臺下的移植與實現(xiàn)
要求:將Mplayer移植到嵌入式實驗平臺下,可實現(xiàn)視頻和音頻文件的播放。
基于S3C2410/S3C2440的嵌入式Web服務(wù)器Boa移植
要求:將實驗箱或開發(fā)板連接到網(wǎng)絡(luò)中,可以通過計算機訪問到開發(fā)板上的靜態(tài)網(wǎng)頁。
1.ARM-Linux 嵌入式系統(tǒng)在農(nóng)業(yè)大棚中的應(yīng)用(溫度、濕度和二氧化碳濃度是影響棚栽農(nóng)作物生長的3 大要素。為了實現(xiàn)農(nóng)業(yè)大棚中這3 種要素數(shù)據(jù)的遠程實時采集,引入了當前嵌入式應(yīng)用中較為成熟的ARM9 微處理器和Linux 嵌入式操作系統(tǒng)技術(shù), 采用溫度傳感器PH100TMPA、濕度傳感器HM1500 和二氧化碳濃度傳感器NAP221A ,設(shè)計一種基于TCP/ IP 協(xié)議的嵌入式遠程實時數(shù)據(jù)采集系統(tǒng)方案。從硬件設(shè)計和軟件實現(xiàn)2 方面對該系統(tǒng)進行具體設(shè)計。)
2.ARM系統(tǒng)在LED顯示屏中的應(yīng)用(利用ARM系統(tǒng)控制彩色LED顯示屏)
3.ARM 嵌入式處理器在智能儀器中的應(yīng)用(設(shè)計一種基于ARM 嵌入式處理器系統(tǒng)的智能儀器的硬件和軟件設(shè)計方案, 并結(jié)合uc/o s2II或者 Linux嵌入式實時操作系統(tǒng), 給出一套完整的任務(wù)調(diào)度和管理的方法, 最后用實例說明)
4.ARM系統(tǒng)在汽車制動性能測試系統(tǒng)中的應(yīng)用(采用ARM系統(tǒng)構(gòu)建一個路試法的汽車制動性能測試系統(tǒng))
5.ARM 嵌入式控制器在印染設(shè)備監(jiān)控中的應(yīng)用(針對拉幅熱定型機,設(shè)計一種基于485 總線的分布式監(jiān)控系統(tǒng)。用ARM 嵌入式控制器實現(xiàn)主、從電機的同步運行和烘房溫度的控制;在PC 機上用VB6.0 設(shè)計轉(zhuǎn)速和溫度的監(jiān)控畫面;實現(xiàn)ARM、變頻器和PC 機之間的數(shù)據(jù)通信。)
6.基于ARM系統(tǒng)的公交車多功能終端的設(shè)計(完成電子收費、報站、GPS定位等功能)
7.基于ARM9的雙CAN總線通信系統(tǒng)的設(shè)計(設(shè)計一種基于ARM9內(nèi)核微處理器的雙路CAN總線通信系統(tǒng)。完成系統(tǒng)的總體結(jié)構(gòu)、部分硬件的設(shè)計,系統(tǒng)嵌入式軟件的設(shè)計,包括啟動引導(dǎo)代碼U214118操作系統(tǒng)內(nèi)核、文件系統(tǒng)以及用戶應(yīng)用管理軟件四個部分。)
8.基于ARM9 和Linux 的嵌入式打印終端系統(tǒng)(嵌入式平臺上的打印終端的外圍電路連接設(shè)計、嵌入式Linux 的打印機驅(qū)動程序開發(fā)和應(yīng)用程序的開發(fā))9.基于ARM 的車載GPS 終端軟硬件的研究(重點研究基于ARM 的導(dǎo)航系統(tǒng)的軟硬件設(shè)計)10.ARM系統(tǒng)在B超系統(tǒng)中的應(yīng)用(完成系統(tǒng)軟件硬件設(shè)計,包括外圍電路)
11.基于ARM 的嵌入式系統(tǒng)在機器人控制系統(tǒng)中應(yīng)用(提出一種基于ARM、DSP 和arm-linux 的嵌入式機器人控制系統(tǒng)的設(shè)計方法, 完成控制系統(tǒng)的功能設(shè)計、結(jié)構(gòu)設(shè)計、硬件設(shè)計、軟件設(shè)計)
12.基于ARM的視頻采集系統(tǒng)設(shè)計(完成系統(tǒng)軟件硬件設(shè)計,包括外圍電路,采用USB接口的攝像頭)13.基于ARM的高空爬壁機器人控制系統(tǒng)(構(gòu)建一種經(jīng)濟型的爬壁機器人控制平臺, 與上位機視覺定位和控制系統(tǒng)結(jié)合,使其適用于導(dǎo)航與定位、運動控制策略、多機器人系統(tǒng)體系結(jié)構(gòu)與協(xié)作機制等領(lǐng)域。)14.基于ARM 嵌入式系統(tǒng)的擬人機器人控制器的設(shè)計(提出在擬人機器人控制器的設(shè)計中使用ARM 9 處理器S3C2410 和RT2Linux構(gòu)建小型擬人機器人控制器的系統(tǒng)架構(gòu), 從硬件和軟件上實現(xiàn)以擬人機器人的行走的控制。)
15.基于ARM嵌入式系統(tǒng)的軟測量應(yīng)用(在基于Windows CE或者Linux操作系統(tǒng)的ARM嵌入式系統(tǒng)上實現(xiàn)一套通用工業(yè)過程軟儀表。選用ARM嵌入式系統(tǒng)作為硬件平臺, 基于普通PC 機上的嵌入式應(yīng)用軟件開發(fā)包EmbededVC + + 開發(fā), 應(yīng)用雙重RBF 神經(jīng)網(wǎng)絡(luò)的模型作為軟測量的數(shù)學(xué)模型。該軟件包采用面向?qū)ο蟮能浖w系結(jié)構(gòu),模塊可以劃分為系統(tǒng)調(diào)度、數(shù)據(jù)預(yù)處理、系統(tǒng)組態(tài)、核心算法、通訊和人機界面等6 個模塊。)
16.基于CAN與嵌入式Linux的經(jīng)濟型數(shù)控系統(tǒng)(設(shè)計了一種基于CAN總線的嵌入式L inux215D數(shù)控系統(tǒng),要求系統(tǒng)具有很好的開放性, 分布性和實時性)
17.基于ARM和GPRS的無線數(shù)據(jù)通信系統(tǒng)設(shè)計(完成基于ARM和GPRS的無線數(shù)據(jù)通信系統(tǒng)的軟件硬件設(shè)計)
18.基于S3C2410平臺與嵌入式Linux 的圖像采集應(yīng)用(在基于嵌入式Linux 系統(tǒng)的S3C2410平臺和在平臺上進行開發(fā)所需的軟件環(huán)境上實現(xiàn)圖像采集這一應(yīng)用,完成圖像采集程序的實現(xiàn),和JPEG 壓縮的實現(xiàn)。)
19.基于uC/OSⅡ和ARM 芯片L PC2119 的基礎(chǔ)上,研究μC/ OS-Ⅱ在魚雷制導(dǎo)系統(tǒng)中的應(yīng)用,成為系統(tǒng)軟件和硬件設(shè)計)國防生 109.嵌入式系統(tǒng)設(shè)計中FLASH 存儲器的應(yīng)用研究(利用嵌入式微控制器實現(xiàn)對FLASH 的讀取、編程和擦除操作, 為嵌入式系統(tǒng)功能擴展解決存儲空間不足的瓶頸問題, 提供一個可靠的解決方案,完成系統(tǒng)的軟件和硬件設(shè)計)
110.嵌入式系統(tǒng)網(wǎng)絡(luò)接口模塊設(shè)計(采用高速高性能的L PC2132 微控制器與以太網(wǎng)控制器ENC28J 60 和接口芯片MAX232 相連接實現(xiàn)網(wǎng)絡(luò)接口模塊軟件和硬件設(shè)計)
111.嵌入式系統(tǒng)網(wǎng)絡(luò)接口模塊設(shè)計(設(shè)計基于TCP/IP的網(wǎng)絡(luò)接口模塊的軟件和硬件設(shè)計)
112.嵌入式系統(tǒng)在DSP 與網(wǎng)絡(luò)接口中的應(yīng)用研究(根據(jù)嵌入式系統(tǒng)組成及其特點, 完成嵌入式系統(tǒng)在DSP與網(wǎng)絡(luò)接口中的軟件和硬件設(shè)計)
113.嵌入式系統(tǒng)在EPON系統(tǒng)開發(fā)中的應(yīng)用研究(以PASSAVE公司提供的EPON解決方案為基礎(chǔ),利用PASSAVE公司的MAC控制芯片APS5001和APS6201開發(fā)OTL和ONU,對EPON的實際應(yīng)用進行研究)114.嵌入式系統(tǒng)在LED大屏幕異步控制器中的應(yīng)用研究(設(shè)計一款基于32位高性能ARM處理器和uC/OS-II的LED大屏幕異步控制器,充分利用uC/OS-II高效的多任務(wù)管理功能和ARM處理器強大的運算能力,實現(xiàn)單屏幕多窗口的任意位置顯示,使得屏幕顯示內(nèi)容變得更加豐富,顯示方式變得更加靈活)115.基于嵌入式系統(tǒng)的VGT:(variablegeometieturbine)渦輪增壓器控制器的應(yīng)用研究(對SOCP用于VGT等現(xiàn)代工業(yè)控制進行一些研究,包括嵌入式處理器系統(tǒng)、接口系統(tǒng)、DSP系統(tǒng)、數(shù)字通信系統(tǒng)、存儲電路及數(shù)字系統(tǒng))
116.嵌入式系統(tǒng)在變電站繼電器保護系統(tǒng)中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件的設(shè)計)117.嵌入式系統(tǒng)在變電站綜合自動化系統(tǒng)中的應(yīng)用研究(本裝置主要用于企業(yè)內(nèi)部變電站電力線路保護的應(yīng)用,設(shè)計一種基于ARM和嵌入式實時操作系統(tǒng)的微機線路保護裝置,實現(xiàn)保護、測量和通信功能)118.嵌入式系統(tǒng)在車輛導(dǎo)航監(jiān)控系統(tǒng)中的應(yīng)用研究(結(jié)合GPS全球衛(wèi)星定位技術(shù)、GIS地理信息處理技術(shù)、CDMA數(shù)據(jù)通信技術(shù)以及嵌入式系統(tǒng)等高新技術(shù)對嵌入式系統(tǒng)在車輛監(jiān)控系統(tǒng)的應(yīng)用進行研究,實現(xiàn) 具備全天候定位、視頻圖像采集與無線傳輸?shù)裙δ艿腉PS車輛監(jiān)控系統(tǒng))
119.嵌入式系統(tǒng)在車載導(dǎo)航中的應(yīng)用研究(對嵌入式技術(shù)在車載導(dǎo)航系統(tǒng)中應(yīng)用的關(guān)鍵技術(shù)進行研究)120.嵌入式系統(tǒng)在抽油機無線監(jiān)控中的應(yīng)用研究(以嵌入式系統(tǒng)為主控單元,以GSM網(wǎng)絡(luò)為數(shù)據(jù)通訊介質(zhì)的抽油機無線監(jiān)控系統(tǒng)的軟件和硬件設(shè)計)
121.嵌入式系統(tǒng)在船舶監(jiān)控系統(tǒng)中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)122.嵌入式系統(tǒng)在大型設(shè)備無線故障診斷中的應(yīng)用研究(針對某大型裝備對故障診斷系統(tǒng)的智能化和便攜化要求,提出一種基于無線嵌入式系統(tǒng)檢測技術(shù)的在線監(jiān)測與故障診斷的方案,各檢測終端固化于裝備上,主機與各智能檢測終端通過無線網(wǎng)絡(luò)通訊,從而免去了主機與各終端間的連接電纜,實現(xiàn)了診斷系統(tǒng)的小型化和智能化)國防生
123.嵌入式系統(tǒng)在道路檢測系統(tǒng)中的應(yīng)用研究(采用TI 高性能的DSP C5507 作為道路圖像核心處理元件,實現(xiàn)道路信息的提取和視頻圖像的J PEG2000 壓縮.同時采用Motorola 公司的MCF5307 實現(xiàn)系統(tǒng)的任務(wù)調(diào)度和道路信息的網(wǎng)絡(luò)傳輸,完成了嵌入式μClinux 操作系統(tǒng)的移植,實現(xiàn)在道路檢測系統(tǒng)中的組網(wǎng)應(yīng)用)
124.嵌入式系統(tǒng)在電機遠程監(jiān)測中的應(yīng)用研究(針對電機系統(tǒng)這一關(guān)鍵設(shè)備的遠程網(wǎng)絡(luò)監(jiān)測,提出了在ARM處理器(主機)上運行嵌入式操作系統(tǒng),遠程監(jiān)控客戶機的網(wǎng)絡(luò)監(jiān)測方案)
125.嵌入式系統(tǒng)在電力通信服務(wù)器中的應(yīng)用一人機界面設(shè)計(研究基于嵌入式Linux的電力通信服務(wù)器開發(fā)技術(shù);硬件系統(tǒng)采用ARM9處理器;軟件功能的實現(xiàn)與完善主要基于Linux操作系統(tǒng)及開發(fā)環(huán)境;利用嵌入式圖形界面開發(fā)工具MniiGUI設(shè)計用戶界面)
126.嵌入式系統(tǒng)在電子警察中的應(yīng)用研究(完成智能綜合電子警察自動監(jiān)測系統(tǒng)的軟件和硬件的設(shè)計)127.嵌入式系統(tǒng)在斷路器智能控制中的應(yīng)用研究(完成基于嵌入式系統(tǒng)的斷路器智能控制器的軟件和硬件設(shè)計)
128.嵌入式系統(tǒng)在多端口電纜氣壓采集器中的應(yīng)用研究(針對目前國內(nèi)電纜氣壓采集器的現(xiàn)狀及存在的問題,針對這些問題提出解決方案,并從硬件和軟件兩個角度對解決方案中采用的嵌入式系統(tǒng)(AT91RM9200 + Linux)為核心的采集器進行軟硬件設(shè)計)
129.嵌入式系統(tǒng)在發(fā)射裝置中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)國防生
130.嵌入式系統(tǒng)在高速織機控制中的應(yīng)用研究(將嵌入式系統(tǒng)應(yīng)用于高速織機控制系統(tǒng),對其硬件的關(guān)鍵部分(嵌入式處理器的控制接口部分)和軟件進行設(shè)計)
131.嵌入式系統(tǒng)在工程地震儀的應(yīng)用研究(完成基于ARM處理器和嵌入式操作系統(tǒng)Windows CE.Net的微型工程地震儀的軟件和硬件設(shè)計)
132.基于嵌入式實時操作系統(tǒng)的嵌入式控制系統(tǒng)研究(完成系統(tǒng)的軟件和硬件設(shè)計)
133.嵌入式系統(tǒng)在工業(yè)控制中的應(yīng)用研究(完成一個嵌入式工業(yè)控制系統(tǒng)的軟件和硬件設(shè)計)
134.嵌入式系統(tǒng)在工業(yè)以太網(wǎng)監(jiān)控中的應(yīng)用研究(嵌入式系統(tǒng)在以太網(wǎng)工業(yè)監(jiān)控中主要擔(dān)當?shù)娜蝿?wù)是將現(xiàn)場的各種輸入信號轉(zhuǎn)換成可以直接連入以太網(wǎng)的輸出信號,并實時接受遠程客戶端控制和訪問,完成嵌入式現(xiàn)場終端的軟件和硬件設(shè)計)
135.嵌入式系統(tǒng)在過電流保護裝置中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)
136.嵌入式系統(tǒng)在環(huán)保監(jiān)測領(lǐng)域內(nèi)的應(yīng)用研究(研制適用于環(huán)境監(jiān)測系統(tǒng)實時性傳輸要求的監(jiān)測傳輸控制器。采用GPRS或CDMA方式,解決原有監(jiān)測傳輸控制器的費用高、覆蓋范圍小的問題。并實現(xiàn)了系統(tǒng)中隨意增加或減少污染源的監(jiān)測點)137.嵌入式系統(tǒng)在環(huán)境監(jiān)控中的應(yīng)用研究(采用嵌入式技術(shù)環(huán)境監(jiān)控系統(tǒng),通過嵌入式網(wǎng)絡(luò)監(jiān)控編碼器實現(xiàn)本地壓縮和存儲,同時把音視頻數(shù)字信號通過網(wǎng)絡(luò)傳送到監(jiān)控中心,使客戶端能在PC 上基于Windows系統(tǒng)即可實時的查看到監(jiān)控信息)
138.嵌入式系統(tǒng)在機房監(jiān)控中的應(yīng)用研究(利用嵌入式機房監(jiān)控系統(tǒng),解決機房監(jiān)控系統(tǒng)的遠程控制、程序維護等問題)
139.嵌入式系統(tǒng)在機器人視覺中的應(yīng)用研究(開發(fā)一種通用的嵌入式系統(tǒng)平臺, 進行操作系統(tǒng)的移植和圖 像匹配等算法的研究, 并將其應(yīng)用于移動機器人的視覺導(dǎo)航)
140.嵌入式系統(tǒng)在激光測量中的應(yīng)用研究(利用嵌入式系統(tǒng)對激光測距儀進行控制及數(shù)據(jù)通信和處理, 并把參數(shù)顯示在屏幕上)
141.嵌入式系統(tǒng)在加油站信息管理系統(tǒng)的應(yīng)用研究(對加油站儲油罐油品信息的采集是掌握成品油銷售、庫存等信息的重要手段,通過對罐內(nèi)油品液位、溫度、油氣濃度的實時監(jiān)控,石油公司就可以直接或間接地獲取油品銷售過程中各種信息)
142.嵌入式系統(tǒng)在靜力測量中的應(yīng)用研究(研究嵌入式系統(tǒng)在靜力測量中的應(yīng)用,目標機作為嵌入式系統(tǒng)應(yīng)用平臺,充分考慮系統(tǒng)的功能、可擴展性、功耗和體積要求,制定相應(yīng)的組成模塊。硬件系統(tǒng)由核心板和擴展板構(gòu)成;而軟件系統(tǒng)由引導(dǎo)程序、操作系統(tǒng)和文件系統(tǒng)組成)143.嵌入式系統(tǒng)在軍用電子設(shè)備故障診斷中的應(yīng)用研究(電子裝備現(xiàn)有的故障診斷系統(tǒng)一般無法完成裝備工作過程中的實時在線狀態(tài)監(jiān)測。利用多種非接觸式的傳感器信息融合技術(shù)、以太網(wǎng)網(wǎng)絡(luò)通信技術(shù), 設(shè)計現(xiàn)場級嵌入式狀態(tài)監(jiān)測系統(tǒng), 采用嵌入式微處理器構(gòu)建最小系統(tǒng)實現(xiàn)實時地對系統(tǒng)各個重要部分進行信號采集和在線狀態(tài)監(jiān)測, 為在線智能故障診斷系統(tǒng)提供診斷信息)國防生
144.嵌入式系統(tǒng)在樓宇設(shè)備監(jiān)控系統(tǒng)中的應(yīng)用研究(以高性能的32位嵌入式芯片ARM920T為平臺,以樓宇變配電監(jiān)控系統(tǒng)為應(yīng)用對象,針對系統(tǒng)各個構(gòu)成部分進行研究開發(fā))
145.嵌入式系統(tǒng)在螺紋探傷儀中的應(yīng)用研究(鉆具事故主要是由于鉆具螺紋部分產(chǎn)生疲勞斷裂而造成的。利用渦流原理研制出了鉆具螺紋專用無損檢測儀器,該儀器由于采用了嵌入式網(wǎng)絡(luò)模塊ETR100 ,利用C 語言進行復(fù)雜的計算編程,簡化外圍電路的設(shè)計,無需標準試塊進行標定)146.嵌入式系統(tǒng)在氣浮轉(zhuǎn)臺無線測控實驗中的應(yīng)用研究(完成基于實時嵌入式系統(tǒng)的氣浮轉(zhuǎn)臺無線測控通信子系統(tǒng)的軟件和硬件設(shè)計)
147.嵌入式系統(tǒng)在數(shù)控零編程滾齒機中的應(yīng)用研究(將嵌入式技術(shù)與數(shù)控零編程思想相結(jié)合,以μCOS2Ⅱ?qū)崟r操作系統(tǒng)為核心,建立一套具有友好人機界面的零編程數(shù)控系統(tǒng)。突破傳統(tǒng)的手工編寫數(shù)控程序的方法,實現(xiàn)NC程序的自動生成;而且通過USB接口將系統(tǒng)巧妙的設(shè)計成了一個可移動的存儲器,間接的擴大數(shù)控系統(tǒng)的存儲容量;通過RS232串口,系統(tǒng)還能與滾齒機床實現(xiàn)NC程序的上傳和下載,構(gòu)成一個集NC程序自動生成、存儲和傳輸?shù)募苫到y(tǒng))
148.嵌入式系統(tǒng)在鐵路道口報警系統(tǒng)中的應(yīng)用研究(完成嵌入式鐵路平交道口自動報警系統(tǒng)的軟件和硬件設(shè)計)
149.嵌入式系統(tǒng)在網(wǎng)絡(luò)化銷售系統(tǒng)中的應(yīng)用研究(完成基于嵌入式處理器、嵌入式Linux 和GPRS 的網(wǎng)絡(luò)化銷售系統(tǒng)的軟件和硬件設(shè)計)
150.嵌入式系統(tǒng)在微機繼電保護中的應(yīng)用研究(完成基于ARM9 和μC/OS-II 的微機繼電保護系統(tǒng)的設(shè)計方案。系統(tǒng)以AT91RM9200 芯片為核心構(gòu)成高速保護裝置,利用實時嵌入式操作系統(tǒng)μC/OS-II,完成復(fù)雜的繼電保護,而且保證裝置的處理速度)
151.嵌入式系統(tǒng)在線路多參數(shù)自動測量系統(tǒng)中的應(yīng)用研究(利用嵌入式系統(tǒng)控制多個傳感器同時測量軌道線路,通過特定算法計算出線路不平順程度,指導(dǎo)線路養(yǎng)護維修工作,確保列車運行安全)
152.嵌入式系統(tǒng)在相關(guān)處理機中的應(yīng)用研究(利用FPGA和嵌入式系統(tǒng)實現(xiàn)千兆以太網(wǎng)傳輸系統(tǒng),并將該系統(tǒng)應(yīng)用在硬件相關(guān)處理機中。改善現(xiàn)有系統(tǒng)對LTA數(shù)據(jù)的采集和傳送,而且縮短后處理的時間)153.嵌入式系統(tǒng)在消弧線圈接地系統(tǒng)中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)
154.嵌入式系統(tǒng)在心臟疾病檢測中的應(yīng)用研究(以嵌入式系統(tǒng)為平臺,設(shè)計無線遠程心電監(jiān)護系統(tǒng)和心音分析儀,綜合運用嵌入式單片機技術(shù)、無線射技術(shù)、嵌入式TCP/IP網(wǎng)絡(luò)技術(shù)、USB通信技術(shù)等)155.嵌入式系統(tǒng)在新型礦用充電機中的應(yīng)用研究(設(shè)計以嵌入式微控制器S3C44B0X為核心的控制電路所組成的新型礦用充電機,對基于ARM核嵌入式系統(tǒng)的PWM輸出電路、高精度的檢測電路、人機接口電路和保護電路的軟件和硬件進行設(shè)計)156.嵌入式系統(tǒng)在信息家電網(wǎng)絡(luò)中的應(yīng)用研究(針對多總線、多協(xié)議的傳統(tǒng)智能家居系統(tǒng)管理不方便,可操作性差等缺點,提出一種基于嵌入式系統(tǒng),通過RTL8019AS 以太網(wǎng)芯片實現(xiàn)和以太網(wǎng)通信的方案)
157.嵌入式系統(tǒng)在蓄電池充電中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)
158.嵌入式系統(tǒng)在液晶電光特性測試中的應(yīng)用研究(完成一種智能液晶電光特性測試儀的設(shè)計,該設(shè)計以ARM9微處理器為控制和數(shù)據(jù)處理核心,并引入WINDOWS CE操作系統(tǒng),帶有用戶圖形界面,操作簡單,可實現(xiàn)對液晶電光特性參數(shù)的智能測量和數(shù)據(jù)圖形的顯示輸出)
159.嵌入式系統(tǒng)在醫(yī)療監(jiān)護領(lǐng)域中的應(yīng)用研究(以Intel公司的PXA255系列處理器,Linux在嵌入版本,MINIGUI圖形工具包為平臺,研究醫(yī)療嵌入式電子產(chǎn)品軟件研發(fā)的技術(shù)特點)
160.嵌入式系統(tǒng)在醫(yī)療儀器上的應(yīng)用研究(研究嵌入式系統(tǒng)在醫(yī)療儀器上應(yīng)用的可能性、方法)
161.嵌入式系統(tǒng)在遠程復(fù)位控制中的應(yīng)用研究(設(shè)計基于嵌入式系統(tǒng)在遠程復(fù)位控制器,系統(tǒng)采用微控制器作為控制核心,MT8870為音頻解碼芯片,以PSTN公話網(wǎng)為信號傳輸控制介質(zhì))
162.嵌入式系統(tǒng)在遠程監(jiān)控中的應(yīng)用研究(對嵌入式系統(tǒng)進行軟硬件的選擇和設(shè)計。從價格、性能和功耗三方面考慮,核心硬件設(shè)計選用基于AR劃7TDMI的32位處理器S3C44BOX作為主控芯片。軟件分兩部分:一是嵌入式操作系統(tǒng)的選擇,二是在對TCP/PI協(xié)議理解的基礎(chǔ)上,選擇了一種適用于嵌入式系統(tǒng)的協(xié)議棧,并將其移植到嵌入式系統(tǒng)中)
163.嵌入式中央儲備糧直屬庫遠程監(jiān)控系統(tǒng)設(shè)計(以中央儲備糧某直屬庫遠程自動監(jiān)控系統(tǒng)項目為背景,完成嵌入式遠程自動監(jiān)控終端的設(shè)計。系統(tǒng)軟件設(shè)計采用結(jié)構(gòu)化設(shè)計中的模塊化程序設(shè)計方法,根據(jù)功能的不同進行模塊的劃分,功能模塊包括底層設(shè)備驅(qū)動模塊、用戶界面模塊、GPRS 網(wǎng)絡(luò)模塊、通信協(xié)議模塊等。嵌入式中央儲備糧直屬庫遠程監(jiān)控系統(tǒng)實現(xiàn)糧庫的分散控制與集中管理,和糧庫的智能控制)
164.嵌入式系統(tǒng)在遠程圖像監(jiān)控系統(tǒng)中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)
165.嵌入式系統(tǒng)在智能電梯中的應(yīng)用研究(完成一種應(yīng)用于電梯控制系統(tǒng)中的新型、高效的嵌入式控制系統(tǒng)的軟件和硬件設(shè)計)
166.嵌入式系統(tǒng)在智能交通中的應(yīng)用研究(根據(jù)嵌入式系統(tǒng)產(chǎn)品在ITS(In2telligent Traffic System ,智能交通系統(tǒng))應(yīng)用中的工作穩(wěn)定性高、環(huán)境適應(yīng)能力強和設(shè)備獨立性三個特點,探討嵌入式系統(tǒng)在智能交通系統(tǒng)中應(yīng)用)
167.嵌入式系統(tǒng)在中小型水電站中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)168.嵌入式系統(tǒng)在自動化儀表中的應(yīng)用研究(選擇高性能的嵌入式微處理器,研究新型智能化、網(wǎng)絡(luò)化的儀器儀表)
169.嵌入式語音識別及控制技術(shù)在智能家居系統(tǒng)中的應(yīng)用研究(完成基于語音識別控制的智能家居系統(tǒng)方案設(shè)計。系統(tǒng)分軟件和硬件兩部分,上位機實現(xiàn)語音采集和識別、處理,發(fā)出相應(yīng)的動作命令,通過串行通信,構(gòu)成串行控制網(wǎng)絡(luò),控制具備符合接口規(guī)范的設(shè)備,通過語音實現(xiàn)對家用電器的遙控。對語音識別技術(shù)進行研究。經(jīng)分析比較,采用基于HMM識別算法的MicrosoftSpeech SDK語音開發(fā)平臺進行開發(fā))
170.嵌入式遠程數(shù)據(jù)采集系統(tǒng)技術(shù)的應(yīng)用研究(利用嵌入式數(shù)據(jù)采集模塊和網(wǎng)絡(luò)通信技術(shù),將分散的現(xiàn)場數(shù)據(jù)采集后傳送到數(shù)據(jù)服務(wù)器進行集中處理)
171.嵌入式在小型網(wǎng)絡(luò)視頻服務(wù)器中的應(yīng)用研究(完成一種基于嵌入式系統(tǒng)的小型網(wǎng)絡(luò)視頻服務(wù)器硬件和軟件設(shè)計)
172.嵌入式在液位監(jiān)控系統(tǒng)中的應(yīng)用研究(針對液位遠程監(jiān)控的要求,把嵌入式與Internet技術(shù)相結(jié)合,采用了B /S(Browser/Server)模式對液位實施遠程監(jiān)控。在控制策略上,則采用九點控制算法,對液位實行控制。用戶只需要在其他計算機上利用通用的網(wǎng)頁瀏覽器,通過以太網(wǎng)訪問監(jiān)控頁面的形式進行監(jiān)控)。173.嵌入式智能代理在制造系統(tǒng)中的應(yīng)用研究(多代理技術(shù)(Multi2Agent)在制造系統(tǒng)中的應(yīng)用,提高了制造系統(tǒng)的柔性,智能性和可重構(gòu)性。采用嵌入式技術(shù)和智能代理技術(shù)相結(jié)合的嵌入式智能代理技術(shù),實現(xiàn)多代理系統(tǒng)中設(shè)備智能代理的方案。該智能代理以嵌入式微控制器ARM為硬件核心,以嵌入式實時操作系統(tǒng)μC /OS2Ⅱ為軟件平臺。各智能代理間通過以太網(wǎng)實現(xiàn)互連和信息交互,共同協(xié)調(diào)完成加工任務(wù))174.嵌入式智能機器人路徑規(guī)劃應(yīng)用研究(研究智能機器人路徑規(guī)劃算法的研究現(xiàn)狀, 指出各種算法的優(yōu) 缺點, 提出建立嵌入式智能機器人路徑規(guī)劃平臺, 實現(xiàn)基于嵌入式實時系統(tǒng)的智能機器人路徑規(guī)劃算法)
175.嵌入式狀態(tài)監(jiān)測與故障診斷裝置的設(shè)計(將工業(yè)以太網(wǎng)技術(shù)應(yīng)用于工業(yè)設(shè)備監(jiān)控系統(tǒng),實現(xiàn)基于32 位高性能處理器AT91RM9200 的嵌入式遠程狀態(tài)監(jiān)測與故障診斷裝置)
176.嵌入式系統(tǒng)在變電站控制系統(tǒng)中的應(yīng)用研究(完成系統(tǒng)的軟件和硬件設(shè)計)177.一種嵌入式微調(diào)度器的實現(xiàn)方法研究(分析常見嵌入式操作系統(tǒng)的任務(wù)調(diào)度算法,提出一種新的應(yīng)用于智能儀表的實時任務(wù)調(diào)度算法,并在典型的8 位、16 位SoC 上進行設(shè)計,實現(xiàn)基于這種算法的嵌入式操作系統(tǒng))
178.在嵌入式系統(tǒng)開發(fā)中仿真軟件的特殊應(yīng)用研究(在開發(fā)工業(yè)控制系統(tǒng)配套軟件過程中應(yīng)用嵌入式仿真軟件)
179.占先式實時內(nèi)核μC/ OS2II 在車輛動態(tài)監(jiān)控/ 調(diào)度實驗平臺中的應(yīng)用研究(為了滿足車輛動態(tài)監(jiān)控/ 調(diào)度實驗平臺車輛模擬系統(tǒng)實時多任務(wù)工作的需要,在系統(tǒng)主控CPU TMS320L F2407A 上移植嵌入式實時操作系統(tǒng)(RTOS)μC/ OS2 II ,開發(fā)基于μC/ OS2 II 內(nèi)核的實時多任務(wù)軟件系統(tǒng),以滿足系統(tǒng)正常工作時對多路傳感器數(shù)據(jù)和上位機控制信息的實時處理。在μC/ OS2II 內(nèi)核移植的基礎(chǔ)上,按照系統(tǒng)需要劃分任務(wù)、確定任務(wù)優(yōu)先級、實現(xiàn)任務(wù)間通信和同步的具體方法進行研究)
180.實時嵌入式操作系統(tǒng)在單片機中的應(yīng)用研究(在MCS - 51 系列單片機上移植μ C/OS - II 實時嵌入式操作系統(tǒng))
第二篇:《嵌入式系統(tǒng)》課程設(shè)計題目
《嵌入式系統(tǒng)》
課程設(shè)計題目及要求
2013年12月24日
設(shè)計報告要求:
1.課題研究意義、現(xiàn)狀及應(yīng)用分析; 2.課題總體方案設(shè)計及功能模塊介紹; 3.系統(tǒng)硬件平臺及接口設(shè)計;
4.系統(tǒng)軟件功能設(shè)計,程序流程圖及代碼實現(xiàn),包括必要的注釋; 5.實驗測試、結(jié)果分析; 6.總結(jié)、心得體會; 7.附主要的參考文獻。
課程設(shè)計題目:(以下題目僅供參考,可自擬題目)
基于ARM的LED點陣顯示系統(tǒng)的設(shè)計與實現(xiàn)
要求:在ARM開發(fā)平臺下,實現(xiàn)接收串口發(fā)送的數(shù)據(jù),在16*16的點陣屏上顯示,按鍵上設(shè)置幾個固定顯示內(nèi)容,當按下相應(yīng)的按鍵時,點陣屏上顯示相應(yīng)的內(nèi)容。
基于ARM的環(huán)境監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)
要求:在ARM開發(fā)平臺下,實現(xiàn)采集環(huán)境的溫度、濕度、煙霧等參數(shù)的設(shè) 定,在液晶屏上顯示出來。
基于ARM的步進電機控制系統(tǒng)的設(shè)計與實現(xiàn)
要求:在ARM開發(fā)平臺下,實現(xiàn)步進電機的驅(qū)動,可通過實驗平臺上的電位器調(diào)整電機的轉(zhuǎn)速,或者用按鍵控制電機的運轉(zhuǎn)。ARM實驗平臺的Android移植
要求:將開源的Android平臺移植到ARM實驗平臺下。
基于ARM的CAN總線通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺CAN通信程序,實現(xiàn)兩個ARM平臺或ARM與其它設(shè)備的CAN通信??蓪AN總線接收到的數(shù)據(jù)通過串口輸出,同時可將串口接收到的數(shù)據(jù)通過CAN總線接口發(fā)送出去。
基于ARM的RS485通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編程RS485通信程序,實現(xiàn)兩個ARM平臺或ARM與PC機之間RS485通信。
基于ARM的嵌入式Web服務(wù)器設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下移植一個嵌入式Web服務(wù)器(如BOA或THTTPD),并實現(xiàn)基于ARM平臺的Web動態(tài)網(wǎng)頁監(jiān)測系統(tǒng)。
基于ARM的嵌入式數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn) 要求:在嵌入式ARM平臺下編寫ADC接口的模入/模出程序,實現(xiàn)基于ARM平臺的嵌入式3路模擬信號的數(shù)據(jù)采集,并將采集到的數(shù)據(jù)通過串口或液晶輸出結(jié)果。
基于ARM的無線數(shù)據(jù)終端設(shè)計
要求:用ARM處理器作為主控器,與GPRS模塊進行通信,能夠?qū)崿F(xiàn)收發(fā)短信、撥打接聽電話、連接數(shù)據(jù)服務(wù)器等功能?;贏RM的無線數(shù)據(jù)采集系統(tǒng)設(shè)計
要求:用ARM處理器作為主控器,與GPRS模塊進行通信,通過發(fā)送短信到平臺上獲取平臺采集到的數(shù)字量信息(溫度、濕度、電壓等信息)?;谇度胧较到y(tǒng)的無線傳感器網(wǎng)絡(luò)的應(yīng)用研究
要求:(無線傳感器網(wǎng)絡(luò)是集成了傳感器、嵌入式系統(tǒng)、網(wǎng)絡(luò)和無線通信四大技術(shù)而形成的一種全新的信息獲取和處理技術(shù),它是一種新型的無基礎(chǔ)設(shè)施的無線網(wǎng)絡(luò),能夠?qū)崟r監(jiān)測、感知和采集各種環(huán)境或監(jiān)測對象的信息,并對其進行處理、傳送到需要這些信息的用戶)基于UcosII在ARM平臺上的移植 要求:將UcosII移植到ARM9或者ARM11平臺上
MPlayer播放器在ARM9(或ARM11)平臺上的移植與實現(xiàn)
基于ARM的建議GUI的設(shè)計
要求:設(shè)計一個簡易的GUI界面,在ARM平臺下運行,并實現(xiàn)簡單的交互。要求:將MPlayer播放器移植到ARM平臺上,并且能夠運行 基于ARM的TCP網(wǎng)絡(luò)通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫以太網(wǎng)接口的TCP通訊程序,實現(xiàn)兩個ARM平臺或ARM與PC機之間的TCP協(xié)議通訊系統(tǒng)。
基于ARM的UDP網(wǎng)絡(luò)通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫以太網(wǎng)接口的UDP通訊程序,實現(xiàn)兩個ARM平臺或ARM與PC機之間的UDP協(xié)議通訊系統(tǒng)。
基于ARM和MiniGUI的嵌入式圖形用戶界面設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,采用MiniGUI圖形界面編程方法,實現(xiàn)基于ARM平臺和MiniGUI圖形界面的嵌入式測控操作平臺。
基于ARM和QT的嵌入式圖形用戶界面設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,采用QT圖形界面編程方法,實現(xiàn)基于ARM平臺和QT圖形界面的嵌入式測控操作平臺。
基于ARM和Linux的步進電機控制系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,編程實現(xiàn)基于ARM平臺的步進電機控制系統(tǒng)方案。
基于ARM和Linux的直流電機控制系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,編程實現(xiàn)基于ARM平臺的直流 電機控制系統(tǒng)方案。
基于ARM和Linux的CAN總線通訊系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫CAN總線通信程序,實現(xiàn)兩個ARM平臺或ARM與PC機之間CAN總線通信。
基于ARM和Linux的CAN總線遠程監(jiān)控系統(tǒng)研究與設(shè)計
要求:在嵌入式ARM平臺及Linux環(huán)境下編寫CAN總線通信程序,并設(shè)計和實現(xiàn)一個基于ARM平臺CAN總線遠程監(jiān)控系統(tǒng)。
基于ARM的視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,采用USB接口的攝像頭模塊,設(shè)計和實現(xiàn)基于ARM平臺視頻監(jiān)控系統(tǒng)。
基于ARM的Modbus/TCP主站協(xié)議程序設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,基于ARM平臺的RJ-45以太網(wǎng)接口,設(shè)計和實現(xiàn)基于ARM平臺Modbus/TCP主站協(xié)議程序,該Modbus/TCP主站協(xié)議可與基于ARM平臺或PC機的Modbus/TCP從站協(xié)議實現(xiàn)通訊。
基于ARM的Modbus/TCP從站協(xié)議程序設(shè)計與實現(xiàn)
要求:在嵌入式ARM平臺及Linux環(huán)境下,基于ARM平臺的RJ-45以太網(wǎng)接口,設(shè)計和實現(xiàn)基于ARM平臺Modbus/TCP從站協(xié)議程序,該Modbus/TCP 從站協(xié)議可與基于ARM平臺或PC機的Modbus/TCP主站協(xié)議實現(xiàn)通訊。
基于ARM和Linux的嵌入式測控系統(tǒng)研究與設(shè)計
要求:在嵌入式ARM平臺及Linux環(huán)境下,可在ARM平臺的AD/DA、串口、以太網(wǎng)接口、CAN總線接口等基礎(chǔ)上,采用QT或MiniGUI圖形用戶編程方法,設(shè)計和實現(xiàn)基于ARM平臺和Linux的嵌入式綜合測控系統(tǒng)。
Mplay在Linux平臺下的移植與實現(xiàn)
要求:將Mplayer移植到嵌入式實驗平臺下,可實現(xiàn)視頻和音頻文件的播放。
基于S3C2410/S3C2440的嵌入式Web服務(wù)器Boa移植
要求:將實驗箱或開發(fā)板連接到網(wǎng)絡(luò)中,可以通過計算機訪問到開發(fā)板上的靜態(tài)網(wǎng)頁。
第三篇:嵌入式系統(tǒng)課程設(shè)計
《嵌入式系統(tǒng)概論》綜合設(shè)計報告書
設(shè)計題目:用鍵盤控制LED顯示不同圖形
中央民族大學(xué) 二零零八年十月三十一日
一、設(shè)計目的
了解LED點陣和矩陣鍵盤的工作原理。
二、設(shè)計內(nèi)容
編寫程序控制用矩陣鍵盤控制LED點亮,產(chǎn)生不同的圖形。
三、設(shè)計方案
功能概述:
本設(shè)計要實現(xiàn)的功能是通過鍵盤控制LED點陣圖形顯示,如果鍵盤輸入0-9十個數(shù)字時顯示相應(yīng)的數(shù)字,如果輸入其他的鍵,則顯示“+”號。
1、程序設(shè)計思路
本設(shè)計要實現(xiàn)鍵盤控制LED點陣圖形顯示,就必須要編寫鍵盤和LED點陣的程序。先通過掃描矩陣鍵盤,得到鍵盤值,然后再調(diào)用點陣顯示子函數(shù),根據(jù)掃描的鍵盤值,在LED點陣上顯示不同的圖形。
2、主程序設(shè)計
主程序要實現(xiàn)的功能是矩陣鍵盤掃描,得到鍵盤值,然后把值傳給LED顯示函數(shù)。
程序流程圖如下:
3、LED點陣顯示函數(shù)設(shè)計
本函數(shù)要實現(xiàn)的功能是根據(jù)鍵盤的值,在LED點陣上顯示不同的圖形。如果鍵盤的輸入值為0-9則顯示相應(yīng)的數(shù)字,如果輸入的是其他值,則顯示“+”。本程序采用二維數(shù)組存放要顯示的圖形的字模,然后再通過逐行掃描LED點陣,把要顯示的圖形分8次顯示,一次顯示一行,利用人眼的視覺暫留效應(yīng),是人看到的是一個圖形一次顯示出來,通過一個循環(huán)控制圖形顯示的時間。程序流程圖如下:
4、點陣圖形設(shè)計
根據(jù)8*8 LED點陣的原理,8X8 點陣共需要64 個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線的交叉點上,當對應(yīng)的某一列置1 電平,某一行置0 電平,則相應(yīng)的二極管就亮;
先繪制出要顯示的圖形如下:
根據(jù)圖形中點亮的LED燈的位置,得到相應(yīng)圖形的16進制數(shù),存放在二維數(shù)組Buf1[11][8]中。
所以要顯示的圖形的字模如下:
buf1[11][8]={ {0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0
{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1
{0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2
{0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3
{0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4
{0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5
{0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6
{0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7
{0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8
{0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9
{0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00}
//+
};
四、程序源代碼
//*************************************************************** #include
#define DEVICE_NAME “/dev/led_ary_ctl” #define DEVICE_NAME1 “/dev/keypad”
void Key(unsigned char b[]);
//------main----int main(void){
int fd;
int ret;
unsigned char buf[2];
double x;
char pre_scancode = 0xff;
printf(“n start keypad_driver test nn”);
fd = open(DEVICE_NAME1, O_RDWR);
printf(“fd = %dn”,fd);
if(fd ==-1){
printf(“open device %s errorn”,DEVICE_NAME1);}
else {
buf[0]=0x22;
while(1)
{
read(fd,buf,1);
if(buf[0]!= pre_scancode)
{
if(buf[0]!=0xff)
{
printf(“key =%xn”,buf[0]);
Key(buf);
}
}
pre_scancode = buf[0];
usleep(50000);
}
// close
ret = close(fd);
printf(“ret=%dn”,ret);
printf(“close keypad_driver testn”);}
return 0;}// end main //***************************************************************************** //---------------void Key(unsigned char b[]){ int fd;
int ret;
int i,j,k;
unsigned char buf[2];
unsigned char buf2[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char buf1[11][8]={{0x3c,0x24,0x24,0x24,0x24,0x24,0x3c,0x00},//0
{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},//1
{0x3c,0x20,0x20,0x3c,0x04,0x04,0x3c,0x00},//2
{0x3c,0x20,0x20,0x3c,0x20,0x20,0x3c,0x00},//3
{0x24,0x24,0x24,0x3c,0x20,0x20,0x20,0x00},//4
{0x3c,0x04,0x04,0x3c,0x20,0x20,0x3c,0x00},//5
{0x3c,0x04,0x04,0x3c,0x24,0x24,0x3c,0x00},//6
{0x3c,0x20,0x20,0x20,0x20,0x20,0x20,0x00},//7
{0x3c,0x24,0x24,0x3c,0x24,0x24,0x3c,0x00},//8
{0x3c,0x24,0x24,0x3c,0x20,0x20,0x3c,0x00},//9
{0x08,0x08,0x08,0x3e,0x08,0x08,0x08,0x00}
//+
};
// begin of led ary
buf[0]= 1;
buf[1]= 0;
if(b[0]<=9)i=b[0];else
i=10;
fd = open(DEVICE_NAME, O_RDWR);
printf(“fd = %dn”,fd);
if(fd ==-1)
printf(“open device %s errorn”,DEVICE_NAME);
else {
for(j=0;j<=5;j++)
{
for(k=0;k<8;k++)
{
buf[0]=buf1[i][k];buf[1]=buf2[k];
write(fd,buf,2);
}
usleep(1);
}
// close
ret = close(fd);
printf(“ret=%dn”,ret);
printf(“close led_driver testn”);} } //-
五、設(shè)計結(jié)果
實現(xiàn)鍵盤控制LED點陣顯示,輸入0-9十個數(shù)字時顯示相應(yīng)的數(shù)字,如果輸入其他的鍵,則顯示“+”號。
六、心得體會
通過本次實驗,我們對linux下的實驗更加熟悉了,對LED點陣顯示和矩陣鍵盤的原理有了深入的了解,掌握了點陣圖形的設(shè)計方法和鍵盤的輸入的讀取,并把二者結(jié)合起來,實現(xiàn)了鍵盤控制點陣圖形現(xiàn)實。
在實驗過程中,我們也出現(xiàn)了問題,最開始時,由于不清楚點陣的C,R的高低位的對應(yīng)情況,經(jīng)過試驗,才確定。然后就是點陣的顯示是一閃即過的,然后我們通過循環(huán)控制了點陣的顯示時間。總之,通過這次設(shè)計,我們都學(xué)到了很多東西。
第四篇:嵌入式系統(tǒng)課程設(shè)計教學(xué)大綱
嵌入式系統(tǒng)課程設(shè)計教學(xué)大綱
課程名稱:嵌入式系統(tǒng)A課程(Embedded Systems)課程編號:1310778236 設(shè)計時數(shù):1周 學(xué)
分:1 開課單位:信息電子技術(shù)學(xué)院通信工程教研室 適用專業(yè):通信工程 適用對象:本科
一、課程的性質(zhì)、類型、目的和任務(wù)
作為電子信息工程、通信工程專業(yè)本科生的必修實踐環(huán)節(jié),嵌入式系統(tǒng)課程設(shè)計要求學(xué)生有扎實的理論基礎(chǔ)并具備一定動手能力。進入課程設(shè)計前要認真復(fù)習(xí)微處理器類課程中的相關(guān)知識和匯編語言、C語言的編程方法。課程設(shè)計采用課堂講述、自學(xué)、分組實踐相結(jié)合的方式,通過分析典型的例子,使學(xué)生熟悉并掌握嵌入式系統(tǒng)的開發(fā)流程和基本的編程方法。課程設(shè)計要求2—3人組成課設(shè)小組,在指定范圍內(nèi)選定題目,每組選一題,題目應(yīng)側(cè)重一個嵌入式系統(tǒng)的具體應(yīng)用方面。題目選定后,在教師的指導(dǎo)下,學(xué)生理解設(shè)計原理,分析重要電路單元,計算必要的參數(shù)并在此基礎(chǔ)上編寫程序,最后,在課程設(shè)計結(jié)束時獨立寫出理論分析完善、文理通順、字跡工整的課程設(shè)計報告并上交軟件程序。教師可根據(jù)作品的難易程度、參數(shù)指標、編程水平等進行評分。
二、本課程與其它課程的聯(lián)系與分工
學(xué)習(xí)該課程之前,學(xué)生應(yīng)學(xué)習(xí)過《C語言程序設(shè)計》、《數(shù)字電子技術(shù)》,《單片機原理與應(yīng)用》基礎(chǔ)知識。嵌入式系統(tǒng)是它們的總結(jié)和提高。
三、課程內(nèi)容及教學(xué)基本要求
[1]表示“了解”;[2]表示“理解”或“熟悉”;[3]表示“掌握”;
學(xué)生可從下列題目中任選一個作為嵌入式課程設(shè)計題目,也可以根據(jù)個人興趣及實驗室現(xiàn)有條件,自己確定題目經(jīng)教師審核后作為課程設(shè)計題目。
(一)單片機控制數(shù)碼管顯示系統(tǒng)的設(shè)計
AVR單片機的工作原理[1],嵌入式系統(tǒng)實際開發(fā)過程[2],單片機控制數(shù)碼管的方法[3],師編寫程序[3],實現(xiàn)單片機控制數(shù)碼管顯示系統(tǒng)的設(shè)計[3]。
(二)矩陣式按鍵控制LED顯示系統(tǒng)
AVR單片機的工作原理[1],嵌入式系統(tǒng)實際開發(fā)過程[2],矩陣式按鍵輸入控制信號[3]、通過單片機控制LED顯示的過程[3]。單片機定時/計數(shù)器的工作原理及使用[3],匯編程序的下載及固化的過程[3],(三)漢字顯示系統(tǒng)設(shè)計
了解AVR單片機的工作原理[1],液晶驅(qū)動芯片的工作原理[1],嵌入式系統(tǒng)實際開發(fā)過程[2],單片機控制液晶顯示模塊的方法[3],編寫程序,單片機控制漢字顯示系統(tǒng)的設(shè)計[3]。
(四)交通燈控制
AVR單片機的工作原理,嵌入式系統(tǒng)實際開發(fā)過程[2],ARM7核的LPC2106的管腳功能和特點[1],I/O控制寄存器的設(shè)置方法[3];ARM7應(yīng)用系統(tǒng)編程開發(fā)方法[3],能用C語言編寫應(yīng)用程
序[3]; ADS1.2軟件的使用以及PROTEUS仿真調(diào)試的方法[3];
(五)交通燈設(shè)計
ARM芯片[1]; ARM芯片各個引腳的功能[2],工作方式[2],計數(shù)/定時[2],I/O口[2],中斷[2];利用ARM芯片模擬實現(xiàn)交通燈控制[3]。,工作方式,計數(shù)/定時,I/O口,中斷等相關(guān)原理,通過軟硬件設(shè)計實現(xiàn)利用ARM芯片完成交通燈的模擬控制[3]
(六)溫度采集系統(tǒng)
ARM芯片各個引腳功能[1],工作方式[1],計數(shù)/定時[1],I/O口[1],中斷[1]。通過軟硬件設(shè)計實現(xiàn)利用ARM芯片對周圍環(huán)境溫度信號的采集及顯示[3] 其他課題見附錄:
四、考核方式及要求
1.考核方式:考查;
2.考核方法:平時考勤+設(shè)計報告+ 設(shè)計答辯; 3.成績評定:
平時成績:應(yīng)根據(jù)學(xué)習(xí)紀律、出勤、等方面綜合評定,占10%;
設(shè)計報告:根據(jù)學(xué)生設(shè)計報告各部分的完整性和優(yōu)劣情況評定,占70%; 設(shè)計答辯:應(yīng)根據(jù)答辯結(jié)果評定,占20%.按優(yōu)、良、中、及格、不及格五級分制記分。設(shè)計報告內(nèi)容:
1.封面;2.摘要;3.目錄;4.總體方案設(shè)計分析 ;5.軟件框圖及程序設(shè)計(匯編語言源程序必須加注釋說明);6.硬件原理圖設(shè)計(最好使用電子設(shè)計CAD軟件繪制);7.設(shè)計總結(jié)和心得體會。
五、實驗教材(指導(dǎo)書)及參考書(資料)
1.王田苗,《嵌入式系統(tǒng)設(shè)計與實例開發(fā)》,清華大學(xué)出版社 2.馬忠梅,《ARM嵌入式微處理器體系結(jié)構(gòu)》,北航出版社 3.陳章龍,《嵌入式技術(shù)與系統(tǒng)-Intel XScale 結(jié)構(gòu)與開發(fā)》,北航出版社
第五篇:嵌入式課程設(shè)計 學(xué)生信息管理系統(tǒng)
嵌入式課程設(shè)計報告冊
題目:學(xué)生信息管理系統(tǒng)
班級:移動三班
輔導(dǎo)老師:邱雅
一、軟件需求分析
1、可行性分析
(1)經(jīng)濟可行性
①:目前中國有越來越多的中小型企業(yè)在蓬勃發(fā)展,而現(xiàn)代化員工信息管理系統(tǒng)已經(jīng)逐漸取代了傳統(tǒng)的人工信息管理,智能化的管理系統(tǒng)更具有高效性可行性,所以自能管理系統(tǒng)將會成為或正在成為現(xiàn)代化公司員工信息管理的有效方式;
②:這款學(xué)生信息管理系統(tǒng)的價格適合所有學(xué)校消費群體,將會有很大的應(yīng)用空間,滿足各種學(xué)校學(xué)生管理的要求;
③:學(xué)生系信息管理系統(tǒng)的價格比相對于同類公司員工管理系統(tǒng)產(chǎn)品較低,同時本軟件的成本低于同類產(chǎn)品的平均水平,具有很大的利潤空間;
④:本系統(tǒng)的開發(fā)環(huán)境和軟件環(huán)境都是當前流行的產(chǎn)品,本系統(tǒng)的軟件需求都是基本的功能和應(yīng)用,在現(xiàn)實中很容易實現(xiàn)。
(2)法律可行性
本軟件的開發(fā)采用C語言作為軟件的開發(fā)語言,沒有采用同類產(chǎn)的代碼,完全是自主開發(fā),并按照國際上軟件開發(fā)的相關(guān)規(guī)定來實現(xiàn)開發(fā)的;
(3)技術(shù)可行性
本軟件開發(fā)系統(tǒng)采用linux開發(fā)平臺,具有很強的兼容性和擴展性,本軟件的占用的內(nèi)存較小大部分的硬件處理系統(tǒng)都可以兼容,開發(fā)語言采用國際通用的C高級編程語言具有很高的維護可行性,經(jīng)過綜合分析我認為現(xiàn)階段我方所擁有的資源和技術(shù)人員,在技術(shù)上完全可以實現(xiàn)這款軟件的開發(fā),并且能高質(zhì)量,快速的完成這項工作。
2、用戶需求概述
用戶需要一個可以簡單的實現(xiàn)通訊錄功能的簡單通訊錄系統(tǒng),分別完成查詢,增加,修改,刪除的一些簡單的功能要求在完成所要求功能的前提下增強與用戶的互動,使軟件的可操作性增強,此外還可以志愿加入一些新的功能來進行對軟件的優(yōu)化在優(yōu)化的同時要注意軟件基本功能的保障。
二、軟件分析與設(shè)計
一.功能
1、創(chuàng)建班級
2、輸出學(xué)生信息
3、按照學(xué)號錄入學(xué)生成績
4、按照班級錄入學(xué)生成績
5、按照學(xué)號修改學(xué)生成績
6、按照班級修改學(xué)生成績
7、按照班級統(tǒng)計學(xué)生的總成績
8、按照學(xué)號查詢學(xué)生成績
9、按照班級輸出不及格學(xué)生名單及科目
10、按照班級輸出學(xué)生成績單
0、退出系統(tǒng)
二.功能模塊圖:
學(xué)生信息管理系統(tǒng)按照創(chuàng)建班級輸出學(xué)生信息按照學(xué)號錄入學(xué)生成績按照班級錄入學(xué)生成績按照學(xué)號修改學(xué)生成績按照班級修改學(xué)生成績按照班級統(tǒng)計學(xué)生的總成績按照學(xué)號查詢學(xué)生成績班級輸出不及格學(xué)生名單及科目按照班級輸出學(xué)生成績單按照班級輸出學(xué)生成績單
圖1 系統(tǒng)功能模塊圖
三、主要功能的實現(xiàn)
程序設(shè)計一般由兩部分組成 些數(shù)據(jù)結(jié)構(gòu)具有同樣的重要性 保存等外更多的情況是查詢
1、學(xué)生信息管理
算法和數(shù)據(jù)結(jié)構(gòu),合理地選擇和實現(xiàn)一個數(shù)據(jù)結(jié)構(gòu)和處理這,在學(xué)生信息管理程序中由于預(yù)計記錄數(shù)比較大能夠、刪除、。所以選用動態(tài)鏈表保存數(shù)據(jù)。
由于信息輸入量比較大,需要的存儲空間大,所以需要采用樹的雙親表示法進行信息存儲,為了方便采用以下定義。struct student { int num;char name[20];char sex[5];char class[30];int semester;char course[30];int score[3];struct student *next;};
struct list { int class;struct student *head;};2.main()主函數(shù)
程序采用模塊化設(shè)計,主函數(shù)是程序的入口各模塊獨立??煞謮K調(diào)
試均由主函數(shù)控制調(diào)用控制功能的實現(xiàn)通過循環(huán)執(zhí)行一個開關(guān)語句,該語句的條件值是通過 調(diào)用主菜單函數(shù)得到的返回值,根據(jù)該值 調(diào)用相應(yīng)的各功能函數(shù)。同時設(shè)置一個斷點。即當返回值為一定條件時運行break 0;函數(shù)結(jié)束程序,以免造成死循環(huán)。根據(jù)菜單的提示進
行需要的操作。
圖2 主函數(shù)輸出界面
開始輸入數(shù)據(jù)否選擇是功能選擇退出系統(tǒng)結(jié)束
圖3 程序總體流程圖(1)主菜單
直接利用輸出函數(shù) printf 輸出字符串在屏幕上顯示一個菜單并顯示一個提示輸入 選項輸
入數(shù)字,將此數(shù)字作為菜單函數(shù)的返回值返回主函數(shù),主函數(shù)根據(jù) 這個數(shù)字調(diào)用相應(yīng)的功
10-2 所示:
能函數(shù),制作簡便,操作簡單界面如圖
圖 4
主菜單界面
由于程序中很多地方用到了字符串輸入語句會造成下一個字符不能正確讀入為了 在程序調(diào)
按照所見即所得的方式直接 用執(zhí)行了各個函數(shù)后能夠清晰地看到菜單 并輸入新的選項。設(shè)計輸出函數(shù)輸出字符串達到菜單效果將精力主要放在程序功能的實現(xiàn)上利用 while循環(huán) 語句一直執(zhí)行 scanf(“%d”,t)語句。讓用戶輸入 數(shù)按照整形數(shù)據(jù)形式輸入然后字符串轉(zhuǎn)化
為數(shù)字返回主函數(shù)。既然是數(shù)字選項為什么不用整數(shù)格式輸入而要按字符串輸入。再將其 a 和 b 等 由于類轉(zhuǎn)換呢,如果按照整數(shù)格式輸入,當用戶輸入了非數(shù)字字 符。例如 表面上看是數(shù)字也應(yīng)將其設(shè)為字符 型不同將導(dǎo)致程序出錯。所以對于不參與運算的數(shù)據(jù)
處理。例如電話號碼,千萬不要設(shè)為整數(shù)類型,程序設(shè)計技巧很多。所以讀者在編程調(diào)試中應(yīng)注意并仔細體會。
(2)創(chuàng)建班級
輸入記錄時按照一條一行的格式輸入,每個數(shù)據(jù)之間用空格分隔,較為清晰且能直接
反映數(shù)據(jù)之間的關(guān)系,但由于 scanf 函數(shù)的特性,在輸入時數(shù)據(jù)用回車分隔也是可以的,但與 界面設(shè)計不吻合界面.由于記錄并不是一次性全部輸入而是隨時填加和刪除的,而預(yù)先開辟 n,然后用的空間數(shù)往往大于實際的記錄數(shù)。所以程序設(shè)計為首先輸入準備輸入的記錄數(shù)
while循環(huán)語句循環(huán)輸信息。
圖5 創(chuàng)建列表頁面 輸出學(xué)生信息
該功能的實現(xiàn)主要是
是通過結(jié)構(gòu)體數(shù)組中的鏈表指針進行輸出
圖6輸出全部信息 按照學(xué)號錄入學(xué)生成績
通過頭指針查找到需要錄入成績的節(jié)點,錄入成績。
按照班級錄入學(xué)生成績
按照學(xué)
號
修
改
學(xué)
生
成績
按照班級修改學(xué)生成績
按照班
級
統(tǒng)
計
學(xué)
生的總
成績
按照學(xué)
號
查
詢
學(xué)
生
成績
按照班級輸
出
不
及
格
學(xué)
生
名
單
及
科
目(11)按照班級輸出學(xué)生成績單
四、程序設(shè)計
(一)先進行人工檢查,即靜態(tài)檢查。
在寫好一個程序以后,不要匆匆忙忙上機,而應(yīng)對程序進行人工檢查。這一步十分重要,它能發(fā)現(xiàn)程序設(shè)計人員由于疏忽而造成的多數(shù)錯誤。這一步往往容易被人忽視,總希望把一切都推給計算機去做,但這樣會多占用機器時間,作為一個程序人員應(yīng)當養(yǎng)成嚴謹?shù)淖黠L(fēng),每一步都要嚴格把關(guān),不把問題留給后面的工序。
為了更有效地進行人工檢查,所編的程序應(yīng)力求做到以下幾點:
①應(yīng)當采用結(jié)構(gòu)化程序方法編程,以增加可讀性;
②盡可能多加注釋,以幫助理解每段程序的作用;
③在編寫復(fù)雜的程序時不要將全部語句都寫在main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實現(xiàn)一個單獨的功能。各函數(shù)之間除用參數(shù)傳遞數(shù)據(jù)外,盡量少出現(xiàn)耦合關(guān)系,這樣便于分別檢查和處理。
(二)在人工檢查無誤后,再上機調(diào)試。
通過上機發(fā)現(xiàn)錯誤稱為動態(tài)檢查。在編譯時會給出語法錯誤的信息,調(diào)試時可以根據(jù)提示信息具體找出程序中出錯之處并改正。應(yīng)當注意的是有時提示出錯的地方并不是真正出錯的位置,如果在提示出錯的行找不到錯誤的話應(yīng)當?shù)缴弦恍性僬?。有時提示出錯的類型并非絕對準確,由于出錯的情況繁多且各種錯誤互有關(guān)聯(lián),因此要善于分析,找出真正的錯誤,而不要只從字面意義上找出錯信息,鉆牛角尖。
如果系統(tǒng)提示的出錯信息很多,應(yīng)當從上到下逐一改正。有時顯示出一大片出錯信息往往使人感到問題嚴重,無從下手。其實可能只有一二個錯誤。例如,對使用的變量未定義,編譯時就會對所有含該變量的語句發(fā)出出錯信息。這時只要加上一個變量定義,就所有錯誤都消除了。
(三)在改正語法錯誤(包括“錯誤(error)”和“警告(warning)”)后,程序經(jīng)過連接(link)就得到可執(zhí)行的目標程序。運行程序,輸入程序所需數(shù)據(jù),就可得到運行結(jié)果。應(yīng)當對運行結(jié)果作分析,看它是否符合要求。有的初學(xué)者看到運行結(jié)果就認為沒問題了,不作認真分析,這是危險的。
有時,數(shù)據(jù)比較復(fù)雜,難以立即判斷結(jié)果是否正確??梢允孪瓤紤]好一批“試驗數(shù)據(jù)”,輸入這些數(shù)據(jù)可以很容易判斷結(jié)果正確與否。例如解方程。事實上,當程序復(fù)雜時很難把所有的可能情況全部都試到,選擇典型的臨界數(shù)據(jù)作試驗即可。
(四)運行結(jié)果不對,大多屬于邏輯錯誤。對這類錯誤往往需要仔細檢查和分析才能發(fā)現(xiàn)。可以采用以下辦法:
1.將程序與流程圖仔細對照,如果流程圖是正確的,程序?qū)戝e了,是很容易發(fā)現(xiàn)的。例如,復(fù)合語句忘記寫花括弧,只要一對照流程圖就能很快發(fā)現(xiàn)。
2.如果實在找不到錯誤,可以采用“分段檢查”的方法。在程序不同的位置設(shè)幾個printf函數(shù)語句,輸出有關(guān)變量的值,逐段往下檢查。直到找到在某一段中數(shù)據(jù)不對為止。這時就已經(jīng)把錯誤局限在這一段中了。不斷減小“查錯區(qū)”,就能發(fā)現(xiàn)錯誤所在。
3.也可以用“條件編譯”命令進行程序調(diào)試(在程序調(diào)試階段,若干printf函數(shù)語句就要進行編譯并執(zhí)行。當調(diào)試完畢,這些語句不用再編譯了,也不再被執(zhí)行了)。這種方法可以不必一一去掉printf函數(shù)語句,以提高效率。
4.如果在程序中沒有發(fā)現(xiàn)問題,就要檢查流程圖有無錯誤,即算法有無問題。如有則改正之,接著修改程序。
5.有的系統(tǒng)還提供debug(調(diào)試)工具,跟蹤程序并給出相應(yīng)信息,使用更為方便,請查閱有關(guān)手冊。
總之,程序調(diào)試是一項細致深入的工作,需要下功夫,動腦子,善于積累經(jīng)驗。在程序調(diào)試過程中往往反映出一個人的水平,經(jīng)驗和態(tài)度。希望大家給以足夠的重視。上機調(diào)試程序的目的決不是為了“驗證程序的正確”,而是“掌握調(diào)試的方法和技術(shù)”,要學(xué)會自己找問題,這樣慢慢自己就會寫出錯誤較少的實用程序。
五、代碼的實現(xiàn)
#include
#define MAXSIZE 100
struct student { int num;char name[20];char sex[5];char class[30];int semester;char course[30];int score[3];struct student *next;};
struct list { int class;struct student *head;};
void CreatClassStudent(struct list Class[],int n)//創(chuàng)建班級 { char ch;int i;i = 1;struct student *head,*p,*q;head =(struct student *)malloc(sizeof(struct student));q = p = head;while(i <= n){
printf(“輸入第%d個班級的信息:n”,i);
struct student *head,*p,*q;
head =(struct student *)malloc(sizeof(struct student));
Class[i].head = p = head;
while(1)
{
printf(“輸入學(xué)號:n”);
scanf(“%d”,&head->num);
printf(“輸入姓名:n”);
scanf(“%s”,head->name);
head->score[0] = 0;
head->score[1] = 0;
head->score[2] = 0;
getchar();
printf(“是否繼續(xù)?n”);
scanf(“%c”,&ch);
if(ch == 'n')
break;
p =(struct student *)malloc(sizeof(struct student));
head->next = p;
head = p;
}
head->next = NULL;
i++;} }
void print(struct list Class[],int n)//輸出學(xué)生信息
按照班級輸出 {
struct student *p;int i=1;
while(i <= n){
p = Class[i].head;
printf(“移動%d班學(xué)生信息n”,i);
while(p!= NULL)
{
printf(“%dt”,p->num);
printf(“%st”,p->name);
printf(“%dt%dt%d”,p->score[0],p->score[1],p->score[2]);
p = p->next;
printf(“n”);
}
printf(“n”);
i++;} }
void StudentId(struct list Class[],int n)//按照學(xué)號輸入成績
{ int score1,score2,score3;int t;int key;printf(“輸入學(xué)號:”);
scanf(“%d”,&key);
int i;i = 1;struct student *p;
while(i <= n){
p = Class[i].head;
while(p!= NULL)
{
if(p->num == key)
{
printf(“輸入3門成績:”);
scanf(“%d%d%d”,&score1,&score2,&score3);
p->score[0] = score1;
p->score[1] = score2;
p->score[2] = score3;
t = 0;
}
p = p->next;
}
i++;} if(t!= 0)
printf(“該學(xué)號不存在!n”);}
void ClassId(struct list Class[],int n){ int i = 1;struct student *p;while(i <= n){
printf(“錄入%d班級的成績n”,i);
p = Class[i].head;
while(p!= NULL)
{
printf(“輸入學(xué)號為%d的學(xué)生成績:”,p->num);
scanf(“%d%d%d”,&p->score[0],&p->score[1],&p->score[2]);
p = p->next;
}
printf(“成績錄入結(jié)束n”);
i++;} }
void StudentNumberChange(struct list Class[],int n){ int i = 1;int key;int score1,score2,score3;int t;
printf(“請輸入學(xué)號:”);scanf(“%d”,&key);struct student *p;while(i <= n){
p = Class[i].head;
while(p!= NULL)
{
if(p->num == key)
{
printf(“請輸入新的成績:”);
scanf(“%d%d%d”,&score1,&score2,&score3);
p->score[0] = score1;
p->score[1] = score2;
p->score[2] = score3;
t = 0;
}
p = p->next;
}
i++;} if(t!= 0){
printf(“該學(xué)號不存在!n”);} }
void ClassNumChange(struct list Class[],int n)
{
int class;int score1,score2,score3;char ch;struct student *p;printf(“輸入需要修改信息的班級號%d----%d:”,1,n);scanf(“%d”,&class);
p = Class[class].head;
while(p!= NULL)
{
printf(“是否要修改%d的成績:”,p->num);
getchar();
scanf(“%c”,&ch);
if(ch == 'n')
{
p = p->next;
continue;
}
printf(“輸入新的成績:”);
scanf(“%d%d%d”,&score1,&score2,&score3);
p->score[0] = score1;
p->score[1] = score2;
p->score[2] = score3;
p = p->next;
} }
void TotalGrade(struct list Class[],int n){ int sum = 0;int average;int k;int class;printf(“輸入班級號%d------%dn”,1,n);scanf(“%d”,&class);struct student *p;p = Class[class].head;while(p!= NULL){
sum = p->score[0] + p->score[1] + p->score[2];
average = sum / 3;
printf(“%d的總成績是%d平均成績是%dn”,p->num,sum,average);
p = p->next;
} }
void QueryResults(struct list Class[],int n){ int i = 1;int key;int t;struct student *p;printf(“請輸入學(xué)號:”);scanf(“%d”,&key);while(i <= n){
p = Class[i].head;
while(p!= NULL)
{
if(p->num == key)
{
printf(“學(xué)號為%d的學(xué)生[移動%d班]”,p->num,i);
printf(“%dt%dt%dn”,p->score[0],p->score[1],p->score[2]);
t = 0;
break;
}
p = p->next;
}
if(t!= 0)
{
printf(“該學(xué)生不存在于%d班n”,i);
}
i++;} }
void NotPass(struct list Class[],int n){ int class;
printf(“請輸入班級號%d---%d:”,1,n);scanf(“%d”,&class);struct student *p;p = Class[class].head;printf(“%d班不及格名單n”,class);while(p!= NULL){
if(p->score[0] < 60 || p->score[1] < 60 || p->score[2] < 60)
{
printf(“%dt%st”,p->num,p->name);
if(p->score[0] < 60)
printf(“語文t%dt不及格t”,p->score[0]);
if(p->score[1] < 60)
printf(“線性代數(shù)t%dt不及格t”,p->score[1]);
if(p->score[2]<60)
printf(“英語t%dt不及格t”,p->score[2]);
printf(“n”);
}
p = p->next;} }
void Transcript(struct list Class[],int n){ int class;printf(“請輸入班級號:”);scanf(“%d”,&class);struct student *p;p = Class[class].head;while(p!= NULL){
printf(“%dt%st%dt%dt%dn”,p->num,p->name,p->score[0],p->score[1],p->score[2]);
p = p->next;} }
void menu(){ printf(“ 0、退出系統(tǒng)n”);printf(“
1、創(chuàng)建班級n”);printf(“
2、輸出學(xué)生信息n”);printf(“
3、按照學(xué)號錄入學(xué)生成績n”);printf(“
4、按照班級錄入學(xué)生成績n”);printf(“
5、按照學(xué)號修改學(xué)生成績n”);printf(“
6、按照班級修改學(xué)生成績n”);printf(“
7、按照班級統(tǒng)計學(xué)生的總成績n”);printf(“
8、按照學(xué)號查詢學(xué)生成績n”);printf(“
9、按照班級輸出不及格學(xué)生名單及科目n”);printf(“
10、按照班級輸出學(xué)生成績單n”);}
int main(){ int n;int i;int operation;
struct list Class[MAXSIZE];Class[0].head = NULL;Class[0].class =-1;
printf(“輸入班級數(shù)量:n”);scanf(“%d”,&n);while(1){
menu();
printf(“請選擇操作:”);
scanf(“%d”,&operation);
switch(operation)
{
case 1:CreatClassStudent(Class,n);
break;
case 2:print(Class,n);
break;
case 3:StudentId(Class,n);
break;
case 4:ClassId(Class,n);
break;
case 5:StudentNumberChange(Class,n);
break;
case 6:ClassNumChange(Class,n);
break;
case 7:TotalGrade(Class,n);
break;
case 8: QueryResults(Class,n);
break;
case 9:NotPass(Class,n);
break;
case 10:Transcript(Class,n);
break;
case 0:exit(-1);
} }
return 0;
}
六、參考文獻
1、《嵌入式linux上的C語言編程實踐》
北京亞嵌教育研究中心、韓超
電子工業(yè)出版社
2、《linux 下C語言應(yīng)用編程》
楊鑄
北京航空航天大學(xué)出版社
3、《linux 高級程序設(shè)計》
楊宗德
鄧玉春
人民郵電出版社
七、開發(fā)環(huán)境
開發(fā)環(huán)境linux操作系統(tǒng)
GNU Compiler Collection程序生成工具軟件