本帖最后由 GeekyGeek 于 2015-10-25 15:43 编辑
从今天开始,决定学习PIC汇编。并且期望每一天或每两天更新一次学习成果上来。我会贴上代码和Proteus的仿真结果。 不对的地方,还请指教。今天写的是最简单的--点亮一盏灯。
代码如下:
;/******************************************/
;/* Main Program */
;/******************************************/
;/* OSC: 8 MHz (external crystal)*/
;/* Feature: RA0 output "1" to flash a LED*/
;/******************************************/
LIST P=16F877A
#include "p16F877A.inc"
; /*CONFIG BITS*/
; /*__config 0x3F32*/
__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_ON & _BOREN_OFF & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF
REST CODE 0x0000 ; /*processor reset vector*/
GOTO START ; /*go to beginning of program*/
MAIN CODE ; /*let linker place main program*/
START
banksel TRISA
bcf TRISA, TRISA0
banksel PORTA
bsf PORTA, RA0
GOTO $ ; /*loop forever*/
END
Proteus 仿真结果如下:
使用到PIC汇编指令bcf, bsf, 和goto,PIC 汇编指令只有35个,今天就用到了3个。加油,呵呵!
在一些例程里面,我看到有些代码中通过清除或设置RP0,RP1来选择bank, 不知道和banksel有什么区别。
E:\MyBlogs\FlashLED.png
|