新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51手記之STC

        51手記之STC

        作者: 時間:2016-11-10 來源:網絡 收藏
        STC系列單片機指令代碼完全兼容標準8051,但速度快8-12倍;不同型號單片機區別:XRAM大小、外設功能等。
        1.基本特性
        工作頻率范圍:0-35MHZ,每個機器周期為一個時鐘周期,指令執行速度全面提升,最快的提升24倍,最慢的提升3倍。
        內部集成MAX810專用復位電路,內置一個對VCC進行掉電檢測的掉電檢測電路;
        時鐘源:外部高精度晶體/時鐘,內部R/C振蕩器;用戶在下載程序時選擇使用外部晶體/時鐘或內部R/C振蕩器;
        2.存儲器
        1)程序存儲器
        用戶程序存儲器空間:1/2/3/4/5/6/8/16/20/32/40/48/52/56/60/62K字節
        支持ISP(在系統可編程)/IAP(在應用可編程),可通過串口(RXD/P3.0,TXD/P3.1)直接下載用戶程序,
        2)數據存儲器
        片上集成256字節片內暫存和512字節/1K字節的XRAM;XRAM通過清零AUXR.XRAM來使能。
        3.通用I/O口
        有5個8位I/O口:P0-P4;復位后所有I/O口為準雙向口/弱上拉(同普通8051的P1口)。
        所有I/O口均可由軟件配置成4種工作類型之一:準雙向口、推挽輸出、僅為輸入(高阻)、開漏輸出;由寄存器PnM1,PnM0設置。
        普通I/O口上電為弱上拉輸出高電平,在I/O口處加一個下拉電阻可使I/O口復位時為低電平。
        1)準雙向口
        輸出1時驅動能力很弱,輸出0時驅動能力很強,準雙向口讀外部狀態前,要下鎖存為1,才可讀到外部正確的狀態。
        2)推挽輸出
        當鎖存器為1時提供持續的強上拉。
        3)僅為輸入(高阻)
        輸入口帶有一個施密特觸發輸入以及一個干擾抑制電路。
        4)開漏輸出
        作為一個邏輯輸出時,必須有外部上拉,一般通過電阻外接到VDD,這種方式的下拉與準雙向口同,開漏端口帶有一個施密特觸發輸入以及一個干擾抑制電路。
        4.中斷系統
        STC11/10系列提供7個中斷源2級中斷優先級,STC12C56/STC12C54系列提供7個中斷源4級中斷優先級,STC12C5A系列提供10個中斷源4級中斷優先級;中斷由中斷控制寄存器IE,IE2和中斷優先級寄存器IP,IPH,IP2H配置。
        中斷源中斷向量中斷優先權
        外部中斷0 03H 0

        本文引用地址:http://www.104case.com/article/201611/317151.htm 定時/計數器0 0BH 1

        外部中斷1 13H 2

        定時/計數器1 1BH 3

        串行口 23H 4

        ADC/SPI 2BH 5

        LVD33H 6

        PCA 3BH 7
        串行口2 33H 8
        SPI 3BH 9

        PCA、RXD、T1、T0輸出腳可通過寄存器WAKE_CLK0配置為外部中斷使用。

        5.定時器

        有2個16位專用定時器T0、T1;PCA也可用作定時器使用;還有一個看門狗定時器;

        定時器0和定時器1完全兼容傳統8051;定時器計數時鐘源可選擇為系統時鐘的1/12或系統時鐘,通過AUXR.T0x12和AUXR.T1x12設置(為0時同傳統51,為1時不分頻)。

        看門狗由寄存器WDT_CONTR控制,置位WDT_CONTR.CLR_WDT看門狗將重新計數。

        看門狗溢出時間=(12*分頻值*32768)/系統時鐘

        6.串行口

        2個全雙工串行口,功能同標準51;

        串口2使用獨立波特率發生器,串口1可選擇使用定時器1或獨立波特率發生器(AUXR.S1BRS為0時使用定時器1,為1時共用獨立波特率發生器);獨立波特率發生器的計數時鐘源為系統時鐘的1/12或系統時鐘(AUXR.BRTx12為0時使用系統時鐘的1/12,為1時使用系統時鐘);兩個串口都使用獨立波特率發生器時,它們的波特率相同。

        獨立波特率發生器復位后是關閉的,需通過AUXR.BRTR=1使能。它有一個8位獨立波特率計數器BRT。

        串行口2波特率計算公式:模式0波特率=系統時鐘/12或系統時鐘/2(AUXR.UART_M0x6為0時同標準51)

        模式1,3波特率=f/(256-BRT),f為波特率發生器計數器時鐘源頻率

        模式2波特率=2S2SMOD*系統時鐘/64

        7.PCA(可編程計數器陣列)

        含有一個獨立的16位定時器,2/4個16位捕獲/比較模塊與之相連,每個模塊可編程工作在4種工作模式:上升/下降沿捕獲、軟件定時器、高速輸出、可調制脈沖輸出。

        PCA定時器的時鐘源由CMOD設置,由PCA控制寄存器CCON控制。

        每個PCA模塊的工作模式由寄存器CCAPMn來設置:

        1)捕獲模式

        CCAPMn=0x20或0x10或0x30,

        對模塊外部CEXn輸入的跳變進行采樣,當采樣到有效跳變時,PCA硬件就將PCA計數陣列CH,CL的值裝載到模塊的捕獲寄存器CCAPnH,CCAPnL中。

        2)軟件定時器模式

        CCAPMn=0X48,

        3)高速輸出模式

        CCAPMn=0X4C,

        4)脈寬調節(PWM)模式

        CCAPMn=0x42,

        由于所有的PCA模塊共用同一個PCA定時器,所以它們的輸出頻率相同,各個模塊的輸出占空比是獨立變化的,當CL的值小于(EPCnL,CCAPnL)時輸出為低,否則輸出高。PWM的輸出頻率=PCA時鐘頻率/256。

        8.A/D轉換

        有8路10位高精度ADC,速度均可達到100KHZ;8路電壓輸入型A/D,可做溫度檢測,電池電壓檢測,按鍵掃描,頻譜檢測。

        需作為A/D使用的口需先將其設置為開漏輸出或僅為輸入模式,

        A/D轉換由寄存器ADC_CONTR控制,轉換結果存放在ADC_DATA(高8位)和ADC_LOW2(低2位)

        9.EEPROM使用

        片上集成有數據FLASH區,可通過IAP方式對其進行讀寫和擦除操作。

        相關寄存器IAP_CONTR,IAP_CMD、IAP_TRIG、IAP_DATA、IAP_ADDRH、IAP_ADDRL

        1)擦除操作
        IAP_ADDRH=addrh;
        IAP_ADDRL=addrl;
        IAP_CONTR=0X81;
        IAP_CMD=0x03;
        IAP_TRIG=0X5A;
        IAP_TRIG=0XA5;
        2)讀操作
        IAP_ADDRH=addrh;
        IAP_ADDRL=addrl;
        IAP_CONTR=0X81;
        IAP_CMD=READ;
        IAP_TRIG=0X5A;
        IAP_TRIG=0XA5;
        _nop_();
        _nop_();
        *rdata=IAP_DATA;
        3)寫操作
        IAP_DATA=*wdata;
        IAP_ADDRH=addrh;
        IAP_ADDRL=addrl;
        IAP_CONTR=0X81;
        IAP_CMD=WRITE;
        IAP_TRIG=0X5A;
        IAP_TRIG=0XA5;


        關鍵詞: 51手記ST

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 察隅县| 宜州市| 太湖县| 香港 | 绿春县| 娱乐| 临海市| 民乐县| 涞水县| 罗定市| 贞丰县| 温泉县| 澳门| 抚顺县| 吴堡县| 沙湾县| 乌鲁木齐县| 石城县| 东阳市| 余江县| 昌黎县| 高雄市| 子洲县| 汶川县| 阜南县| 搜索| 南木林县| 兴国县| 同德县| 黑龙江省| 红原县| 二手房| 吉首市| 囊谦县| 马鞍山市| 鹤山市| 神木县| 大庆市| 庆安县| 铅山县| 含山县|