RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

pic單片機匯編程序實例

科技綠洲 ? 來源:網(wǎng)絡整理 ? 作者:網(wǎng)絡整理 ? 2023-12-14 11:01 ? 次閱讀

以下是一個簡單的PIC單片機匯編程序示例,這個程序將實現(xiàn)一個LED閃爍的功能。

首先,我們需要了解PIC單片機的結構和指令集。PIC單片機是一種基于哈佛結構的8位微控制器,具有豐富的指令集和外設接口。

以下是一個簡單的PIC單片機匯編程序示例,這個程序將實現(xiàn)一個LED閃爍的功能。

  1. 配置PIC單片機的引腳

在PIC單片機中,每個引腳都可以配置為輸入或輸出。在這個例子中,我們將使用一個引腳來控制LED的閃爍。

assembly復制代碼CONFIG  FOSC = HS        ; 配置振蕩器為高速振蕩器  CONFIG  WDTE = OFF        ; 關閉看門狗定時器  CONFIG  PWRTE = OFF       ; 關閉電源上電定時器  CONFIG  BOREN = ON        ; 開啟內(nèi)部上電復位  CONFIG  LVP = OFF         ; 關閉低電壓編程模式  CONFIG  MCLRE = ON        ; 開啟MCLR引腳為復位輸入  CONFIG  CP = OFF          ; 關閉內(nèi)部上電復位  CONFIG  Cpd = OFF         ; 關閉數(shù)據(jù)存儲器寫保護  CONFIG  LVP = OFF         ; 關閉低電壓編程模式
assembly復制代碼CONFIG FOSC = HS ; 配置振蕩器為高速振蕩器 CONFIG WDTE = OFF ; 關閉看門狗定時器 CONFIG PWRTE = OFF ; 關閉電源上電定時器 CONFIG BOREN = ON ; 開啟內(nèi)部上電復位 CONFIG LVP = OFF ; 關閉低電壓編程模式 CONFIG MCLRE = ON ; 開啟MCLR引腳為復位輸入 CONFIG CP = OFF ; 關閉內(nèi)部上電復位 CONFIG Cpd = OFF ; 關閉數(shù)據(jù)存儲器寫保護 CONFIG LVP = OFF ; 關閉低電壓編程模式
  1. 配置中斷向量表

PIC單片機支持多個中斷向量表,每個向量表可以包含多個中斷向量。在這個例子中,我們將使用一個外部中斷向量表。

assembly復制代碼ORG 0x0000               ; ORG指令用于指定程序起始地址  LJMP MAIN               ; LJMP指令用于跳轉到程序起始地址  END                     ; END指令用于結束程序
assembly復制代碼ORG 0x0000 ; ORG指令用于指定程序起始地址 LJMP MAIN ; LJMP指令用于跳轉到程序起始地址 END ; END指令用于結束程序
  1. 主程序

在主程序中,我們將配置引腳為輸出模式,并使用一個循環(huán)來控制LED的閃爍。

assembly復制代碼MAIN: MOVLW 0x11          ; 將值0x11寫入到PORT寄存器中,配置引腳為輸出模式        MOVWF PORT         ; 將值寫入到PORT寄存器中,配置引腳為輸出模式        ACALL DELAY       ; 調(diào)用延時函數(shù)        MOVLW 0x10          ; 將值0x10寫入到PORT寄存器中,關閉LED        MOVWF PORT         ; 將值寫入到PORT寄存器中,關閉LED        ACALL DELAY       ; 調(diào)用延時函數(shù)        RETI               ; RETI指令用于返回中斷向量表地址,實現(xiàn)LED閃爍的效果
assembly復制代碼MAIN: MOVLW 0x11 ; 將值0x11寫入到PORT寄存器中,配置引腳為輸出模式 MOVWF PORT ; 將值寫入到PORT寄存器中,配置引腳為輸出模式 ACALL DELAY ; 調(diào)用延時函數(shù) MOVLW 0x10 ; 將值0x10寫入到PORT寄存器中,關閉LED MOVWF PORT ; 將值寫入到PORT寄存器中,關閉LED ACALL DELAY ; 調(diào)用延時函數(shù) RETI ; RETI指令用于返回中斷向量表地址,實現(xiàn)LED閃爍的效果
  1. 延時函數(shù)

延時函數(shù)用于實現(xiàn)LED閃爍的效果。在這個例子中,我們將使用一個簡單的循環(huán)來實現(xiàn)延時功能。

assembly復制代碼DELAY: MOVLW 0x00          ; 將值0x00寫入到T2計數(shù)器寄存器中,初始化計數(shù)器          MOVWF T2L          ; 將值寫入到T2計數(shù)器寄存器低字節(jié)中,初始化計數(shù)器          MOVLW 0x3E          ; 將值0x3E寫入到T2計數(shù)器寄存器高字節(jié)中,設置計數(shù)器初值          MOVWF T2H          ; 將值寫入到T2計數(shù)器寄存器高字節(jié)中,設置計數(shù)器初值          HERE:               ; HERE標簽用于循環(huán)計數(shù)器的計數(shù)范圍為0x3E-0x3F之間,即延時時間為約1ms左右。
assembly復制代碼DELAY: MOVLW 0x00 ; 將值0x00寫入到T2計數(shù)器寄存器中,初始化計數(shù)器 MOVWF T2L ; 將值寫入到T2計數(shù)器寄存器低字節(jié)中,初始化計數(shù)器 MOVLW 0x3E ; 將值0x3E寫入到T2計數(shù)器寄存器高字節(jié)中,設置計數(shù)器初值 MOVWF T2H ; 將值寫入到T2計數(shù)器寄存器高字節(jié)中,設置計數(shù)器初值 HERE: ; HERE標簽用于循環(huán)計數(shù)器的計數(shù)范圍為0x3E-0x3F之間,即延時時間為約1ms左右。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7542

    瀏覽量

    151314
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634621
  • PIC
    PIC
    +關注

    關注

    8

    文章

    507

    瀏覽量

    87540
  • 匯編程序
    +關注

    關注

    0

    文章

    56

    瀏覽量

    16162
收藏 人收藏

    評論

    相關推薦

    單片機編程匯編程序實例

    很好的匯編程序單片機的結合
    發(fā)表于 10-06 14:46

    PIC單片機控制時鐘芯片DS1302匯編程序

    PIC單片機控制時鐘芯片DS1302匯編程序
    發(fā)表于 05-24 09:56 ?1761次閱讀

    EMC系列單片機匯編程序

    本文提供的EMC系列單片機匯編程序,希望對你學習有所幫助!
    發(fā)表于 06-03 15:32 ?33次下載

    51單片機匯編程序

    51單片機匯編程序包。
    發(fā)表于 01-06 14:12 ?16次下載

    51單片機LCD1602匯編程序詳細資料免費下載

    1602匯編程序,51單片機匯編程序,僅需修改引腳定義即可。晶振大小12M,程序測試完全正確。內(nèi)部包含寫數(shù)據(jù)、寫命令(包括讀忙和不讀忙)、初始化等子函數(shù)。調(diào)用時先給LCD_DAT賦值,
    發(fā)表于 08-24 15:24 ?24次下載
    51<b class='flag-5'>單片機</b>LCD1602<b class='flag-5'>匯編程序</b>詳細資料免費下載

    51單片機匯編程序有哪些?51單片機匯編程序集詳細資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是51單片機匯編程序有哪些?51單片機匯編程序集詳細資料免費下載。
    發(fā)表于 09-06 16:31 ?55次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>匯編程序</b>有哪些?51<b class='flag-5'>單片機</b><b class='flag-5'>匯編程序</b>集詳細資料免費下載

    Proteus仿真PIC單片機匯編程序——RB中斷和按鍵顯示

    Proteus仿真PIC單片機匯編程序——RB中斷和按鍵顯示 朋友們送上的使用 Proteus 仿真 學習 PIC 匯編程序的最后一例,但遺
    發(fā)表于 09-21 15:04 ?1534次閱讀

    單片機入門匯編程序之太陽跟隨系統(tǒng)的程序資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是單片機入門匯編程序之太陽跟隨系統(tǒng)的程序資料免費下載。
    發(fā)表于 02-20 17:58 ?7次下載
    <b class='flag-5'>單片機</b>入門<b class='flag-5'>匯編程序</b>之太陽跟隨系統(tǒng)的<b class='flag-5'>程序</b>資料免費下載

    單片機的按鍵顯示匯編程序資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是單片機的按鍵顯示匯編程序資料免費下載。
    發(fā)表于 03-05 11:01 ?9次下載
    <b class='flag-5'>單片機</b>的按鍵顯示<b class='flag-5'>匯編程序</b>資料免費下載

    使用51單片機控制數(shù)碼管的匯編程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機控制數(shù)碼管的匯編程序免費下載。
    發(fā)表于 08-14 17:32 ?11次下載
    使用51<b class='flag-5'>單片機</b>控制數(shù)碼管的<b class='flag-5'>匯編程序</b>免費下載

    使用51單片機點亮全部LED的匯編程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機點亮全部LED的匯編程序免費下載。
    發(fā)表于 07-04 17:41 ?2次下載
    使用51<b class='flag-5'>單片機</b>點亮全部LED的<b class='flag-5'>匯編程序</b>免費下載

    DS18B20和51單片機連接的匯編程序免費下載

    匯編程序僅適合單個DS18B20和51單片機的連接,晶振為12MHZ左右
    的頭像 發(fā)表于 09-06 10:52 ?4577次閱讀

    單片機入門匯編程序--直流電機的控制

    單片機入門匯編程序--直流電機的控制(安徽理士電源技術有限公司招聘)-該文檔為單片機入門匯編程序--直流電機的控制總結文檔,是一份不錯的參考資料,感興趣的可以下載看看,,,,,,,,,
    發(fā)表于 09-22 14:33 ?11次下載
    <b class='flag-5'>單片機</b>入門<b class='flag-5'>匯編程序</b>--直流電機的控制

    單片機入門匯編程序--直流電機的單片機控制

    單片機入門匯編程序--直流電機的單片機控制(15kvaups電源技術協(xié)議)-該文檔為單片機入門匯編程序--直流電機的
    發(fā)表于 09-22 14:37 ?38次下載
    <b class='flag-5'>單片機</b>入門<b class='flag-5'>匯編程序</b>--直流電機的<b class='flag-5'>單片機</b>控制

    51單片機匯編程序,溫度報警項目

    51單片機匯編程序,溫度報警項目
    發(fā)表于 11-21 12:36 ?19次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>匯編程序</b>,溫度報警項目
    RM新时代网站-首页