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,適用于便攜式設(shè)備使用(如筆記本電腦及 PDA) 。MAX232 內(nèi)有一個高效電荷泵,可以完成兩路 TTL/RS232 電平的轉(zhuǎn)換。?圖 RS232 通信串行通訊數(shù)據(jù)幀格式RS232 接口電路的主要功能是:將來自微處理器的發(fā)送信號 TxD 通過“發(fā)送器”轉(zhuǎn)換成通訊網(wǎng)絡中的電壓信號,也可以將通訊網(wǎng)絡中的電壓信號通過“接收器” 轉(zhuǎn)換成被微處理器接收的 RxD 信號。任一時刻, RS232 收發(fā)器只能夠工作在“接收” 或“發(fā)送”兩種模式之一,因此,必須為 RS232 接口電路增加一個收/ 發(fā)邏輯控制電路。 [16]26 / 47圖 串口模塊部分的主要電路圖 LED 顯示模塊LED 模塊系統(tǒng)中獨立性比較強的一個模塊,LED 點陣的驅(qū)動顯示主要是靠 LED 模塊中自帶的 LED 控制器來完成,它只與與 ARM 的 UART 口進行通信,當它收到上位機的命令后,直接調(diào)用存儲器內(nèi)的相關(guān)程序驅(qū)動 LED 點陣。它只和外部的串口模塊有連接。圖 為 LED 模塊與串口的連接示意圖: RxD TxD接口電路VCCRxD LED 模塊TxDMAX23212V圖 LED 模塊與串口連接示意圖27 / 475 系統(tǒng)的軟件設(shè)計本章主要是軟件系統(tǒng)的設(shè)計,軟件的設(shè)計主要包括對串口的控制,以及 ARM 主控程序的設(shè)計。由于本系統(tǒng)選用的 LED 屏自帶了非常完備的底層驅(qū)動程序,故本系統(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)技術(shù)。該工具是專為基于 ARM RISC 的處理器而設(shè)計的, 它可加速并簡化嵌入式開發(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)是指用于生成特定的目標文件的選項設(shè)置 (包括匯編選項,編譯選項,鏈接選項以及鏈接后的處理選項)和所用的文件的集合。CodeWarrior IDE 能夠讓用戶將源代碼文件,庫文件還有其他相關(guān)的文件以及配置設(shè)置等放在一個工程中。每個工程可以創(chuàng)建和管理生成目標設(shè)置的多個配置。例如,要編譯一個包含調(diào)試信息的生成目標和一個基于 ARM7TDMI 的硬件優(yōu)化生成目標,生成目標可以在同一個工程中共享文件,同時使用各自的設(shè)置。ADS 的 CodeWarrior IDE 是基于 Metrowerks CodeWarrior IDE 版本的。它經(jīng)過適當?shù)牟眉粢灾С?ADS 工具鏈。針對 ARM 的配置面板為用戶提供了在 CodeWarrior IDE 集成環(huán)境下配置各種ARM 開發(fā)工具的能力,這樣用戶可以不用在命令控制臺下就能夠使用各種命令。以 ARM 為目標平臺的工程創(chuàng)建向?qū)?,可以使用戶以此為基礎(chǔ),快速創(chuàng)建 ARM和 Thumb 工程。由于 ARM 調(diào)試器(AXD)沒有集成在 CodeWarrior IDE 中,這就意味著,用戶不能在 CodeWarrior IDE 中進行斷點調(diào)試和查看變量。所以在調(diào)試的時候?qū)⒂玫?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ū)域結(jié)束橫向坐標Area_Endlen 2 bytes HEX 區(qū)域結(jié)束縱向坐標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é) 起始縱向結(jié)束橫向結(jié)束縱向(最大數(shù)據(jù)頁)0x33,0x01,0x34,0x01,0x35,0x02,0x36,0x02,0x37,0x02,0x38,0x02, 表 通訊格式 ARM 主程序的設(shè)計 主程序的簡要分析在 ARM 沒有收到報站信號(即中斷信號)之前,ARM 主要執(zhí)行主程序,主程序的作用就是完成對串口和中斷口的初始化設(shè)置,隨后等待中斷信號的到來,若有中斷,則轉(zhuǎn)而執(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í)行中斷子程序返回無圖 主程序流程圖 中斷子程序的設(shè)計 中斷子程序的簡要分析本系統(tǒng)采用的 LED 模塊具有極其完善的底層驅(qū)動程序,所以在本設(shè)計中就無需設(shè)計 LED 底層驅(qū)動程序,只需嚴格按照既有的數(shù)據(jù)幀格式向 LED 模塊傳送各種參數(shù)即可,LED 控制器將自行調(diào)用各種底層驅(qū)動程序。中斷子程序的主要功能函數(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()的功能:將相關(guān)區(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)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1