新聞中心

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

        51手記之MEGAWIN

        作者: 時間:2016-11-10 來源:網絡 收藏
        MEGAWIN系列單片機基于80C51的高效1-T結構的單芯片微處理器,每條指令需要1~7個時鐘周期 (比標準8051快6~7倍),與8051指令集兼容。
        1.基本特性
        工作頻率:24MHZ(最大,外部晶體)
        有兩種節能模式和8位的系統時鐘分頻器
        時鐘源:外部晶體/時鐘,內部高頻/低頻RC振蕩器;上電后,內部高頻RC振蕩器(12MHZ)為默認的系統時鐘源。軟件能使能其它振蕩器電路和通過編程AUXRA寄存器對它們進行切換。切換時鐘源為外部晶體時,必須使能外部晶體振蕩器電路并等它穩定后再切換。選好時鐘后,可軟件禁止未用的振蕩器電路以減少能耗。
        切換系統時鐘為外部時鐘:
        1).使能外部時鐘
        IFMT=0X07;//AUXRA讀操作
        SCMD=0X46;
        SCMD=0XB9;//此時IFD的值=AUXRA的值
        IFD |= 0X08;//設置使能外部晶體,將AUXRA的預設值寫入IFD
        IFMT=0X06;//AUXRA寫操作
        SCMD=0X46;
        SCMD=0XB9;
        2).切換到外部時鐘
        IFMT=0X07;
        SCMD=0X46;
        SCMD=0XB9;
        IFD |= 0X03;//設置外部晶體為系統時鐘
        IFMT=0X06;
        SCMD=0X46;
        SCMD=0XB9;
        3).關閉內部時鐘
        IFMT=0X07;
        SCMD=0X46;
        SCMD=0XB9;
        IFD &= 0XFB;//設置將內置晶體停止
        IFMT=0X06;
        SCMD=0X46;
        SCMD=0XB9;
        有六個復位源: 上電復位、WDT復位、軟件復位、外部(RST)復位、掉電檢測器(brown-out)復位及非法地址復位。
        2.存儲器
        1)程序存儲器
        支持ISP(在系統可編程)/IAP(在應用可編程);IAP空間可用作數據閃存。
        IAP區域由IAPLB和ISP起始地址共同決定:IAP低邊界 = IAPLB * 256;IAP高邊界 = ISP起始地址 – 1;IAP低邊界地址必須不要高于ISP起始地址或非設備定義的空間。否則,可能會導致Flash存儲器中數據內容遭到破壞。
        2)數據存儲器
        片上256字節隨機存取儲存器和1024字節片上擴展存儲器(XRAM)
        3.通用I/O口
        有41個普通I/O口(GPIO),P0, P1, P2, P3, P4(P40-P46)能被配置為準雙向口、上拉輸出、集電極開漏輸出以及高阻輸入,P6.0 和 P6.1 僅可作準雙向口模式及復用為 XTAL2和 XTAL1。每個端口有兩個模式寄存器來選擇各端口引腳的輸出類型:
        4.中斷系統
        有四級中斷優先級的14個中斷源。與這四級中斷有關聯的特殊功能寄存器有IE、 IP0L、 IP0H、EIE1、EIP1L、EIP1H及XICON。
        nINT0/nINT1 觸發類型:低電平或下降沿;
        nINT2/nINT3觸發類型:低電平、下降沿、高電平或上升沿
        5.定時器
        三個16位定時/計數器:定時器 0、定時器1及定時器2;每一個包含兩個8位寄存器THx和TLx(這里,x=0、1或2)。它們可配置為定時器或事件計數器。三個定時器輸出口(T0CKO 對應P34、T1CKO對應P35、T2CKO對應P10);T0/T1/T2時鐘可以選擇X12 模式。
        定時器功能,TLx寄存器每12個系統時鐘周期(標準C51的機器周期)或每1個系統時鐘周期(是標準C51的12倍)加1,通過軟件設置AUXR2.T0X12、 AUXR2.T1X12和 T2MOD.T2X12位來選擇 。每12個系統時鐘周期加一,計數速率是1/12的晶振頻率。
        計數器功能,根據對應的外部輸入引腳的下降沿T0、T1或T2寄存器加1。在這功能中,每個定時器時鐘周期對外部輸入信號(T0、T1和T2引腳)進行采樣,當采樣信號出現一個高電平接著一個低電平,計數加1。當檢測到跳變時新計數值出現在寄存器中。
        定時器2有四種工作模式:捕獲、自動加載(向上或向下計數)、波特率發生器和可編程時鐘輸出,通過專用寄存器T2CON和T2MOD來選擇。
        1)捕獲模式
        當外部輸入信號T2EX由下降沿跳變時引起定時器2的寄存器TH2和TL2分別對應的捕獲到RCAP2H和RCAP2L。
        2)自動加載模式
        在復位之后,DCEN=0意思是默認為定時器2向上計數。如果DCEN置位,定時器2向上或向下計數由T2EX引腳的值來決定。
        3)波特率發生器模式
        T2CON寄存器的RCLK和/或RCLK位允許串行口發送和接收波特率既可源自定時器1或定時器2。當TCLK=0時,定時器1作為串行口傳送波特率發生器。當TCLK=1,定時器2作為串行口傳送波特率發生器。RCLK對串行口接收波特率有相同的功能
        4)可編程時鐘輸出模式
        CP/RL2=0且T2OE=1;定時器2作為一個輸出占空比為50%的可編程時鐘發生器,所產生的時鐘從P1.0 引腳輸出來。
        輸出頻率=Fosc/4(65536-(RCAP2H,RCAP2L))
        定時器2 的可編程時鐘輸出模式編程步驟如下:
        a.置位T2MOD寄存器的T2OE位。
        b.清除T2CON寄存器的C/T2位。
        c.從公式計算出16位加載值并輸入到RCAP2H和RCAP2L寄存器。
        d.在TH2和TL2輸入一個16位初始值。可以和重載值相等。
        e.設置T2CON的TR2控制位開啟動定時器。
        在時鐘輸出模式,定時器2翻轉不會產生中斷
        6.串行口
        2個全雙工串行口,功能同標準51;
        串行口可以工作在四種模式:模式 0 提供同步通訊同時模式 1、2 和模式 3 提供異步通訊。異步通訊作為一個全雙工的通用異步收發器(UART),可以同時發送和接收并使用不同的波特率。
        模式0:8位數據(低位先出)通過RXD0(P3.0)傳送和接收,波特率可通過SCFG寄存器的URM0X6位選擇為系統時鐘頻率的1/12或1/2。
        模式1:10位數據通過TXD0傳送或通過RXD0接收,波特率是可變的。
        模式2:11位數據通過TXD0傳送或通過RXD0接收,波特率可以配置為1/32或1/64 的系統時鐘頻率
        模式3:11位數據通過TXD0傳送或通過RXD0接收,波特率是可變的。
        除了標準操作外,UART0還能具有偵察丟失停止位的幀錯誤和自動地址識別的功能。
        串口1使用獨立波特率發生器,串口0可選擇使用定時器1或定時器2(T2CON的RCLK和TCLK決定),也可共用串口1的波特率(RCLK=0,TCLK=0及URTS=1)
        串口1使用的寄存器SCON1、SBUF1、S1BRT需要切換到SFR頁1才能使用:SFRPI=0X01;
        7.可編程計數器陣列(PCA)
        該功能與標準定時/計數器相比以更少的CPU占用提供了更多的定時能力。它的優點包括減少了軟件復雜度并提高了精度。
        PCA由一個專用定時/計數器作為一個6組比較/捕獲模塊的時間基礎,6組比較/捕獲模塊中的每一組都可以編程為如下任意模式:
        - 上升和/或下降沿捕獲
        - 軟件定時器
        - 高速輸出
        - 脈寬調制(PWM)輸出
        1)PCA 定時器/計數器
        它的時鐘輸入可以從以下來源選擇(CPS1 和 CPS0選擇):
        - 1/12 系統時鐘頻率
        - 1/2 系統時鐘頻率
        - 定時器0溢出,可以讓低頻時鐘源輸入到PCA定時器
        - 外部時鐘輸入,ECI(P1.1)引腳的1-0反轉
        2)比較/捕獲模塊
        6組比較/捕獲模塊中的每一組都有一個模式寄存器,叫做CCAPMn(n代表0,1,2,3,4,5),來選擇其工作模式。ECCFn位控制當中斷標志置位時每個模塊的中斷開啟/關閉。
        3)PCA運行模式
        具體工作模式與STC同。
        提供4種精度的PWM輸出:8位(可自動重載)、10位、12位、16位(后3種需手動重載溢出值)
        8.串行外設接口(SPI)
        提供了一個高速串行通訊接口(SPI)。SPI接口是一種全雙工、高速同步通訊總線,有兩種操作模式:主機模式和從機模式。無論哪種模式,12MHz系統時鐘時支持高達3Mbps的通訊速度。SPI狀態寄存器(SPSTAT)有一個傳送完成標志(SPIF)和寫沖突標志(WCOL)。
        SPI接口有4個引腳:MISO (P1.6), MOSI (P1.5), SPICLK (P1.7) 和nSS (P1.4)。
        1)典型SPI配置模式:
        a.單主機單從機
        b.互為主機/從機
        c.單主機多從機
        2)注意事項
        SPI通訊中,傳輸總是由主機發起 。若 SPI使能(SPEN=1)并作為主機運行,寫入SPI數據寄存器(SPDAT) 數據即可啟動SPI時鐘生成器和數據傳輸器,大約半個到1個SPI位時間后寫入SPDAT的數據開始出現在MOSI線上。
        在開始傳輸之前,主機通過拉低相應nSS引腳選擇一個從機作為當前從機。寫入SPDAT寄存器德數據從主機MOSI引腳移出,同時從從機MISO移入主機MISO的數據也寫入到主機的SPDAT寄存器中。移出1字節后,SPI時鐘發生器停止,置傳輸完成標志SPIF,若SPI中斷使能則生成一個中斷。主機CPU和從機CPU中的兩個移位寄存器可以看成一個分開的16位環形移位寄存器,數據從主機移到從機同時數據也從從機移到主機。這意味著,在一次傳輸過程中,主從機數據進行了交換。
        SPI在發送方向是單緩沖的,而在接收方向是雙緩沖的。發送數據直到上一次數據發送完成后才能寫入移位寄存器,數據發送過程中寫入數據寄存器就會使WCOL(SPSTAT.6) 置位來表明數據沖突。這種情況下,正在發送的數據繼續發送,而剛寫入數據寄存器造成沖突的數據就會丟失。WCOL使用軟件向其位寫入’1’來清零。
        SPI時鐘頻率選擇(主機模式)使用SPCTL寄存器的SPR1 和SPR0 位來設置。
        9.鍵盤中斷
        鍵盤中斷功能主要用于當P2口等于或不等于某個值時產生一個中斷,這個功能可以用作總線地址識別或鍵盤鍵碼識別。
        鍵盤中斷掩碼寄存器(KBMASK) 用來定義P2口哪些引腳可以產生中斷;鍵盤模式寄存器(KBPATN)用來定義與P2口值進行比較的值,比較匹配時硬件置鍵盤中斷控制寄存器(KBCON)中的鍵盤中斷標志(KBIF)。
        10.10位模數轉換器ADC
        ADC子系統由一個模擬多路器(AMUX)、一個200ksps、10逐次逼近型模數轉換器組成。ADC轉換時鐘由ADCON寄存器的SPEED1、SPEED0兩位決定的系統時鐘分頻而來。(備注:目前建議ADC操作時,系統時鐘不要超過20MHz)
        ADC轉換結果=Vin*1024/Vdd;
        在使用ACD功能之前,用戶應:
        a.設置ADCEN 位啟動ADC硬件;
        b.設置SPEED1 和 SPEED0位設定轉換速度;
        c.設置CHS2、CHS1 和CHS0選擇輸入通道;
        d.設置P1M0和P1M1寄存器將所選引腳設定成只輸入模式;
        e.設置ADRJ 位配置ADC轉換結果輸出形式。
        一旦轉換結束,硬件自動清除ADCS位,設置中斷標志ADCI,并將轉換結果按照ADRJ的設置存入ADCH和ADCL。為了獲得最佳轉換效果,用作ADC的引腳應當禁止其數字輸出和輸入,可以將引腳設為只輸入模式。
        11.看門狗定時器WDT
        看門狗定時器 (WDT) 用來使程序從跑飛或死機狀態(諸如電源噪音/波動、靜電干擾等使CPU運行出現混亂或死機)恢復的一個手段。軟件跑飛時,WDT使系統復位來防止系統執行錯誤的代碼。WDT由一個15位獨立定時器、一個8分頻器和一個控制寄存器(WDTCR)組成。
        看門狗溢出時間=12*分頻值*32768/SYSCLK (系統時鐘為12Mhz時,最長延時8s,時鐘越高,延時越短)


        關鍵詞: 51手記MEGAWI

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临朐县| 景德镇市| 凤凰县| 穆棱市| 肥西县| 什邡市| 揭东县| 博爱县| 乐平市| 石棉县| 昌黎县| 塘沽区| 夏津县| 平原县| 桃江县| 成都市| 任丘市| 原平市| 榆树市| 黄大仙区| 突泉县| 西青区| 武威市| 眉山市| 沽源县| 连南| 蓬溪县| 新巴尔虎左旗| 通州市| 云阳县| 上虞市| 镇巴县| 武陟县| 康乐县| 海林市| 泸西县| 阿瓦提县| 平潭县| 石首市| 南岸区| 新源县|