新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > PIC单片机入门之闪灯程序

PIC单片机入门之闪灯程序

作者: 时间:2016-11-24 来源:网络 收藏
今天首先发一个关于PIC单片机的入门的一些感悟。PIC单片机有很丰富的寄存器,我所学习的PIC16f886单片机有28个引脚,却又很多I/O口,由于microchip的PIC芯片是相当比较稳定安全的芯片,所以他对端口输入输出方式的控制可谓是很细心,刚开始学习单片机得时候对于端口的配置走了很多弯路,下面做以下总结:
首先要配置输入还是输出方式(TRISA、TRISB等等),其次要配置模拟模式还是数字模式(ANSEL、ANSELH等),如果配置不正确,是读不到想要的值的,我想对于入门主要就是配置上的问题吧!
对于初学PIC,往往先做一个闪灯实验来验证器件已经开始工作,下面是我做的闪灯程序,用汇编编写,不是很规范,毕竟编写的时候也是初学。
#include
;程序采用可重定位的汇编,实现闪灯效果,用RA0输出
udata_shr
D1 res 1h ;定义变量
D2 res 1h
D3 res 1h
reset code 0x0 ;程序开始地址
pagesel main
goto main
code
main
NOP
BANKSEL PORTA ;找到PORTA对应的bank
CLRF PORTA ;将PORTA数据清零
BANKSEL ANSEL ;找到控制PORTA模式配置寄存器
CLRF ANSEL ;配置PORTA的全部引脚为数字端口模式(0为数字模式,1为模拟模式)
BANKSEL TRISA ;找到PORTA对应的数据方向寄存器
MOVLW B00000000
MOVWF TRISA ;配置为输出端口
LOOP
MOVLW 01H ;送01H到W
XORWF PORTA,f ;取反RA0,让LED闪烁,用RA0点亮LED
CALL DELAY ;调用0。2S廷时程控
GOTO LOOP ;返回不断闪烁
;-------------------------------------以下是0。2S廷时子程序
DELAY
MOVLW .2
MOVWF D1
DELAY_1
MOVLW .200
MOVWF D2
DELAY_2
MOVLW .200
MOVWF D3
DELAY_3
DECFSZ D3,1
GOTO DELAY_3
DECFSZ D2,1
GOTO DELAY_2
DECFSZ D1,1
GOTO DELAY_1
RETURN ;子程序返回
END ; 形式上的程序结束


关键词: PIC单片机闪灯程

评论


技术专区

关闭