微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC单片机入门之闪灯程序

PIC单片机入门之闪灯程序

时间: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 ; 形式上的程序结束

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top