PIC单片机的C语言程序基本框架,PIC单片机的基本编程汇总,初学者必看

描述

适合3ePIC试验板,爱晶产品销售服务做的不好,好多C程序都是自己写的,不过汇编程序参考一下不错。

0199223e4fa25bf4cc870284253b0ce9.png

;------------------------------------------------------------------------------------------

;单双位变换显示实验参考程序注意:此程序请用单步执行(实验1-1.asm)

;------------------------------------------------------------------------------------------

STATUS EQU03H;特殊功能寄存器定义

TRISD EQU88H;特殊功能寄存器定义

PORTD EQU08H;特殊功能寄存器定义

TRISE EQU89H;特殊功能寄存器定义

PORTE EQU09H;特殊功能寄存器定义

ORG0000H;复位地址

NOP;MPLAB专用语句

STBSFSTATUS,5;选择体1

CLRFTRISD;PORTD设置为输出

CLRFTRISE;PORTE设置为输出

BCFSTATUS,5;选择体0

BCF PORTE,0;RE0清零,选通LED

LOOPMOVLWB‘10101010’

MOVWFPORTD;设置PORTD的值

MOVLWB‘01010101’

MOVWFPORTD;再次设置PORTD的值

GOTOLOOP;循环操作

;------------------------------------------------------------------------------------------

END

;------------------------------------------------------------------------------------------

本文引用地址: http://www.21ic.com/app/mcu/201810/786583.htm

;------------------------------------------------------------------------------------------

;软件延时自动计数实验参考程序(实验1-2.asm)

;------------------------------------------------------------------------------------------

STATUS EQU03H ;特殊功能寄存器定义

TRISD EQU88H;特殊功能寄存器定义

PORTDEQU08H;特殊功能寄存器定义

TRISE EQU89H;特殊功能寄存器定义

PORTEEQU09H;特殊功能寄存器定义

ORG0000H;复位地址

NOP;MPLAB专用语句

STBSFSTATUS,5;选择体1

CLRF TRISD;PORTD设置为输出

CLRF TRISE;PORTE设置为输出

BCFSTATUS,5;选择体0

CLRF PORTD;PORTD清零

BCF PORTE,0;RE0清零,选通LED

LOOPCALL DELAY1S;调用1S延迟程序

INCF PORTD;PORTD+1

GOTO LOOP;循环操作

;------------------------------------------------------------------------------------------

;1秒延时子程序参考程序

;------------------------------------------------------------------------------------------

DELAY1S MOVLW 06H;外循环常数

MOVWF 20H;外循环寄存器

LOP0MOVLW 0EBH;中循环常数

MOVWF 21H;中循环寄存器

LOP1MOVLW 0ECH;内循环常数

MOVWF 22H;内循环寄存器

LOP2DECFSZ 22H;内循环寄存器递减

GOTO LOP2;继续内循环

DECFSZ 21H;中循环寄存器递减

GOTO LOP1;继续中循环

DECFSZ 20H;外循环寄存器递减

GOTO LOP0;继续外循环

RETURN;返回

;------------------------------------------------------------------------------------------

END

;------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------

;霓虹灯显示实验参考程序(实验1-3.ASM)

;------------------------------------------------------------------------------------------

STATUS EQU03H;特殊功能寄存器定义

TRISD EQU88H;特殊功能寄存器定义

PORTDEQU08H;特殊功能寄存器定义

TRISE EQU89H;特殊功能寄存器定义

PORTEEQU09H;特殊功能寄存器定义

PCLEQU02H;特殊功能寄存器定义

COUNTEREQU30H;自定义变量

ORG0000H;复位地址

NOP;MPLAB专用语句

STBSFSTATUS,5;选择数据存储器体1

CLRF TRISD;定义RD口为输出

CLRF TRISE;PORTE设置为输出

BCFSTATUS,5;选择数据存储器体0

CLRF PORTD;PORTD清零

BCF PORTE,0;RE0清零,选通LED

POPCLRF COUNTER;自定义变量COUNTER清0

LOOPMOVF COUNTER,0;取出变量COUNTER值

CALL TABLE;查表对应数据

MOVWF PORTD;从PORTD输出

CALL DELAY50MS;调用50MS延时

INCF COUNTER,1;循环变量递增

MOVF COUNTER,0;取出当前COUNTER变量值

SUBLW .20;是否已取出20个数据

BTFSC STATUS,2;查验Z标志位

GOTO POP;Z=1,表示一次循环结束,COUNTER重新复位<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值