1. 《C8051F系列單片機開發與C語言編程》 北航的 一書怎麼樣啊
我覺得還可以,很詳細,不過我覺得他更像一本手冊,很全,有時不詳細,你也可以再參考其他的關於c8051f040的書,這樣可以互補一下,有時在看那本書時,說的也不是很清楚,所以我建議你可以同時參考其它側重點不同的關於c8051f的書。
2. stc系列單片機_μC/OS-Ⅱ在C8051F系列單片機上的移植及其應用系統開發
隨著微處理器技術的飛速發展和嵌入式系統實時性要求的不斷提高,應用實時多任務操作系統(RTOS)作為嵌入式設計的開發平台已逐步成為嵌入式應用設計的主流。本研究討論將μC/OS-Ⅱ移植到C8051F系列高性能8位單片機中,並以C8051F060為例闡述了其應用系統的開正基發過程。
一、μC/OS-Ⅱ的基本工作原理
1.任務管理
µC/OS-II中的任務可以是一個無限的循環,也可以在一次執行完畢後被「刪除」掉,即該任務可以認為CPU完全屬於該任務本身,實時應用程序的設計過程包括將問題分割為多個任務。µC/OS-II可以管理64個任務,每個任務有一定的優先順序,且優先順序不重復。
2.任務調度機制的實現
µC/OS-II是可剝奪型內核,優先順序高的任務一旦就緒就能剝奪優先順序較低任務的CPU使用權,這提高了系統的實時響應能力。在沒有中斷情況下,任務間的切換一般會調用OSSched()函數。µC/OS-II的中斷服務子程序和一般前/後台的操作有所不同。
3.任務之間的通信
在µC/OS-II中,可以通過信號量、消息郵箱和消息隊列等機制,實現數據共享和任務通信。消息郵箱用一個指針型變數,一個任務或一個中斷服務子程序通過內核服務,將一則消息放入郵箱,一個或多個任務通過內核服務接受這則消息。每個郵箱有相應的等待消息任務表,等待消息的任務在無消息時被置掛起態,並記入郵箱等待消息任務表中。消息放入郵箱,內核將運行等待消息任務表中優先順序最高的任務。
二、移植及應用
C8051F060系列單片機特別適舉數謹用於任務繁重的小型化測控系統。當晶元具有的功能被較多地使用時,系統要處理的任務就較多,編程頭緒也多。為了簡化應用程序實現程序模塊化,提高應用程序的實時性和可靠畢納性,將μCOS2Ⅱ移植到C8051F060中就成為一件很有意義的事。
1.µC/OS-II的移植
(1)修改INCLUDES.H文件:增加的頭文件放在頭文件列表的最後。
#include "os_cpu.h"
#include "os_cfg.h"
#include "ucos_ii.h"
(2)修改OS CPU.H文件:為確保系統在KEIL環境下正常運行,重新定義了一系列與C8051F060和KEIL編譯器相關的數據結構、宏和常數。
typedef unsigned char OS_STK;/*定義堆棧寬度為8位*/
typedef unsigned char OS_CPU_SR;
#define OS_ENTER_CRITICAL() EA="0"
#define OS_EXIT CRITICAL()EA="1"
(3)修改OS_CPU_A.ASM文件
①編寫OSSTartHihgRdy()函數:獲得將要恢復運行的就緒任務的堆棧映像的最低地址,並計算出堆棧長度,然後向系統堆棧復制數據、堆棧指針SP和堆棧映像指針?C_XBP,最後利用中斷返回。
②編寫OSCtxSw()函數:先從當前任務的TCB控制塊中獲得當前任務堆棧長度和堆棧映像指針,然後將系統堆棧的內容復制到任務堆棧映像,最後獲得將要恢復運行的就緒任務的TCB,程序跳至OSSTartHihgRdy()函數的入口,實現任務的切換。
③編寫OSIntCtxSw()函數:代碼大部分與OSCtxSw()相同,不同之處在於此處不需要再保存寄存器;需要調整堆棧指針(SP=SP-4),去掉在調用OSIntExit(),OSIntCtxSw()中壓入堆棧中的多餘的內容,以使堆棧中只包含任務的運行環境。
④編寫OSTickISR()函數:用定時器0作中斷源,初始化定時器0使系統每秒中斷100次,節拍率Tick=100次/秒。
(4)修改OS_CPU_C.C文件:編寫OSTaskStkInit()函數用來初始化堆棧。
2. 基於µC/OS-II的C8051F060應用系統開發
移植了µC/OS-II的C8051F060的每個功能都可以作為一個獨立的任務,每個任務都有自己的堆棧空間,可以被其他任務和中斷服務程序掛起。在設計中,主函數均以OSInit()開始,以OSStart()結束,中間部分為與硬體相關的系統初始化函數。對於任務的建立,必須依照µC/OS-II系統中建立任務的格式,根據自己的需求來確定任務的個數,並且根據任務的重要程度和被調用的頻率來設置好優先順序。創建好任務後,在主函數外面分別列出各個任務函數,每個任務函數都是一個無限循環程序,調用實現某些功能的應用程序函數,然後按設計的需求設置掛起方式和掛起時間。
應用系統測試程序實現了6個任務:Task1是每1s發送CAN數據包,Task2是處理CAN接收到的數據,Task3是每3s發送串口數據,Task4是處理串口接收到的數據,Task5是處理按鍵信息,Task6是顯示數據。CAN匯流排接收採用中斷方式,其優先順序高於其他任務,為了保證系統的實時性,在中斷程序中不處理數據,只是發送一個信號量,在Task2中處理CAN數據。串口數據接收亦採用中斷方式,其優先順序低於CAN高於其他任務。串口數據發送採用的是查詢方式,按位元組發送。程序中設置6個任務的優先順序依次為13,11,14,12,15,16。
在主程序中,首先初始化C8051F060和CAN,調用OsInit();然後調用API函數,創建6個任務(不包括空閑任務);再創建一個信號量CAN_EVENT,為中斷與Task2通信所用;最後調用OSStart(),OS系統開始運行優先順序最高的任務。Task2的優先順序最高,但是在沒收到CAN_EVENT之前,任務一直處於休眠狀態,當CAN接收器收到數據包後,Task2進入就緒態,在中斷返回時,進行任務切換,執行優先順序最高Task2。在Task2還未收到信號量之前,Task1、Task3、Task4、Task5和Task6根據時間延時和優先順序的不同各自獨立運行。
三、結束語
將編寫的測試程序下載到C8051F060應用系統中進行了實際的運行測試,測試表明,基於µC/OS-II的C8051F060應用系統中的各任務工作穩定可靠,取得了滿意的效果,為進行嵌入式應用系統的進一步設計奠定了基礎。
(作者單位:黑龍江省大慶職業學院)
註:本文中所涉及到的圖表、註解、公式等內容請以PDF格式閱讀原文
本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文
3. c8051f020介紹
Cygnal出的一種混合信號系統級單片機。片內含CIP-51的CPU內核,它的指令系統與MCS-51完全兼容。其中的C8051F020單片機含有64kB片內Flash程序存儲器,4352B的RAM、8個I/O埠共64根I/O口線、一個12位A/D轉換器和一個8位A/D轉換器以及一個雙12位D/A轉換器、2個比較器、5個16位通用定時器、5個捕捉/比較模塊的可編程計數/定時器陣列、看門狗定時器、VDD監視器和溫度感測器等部分。C8051F020單片機支持雙時鍾,其工作電壓范圍為2.7~3.6V(埠I/O,RST和JTAG引腳的耐壓為5V)。與以前的51系列單片機相比,C8051F020增添了許多功能,同時其可靠性和速度也有了很大提高。
4. C8051F系列單片機的C8051系列單片機的特點
C8051F具有上手快(全兼容8051指令集)、研發快(開發工具易用,可縮短研發周期)和見效快(調試手段靈活)的特點,其性能優勢具體體現在以下方面:
基於增強的CIP-51內核,其指令集與MCS-51完全兼容,具有標准8051的組織架構,可以使用標準的803x/805x匯編器和編譯器進行軟體開發。CIP-51採用流水線結構,70%的的指令執行時間為1或2個系統時鍾周期,是標准8051指令執行速度的12倍;其峰值執行速度可達100MIPS(C8051F120等),是目前世界上速度最快的8位單片機。
增加了中斷源。標準的8051隻有7個中斷源Silicon Labs 公司 C8051F系列單片機擴展了中斷處理這對於時實多任務系統的處理是很重要的擴展的中斷系統向CIP-51提供22個中斷源允許大量的模擬和數字外設中斷一個中斷處理需要較少的CPU干預卻有更高的執行效率。
集成了豐富的模擬資源,絕大部分的C8051F系列單片機都集成了單個或兩個ADC,在片內模擬開關的作用下可實現對多路模擬信號的採集轉換;片內ADC的采樣精度最高可達24bit,采樣速率最高可達500ksps,部分型號還集成了單個或兩個獨立的高解析度DAC,可滿足絕大多數混合信號系統的應用並實現與模擬電子系統的無縫介面;片內溫度感測器則可以迅速而精確的監測環境溫度並通過程序作出相應處理,提高了系統運行的可靠性。
集成了豐富的外部設備介面。具有兩路UART和最多可達5個定時器及6個PCA模塊,此外還根據不同的需要集成了SMBus、SPI、USB、CAN、LIN等介面,以及RTC部件。外設介面在不使用時可以分別禁止以降低系統功耗。與其他類型的單片機實現相同的功能需要多個晶元的組合才能完成相比,C8051單片機不僅減少了系統成本,更大大降低了功耗。
增強了在信號處理方面的性能,部分型號具有16x16 MAC以及DMA功能,可對所採集信號進行實時有效的演算法處理並提高了數據傳送能力。
具有獨立的片內時鍾源(精度最高可達0.5%),設計人員既可選擇外接時鍾,也可直接應用片內時鍾,同時可以在內外時鍾源之間自如切換。片內時鍾源降低了系統設計的復雜度,提高了系統可靠性,而時鍾切換功能則有利於系統整體功耗的降低。
提供空閑模式及停機模式等多種電源管理方式來降低系統功耗
實現了I/O從固定方式到交叉開關配置。固定方式的I/O埠,既佔用引腳多,配置又不夠靈活。在C8051F中,則採用開關網路以硬體方式實現I/O埠的靈活配置,外設電路單元通過相應的配置寄存器控制的交叉開關配置到所選擇的埠上。
復位方式多樣化,C8051F把80C51單一的外部復位發展成多源復位,提供了上電復位、掉電復位、外部引腳復位、軟體復位、時鍾檢測復位、比較器0復位、WDT復位和引腳配置復位。眾多的復位源為保障系統的安全、操作的靈活性以及零功耗系統設計帶來極大的好處。
從傳統的模擬調試到基於JTAG介面的在系統調試。C8051F在8位單片機中率先配置了標準的JTAG介面(IEEE1149.1)。C8051F的JTAG介面不僅支持Flash ROM的讀/寫操作及非侵入式在系統調試,它的JTAG邏輯還為在系統測試提供邊界掃描功能。通過邊界寄存器的編程式控制制,可對所有器件引腳、SFR匯流排和I/O口弱上拉功能實現觀察和控制。
C8051F系列單片機型號齊全,可根據設計需求選擇不同規模和帶有特定外設介面的型號,提供從多達100個引腳的高性能單片機到最小3mmX3mm的封裝,滿足不同設計的需要。
基於上述特點,Silicon Labs 公司C8051F系列單片機作為SoC晶元的傑出代表能夠滿足絕大部分場合的復雜功能要求,並在嵌入式領域的各個場合都得到了廣泛的應用:在工業控制領域,其豐富的模擬資源可用於工業現場多種物理量的監測、分析及控制和顯示;在攜帶型儀器領域,其低功耗和強大的外設介面也非常適合各種信號的採集、存儲和傳輸;此外,新型的C8051F5xx系列單片機也在汽車電子行業中嶄露頭角。正是這些優勢,使得C8051單片機在進入中國市場的短短幾年內就迅速風靡,相信隨著新型號的不斷推出以及推廣力度的不斷加大,C8051系列單片機將迎來日益廣闊的發展空間,成為嵌入式領域的時代寵兒
此系列單片機完全兼容MCS-51指令集,容易上手,開發周期短,大大節約了開發成本。C8051F系統集成度高,匯流排時鍾可達25M
5. C8051F系列的CPU
與標准8051完全兼容
CygnalC8051F系列單片機採用CIP51內核,Cygnal指令與MCS51指令系統全兼容可用標準的ASM51Keil C高級語言開發編譯C8051F系列單片機的程序
高速指令處理能力
標準的8051一個機器周期要佔用12個系統時鍾周期執行一條指令最少要一個機器周期CygnalC8051F系列單片機指令處理採用流水線結構機器周期由標準的12個系統時鍾周期降為1個系統時鍾周期指令處理能力比MCS51大大提高。CIP-51內核70% 指令的執行是在一個或兩個系統時鍾周期內完成的,只有四條指令的執行需4個以上時鍾周期。
CIP-51指令與MCS51指令系統完全兼容,共有111條指令。
增加了中斷源
標準的8051隻有7個中斷源,而Cygnal C8051F系列單片機擴展了中斷處理,這對於實時多任務系統的處理是很重要的。擴展的中斷系統向CIP-51提供22個中斷源,允許大量的模擬和數字外設中斷。一個中斷處理需要較少的CPU干預,卻有更高的執行效率。
增加了復位源
標準的8051隻有外部引腳復位,Cygnal C8051F系列單片機增加了7種復位源,使系統的可靠性大大提高,每個復位源都可以由用戶用軟體禁止。它的復位源是:
1 片內電源監視
2 WDT看門狗定時器
3 時鍾丟失檢測器
4比較器0輸出電平檢測
5軟體強制復位
6 CNVSTRAD轉換啟動
7 外部引腳RST復位可雙向復位
8 提供內部時鍾源
標準的8051隻有外部時鍾,Cygnal C8051F系列單片機有內部獨立的時鍾源。C8051F300/F302提供的內部時鍾誤差在2%以內,在系統復位後默認內部時鍾。如果需要,可接外部時鍾並可在程序運行時實現內外部時鍾之間的切換。外部時鍾可以是晶體RCC或外部時鍾脈沖,以上的功能在低功耗應用系統中非常有用。
6. 單片機原理與應用
《單片機原理和應用》是2010年9月由電子工業出版社出版的圖書,本書系統全面地介紹了80C51單片機的基本原理、硬體結構、指令系統,並從應用的角度介紹了匯編語言程序設計、單片機外部電路的擴展,以及與鍵盤、LED顯示、LCD顯示、列印機等多種硬體介面的設計方法,詳細介紹了串列、並行介面的A/D、D/A轉換器功能特點和典型應用,增加了單片機應用系統設計、Proteus模擬、實驗和課程設計等內容。
二,本書特色
本書為江西省省級精品課程建設成果。
本書從現實教學和工程實際應用出發,對傳統單片機教材內容進行了改良,力求做到與市場接軌,與現實同步。在並行匯流排擴展問題上,著重介紹了擴展方法和典型應用,對並行器件、並行匯流排擴展及8255、8155、8279等已基本淘汰的器件進行了精簡或摒棄,補充了串列匯流排技術、串列匯流排器件介面應用和STC系列單片機內部新增功能部件的使用,以及C51編程規范等內容。
書中有單片機應用系統設計、Proteus模擬、實驗和課程設計等章節,主教材與實驗教材整合為一本書,知識量大。