0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

pic单片机汇编程序实例

科技绿洲 来源:网络整理 作者:网络整理 2023-12-14 11:01 次阅读

以下是一个简单的PIC单片机汇编程序示例,这个程序将实现一个LED闪烁的功能。

首先,我们需要了解PIC单片机的结构和指令集。PIC单片机是一种基于哈佛结构的8位微控制器,具有丰富的指令集和外设接口

以下是一个简单的PIC单片机汇编程序示例,这个程序将实现一个LED闪烁的功能。

  1. 配置PIC单片机的引脚

在PIC单片机中,每个引脚都可以配置为输入或输出。在这个例子中,我们将使用一个引脚来控制LED的闪烁。

assembly复制代码CONFIG  FOSC = HS        ; 配置振荡器为高速振荡器  CONFIG  WDTE = OFF        ; 关闭看门狗定时器  CONFIG  PWRTE = OFF       ; 关闭电源上电定时器  CONFIG  BOREN = ON        ; 开启内部上电复位  CONFIG  LVP = OFF         ; 关闭低电压编程模式  CONFIG  MCLRE = ON        ; 开启MCLR引脚为复位输入  CONFIG  CP = OFF          ; 关闭内部上电复位  CONFIG  Cpd = OFF         ; 关闭数据存储器写保护  CONFIG  LVP = OFF         ; 关闭低电压编程模式
assembly复制代码CONFIG FOSC = HS ; 配置振荡器为高速振荡器 CONFIG WDTE = OFF ; 关闭看门狗定时器 CONFIG PWRTE = OFF ; 关闭电源上电定时器 CONFIG BOREN = ON ; 开启内部上电复位 CONFIG LVP = OFF ; 关闭低电压编程模式 CONFIG MCLRE = ON ; 开启MCLR引脚为复位输入 CONFIG CP = OFF ; 关闭内部上电复位 CONFIG Cpd = OFF ; 关闭数据存储器写保护 CONFIG LVP = OFF ; 关闭低电压编程模式
  1. 配置中断向量表

PIC单片机支持多个中断向量表,每个向量表可以包含多个中断向量。在这个例子中,我们将使用一个外部中断向量表。

assembly复制代码ORG 0x0000               ; ORG指令用于指定程序起始地址  LJMP MAIN               ; LJMP指令用于跳转到程序起始地址  END                     ; END指令用于结束程序
assembly复制代码ORG 0x0000 ; ORG指令用于指定程序起始地址 LJMP MAIN ; LJMP指令用于跳转到程序起始地址 END ; END指令用于结束程序
  1. 主程序

在主程序中,我们将配置引脚为输出模式,并使用一个循环来控制LED的闪烁。

assembly复制代码MAIN: MOVLW 0x11          ; 将值0x11写入到PORT寄存器中,配置引脚为输出模式        MOVWF PORT         ; 将值写入到PORT寄存器中,配置引脚为输出模式        ACALL DELAY       ; 调用延时函数        MOVLW 0x10          ; 将值0x10写入到PORT寄存器中,关闭LED        MOVWF PORT         ; 将值写入到PORT寄存器中,关闭LED        ACALL DELAY       ; 调用延时函数        RETI               ; RETI指令用于返回中断向量表地址,实现LED闪烁的效果
assembly复制代码MAIN: MOVLW 0x11 ; 将值0x11写入到PORT寄存器中,配置引脚为输出模式 MOVWF PORT ; 将值写入到PORT寄存器中,配置引脚为输出模式 ACALL DELAY ; 调用延时函数 MOVLW 0x10 ; 将值0x10写入到PORT寄存器中,关闭LED MOVWF PORT ; 将值写入到PORT寄存器中,关闭LED ACALL DELAY ; 调用延时函数 RETI ; RETI指令用于返回中断向量表地址,实现LED闪烁的效果
  1. 延时函数

延时函数用于实现LED闪烁的效果。在这个例子中,我们将使用一个简单的循环来实现延时功能。

assembly复制代码DELAY: MOVLW 0x00          ; 将值0x00写入到T2计数器寄存器中,初始化计数器          MOVWF T2L          ; 将值写入到T2计数器寄存器低字节中,初始化计数器          MOVLW 0x3E          ; 将值0x3E写入到T2计数器寄存器高字节中,设置计数器初值          MOVWF T2H          ; 将值写入到T2计数器寄存器高字节中,设置计数器初值          HERE:               ; HERE标签用于循环计数器的计数范围为0x3E-0x3F之间,即延时时间为约1ms左右。
assembly复制代码DELAY: MOVLW 0x00 ; 将值0x00写入到T2计数器寄存器中,初始化计数器 MOVWF T2L ; 将值写入到T2计数器寄存器低字节中,初始化计数器 MOVLW 0x3E ; 将值0x3E写入到T2计数器寄存器高字节中,设置计数器初值 MOVWF T2H ; 将值写入到T2计数器寄存器高字节中,设置计数器初值 HERE: ; HERE标签用于循环计数器的计数范围为0x3E-0x3F之间,即延时时间为约1ms左右。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7521

    浏览量

    151205
  • 单片机
    +关注

    关注

    6034

    文章

    44532

    浏览量

    633913
  • PIC
    PIC
    +关注

    关注

    8

    文章

    507

    浏览量

    87515
  • 汇编程序
    +关注

    关注

    0

    文章

    56

    浏览量

    16161
收藏 人收藏

    评论

    相关推荐

    单片机编程汇编程序实例

    很好的汇编程序单片机的结合
    发表于 10-06 14:46

    PIC单片机控制时钟芯片DS1302汇编程序

    PIC单片机控制时钟芯片DS1302汇编程序
    发表于 05-24 09:56 1757次阅读

    EMC系列单片机汇编程序

    本文提供的EMC系列单片机汇编程序,希望对你学习有所帮助!
    发表于 06-03 15:32 33次下载

    51单片机汇编程序

    51单片机汇编程序包。
    发表于 01-06 14:12 16次下载

    51单片机LCD1602汇编程序详细资料免费下载

    1602汇编程序,51单片机汇编程序,仅需修改引脚定义即可。晶振大小12M,程序测试完全正确。内部包含写数据、写命令(包括读忙和不读忙)、初始化等子函数。调用时先给LCD_DAT赋值,
    发表于 08-24 15:24 24次下载
    51<b class='flag-5'>单片机</b>LCD1602<b class='flag-5'>汇编程序</b>详细资料免费下载

    51单片机汇编程序有哪些?51单片机汇编程序集详细资料免费下载

    本文档的主要内容详细介绍的是51单片机汇编程序有哪些?51单片机汇编程序集详细资料免费下载。
    发表于 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 汇编程序的最后一例,但遗
    发表于 09-21 15:04 1524次阅读

    单片机入门汇编程序之太阳跟随系统的程序资料免费下载

    本文档的主要内容详细介绍的是单片机入门汇编程序之太阳跟随系统的程序资料免费下载。
    发表于 02-20 17:58 7次下载
    <b class='flag-5'>单片机</b>入门<b class='flag-5'>汇编程序</b>之太阳跟随系统的<b class='flag-5'>程序</b>资料免费下载

    单片机的按键显示汇编程序资料免费下载

    本文档的主要内容详细介绍的是单片机的按键显示汇编程序资料免费下载。
    发表于 03-05 11:01 9次下载
    <b class='flag-5'>单片机</b>的按键显示<b class='flag-5'>汇编程序</b>资料免费下载

    使用51单片机控制数码管的汇编程序免费下载

    本文档的主要内容详细介绍的是使用51单片机控制数码管的汇编程序免费下载。
    发表于 08-14 17:32 11次下载
    使用51<b class='flag-5'>单片机</b>控制数码管的<b class='flag-5'>汇编程序</b>免费下载

    使用51单片机点亮全部LED的汇编程序免费下载

    本文档的主要内容详细介绍的是使用51单片机点亮全部LED的汇编程序免费下载。
    发表于 07-04 17:41 2次下载
    使用51<b class='flag-5'>单片机</b>点亮全部LED的<b class='flag-5'>汇编程序</b>免费下载

    DS18B20和51单片机连接的汇编程序免费下载

    汇编程序仅适合单个DS18B20和51单片机的连接,晶振为12MHZ左右
    的头像 发表于 09-06 10:52 4569次阅读

    单片机入门汇编程序--直流电机的控制

    单片机入门汇编程序--直流电机的控制(安徽理士电源技术有限公司招聘)-该文档为单片机入门汇编程序--直流电机的控制总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,
    发表于 09-22 14:33 11次下载
    <b class='flag-5'>单片机</b>入门<b class='flag-5'>汇编程序</b>--直流电机的控制

    单片机入门汇编程序--直流电机的单片机控制

    单片机入门汇编程序--直流电机的单片机控制(15kvaups电源技术协议)-该文档为单片机入门汇编程序--直流电机的
    发表于 09-22 14:37 38次下载
    <b class='flag-5'>单片机</b>入门<b class='flag-5'>汇编程序</b>--直流电机的<b class='flag-5'>单片机</b>控制

    51单片机汇编程序,温度报警项目

    51单片机汇编程序,温度报警项目
    发表于 11-21 12:36 19次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>汇编程序</b>,温度报警项目