PIC单片机入门之闪灯程序
今天首先发一个关于PIC单片机的入门的一些感悟。PIC单片机有很丰富的寄存器,我所学习的PIC16f886单片机有28个引脚,却又很多I/O口,由于microchip的PIC芯片是相当比较稳定安全的芯片,所以他对端口输入输出方式的控制可谓是很细心,刚开始学习单片机得时候对于端口的配置走了很多弯路,下面做以下总结: code NOP BANKSEL PORTA ;找到PORTA对应的bank CLRF PORTA ;将PORTA数据清零 BANKSEL ANSEL ;找到控制PORTA模式配置寄存器 CLRF ANSEL ;配置PORTA的全部引脚为数字端口模式(0为数字模式,1为模拟模式) BANKSEL TRISA ;找到PORTA对应的数据方向寄存器 MOVLW B00000000 MOVWF TRISA ;配置为输出端口 MOVLW 01H ;送01H到W XORWF PORTA,f ;取反RA0,让LED闪烁,用RA0点亮LED CALL DELAY ;调用0。2S廷时程控 GOTO LOOP ;返回不断闪烁 MOVLW .2 MOVWF D1 MOVLW .200 MOVWF D2 MOVLW .200 MOVWF D3 DECFSZ D3,1 GOTO DELAY_3 DECFSZ D2,1 GOTO DELAY_2 DECFSZ D1,1 GOTO DELAY_1 RETURN ;子程序返回 END ; 形式上的程序结束
首先要配置输入还是输出方式(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
main
LOOP
;-------------------------------------以下是0。2S廷时子程序
DELAY
DELAY_1
DELAY_2
DELAY_3
关键词: PIC单片机闪灯程

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码