基本信息
文件名称:Microchip 系列:PIC18 系列_(20).汇编语言编程入门.docx
文件大小:22.97 KB
总页数:23 页
更新时间:2025-06-23
总字数:约1.01万字
文档摘要

PAGE1

PAGE1

汇编语言编程入门

1.汇编语言简介

汇编语言是一种低级编程语言,介于机器语言和高级语言之间。它与特定的处理器架构紧密相关,因此在学习汇编语言时,需要了解目标处理器的指令集和架构。对于Microchip系列的PIC18单片机,汇编语言是编写高效、紧凑代码的重要工具,尤其适用于对时间和资源要求较高的嵌入式系统。

汇编语言的主要特点包括:

直接控制硬件:可以精确地控制寄存器和内存。

高效:生成的机器码通常比高级语言更紧凑、更快。

低级:与硬件紧密相关,需要对硬件有深入的理解。

复杂:编写和调试难度较大,但对性能优化有显著效果。

2.PIC18汇编语言基础

2.1指令格式

PIC18单片机的汇编语言指令通常由以下几个部分组成:

操作码(Opcode):指定要执行的操作。

操作数(Operand):指定操作的对象或参数。

注释:以分号;开头,用于解释代码的功能。

例如:

MOVF0x01,W;将寄存器0x01的值复制到W寄存器

2.2寄存器

PIC18单片机有多种寄存器,包括:

工作寄存器(W):用于临时存储数据,类似于CPU中的累加器。

文件寄存器(FileRegisters):用于存储变量,地址范围从0x00到0xFF。

特殊功能寄存器(SpecialFunctionRegisters,SFR):用于控制硬件功能,例如定时器、中断控制等。

2.3常用指令

数据传输指令:

MOVF:复制寄存器的内容。

MOVWF:将W寄存器的内容复制到文件寄存器。

CLRF:清空文件寄存器。

CLRW:清空W寄存器。

算术和逻辑指令:

ADDWF:将W寄存器的内容与文件寄存器的内容相加。

SUBWF:将W寄存器的内容从文件寄存器的内容中减去。

ANDWF:将W寄存器的内容与文件寄存器的内容按位与。

IORWF:将W寄存器的内容与文件寄存器的内容按位或。

XORWF:将W寄存器的内容与文件寄存器的内容按位异或。

控制转移指令:

GOTO:无条件跳转。

CALL:调用子程序。

RETURN:从子程序返回。

RETFIE:从中断服务程序返回。

2.4汇编语言程序结构

一个典型的PIC18汇编语言程序包括以下几个部分:

定义段:定义数据段和代码段。

初始化段:设置初始状态,例如配置寄存器。

主程序段:包含主要的逻辑和功能。

子程序段:包含可重用的函数。

中断服务程序段:处理中断事件。

3.汇编语言编程实例

3.1LED闪烁程序

3.1.1硬件连接

假设我们使用一个PIC18F4550单片机,将一个LED连接到RB0引脚,并通过一个1kΩ的电阻连接到地。

3.1.2代码实现

;定义段

LISTP=18F4550

INCLUDEP18F4550.inc

;配置特殊功能寄存器

CONFIGMCLRE=OFF

CONFIGFOSC=INTOSCIO

CONFIGWDTE=OFF

CONFIGPWRTE=OFF

CONFIGCP=OFF

CONFIGBOREN=OFF

CONFIGLVP=OFF

CONFIGWRT=OFF

CONFIGDEBUG=OFF

CONFIGFCMEN=OFF

CONFIGIESO=OFF

;定义常量

RB0_TRISEQU0x06

PORTBEQU0x07

DELAY_COUNTEQU0x20

DELAY_TEMP1EQU0x21

DELAY_TEMP2EQU0x22

;初始化段

ORG0x0000

GOTOSTART

;中断向量

ORG0x0008

GOTOISR

;主程序段

START

;配置RB0为输出

CLRFRB0_TRIS

;初始化延时计数器

MOVLW0xFF

MOVWFDELAY_COUNT

MOVLW0xFF

MOVWFDELAY_TEMP1

MOVLW0xFF

MOVWFDELAY_TEMP2

MAIN

;点亮LED

BSFPORTB