版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、24小時學會嵌入式系統(tǒng)編程參考文獻:1、魏洪興周亦敏嵌入式系統(tǒng)設計與實例開發(fā)實驗教材I基于ARM微處理器與UC/OS-II實時操作系統(tǒng)清華大學出版社2005年9月2、田澤嵌入式系統(tǒng)開發(fā)與應用教程北京航天航空大學出版社2005年3月3、任哲嵌入式實時操作系統(tǒng)UC/OS-II原理及應用北京航天航空大學出版社2005年8月目錄第1小時:認識嵌入式系統(tǒng)第2小時:熟悉硬件和軟件第3小時:串行通信口第4小時:端口程序地設計第5小時:鍵盤和LED第6小時:鍵盤應用程序第7小時:LCD顯示第8小時:中文顯示1)第9小時:中文顯示2)第10小時:圖形函數(shù)地設計第11小時:定時器中斷程序第12小時:設計一個秒表程
2、序第13、14小時:設計一個時鐘程序,可以利用鍵盤輸入修改時鐘第1524小時:設計一個俄羅斯方塊游戲第1小時:認識嵌入式系統(tǒng)一、什么是嵌入式系統(tǒng)1、嵌入式系統(tǒng)地定義lEEEv國際電氣和電子項目師協(xié)會)定義:嵌入式系統(tǒng)是用于控制、監(jiān)視或者輔助操作機器和設備地裝置.國內(nèi)定義:以應用為中心,以計算機技術(shù)為基礎,軟硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求地專用計算機系統(tǒng).2、嵌入式系統(tǒng)地特點是“專用”地計算機系統(tǒng)運行環(huán)境差異大比通用PC系統(tǒng)資源少功耗低、體積小、集成度高、成本低具有系統(tǒng)測試和可靠性評估體系具有較長地生命周期具有固化在非易失性存儲器中地代碼使用實時操作系統(tǒng)RTO
3、SRealTimeOperationSystem)需要專用開發(fā)工具和方法進行設計包含專用調(diào)試電路(11)是知識集成系統(tǒng)二、嵌入式系統(tǒng)地組成嵌入式系統(tǒng)由硬件和軟件兩部分組成.嵌入式系統(tǒng)地硬件是以嵌入式處理器為中心,由存儲器、I/O設備、通信模塊以及電源等必要地輔助接口組成.但是除了處理器和基本外圍電路以外,其他電路可以進行裁剪、定制.嵌入式系統(tǒng)地軟件包括嵌入式操作系統(tǒng)和嵌入式應用軟件兩部分.1、嵌入式處理器地介紹目前比較有影響地嵌入式RISC處理器產(chǎn)品有:IBM公司地PowerPC,MIPS公司地MIPS,Sun公司地Sparc,ARM公司地ARM系列.ARM系列處理器是英國先進RISC機器公司
4、AdvaneedRISCMachines)地產(chǎn)品是我們學習地主要處理器目前ARM處理器核因其低功耗、高性能等突出優(yōu)點在32位嵌入式應用中穩(wěn)居第一,成為低功耗、高性能嵌入式處理器地代名詞.2、嵌入式操作系統(tǒng)與計算機系統(tǒng)一樣,嵌入式系統(tǒng)也需要操作系統(tǒng),我們稱之為嵌入式操作系統(tǒng).但注意地是:嵌入式操作系統(tǒng)對于嵌入式系統(tǒng)本身并不是必須地,對于一些應用簡單地嵌入式系統(tǒng),嵌入式操作系統(tǒng)可以省略.嵌入式操作系統(tǒng)地特點微型化:因為受嵌入式系統(tǒng)芯片內(nèi)部地存儲器容量所限嵌入式操作系統(tǒng)地內(nèi)核都比較小,例如uC/OS-II最小內(nèi)核2KB,完整內(nèi)核小于10KB.可裁剪性:因為嵌入式操作系統(tǒng)運行地硬件平臺多種多樣,其宿主
5、對象五花八門,所以要求嵌入式操作系統(tǒng)中所提供地各個功能模塊可以讓用戶根據(jù)需要選擇使用.實時性.高可靠性易移植性:為了適用多種硬件平臺,嵌入式操作系統(tǒng)應可在不做大量修改地情況下穩(wěn)定地運行于不同平臺.實時操作系統(tǒng)嵌入式操作系統(tǒng)通常都是實時操作系統(tǒng),實時操作系統(tǒng)必須滿足兩個要求:一、實時操作系統(tǒng)地計算必須產(chǎn)生正確地結(jié)果,稱為邏輯或功能正確LogicalorFunctionalCorrectness);二、實時操作系統(tǒng)地計算必須在預定地周期內(nèi)完成,稱為時間正確TimeCorrectness).普通地操作系統(tǒng)只保證邏輯或功能正確,而不考慮時間正確.實時操作系統(tǒng)需要滿足三個條件:實時操作系統(tǒng)必須是多任務系
6、統(tǒng)多任務系統(tǒng)可以提高CPU地利用率.如果把一個大任務分解成多個可并行運行地小任務,在一個任務需要等待I/O時,可以交出對CPU地使用權(quán),讓CPU去運行其他任務.另外多任務便于軟件設計與維護.多任務實時操作系統(tǒng)地內(nèi)核分成兩種:不可剝奪型內(nèi)核與可剝奪型內(nèi)核.但是無論哪種類型地內(nèi)核,每個任務都必須具有一個唯一地優(yōu)先級來表示它獲得CPU地能力.不可剝奪型內(nèi)核也叫合作型多任務內(nèi)核,在這種內(nèi)核中,總是優(yōu)先級高地任務最先獲得CPU地使用權(quán),為了防止某個任務獨霸CPU地使用權(quán),這種內(nèi)核要求每個任務必須能主動放棄CPU地使用權(quán).可剝奪型內(nèi)核總是運行優(yōu)先級最高地任務,即使CPU正在運行某個優(yōu)先級低地任務,一旦發(fā)現(xiàn)
7、有優(yōu)先級更高地任務就緒,就立即轉(zhuǎn)向執(zhí)行優(yōu)先級高地任務,即優(yōu)先級高地任務剝奪優(yōu)先級低地任務地CPU地使用權(quán).任務地切換時間應與系統(tǒng)中地任務數(shù)無關(guān)多任務系統(tǒng)中會出現(xiàn)任務之間地切換,通常操作系統(tǒng)會有一個調(diào)度器來完成這個工作,調(diào)度器在進行任務切換時要消耗一定地時間,這個時間地長短影響系統(tǒng)地實時性,為了使應用程序地設計者可以計算出系統(tǒng)完成某個任務地準確執(zhí)行時間,要求調(diào)度器地運行時間固定.中斷延時地時間可預知并盡可能短.嵌入式操作系統(tǒng)地管理功能多任務管理存儲管理周邊資源管理中斷管理2、嵌入式操作系統(tǒng)地介紹uC/OS-II,源碼開發(fā)地嵌入式操作系統(tǒng)VxWorks,WindRiverSystems公司地實時操
8、作系統(tǒng)WinCEuCLinux三、嵌入式系統(tǒng)軟件開發(fā)流程1、開發(fā)環(huán)境地建立嵌入式系統(tǒng)應用軟件地開發(fā)屬于跨平臺開發(fā),因此需要一個交叉開發(fā)環(huán)境.交叉開發(fā)是指在一臺通用計算機上進行軟件地編輯、編譯,然后下載到嵌入式設備中運行調(diào)試地開發(fā)方式.用來開發(fā)地通用計算機稱為宿主機,嵌入式設備稱為目標機.2、源文件編輯階段3、編譯4、鏈接5、下載6、調(diào)試第2小時:熟悉硬件和軟件一、硬件環(huán)境:博創(chuàng)公司地UP-NETARM30C開發(fā)板1、硬件資源CPU:ARM7TDMI結(jié)構(gòu)芯片S3C44B0X,工作頻率60MHzBIOS:2M,NORFLASH內(nèi)存:8M,SDRAM海量存儲器:16M,NANDFLASH鍵盤:17鍵
9、數(shù)字小鍵盤.顯示:320*240像素,256色LCD液晶顯示器是LiquidCrystalDisplay),帶四線電阻式觸摸屏USB接口:D12芯片,USB1.1標準串口:2路,最高波特率比特率)115200b/s網(wǎng)絡接口:RTL8019,10M以太網(wǎng)CAN接口:波特率125Kb,250Kb,500Kb,1Mb調(diào)試接口:JTAG14針,20針電機:直流電機有刷),步進電機帶1/64減速器)A/D:ARM自帶8路10位A/D,滿量程2.5V,4路電位器,4路擴展D/A:10位,滿量程4.096VLED8個,共陰極,與鍵盤共同由ZLG7289芯片驅(qū)動音頻輸出:IIS總線,UDA1341芯片,44.
10、1KHz音頻.擴展插槽:2個,提供系統(tǒng)總線以及其他空余資源接口.配套JTAG仿真器,電源適配器,通信電纜.2、相關(guān)資源UarmJtag并口仿真器驅(qū)動程序23個實驗案例源代碼uC/OS-II操作系統(tǒng),文件系統(tǒng),驅(qū)動程序,API函數(shù)地庫文件開發(fā)平臺全部電路原理圖BIOS原始映像文件.產(chǎn)品DEMO映像文件,系統(tǒng)必備地字庫文件,相關(guān)圖片文件等S3C44B0X等芯片文檔ADS環(huán)境下地項目模板教案API手冊,實驗指導書.3、S3C44B0M理器S3C44B0X處理器是三星公司出品地微處理器,片內(nèi)集成ARM7TDM核,并在ARM7TDM核地功能地基礎上集成了豐富地外圍模塊.主要有:在ARM7TDM核地基礎上
11、增加了8KB地Cache可以根據(jù)編程需要Cache地大小可以改為0/4/8KB,未用地Cache可以作為片內(nèi)地SRAM使用.外部擴充存儲器控制器FP/EDO/SDRAM控制,片選邏輯)S3C44B0X處理器最多可以外接8個地址空間,每個地址空間為32MB共256MB.本開發(fā)板內(nèi)存從00000000H開始2MB空間是BIOS,在00000000H處保存BOOTLOADE以啟動開發(fā)板.從01C00000H開始到01FFFFFFH共4MB空間是特殊功能寄存器從02000000H開始16MB空間是海量存儲器充當硬盤,從0C000000H開始8MB空間是內(nèi)存.其中前512Kbyte地空間劃分出來,作為系
12、統(tǒng)地LCD顯示緩沖區(qū)使用更新其中地數(shù)據(jù),就可以更新LCD地顯示).系統(tǒng)地程序存儲空間從0 xC080000開始.也就是,引導系統(tǒng)地時候,需要把system.bin文件復制到0 xC080000開始地地址空間,把PC指針指向0 xC080000.LCD控制器最大支持256色地DSTN),并帶有1個LCD專用地DMA通道.2個通用地DMA通道/2個帶外部請求引腳地DMA通道.2個帶有握手協(xié)議地UART,1個SIO.1個多主地I2C總線控制器1個IIS總線控制器5個PWM定時器和1個內(nèi)部定時器.看門狗定時器71個通用可編程I/O口,8個外部中斷源功耗控制模式:正常、低、休眠和停止8路10位ADC具有
13、日歷功能地RTC實時時鐘)4PLL時鐘發(fā)生器:可編程多相位鎖相環(huán)路PLL)時鐘發(fā)生器二、安裝系統(tǒng)1、開發(fā)平臺硬件安裝電源適配器提供5V穩(wěn)壓直流電源,輸出端插入平臺電源插口.用并行電纜連接PC機并口和簡易JTAG仿真器,仿真器地JTAG電纜插入平臺上方地JTAG接口.用串口電纜連接PC機串口和平臺地UART(接口,主要用于監(jiān)視平臺運行情況.需要時用USB電纜連接PC機主USB口和平臺地從USB設備口,用于激活U盤或USB通信.需要時用對等網(wǎng)線連接PC機網(wǎng)口和平臺網(wǎng)口,用于網(wǎng)絡通信.2、開發(fā)平臺軟件安裝編譯軟件地安裝,安裝ADS1.2.安裝超級終端,超級終端與平臺地UART0口有關(guān),用于監(jiān)視平臺運
14、行情況.關(guān)于安裝超級終端地方法見參考文獻1地1.3節(jié)第1619頁).JTAG驅(qū)動程序地安裝.關(guān)于安裝JTAG驅(qū)動程序地方法見參考文獻1地附錄A第四部分中第3點:JTAG驅(qū)動程序地安裝第209213頁).然后對ADS集成開發(fā)環(huán)境進行配置、建立項目文件、并調(diào)試.具體操作見參考文獻1地1.2節(jié)第五部分第816頁).關(guān)于項目文件地簡單說明.項目包括兩個子目錄:init目錄和STARTU目錄init目錄包括7個文件,分別是heap.s;isr_address.s;readme.txt;retarget.c;scat_ram.scf;scat_rom.scf;stack.sSTARTUP!錄包括19個文件
15、,不同項目此目錄內(nèi)容有所變化,分別是44B.H;44BINIT.S;BITOPS.H;DEF.H;EXIO.c;EXIO.h;ISR.H;ISR.c;LCD320.c;MEMCFG.;SMain.c;Maro.h;MyUart.c;MyUart.h;OPTION.H;OPTION.S;UHAL.c;lcd320.h;uhal.hinit目錄包括7個文件,分別是heap.s:匯編文件,設置系統(tǒng)地堆;isr_address.s:匯編文件,設置系統(tǒng)地中斷向量表;readme.txt:文本文件,說明文檔;retarget.c:C語言文件,與heap.s,stack.s配合設置系統(tǒng)地堆棧;scat_ra
16、m.scf,scat_rom.scf:說明文件,說明系統(tǒng)內(nèi)存設置地情況;stack.s:匯編文件,設置系統(tǒng)地棧STARTUB錄包括19個文件,不同項目此目錄內(nèi)容有所變化,分別是44B.H:C語言頭文件,設置特殊功能寄存器,中斷向量表,以及中斷屏蔽字;44BINIT.S:匯編文件,初始化程序,每個項目執(zhí)行時先運行此程序;BITOPS.HC語言頭文件,設置一個關(guān)于位操作地函數(shù);DEF.HC語言頭文件,替換了標注地C地數(shù)據(jù)類型,以便移植;EXIO.c,EXIO.h:設置一些函數(shù);ISR.H:C語言頭文件,設置中斷向量號;ISR.c:C語言文件,與中斷有關(guān)地函數(shù);lcd320.h,LCD320.c:設
17、置與顯示有關(guān)地函數(shù);MEMCFG.S匯編文件,初始化內(nèi)存地配置;Main.c:C語言文件,主函數(shù);Maro.h:C語言頭文件,設置幾個函數(shù);MyUart.c;MyUart.h:設置與UART有關(guān)地函數(shù);OPTION.”O(jiān)PTIONS與時鐘,Cache有關(guān)地設置;:與CPU開發(fā)板有關(guān)地初始化函數(shù)3、開發(fā)過程打開超級終端.運行JTAG.運行ADS1.2三、軟件編程1、以實驗1.1為例體會編程過程.2、附加要求:編寫一個“百錢買百雞”地程序,要求把運算結(jié)果在LCD和超級終端上顯示.雞翁一值錢五,雞母一值錢三,雞雛三值錢一.百錢買百雞,問雞翁、雞母、雞雛各幾何?)第3小時:串行通信口一、關(guān)于串行通信地
18、知識1、串行通信地概念數(shù)據(jù)通信分兩種:并行通信和串行通信.并行通信是指數(shù)據(jù)地各位同時進行傳送;串行通信是指數(shù)據(jù)一位位地順序傳送.串行通信又分為:同步串行通信和異步串行通信.同步串行通信是指在約定地波特率下,發(fā)送和接收地兩個頻率保持同步,因而傳送和接收地每位數(shù)據(jù)保持同步,故傳送地信息位幾乎不受限制,典型地信息長度為幾十到幾百個字節(jié),要實現(xiàn)這種傳送,必須在串行數(shù)據(jù)中加入或隱含加入同步脈沖,接收時將其分離出來以便實現(xiàn)同步.這種通信方式地發(fā)送器接收器都比較復雜,成本較高.異步串行通信是指在約定地波特率下,傳送和接收地數(shù)據(jù)不需要嚴格地保持同步,允許有相對延遲,即頻率差別不大于1/16,就可以正確地完成通
19、信,它每傳送一個數(shù)據(jù)靠數(shù)據(jù)地起始位同步一次,這種傳送方式,要傳送20%地額外附加控制信息,速度要相應受影響.但是,它地控制電路和接口都比較簡單,因此廣泛應用于計算機接口技術(shù)中.并行通信時數(shù)據(jù)地各個位同時傳送,可以字或字節(jié)為單位并行進行.并行通信速度快,但用地通信線多、成本高,故不宜進行遠距離通信.計算機或PLC各種內(nèi)部總線就是以并行方式傳送數(shù)據(jù)地.另外,在PLC底板上,各種模塊之間通過底板總線交換數(shù)據(jù)也以并行方式進行.串行通信時數(shù)據(jù)是一位一位順序傳送,只用很少幾根通信線,串行傳送地速度低,但傳送地距離可以很長,因此串行適用于長距離而速度要求不高地場合.在PLC網(wǎng)絡中傳送數(shù)據(jù)絕大多數(shù)采用串行方式
20、.2、串行通信地方式從通信雙方信息地交互方式看,串行通信方式可以有以下三種:單工通信:只有一個方向地通信而沒有反方向地交互.半雙工通信.通信雙方都可以發(fā)送接收)信息,但不能同時雙向發(fā)送.半雙工通信線路簡單,有兩條通信線就行了,這種方式得到廣泛應用.全雙工通信.通信雙方可以同時發(fā)送和接收信息,雙方地發(fā)送與接收裝置同時工作.全雙工通信地效率最高,但控制相對復雜一些,系統(tǒng)造價也較高.通信線至少三條其中一條為信號地線),或四條無信號地線).單工通信不能實現(xiàn)雙方交流信息,故在PLC網(wǎng)絡中極少使用.而半雙工及全雙工通信可實現(xiàn)雙方數(shù)據(jù)傳送,故在PLC網(wǎng)絡中應用很多.串行通信中,傳輸速率用每秒中傳送地位數(shù)位/
21、秒)來表示,稱之為比特率vbps).常用地標準比特率有300、600、1200、2400、4800、9600和19200bps等.3、異步串行通信地接口方式:RS-232-C.RS表示“推薦標準”,是指美國電子工業(yè)協(xié)會EAT正式公布地標準,它規(guī)定了異步串行通信接口地電氣連接方式,這些方式地數(shù)據(jù)格式有統(tǒng)一地標準,它規(guī)定:開始1位起始位,以發(fā)送一個邏輯“0”表示,接著是數(shù)據(jù)位,數(shù)據(jù)位可以是5、6、7、8位,再加1個奇偶校驗位也可以不用),然后是1個、1個半或2個停止位,停止位用邏輯“1”表示,所有地位持續(xù)時間是相同地,如果傳送后數(shù)據(jù)間有空閑,則以持續(xù)“1”表示.當下一數(shù)據(jù)起始位到達時,傳送線上能產(chǎn)
22、生一個由高電平到低電平地變化,從而判斷出新數(shù)據(jù)地到來傳送時,先傳送數(shù)據(jù)最低位,最后是最高位.1110D0D1D2C3DD5D5DP1111空閑位起至始位數(shù)據(jù)位校驗位停止位空閑位接收方按約定格式可以檢測出二種錯誤:奇偶錯:是否符合約定地奇偶校驗方式幀格式錯:一個字符從起始位到停止位地總位數(shù)是否正確溢出錯:若先接收地字符未被微機讀取,后面地字符又傳送到了,則產(chǎn)生溢出錯RS-232-C地信號線問題,發(fā)送數(shù)據(jù)通過TxD終端將串行數(shù)據(jù)發(fā)送至UMODEM,(DTEDCE.引腳3:RxD(Receiveddata-RxD,接收數(shù)據(jù)通過RxD線終端接收從MODEM發(fā)來地串行數(shù)據(jù),(DCE-DTE.引腳4:RT
23、S(Requesttosend-RTS,請求發(fā)送用來表示DTE請求DCE發(fā)送數(shù)據(jù),即當終端要發(fā)送數(shù)據(jù)時,使該信號有效vON狀態(tài)),向MODE請求發(fā)送.它用來控制MODE是否要進入發(fā)送狀態(tài).引腳5:CTSvCleartosend-CTS),允許發(fā)送一一用來表示DCE準備好接收DTE發(fā)來地數(shù)據(jù),是對請求發(fā)送信號RTS地響應信號.當MODE已準備好接收終端傳來地數(shù)據(jù),并向前發(fā)送時,使該信號有效,通知終端開始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)引腳6:DSRvDatasetready-DSR,數(shù)據(jù)裝置準備好有效時,數(shù)據(jù)載波檢出線或稱接收線信號檢出)一一用來表示DCE已接通通信鏈路,告知DTE準備接收數(shù)據(jù).當本地
24、地MODE收到由通信鏈路另一端,數(shù)據(jù)終端準備好有效時/ensurenofunctionsthatusesemihostingintmain(voidcharc11。charerr。ARMTargetInit(。/開發(fā)版初始化while(1Uart_SendByte(0,0 xa。/換行Uart_SendByte(0,0 xd。/回車err=Uart_Getch(c1,0,0。/從串口采集數(shù)據(jù)Uart_SendByte(0,c10。/顯示采集地數(shù)據(jù)return0。在這里我們重點分析函數(shù)Uart_Getch和Uart_SendByte.voidUart_SendByte(intUartnum,U8
25、data/開發(fā)板上地信息送微機,在超級終端上顯示信息./Uartnum:UART!路號while(!(rUTRSTAT0&0 x2。/如果發(fā)送緩沖器不空,即UTRSTAT01=0則等待.Delay(1。WrUTXHO(data/向發(fā)送緩沖器寫數(shù)據(jù).ARM是發(fā)送方.elsewhile(!(rUTRSTAT1&0 x2。/WaituntilTHRisempty.Delay(1。WrUTXH1(data。charUart_Getch(char*Revdata,intUartnum,inttimeout/通過鍵盤送信息給開發(fā)板inti=0。if(Uartnum=0while(!(rUTRSTAT0&0
26、 x1。/如果接收緩沖器空,即UTRSTAT00=0則等待.ARM是接收方.*Revdata=RdURXH0(returnTRUE。returnTRUE。elsewhile(!(rUTRSTAT1&Ox1。/Receivedataread*Revdata=RdURXH1(returnTRUE。三、軟件編程1、以實驗2.1為例體會編程過程.2、附加要求:編寫一個帶子函數(shù)地程序,子函數(shù)功能:通過超級終端輸入一個字符串,該字符串是由數(shù)字構(gòu)成,將該字符串轉(zhuǎn)換成對應地數(shù)字,返回主函數(shù),然后在主函數(shù)中把該返回值顯示出來.第4小時:端口程序地設計一、軟件編程編寫一個程序,要求通過程序獲取ARM系統(tǒng)地系統(tǒng)時間
27、,并通過超級終端輸入三個數(shù)字,來修改系統(tǒng)時間地小時、分鐘、秒.相關(guān)端口信息見參考文獻1地4.7節(jié)第139147頁),通過這個程序提高學生對端口編程地理解和能力.第5小時:鍵盤和LED一、鍵盤操作地基本知識1、硬件電路實驗箱鍵盤地操作依靠地是一個外接芯片ZLG7289,ZLG7289既可以接收鍵盤傳送地信息也可以驅(qū)動LED顯示,所以鍵盤操作和LED顯示同在一個實驗中.ZLG7289共有28個引腳,其中與鍵盤操作直接相關(guān)地引腳有4個:引腳6:CS,片選輸入,此引腳為低電平,可以向芯片發(fā)送指令或讀取鍵盤數(shù)據(jù).引腳7:CLK,同步時鐘輸入端,向芯片發(fā)送指令或讀取鍵盤數(shù)據(jù)時,此引腳電平為上升沿表示數(shù)據(jù)有
28、效.引腳8:DATA串行數(shù)據(jù)輸入/輸出端,當芯片接收指令時此引腳為輸入端,當讀取鍵盤數(shù)據(jù)時,此引腳在讀指令最后一個時鐘地下降沿變成輸出端.引腳9:KEY,按鍵有效輸出端,平時為高電平,當檢測到有效按鍵時,此引腳變?yōu)榈碗娖?與CPU連接:ZLG7289CSKEYCPUGPB5SIOCLKSDIOEXTINT4Zlg7289SIOCtrl=rSIOCON。(0 x20/GPB5(0 x10/GPG4doZlg7289SIOBand=rSBRDR。rSIOCON=0 x31。rSBRDR=0 xff。rPDATB&=(ZLG7289_CS刁while(0#defineZLG7289_DISABLE(
29、dorPDATB|=ZLG7289_CS。rSBRDR=Zlg7289SIOBandlrSIOCON=Zlg7289SIOCtrl。while(0/do-whilev條件):條件為假不循環(huán),以上只執(zhí)行1次.以上兩個宏定義是對ZLG7289進行打開,關(guān)閉地操作,此操作與S3C44B0X地SIO端口相關(guān).SendSIOData(data#defineWriteSDIO(data2、相關(guān)程序Keyboard.C#include44b.h#includedef.h#includeZlg7289.hunsignedcharKeyBoard_Map=4,8,11,0,0,0,0,0,5,9,12,15,1
30、,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0。/64,鍵值映射表U32GetKey(U16key。while(1while(rPDATG&ZLG7289_KEY。/有鍵按下/當GPG4為低電平,循環(huán)結(jié)束/初始時,外部中斷控制寄存器EXTINT低電平觸發(fā).key=Zlg7289_ReadKey(。/得到按鍵掃描碼Uart_Printf(n%d,key。if(key/按鍵值有效key=KeyBoard_Mapkey。/通過鍵盤映射表
31、得到按鍵值break。Delay(1000。returnkey。三、軟件編程1、以實驗2.2為例體會編程過程.2、附加要求:編寫一個程序,要求測試出小鍵盤地掃描碼,并把鍵值改成與字符一致在LCD上顯示.第6小時:鍵盤應用程序一、軟件編程編寫一個程序,要求通過小鍵盤輸入兩個數(shù)據(jù)進行算術(shù)運算/ensurenofunctionsthatusesemihostingexternU32LCDBuffer240320。/12x8字模/U8LCDTxtData12812=0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0
32、,0 x0,0 x0,0 x0,0 x0,0 x1c,0 x10,0 x10,0 x10,0 x10,0 x10,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xf0,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x1c,0 x0,0 x0,0 x0,0 x0,0 x0,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 xf0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0
33、 x10,0 x10,0 x10,0 x10,0 x10,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xfc,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x30,0 x78,0 x78,0 x78,0 x30,0 x0,0 x0,0 x0,0 x0,0 xfc,0 xfc,0 xfc,0 xcc,0 x84,0 x84,0 x84,0 xcc,0 xfc,0 xfc,0 xfc,0 xfc,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x
34、0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x1c,0 xc,0 xc,0 x14,0 x10,0 x30,0 x48,0 x48,0 x30,0 x0,0 x0,0 x0,0 x38,0 x44,0 x44,0 x38,0 x10,0 x7c,0 x10,0 x10,0 x10,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xc,0 x34,0 x2c,0 x34,0 x24,0 x24,0 x2c,0 x6c,0 x60
35、,0 x0,0 x0,0 x0,0 x54,0 x54,0 x28,0 x28,0 x6c,0 x28,0 x28,0 x54,0 x54,0 x0,0 x0,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 xfc,0 x10,0 x10,0 x10,0 x10,0 x10,0 x0,0 x4,0 xc,0 x1c,0 x3c,0 x7c,0 x3c,0 x1c,0 xc,0 x4,0 x0,0 x0,0 x10,0 x38,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x38,0 x10,0 x0,0 x0,0 x28,0 x28,0
36、 x28,0 x28,0 x28,0 x28,0 x28,0 x0,0 x28,0 x28,0 x0,0 x0,0 x3c,0 x54,0 x54,0 x54,0 x34,0 x14,0 x14,0 x14,0 x14,0 x14,0 x0,0 x0,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 xfc,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xfc,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 xf0
37、,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x38,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x0,0 x0,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x1c,0 x10,0 x10,0 x10,0 x10,0 x10,0 x0,0 x0,0 x0,0 x0,0 x8,0 x7c,0 x8,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x20,0 x7c,0 x20,0 x0,0 x0,0 x0,0 x0,0 x0,0 x
38、0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x
39、0,0 x0,0 x20,0 x20,0 x20,0 x20,0 x20,0 x20,0 x0,0 x20,0 x0,0 x0,0 x0,0 x28,0 x50,0 x50,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x28,0 x28,0 xfc,0 x28,0 x50,0 xfc,0 x50,0 x50,0 x0,0 x0,0 x0,0 x20,0 x78,0 xa8,0 xa0,0 x60,0 x30,0 x28,0 xa8,0 xf0,0 x20,0 x0,0 x0,0 x0,0 x48,0 xa8,0 xb0,0 x50,0
40、 x28,0 x34,0 x54,0 x48,0 x0,0 x0,0 x0,0 x0,0 x20,0 x50,0 x50,0 x78,0 xa8,0 xa8,0 x90,0 x6c,0 x0,0 x0,0 x0,0 x40,0 x40,0 x80,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x4,0 x8,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x8,0 x4,0 x0,0 x0,0 x40,0 x20,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x20,0 x40,0 x0,
41、0 x0,0 x0,0 x0,0 x20,0 xa8,0 x70,0 x70,0 xa8,0 x20,0 x0,0 x0,0 x0,0 x0,0 x0,0 x20,0 x20,0 x20,0 xf8,0 x20,0 x20,0 x20,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x40,0 x40,0 x80,0 x0,0 x0,0 x0,0 x0,0 x0,0 xf8,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x
42、0,0 x40,0 x0,0 x0,0 x0,0 x8,0 x10,0 x10,0 x10,0 x20,0 x20,0 x40,0 x40,0 x40,0 x80,0 x0,0 x0,0 x0,0 x70,0 x88,0 x88,0 x88,0 x88,0 x88,0 x88,0 x70,0 x0,0 x0,0 x0,0 x0,0 x20,0 x60,0 x20,0 x20,0 x20,0 x20,0 x20,0 x70,0 x0,0 x0,0 x0,0 x0,0 x70,0 x88,0 x88,0 x10,0 x20,0 x40,0 x80,0 xf8,0 x0,0 x0,0 x0,0 x0
43、,0 x70,0 x88,0 x8,0 x30,0 x8,0 x8,0 x88,0 x70,0 x0,0 x0,0 x0,0 x0,0 x10,0 x30,0 x50,0 x50,0 x90,0 x78,0 x10,0 x18,0 x0,0 x0,0 x0,0 x0,0 xf8,0 x80,0 x80,0 xf0,0 x8,0 x8,0 x88,0 x70,0 x0,0 x0,0 x0,0 x0,0 x70,0 x90,0 x80,0 xf0,0 x88,0 x88,0 x88,0 x70,0 x0,0 x0,0 x0,0 x0,0 xf8,0 x90,0 x10,0 x20,0 x20,0
44、x20,0 x20,0 x20,0 x0,0 x0,0 x0,0 x0,0 x70,0 x88,0 x88,0 x70,0 x88,0 x88,0 x88,0 x70,0 x0,0 x0,0 x0,0 x0,0 x70,0 x88,0 x88,0 x88,0 x78,0 x8,0 x48,0 x70,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x20,0 x0,0 x0,0 x0,0 x0,0 x20,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x20,0 x0,0 x0,0 x0,0 x20,0 x20,0 x0,0 x0,0 x4,0 x8
45、,0 x10,0 x20,0 x40,0 x20,0 x10,0 x8,0 x4,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xf8,0 x0,0 x0,0 xf8,0 x0,0 x0,0 x0,0 x0,0 x0,0 x40,0 x20,0 x10,0 x8,0 x4,0 x8,0 x10,0 x20,0 x40,0 x0,0 x0,0 x0,0 x0,0 x70,0 x88,0 x88,0 x10,0 x20,0 x20,0 x0,0 x20,0 x0,0 x0,0 x0,0 x0,0 x70,0 x88,0 x98,0 xa8,0 xa8,0 xb8,0 x80,0
46、x78,0 x0,0 x0,0 x0,0 x0,0 x20,0 x20,0 x30,0 x50,0 x50,0 x78,0 x48,0 xcc,0 x0,0 x0,0 x0,0 x0,0 xf0,0 x48,0 x48,0 x70,0 x48,0 x48,0 x48,0 xf0,0 x0,0 x0,0 x0,0 x0,0 x78,0 x88,0 x80,0 x80,0 x80,0 x80,0 x88,0 x70,0 x0,0 x0,0 x0,0 x0,0 xf0,0 x48,0 x48,0 x48,0 x48,0 x48,0 x48,0 xf0,0 x0,0 x0,0 x0,0 x0,0 xf
47、8,0 x48,0 x50,0 x70,0 x50,0 x40,0 x48,0 xf8,0 x0,0 x0,0 x0,0 x0,0 xf8,0 x48,0 x50,0 x70,0 x50,0 x40,0 x40,0 xe0,0 x0,0 x0,0 x0,0 x0,0 x38,0 x48,0 x80,0 x80,0 x9c,0 x88,0 x48,0 x30,0 x0,0 x0,0 x0,0 x0,0 xcc,0 x48,0 x48,0 x78,0 x48,0 x48,0 x48,0 xcc,0 x0,0 x0,0 x0,0 x0,0 xf8,0 x20,0 x20,0 x20,0 x20,0
48、x20,0 x20,0 xf8,0 x0,0 x0,0 x0,0 x0,0 x7c,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x90,0 xe0,0 x0,0 x0,0 x0,0 xec,0 x48,0 x50,0 x60,0 x50,0 x50,0 x48,0 xec,0 x0,0 x0,0 x0,0 x0,0 xe0,0 x40,0 x40,0 x40,0 x40,0 x40,0 x44,0 xfc,0 x0,0 x0,0 x0,0 x0,0 xd8,0 xd8,0 xd8,0 xd8,0 xa8,0 xa8,0 xa8,0 xa8,0 x0,0 x0,0
49、 x0,0 x0,0 xdc,0 x48,0 x68,0 x68,0 x58,0 x58,0 x48,0 xe8,0 x0,0 x0,0 x0,0 x0,0 x70,0 x88,0 x88,0 x88,0 x88,0 x88,0 x88,0 x70,0 x0,0 x0,0 x0,0 x0,0 xf0,0 x48,0 x48,0 x70,0 x40,0 x40,0 x40,0 xe0,0 x0,0 x0,0 x0,0 x0,0 x70,0 x88,0 x88,0 x88,0 x88,0 xe8,0 x98,0 x70,0 x18,0 x0,0 x0,0 x0,0 xf0,0 x48,0 x48,
50、0 x70,0 x50,0 x48,0 x48,0 xec,0 x0,0 x0,0 x0,0 x0,0 x78,0 x88,0 x80,0 x60,0 x10,0 x8,0 x88,0 xf0,0 x0,0 x0,0 x0,0 x0,0 xf8,0 xa8,0 x20,0 x20,0 x20,0 x20,0 x20,0 x70,0 x0,0 x0,0 x0,0 x0,0 xcc,0 x48,0 x48,0 x48,0 x48,0 x48,0 x48,0 x30,0 x0,0 x0,0 x0,0 x0,0 xcc,0 x48,0 x48,0 x50,0 x50,0 x30,0 x20,0 x20
51、,0 x0,0 x0,0 x0,0 x0,0 xa8,0 xa8,0 xa8,0 x70,0 x50,0 x50,0 x50,0 x50,0 x0,0 x0,0 x0,0 x0,0 xd8,0 x50,0 x50,0 x20,0 x20,0 x50,0 x50,0 xd8,0 x0,0 x0,0 x0,0 x0,0 xd8,0 x50,0 x50,0 x20,0 x20,0 x20,0 x20,0 x70,0 x0,0 x0,0 x0,0 x0,0 xf8,0 x90,0 x10,0 x20,0 x20,0 x40,0 x48,0 xf8,0 x0,0 x0,0 x0,0 x38,0 x20,
52、0 x20,0 x20,0 x20,0 x20,0 x20,0 x20,0 x20,0 x38,0 x0,0 x0,0 x40,0 x40,0 x40,0 x20,0 x20,0 x10,0 x10,0 x10,0 x8,0 x0,0 x0,0 x0,0 x70,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x70,0 x0,0 x0,0 x20,0 x50,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0
53、x0,0 x0,0 xfc,0 x0,0 x20,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x30,0 x48,0 x38,0 x48,0 x3c,0 x0,0 x0,0 x0,0 x0,0 xc0,0 x40,0 x40,0 x70,0 x48,0 x48,0 x48,0 x70,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x38,0 x48,0 x40,0 x40,0 x38,0 x0,0 x0,0 x0,0 x0,0 x18,0 x8,0 x8,0
54、 x38,0 x48,0 x48,0 x48,0 x3c,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x30,0 x48,0 x78,0 x40,0 x38,0 x0,0 x0,0 x0,0 x0,0 x1c,0 x20,0 x20,0 x78,0 x20,0 x20,0 x20,0 x78,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x3c,0 x48,0 x30,0 x40,0 x78,0 x44,0 x38,0 x0,0 x0,0 xc0,0 x40,0 x40,0 x70,0 x48,0 x48,0 x48,0 xec,0 x
55、0,0 x0,0 x0,0 x0,0 x20,0 x0,0 x0,0 x60,0 x20,0 x20,0 x20,0 x70,0 x0,0 x0,0 x0,0 x0,0 x10,0 x0,0 x0,0 x30,0 x10,0 x10,0 x10,0 x10,0 x10,0 xe0,0 x0,0 x0,0 xc0,0 x40,0 x40,0 x5c,0 x50,0 x70,0 x48,0 xec,0 x0,0 x0,0 x0,0 x0,0 xe0,0 x20,0 x20,0 x20,0 x20,0 x20,0 x20,0 xf8,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x
56、0,0 xf0,0 xa8,0 xa8,0 xa8,0 xa8,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xf0,0 x48,0 x48,0 x48,0 xec,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x30,0 x48,0 x48,0 x48,0 x30,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xf0,0 x48,0 x48,0 x48,0 x70,0 x40,0 xe0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x38,0 x48,0 x48,0 x48,0 x38,0 x8,0
57、 x1c,0 x0,0 x0,0 x0,0 x0,0 x0,0 xd8,0 x60,0 x40,0 x40,0 xe0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x78,0 x40,0 x30,0 x8,0 x78,0 x0,0 x0,0 x0,0 x0,0 x0,0 x20,0 x20,0 x70,0 x20,0 x20,0 x20,0 x18,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xd8,0 x48,0 x48,0 x48,0 x3c,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xec,0 x
58、48,0 x50,0 x30,0 x20,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xa8,0 xa8,0 x70,0 x50,0 x50,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xd8,0 x50,0 x20,0 x50,0 xd8,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 xec,0 x48,0 x50,0 x30,0 x20,0 x20,0 xc0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x78,0 x10,0 x20,0 x20,0 x78,0 x0,0 x0,0 x0,0
59、x18,0 x10,0 x10,0 x10,0 x20,0 x10,0 x10,0 x10,0 x10,0 x18,0 x0,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x10,0 x0,0 x60,0 x20,0 x20,0 x20,0 x10,0 x20,0 x20,0 x20,0 x20,0 x60,0 x0,0 x40,0 xa4,0 x18,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,0 x0,。intmain(voidcharerr,c11,ch。inti
60、,j,k,a,b。U32jcolor。U8*pLCDBuffer8=(U8*0 xc000000u8n,m。ARMTargetInit(LCD_Init(。for(i=0。iswitch(icase0:jcolor=0 x00000000break。case1:jcolor=0 x000000e0break。case2:jcolor=0 x0000d0e0break。case3:jcolor=0 x0000e0e0break。case4:jcolor=0 x0000e000break。case5:jcolor=0 x00e0e000break。case6:jcolor=0 x00e00000b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度砂石料開采與環(huán)境保護合作協(xié)議3篇
- 二零二五年度個人消費分期貸款質(zhì)押擔保合同書2篇
- 2025版鐵路貨運特點與業(yè)務流程規(guī)范合同3篇
- 香煙店衛(wèi)生標準規(guī)范
- 二零二五年度高校科研成果轉(zhuǎn)化委托實施協(xié)議3篇
- 2025版環(huán)保設備維修與改造承包協(xié)議書2篇
- 二零二五版學生頂崗實習實習單位實習教育與培訓合作協(xié)議3篇
- 二零二五年大學食堂食品安全保障協(xié)議范本3篇
- 二零二五版新風機銷售與技術(shù)支持合作合同2篇
- 二零二五年度個人二手房交易房屋租賃續(xù)約合同
- 2025江蘇南京市金陵飯店股份限公司招聘高頻重點提升(共500題)附帶答案詳解
- 公共政策分析 課件匯 陳振明 第0-9章 導論、緒論:政策科學的“研究綱領”- 政策監(jiān)控
- 《藥品招商營銷概論》課件
- 2025年牛津譯林版英語七年級下冊全冊單元重點知識點與語法匯編
- 《小學作文指導》課件
- 小學六年級數(shù)學方程應用題100道及答案解析
- 醫(yī)院消防安全培訓課件(完美版)
- 高考作文答題卡(作文)
- 在鄉(xiāng)村治理中深化推廣運用清單制、積分制、一張圖工作方案
- 梅毒的診斷與治療課件
- 工程倫理第二講工程中的風險、安全與責任課件
評論
0/150
提交評論