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

正文內(nèi)容

基于arm的電子點(diǎn)菜系統(tǒng)的設(shè)計(jì)-資料下載頁(yè)

2025-06-28 00:56本頁(yè)面
  

【正文】 SⅡ具有以下的主要特性[24](1) 源代碼公開(kāi),嵌入式實(shí)時(shí)操作系統(tǒng)μC/OSII公開(kāi)全部的程序清單。絕大部分μC/OSII的源代碼是用移植性很強(qiáng)的ANSI C編寫(xiě)的,和微處理器硬件相關(guān)的那部分是用匯編語(yǔ)言編寫(xiě)的。匯編語(yǔ)言編寫(xiě)的部分已經(jīng)壓縮到最低限度,使得μC/OSII便于移植到其他微處理器上。由于代碼的開(kāi)放性,使用者可以清楚地了解該操作系統(tǒng)各個(gè)方面的設(shè)計(jì)細(xì)節(jié),通過(guò)自己修改源代碼,來(lái)構(gòu)造符合應(yīng)用需求的操作系統(tǒng)環(huán)境。 (2) 具有很好的可移植性,μC/OSⅡ絕大部分源碼都是用高可移植性的ANSIC編寫(xiě)的,可移植性較強(qiáng),并且與微處理器硬件相關(guān)的那部分是用匯編語(yǔ)言寫(xiě)的,便于μC/OSⅡ移植到其它各種微處理器上,能夠運(yùn)行在8位、16位、32位、甚至64位和DSP上。(3) 可固化,μC/OSⅡ是為嵌入式應(yīng)用而設(shè)計(jì)的,只要開(kāi)發(fā)者有編譯、連接、下載等固化手段,此/05一H就可以嵌入到開(kāi)發(fā)者的產(chǎn)品中。(4) 可裁剪,根據(jù)需要,可以只使用μC/OSⅡ中應(yīng)用程序需要的那些系統(tǒng)服務(wù),這樣就減少了產(chǎn)品中此/05一H所需的存儲(chǔ)器空間。(5) 占先式和多任務(wù)也是μC/OSⅡ的特色,μC/OSⅡ總是運(yùn)行就緒條件下優(yōu)先級(jí)最高的任務(wù),但不支持輪轉(zhuǎn)法任務(wù)調(diào)度,是一個(gè)完全占先式的實(shí)時(shí)內(nèi)核。(6) μC/OSⅡ可以管理64個(gè)任務(wù),目前版本保留8個(gè)給系統(tǒng),應(yīng)用程序最多可以有56個(gè)任務(wù),并且賦予每個(gè)任務(wù)的優(yōu)先級(jí)是不同的。(7) 可確定性,全部μC/OSII的函數(shù)調(diào)用與服務(wù)的執(zhí)行時(shí)間具有可確定性。也就是說(shuō),全部μC/OSII的函數(shù)調(diào)用與服務(wù)執(zhí)行時(shí)間是可知的。進(jìn)而言之,μC/OSII服務(wù)的執(zhí)行時(shí)間不依賴于應(yīng)用程序任務(wù)的多少。(8) 中斷管理,在μC/OSII中執(zhí)行中斷時(shí)可以使正在執(zhí)行的任務(wù)暫時(shí)掛起,如果優(yōu)先級(jí)更高的任務(wù)被該中斷喚醒,則高優(yōu)先級(jí)的任務(wù)在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數(shù)可達(dá)255層。(9) 系統(tǒng)服務(wù),μC /OSII提供很多系統(tǒng)服務(wù),例如郵箱、消息隊(duì)列、信號(hào)量、塊大小固定的內(nèi)存的申請(qǐng)與釋放以及時(shí)間相關(guān)函數(shù)等(10) 穩(wěn)定性與可靠性,μC/OSII是基于μC/OS的,μC/OSII與μC/OS的內(nèi)核是一樣的,只不過(guò)提供了更多的功能。綜上所述,μC/OSⅡ的這些特性非常適合于開(kāi)發(fā)無(wú)線電子點(diǎn)菜系統(tǒng),因此本設(shè)計(jì)選用μC/OSⅡ操作系統(tǒng)。Ⅱ在微處理器上的移植條件 為了方便移植,大部分的μC/OSⅡ代碼是用C語(yǔ)言寫(xiě)的,但仍需要用匯編語(yǔ)言寫(xiě)一些與處理器相關(guān)的代碼,這是因?yàn)棣藽/OSⅡ在讀寫(xiě)處理器寄存器時(shí)只能通過(guò)匯編語(yǔ)言來(lái)實(shí)現(xiàn)。由于μC/OSⅡ僅是一個(gè)內(nèi)核式操作系統(tǒng),并且在設(shè)計(jì)時(shí)就己經(jīng)充分考慮了可移植性,所以μC/OSⅡ的移植相對(duì)來(lái)說(shuō)是比較容易的。要使μC/OSⅡ正常運(yùn)行,處理器必須滿足以下要求[25]: ①處理器的C編譯器能產(chǎn)生可重入代碼。 ②用C語(yǔ)言就可以打開(kāi)和關(guān)閉中斷。 ③處理器支持中斷,并且能產(chǎn)生定時(shí)中斷(通常在10~100Hz之間): ④處理器支持能夠容納一定量數(shù)據(jù)的硬件堆棧。 ⑤處理器有將堆棧指針和其他CPU寄存器讀出和存儲(chǔ)到堆?;騼?nèi)存的指令:μC/OSⅡ進(jìn)行任務(wù)調(diào)度的時(shí)候,會(huì)把當(dāng)前任務(wù)的CPU寄存器存放到此任務(wù)的堆棧中,然后再?gòu)牧硪粋€(gè)任務(wù)的堆棧中恢復(fù)原來(lái)的工作寄存器,繼續(xù)運(yùn)行另一個(gè)任務(wù)。所以,寄存器的入棧和出棧是μC/OSⅡ多任務(wù)調(diào)度的基礎(chǔ)。 LPC2294處理器能夠滿足以上的要求。,通常在編寫(xiě)多任務(wù)系統(tǒng)上運(yùn)行的程序時(shí),也要注意代碼重入性問(wèn)題。 顯示屏軟件設(shè)計(jì)流程圖本設(shè)計(jì)顯示屏選用LCD12864,顯示4行8列個(gè)漢字。:LCD初始化功能設(shè)置 清顯示RAM區(qū)置顯示初值,顯示指針指向第一行待顯示數(shù)據(jù)送入緩沖區(qū)預(yù)設(shè)數(shù)據(jù)顯示在指定區(qū)域中調(diào)整指針,指向LCD的下一行顯示結(jié)束 否 結(jié)束開(kāi)始 顯示屏軟件流程圖 顯示屏程序(1) LCD初始化程序void LCD_init(void){ DelayNmS(40)。 //Delay 40ms //alt_busy_sleep(40000)。 *LCD_WRITE_COMMAND = 0x30。 DelayNmS(10)。 //Delay 10ms *LCD_WRITE_COMMAND = 0x30。 DelayNmS(5)。 //Delay 5ms *LCD_WRITE_COMMAND = 0x30。 ST7920_SendCMD(LCD_CMD_8BIT)。 ST7920_SendCMD(LCD_CMD_DISP_ON)。 ST7920_SendCMD(LCD_CMD_CLEAR)。 ST7920_SendCMD(LCD_CMD_AC_INC)。 }(2)清屏函數(shù)void LCD_init(void){ DelayNmS(40)。 //Delay 40ms //alt_busy_sleep(40000)。 *LCD_WRITE_COMMAND = 0x30。 DelayNmS(10)。 //Delay 10ms *LCD_WRITE_COMMAND = 0x30。 DelayNmS(5)。 //Delay 5ms *LCD_WRITE_COMMAND = 0x30。 ST7920_SendCMD(LCD_CMD_8BIT)。 ST7920_SendCMD(LCD_CMD_DISP_ON)。 ST7920_SendCMD(LCD_CMD_CLEAR)。 ST7920_SendCMD(LCD_CMD_AC_INC)。 }(3) 漢字顯示*名稱: LCD_printf*功能: 在指定位置顯示指定長(zhǎng)度的字符*入口參數(shù): row :列位置07 col :行位置03 *pdata: 顯示數(shù)據(jù)緩沖區(qū) len :顯示字符長(zhǎng)度 064 一個(gè)漢字為2個(gè)字符*說(shuō)明: 支持中英文混合顯示,支持自動(dòng)換行,地址為雙字節(jié)長(zhǎng)度自增 int LCD_printf(alt_u8 row,alt_u8 col,alt_u8 *pdata,alt_u8 len){ int ret_code。 if(len64) //最多顯示64個(gè)字符,超出部分忽略 len = 64。 row = rowamp。0x03。 col = colamp。0x07。 while(len!=0) { ST7920_DdramAddress(DDRAMaddr[row][col])。//進(jìn)行行調(diào)換 for(。col16amp。amp。len!=0。col++) { ret_code = ST7920_SendDATA(*pdata++)。 if(ret_code == LCD_ERR_TIMEOUT) return ret_code。 len。 } row++。 row = rowamp。0x03。 col = 0。 } return LCD_ERR_OK。}void Task0 (void *pdata){ uint8 ret_code。 uint8 *Rcv_Data。 uint8 Err。 uint8 picture = 0。 // 顯示畫(huà)面的編號(hào)0 ~ 4 pdata = pdata。 TargetInit ()。 P1_GPIOInit(LCD_LIGHT,1)。 // LCD背光控制引腳設(shè)置為GPIO輸出模式 P0_GPIOInit(KEY1 | KEY5,0)。 // KEY1和KEY5控制引腳設(shè)置為GPIO輸入模式 OSTaskCreate (Task1,(void *)0, amp。Task1Stk[TaskStkLengh 1], 3)。 LCD_init()。 LCD_BacklightCon(LCD_BACKLIGHT_ON)。 // 打開(kāi)背光 ST7920_ClearScreen()。 LCD_PlotPic(PowerOnPicture)。 // 顯示第一屏畫(huà)面 while(1) { Rcv_Data = OSMboxPend(OS_Mbox,0,amp。Err)。 if(*Rcv_Data == Next) // 按下KEY5,顯示下一屏畫(huà)面 picture = (picture + 1) % 10。 if(*Rcv_Data == Pre) // 按下KEY1,顯示上一屏畫(huà)面 { if(picture == 0) picture = 9。 else picture。 } switch(picture) { case 0: // 顯示 0 ST7920_ClearScreen()。 LCD_printf(0,0,(uint8 *)0, strlen(0))。 break。 case 1: // 顯示 1 ST7920_ClearScreen()。 LCD_printf(0,1,(uint8 *)1, strlen(1))。 break。 case 2: // 顯示2 ST7920_ClearScreen()。 LCD_printf(0,2,(uint8 *)2, strlen(2))。 break。 case 3: // 顯示3 ST7920_ClearScreen()。 LCD_printf(0,3,(uint8 *)3, strlen(3))。 break。 case 4: // 顯示4 ST7920_ClearScreen()。 LCD_printf(0,4,(uint8 *)4, strlen(4))。 break。 case 5: // 顯示5 ST7920_ClearScreen()。 LCD_printf(0,5,(uint8 *)5, strlen(5))。 break。 case 6: // 顯示6 ST7920_ClearScreen()。 LCD_printf(0,6,(uint8 *)6, strlen(6))。 break。 case 7: // 顯示7 ST7920_ClearScreen()。 LCD_printf(0,7,(uint8 *)7, strlen(7))。 break。 case 8: // 顯示8 ST7920_ClearScreen()。 LCD_printf(0,8,(uint8 *)8, strlen(8))。 break。 case 9: // 顯示9 ST7920_ClearScreen()。 LCD_printf(0,9,(uint8 *)9, strlen(9))。 break。 /* case 4: // 顯示第5幅圖片 ST7920_ClearScreen()。 LCD_printf(0,0,(uint8 *)歡迎使用EDA/SOPC/DSP/MCU/ARM/SOC教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)廣州致遠(yuǎn)電子公司, strlen(歡迎使用EDA/SOPC/DSP/MCU/ARM/SOC教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)廣州致遠(yuǎn)電子公司))。 break。 */ default: break。 } } } 5 調(diào)試本設(shè)計(jì)中主要工具為protel,在畫(huà)原理圖、繪制PCB板的過(guò)程中,會(huì)遇到很多問(wèn)題,以下是對(duì)protel的介紹及調(diào)試。 protel介紹 Protel是PROTEL公司在20世紀(jì)80年代末推出的CAD工具,是PCB設(shè)計(jì)者的首選軟件。它較早在國(guó)內(nèi)使用,普及率最高,有些高校的電路專業(yè)還專門開(kāi)設(shè)Protel課程,幾乎所在的電路公司都要用到它。早期的Protel主要作為印刷板自動(dòng)布線工具使用,現(xiàn)在普遍使用的是Prote
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1