現在竟然還有教學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 ;數據輸出信號線
|