PICF单片机算子程序.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
:“PICF单片机算子程序.doc”文档主要介绍了如何编写针对PIC16F877单片机的运算子程序,包括汇编语言程序的基本结构、芯片复位和中断处理以及主程序与子程序的设计。 【知识点详解】: 1. **程序结构**: - **程序说明区**:用于存放程序的注释和定义,例如指定微控制器型号(PIC16F877)和输出格式。 - **芯片复位矢量**:在0x0000地址处设置跳转指令,使单片机在复位后直接跳到主程序`START`。 - **中断矢量**:在0x0004地址处处理中断服务,可以包含多个中断子程序并管理中断优先级。 - **主程序区**:从0x0100开始,包含主循环和子程序调用。 - **子程序区**:包含具体的函数实现,如`DX`子程序用于两个数据的低8位相加。 2. **内存和寄存器**: - **片内RAM资源**:定义了`ACCALO`、`ACCAHI`、`ACCBLO`、`ACCBHI`作为加减运算的存储区域,`S_W`和`S_STATUS`用于栈保存W寄存器和STATUS寄存器的值。 - **W寄存器**:通用工作寄存器,用于临时存储数据。 - **STATUS寄存器**:包含了运行状态标志,如进位标志、零标志等。 3. **中断处理**: - **中断矢量**:中断发生时,单片机会跳转到这个地址执行中断服务程序。 - **中断服务流程**:调用`PUSH`子程序保存现场,检查中断标志(如`PIR1`中的`ADIF`),执行中断服务子程序,然后通过`POP`恢复现场并使用`RETFIE`返回中断。 4. **汇编指令**: - **GOTO**:无条件跳转指令,用于控制程序流程。 - **CALL**:调用子程序指令,执行完子程序后返回。 - **BTFSS**:位测试并向前跳跃指令,用于检查特定位是否为1。 - **MOVLW**:加载立即数到工作寄存器。 - **MOVWF**:将工作寄存器的内容移动到文件寄存器。 - **ADDWF**:添加带进位的字节操作,常用于加法运算。 - **BCF** 和 **BSF**:清除和设置位操作。 - **RET** 和 **RETURN**:子程序返回指令。 5. **程序逻辑**: - 主程序`MAIN`中设置了RA口为输入端口,并初始化`ACCALO`,然后调用`DX`子程序进行运算。在`LOOP1`循环中执行多个任务。 6. **子程序设计**: - `DX`子程序实现了低8位的加法运算,使用`MOVF`加载数据,`ADDWF`执行加法,最后通过`RETURN`返回结果。 通过上述知识点,我们可以了解到在PIC16F877单片机上编写汇编语言程序的基本方法,包括程序结构的规划、中断服务的处理、内存和寄存器的使用,以及如何设计和调用子程序来实现特定的运算功能。
剩余20页未读,继续阅读
- 粉丝: 30
- 资源: 5万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助