|
現(xiàn)在竟然還有教學(xué)PIC匯編的
我用8051匯編兩年,才去學(xué)的PIC16系列的匯編,依然覺得很吃力對于PIC匯編,你最好學(xué)會偽指令,這會讓你能更好的學(xué)習(xí),而且效率也會高很多的
以下是一段代碼的開始部分,你可以參考一下:
#include <p16f877a.inc> ;包含了PIC16F877A的寄存器聲稱文件,像C,F,W之類的就可以直接引用了
__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _BOREN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF;配置設(shè)置生成的代碼,這個代碼有的編譯器是在軟件燒錄,或者是在配置選項(xiàng)那,先配置好,再生成代碼,然后復(fù)制到這里的
CBLOCK 020H ;定義連續(xù)變量,CBLOCK 020H,這是一個偽指令,意思就是從20H開始連續(xù)定義變量,之后就可以在代碼中使用了
COUNT ;計數(shù)用的,COUNT 在定義之后,相當(dāng)021H地址,但用COUNT更加直觀一點(diǎn),
DEL1 ;用在延時子程序中
DEL2 ;用在延時子程序中
DISP_ADDR ;顯示地址用寄存器
DISP_DATA ;顯示數(shù)據(jù)用寄存器
LED_1 ;七段碼的個位
LED_10 ;七段碼的十位
LED_100 ;七段碼的百位
DIV_DATA ;除法用寄存器
DATA_BUF ;數(shù)據(jù)寫入和讀出用的緩沖器
SESHI ;測試用寄存器
ENDC ;結(jié)束定義
#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為標(biāo)志位,減法有借位=0,無借位=1
#define CS PORTD,4 ;片選信號線
#define SK PORTD,5 ;時鐘信號線
#define D_I PORTD,6 ;數(shù)據(jù)輸入信號線
#define D_O PORTD,7 ;數(shù)據(jù)輸出信號線
|
|