现在竟然还有教学PIC汇编的
我用8051汇编两年,才去学的PIC16系列的汇编,依然觉得很吃力对于PIC汇编,你最好学会伪指令,这会让你能更好的学习,而且效率也会高很多的
以下是一段代码的开始部分,你可以参考一下:
#include <p16f877a.inc> ;包含了PIC16F877A的寄存器声称文件,像C,F,W之类的就可以直接引用了
__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _BOREN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF;配置设置生成的代码,这个代码有的编译器是在软件烧录,或者是在配置选项那,先配置好,再生成代码,然后复制到这里的
CBLOCK 020H ;定义连续变量,CBLOCK 020H,这是一个伪指令,意思就是从20H开始连续定义变量,之后就可以在代码中使用了
COUNT ;计数用的,COUNT 在定义之后,相当021H地址,但用COUNT更加直观一点,
DEL1 ;用在延时子程序中
DEL2 ;用在延时子程序中
DISP_ADDR ;显示地址用寄存器
DISP_DATA ;显示数据用寄存器
LED_1 ;七段码的个位
LED_10 ;七段码的十位
LED_100 ;七段码的百位
DIV_DATA ;除法用寄存器
DATA_BUF ;数据写入和读出用的缓冲器
SESHI ;测试用寄存器
ENDC ;结束定义
#define S1 PORTB,0 ;按置S1
#define S2 PORTB,1 ;按置S2
#define S3 PORTB,2 ;按置S3
#define COM0 PORTD,0 ;
#define COM1 PORTD,1 ;
#define COM2 PORTD,2 ;
#define COM3 PORTD,3 ;定义几个显示的RA端口
#define CN STATUS,0 ;C为标志位,减法有借位=0,无借位=1
#define CS PORTD,4 ;片选信号线
#define SK PORTD,5 ;时钟信号线
#define D_I PORTD,6 ;数据输入信号线
#define D_O PORTD,7 ;数据输出信号线
|