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

正文內(nèi)容

arm芯片控制led顯示屏-資料下載頁

2025-07-07 11:40本頁面
  

【正文】 ESD 保護大于 MILSTD883(方法 3015)標準的 2022VMAX232 功能分析:MAX23 是 MAXIM 公司生產(chǎn)的 RS232 收發(fā)器,它支持 EIA/TIA232 和 ITU,適用于便攜式設備使用(如筆記本電腦及 PDA) 。MAX232 內(nèi)有一個高效電荷泵,可以完成兩路 TTL/RS232 電平的轉換。?圖 RS232 通信串行通訊數(shù)據(jù)幀格式RS232 接口電路的主要功能是:將來自微處理器的發(fā)送信號 TxD 通過“發(fā)送器”轉換成通訊網(wǎng)絡中的電壓信號,也可以將通訊網(wǎng)絡中的電壓信號通過“接收器” 轉換成被微處理器接收的 RxD 信號。任一時刻, RS232 收發(fā)器只能夠工作在“接收” 或“發(fā)送”兩種模式之一,因此,必須為 RS232 接口電路增加一個收/ 發(fā)邏輯控制電路。 [16]26 / 47圖 串口模塊部分的主要電路圖 LED 顯示模塊LED 模塊系統(tǒng)中獨立性比較強的一個模塊,LED 點陣的驅動顯示主要是靠 LED 模塊中自帶的 LED 控制器來完成,它只與與 ARM 的 UART 口進行通信,當它收到上位機的命令后,直接調(diào)用存儲器內(nèi)的相關程序驅動 LED 點陣。它只和外部的串口模塊有連接。圖 為 LED 模塊與串口的連接示意圖: RxD TxD接口電路VCCRxD LED 模塊TxDMAX23212V圖 LED 模塊與串口連接示意圖27 / 475 系統(tǒng)的軟件設計本章主要是軟件系統(tǒng)的設計,軟件的設計主要包括對串口的控制,以及 ARM 主控程序的設計。由于本系統(tǒng)選用的 LED 屏自帶了非常完備的底層驅動程序,故本系統(tǒng)只需編寫一些上位機的控制軟件。 ARM ADS 集成開發(fā)環(huán)境的介紹ARM ADS 全稱為 ARM DEVELOPER SUITE,是 ARM 公司推出的新一代 ARM集成開發(fā)工具?,F(xiàn)在 ADS 的最新版本是 。ADS 由命令行開發(fā)工具,ARM 實時庫,GUI 開發(fā)環(huán)境( Code Warrior 和 AXD) ,實用程序和支持軟件組成。下面介紹一下本系統(tǒng)開發(fā)時要用到的 Code Warrior 和 AXD。CodeWarrior for ARM 是一套完整的集成開發(fā)工具,充分發(fā)揮了 ARM RISC 的優(yōu)勢, 使產(chǎn)品開發(fā)人員能夠很好的應用尖端的片上系統(tǒng)技術。該工具是專為基于 ARM RISC 的處理器而設計的, 它可加速并簡化嵌入式開發(fā)過程中的每一個環(huán)節(jié),使得開發(fā)人員只需通過一個集成軟件開發(fā)環(huán)境就能研制出 ARM 產(chǎn)品,在整個開發(fā)周期中,開發(fā)人員無需離開 CodeWarrior 開發(fā)環(huán)境, 因此節(jié)省了在操做工具上花的時間,使得開發(fā)人員有更多的精力投入到代碼編寫上來。CodeWarrior 集成開發(fā)環(huán)境(IDE) 為管理和開發(fā)項目提供了簡單多樣化的圖形用戶界面。用戶可以使用 ADS 的 CodeWarrior IDE 為 ARM 和 Thumb 處理器開發(fā)用C,C++,或 ARM 匯編語言的程序代碼。通過提供下面的功能,CodeWarrior IDE 縮短了用戶開發(fā)項目代碼的周期。1. 全面的項目管理功能。2. 子函數(shù)的代碼導航功能,使得用戶迅速找到程序中的子函數(shù)??梢栽?CodeWarrior IDE 為 ARM 配置在 中介紹的各種命令工具,實現(xiàn)對工程代碼的編譯,匯編和鏈接。在 CodeWarrior IDE 中所涉及到的 target 有兩種不同的語義。目標系統(tǒng)(Target system)是特指代碼要運行的環(huán)境,是基于 ARM 的硬件。比如,要為 ARM 開發(fā)板上編寫要運行在它上面的程序,這個開發(fā)板就是目標系統(tǒng)。28 / 47生成目標(Build target)是指用于生成特定的目標文件的選項設置 (包括匯編選項,編譯選項,鏈接選項以及鏈接后的處理選項)和所用的文件的集合。CodeWarrior IDE 能夠讓用戶將源代碼文件,庫文件還有其他相關的文件以及配置設置等放在一個工程中。每個工程可以創(chuàng)建和管理生成目標設置的多個配置。例如,要編譯一個包含調(diào)試信息的生成目標和一個基于 ARM7TDMI 的硬件優(yōu)化生成目標,生成目標可以在同一個工程中共享文件,同時使用各自的設置。ADS 的 CodeWarrior IDE 是基于 Metrowerks CodeWarrior IDE 版本的。它經(jīng)過適當?shù)牟眉粢灾С?ADS 工具鏈。針對 ARM 的配置面板為用戶提供了在 CodeWarrior IDE 集成環(huán)境下配置各種ARM 開發(fā)工具的能力,這樣用戶可以不用在命令控制臺下就能夠使用各種命令。以 ARM 為目標平臺的工程創(chuàng)建向導,可以使用戶以此為基礎,快速創(chuàng)建 ARM和 Thumb 工程。由于 ARM 調(diào)試器(AXD)沒有集成在 CodeWarrior IDE 中,這就意味著,用戶不能在 CodeWarrior IDE 中進行斷點調(diào)試和查看變量。所以在調(diào)試的時候將用到 AXD 軟件,在用這個軟件調(diào)試時要用到 ARM 仿真器,在調(diào)試時可以很方便的控制程序的運行和查看變量。它提供對 ARM 處理器的指令集的仿真,為 ARM 和 Thumb 提供精確的模擬。用戶可以在硬件尚未做好的情況下,開發(fā)程序代碼。圖 本實驗系統(tǒng) ARM 程序的工程文件截圖[17]29 / 47 軟件的控制流程分析 握手信號的流程與通信數(shù)據(jù)幀格式通訊開始上下位機都處于通訊就緒狀態(tài)。首先 ARM 發(fā)送幀頭,幀頭攜帶通訊模式﹑屏號等信息,LSL 接收到幀頭后,根據(jù)條件判斷是否接收數(shù)據(jù),若不符合,立即返回主程序;若符合,則接收數(shù)據(jù),并且返回信息。握手通訊過程說明如下: 1.上位機發(fā)送握手幀頭信息(2 個字節(jié)屏號) ;2.下位機接收幀頭后,返回屏號;3.上位機接收到返回的屏號后,開始發(fā)送正式數(shù)據(jù),發(fā)送完畢后等待返回成功信息;4.下位機接收數(shù)據(jù)成功后,返回屏號,表示成功。通用格式如下:屏號 操作碼 數(shù)據(jù)長度 操作數(shù) 幀尾[說明]:屏號: LED 屏號(幀頭) (1 byte)操作碼: 見操作碼編號表 (1 byte)數(shù)據(jù)長度: 發(fā)送的操作數(shù)據(jù)長度(當下載數(shù)據(jù)時頁數(shù) Pages) (1 bytes)操作數(shù)據(jù): ARM 下發(fā)的數(shù)據(jù) (n bytes)幀尾: 0XFF (1 byte)操作碼編號表: 操作碼 意義0XD6 下載數(shù)據(jù)(16 點陣字庫方式)0XD7 下載字幕(16 點陣字庫方式)加載數(shù)據(jù)的具體格式:1. 0XD6: 下載數(shù)據(jù)30 / 47數(shù)據(jù)段名稱 意義LED_Number 1 byte HEX 幀頭(屏號)Operate_Code 1 byte HEX 操作碼(0XD6)Area_Mode 1 byte HEX 區(qū)域類型(0XC0)Saved 1 byte HEX 保留字節(jié)Area_Beginrow 2 bytes HEX 區(qū)域起始橫向坐標Area_Beginlen 2 bytes HEX 區(qū)域起始縱向坐標Area_Endrow 2 bytes HEX 區(qū)域結束橫向坐標Area_Endlen 2 bytes HEX 區(qū)域結束縱向坐標Operate_Bytes HEX 數(shù)據(jù)長度Display_ Mode x bytes HEX 顯示方式Display_Data x bytes HEX 顯示數(shù)據(jù)Frame_End 1 byte HEX 幀尾(0xAA)表 下載數(shù)據(jù)格式說明:區(qū)域類型(1 Byte):主區(qū)為 0x04顯示方式(4 Bytes): 進入方式 DisplayStyle:0:表示隨機狀態(tài)139:表示相應的進入方式 退出方式 ExitDisplay 保留,默認為 0。運行速度 DisplayTime:015 分 16 個等級 級別越大處理時間越長,運行速度越慢;當為 0 時,速度最快。顯示時間 DisplaySpeed:0255 分 256 個等級級別越大顯示時間越長,一個級別大約為 1 秒;當為 0 時,顯示時間為 0。2. 0XD7: 下載游走字幕命令該命令的命令格式與上一個是相同的。 [18]31 / 47LED_Number 1 byteHEX 幀頭(屏號)Operate_Code 1 byte HEX 操作碼(0XD7)Area_Mode 1 byte HEX 區(qū)域類型(0XC0)Saved 1 byte HEX 保留字節(jié)Area_Beginrow 2 bytes HEX 區(qū)域起始橫向坐標Area_Beginlen 2 bytes HEX 區(qū)域起始縱向坐標Area_Endrow 2 bytes HEX 區(qū)域起始橫向坐標Area_Endlen 2 bytes HEX 區(qū)域起始縱向坐標Operate_Bytes 1 byte HEX 數(shù)據(jù)長度(最大頁數(shù) Pages)Display_ Mode 4 bytes HEX 顯示方式Display_Data x bytes HEX 顯示數(shù)據(jù)Frame_End 1 byte HEX 幀尾(0xAA)說明:區(qū)域類型(1 Byte):字幕為 0x08其它與主區(qū)相同。 通信實例分析發(fā)送舉例說明:例如對第 1 號發(fā)送主區(qū)數(shù)據(jù),對應屏上 1 號位置顯示數(shù)據(jù)為:通訊格式如下:幀頭 操作碼 區(qū)域類型 區(qū)域坐標 數(shù)據(jù)長度 顯示方式 顯示數(shù)據(jù) 幀尾0x01 0xD6 0x04 起始橫向 Pages 4 字節(jié) 0x31,0x01,0x32,0x01, 0xAA1234 5678[19]32 / 47保留字節(jié) 起始縱向結束橫向結束縱向(最大數(shù)據(jù)頁)0x33,0x01,0x34,0x01,0x35,0x02,0x36,0x02,0x37,0x02,0x38,0x02, 表 通訊格式 ARM 主程序的設計 主程序的簡要分析在 ARM 沒有收到報站信號(即中斷信號)之前,ARM 主要執(zhí)行主程序,主程序的作用就是完成對串口和中斷口的初始化設置,隨后等待中斷信號的到來,若有中斷,則轉而執(zhí)行中斷子程序。主程序的代碼規(guī)模不大,以下為主程序的主要程序代碼:void main(){ UARTMODE uart0_set。 = 8。 // 8 位數(shù)據(jù)位 = 1。 // 1 位停止位 = 0。 // 無奇偶校驗 UART0_Ini(115200, uart0_set)。 // 初始化串口模式 U0FCR = 0x01。 // 使能 FIFOIninIRQ( ) ;while(1) { delay(uint32 1000); } //等待中斷 主程序流程圖程序流程圖如下:33 / 47開始串口初始化中斷初始化有無中斷有執(zhí)行中斷子程序返回無圖 主程序流程圖 中斷子程序的設計 中斷子程序的簡要分析本系統(tǒng)采用的 LED 模塊具有極其完善的底層驅動程序,所以在本設計中就無需設計 LED 底層驅動程序,只需嚴格按照既有的數(shù)據(jù)幀格式向 LED 模塊傳送各種參數(shù)即可,LED 控制器將自行調(diào)用各種底層驅動程序。中斷子程序的主要功能函數(shù)就是將存儲器中的數(shù)據(jù)發(fā)送到串口,以及從串口讀取下位機的返回信號:實現(xiàn)該功能的三個子34 / 47程序如下:子程序 SendByte(uint8 data)的功能是將一個字節(jié)的數(shù)據(jù)發(fā)送到串口,然后串口自動將數(shù)據(jù)發(fā)送到 LED 模塊。void SendByte(uint8 data){ U0THR = data。 // 發(fā)送數(shù)據(jù)delay(uint32 1000) //延時等待 while( (U0LSRamp。0x20)==0 )。 //判斷數(shù)據(jù)是否發(fā)送完畢}子程序 ISendBuf()的功能:將相關區(qū)域的大塊數(shù)據(jù)發(fā)送到串口。入口參數(shù):buf 是待發(fā)送數(shù)據(jù)區(qū)的首地址;no 是發(fā)送數(shù)據(jù)的字節(jié)個數(shù)。void ISendBuf(uint8 const *buf, uint8 no){ uint8 i。 for(i=0。 ino。 i++) SendByte(buf[i])。}子程序 reeceiveByte()的功能是從串口 UART0 接收字節(jié)數(shù)據(jù)。若接收的數(shù)據(jù)符合預期,函數(shù)返回值是“1”,否則,函數(shù)返回值是 “0”。 Uint8 reeceiveByte(uint8 fiame) {uint8 c。C=U0RBR。IF(C==flame) RETURN(1)。Else return(0)。 } 中斷子程序流程 下面為中斷子程序的流程圖。35 / 47
點擊復制文檔內(nèi)容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1