Beruflich Dokumente
Kultur Dokumente
MOVWF PORTB;
GOTO LOOP_START;
x = x+i;
9 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
void main() {
OSCCON.IRCF0=0;
OSCCON.IRCF1=1;
OSCCON.IRCF2=1;
ANSELA =2;
asm{
MOVLW 0X01 ;
Loop:
INCF _i,1;// i=i+1
MOVF _i,0;// move i to Wreg
ADDWF _x,1; //x=x+Wreg
MOVLW 9; // Wreg=10
CPFSGT _i;
goto Loop
10 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
OSCCON.IRCF0=0;
11 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
OSCCON.IRCF1=1;
OSCCON.IRCF2=1;
ANSELB=0;
TRISB=0;
asm {
MOVLW 0xF0;
MOVWF LATB,0;
Rotate:
RLNCF LATB,1,0;
goto Outer
Inner:
INCF _J,1;// J=J+1
MOVF _J,0;// move J to Wreg
ADDWF _X,1; //X=X+Wreg
12 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
CPFSEQ _J;
goto Inner
goto Outer
Outer:
INCF _I,1;// i=i+1
MOVLW 255;
CPFSEQ _I;
goto Inner
goto Rotate
13 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
Following code will select the memory bank and increment the
value of i variable.
} }
var2 = abs(var1); //The var2 must get the absolute value of var1
15 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
short var1=-10;
short var2=0;
void main() {
asm{
MOVLW 0;
MOVFF _var1,_var2;
ADDWF _var1,0;
BNN end
NEGF _var2
end:
goto end
}
16 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
//Global Variables
short num1, num2, maximum;
short max_of_2(){
if(num1>num2){
maximum = num1;
}else{
maximum = num2;
short num1=10;
short num2=12;
short maximum=0;
17 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
void main() {
asm{
//call max_of_2;
max_of_2:
MOVFF _num1, _maximum;
MOVF _num1,0;
CPFSGT _num2
return
MOVFF _num2,_maximum
return
18 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
short array_element = 0;
short i =0;
void main() {
for(i=0;i<size_array;i++){
array_element=My_array[i];
while(1);
short array_element = 0;
short i =0;
const short size_array = 8;
19 of 21 12/12/17, 1:09 PM
pic microcontroller assembly language programming examples about:reader?url=http://microcontrollerslab.com/pic-microcontroller-asse...
void main() {
My_array[1]=2;
asm{
LFSR 1, 0x0060;
for:
INCF _i,1;
MOVFF POSTINC1,_array_element;
MOVLW _size_array;
CPFSEQ _i
goto for
end:
goto end;
20 of 21 12/12/17, 1:09 PM