Notices
Notice: Exam Form BE IV/II & BAR V/II (Back) for 2076 Magh
Routine: BE IV/II & BAR V/II - 2076 Magh
Result: BCE I/II exam held on 2076 Bhadra
Result: All (except BCE & BEI) I/II exam held on 2076 Bhadra
Notice: Exam Center for Barrier Exam (2076 Poush), 1st Part
View All
View Old Questions
Computer Engineering(BCT)
Electrical Engineering(BEL)
Electronics and Communication(BEX)
View All
View Syllabus
Computer Engineering(BCT)
Electrical Engineering(BEL)
Electronics and Communication(BEX)
View All

Notes of Embedded System [CT 655]

Microcontrollers in Embedded System

 

Interfacing Examples

1) Continuosly toggles the value of port 0

Code in C

#include						
void main(void){
    while(1)
    {
          PO = 0x00 ;
          PO = 0xFF ;
    }
}

 

Code in Assembly:

loop : MOV A,#ODH
           MOV A,#OFFH
           MOV PO,A
           JMP loop

 


2) Get data PO and set to P1

Code in C

#include						
void main(void){
     PO = 0xFF ;
     P1 = 0x00 ;
     while(1)
     {
            P1 = P0 ;
     }
}

 

Code in Assembly:

          MOV A,#OFFH
          MOV PO,A
          MOV A,#OOH
          MOV P1,A
loop: MOV A,P0
          MOV P1,A
          JMP loop

 


3)Create 50% duty cycle on bit D of port 1

Code in C

#include
sbit mybit = P1 ^0 ;						
void delay(unsigned int n){
          unsigned int x,y;
         x=0;
         y=0;
         while(x        {
        	while(y<1275){
         		y++ ;
         	}
         x++ ;
         }
}

 

void main(void) { while(1){ mybit = ~mybit ; delay(250); } }

 

Assembly:

loop: SET B P1.0
           LCALL DELAY
           CLR P1.0
           LCALL DELAY
           JMP LOOP

 


4) Get status of switch at P1.0 and sent it to LED at P2.7

Code in C

#include
sbit in_bit =P1 ^0;
sbit out_bit = P2^7 ;						
void main(void){
         while(1)
         {
                  out_bit = in_bit;
         }
}

 

Code in Assembly:

          SETB P1.0
          CLR P2.7
loop: MOV C,P1.0
          MOV P2.7,C
          JMP loop

 


5)Blink 8 LEDS connected at Port 2

Code in C

#include						
void main(void){
         P2= 0x00 ;
         while(1)
         {
                   P2 = 0x00 ;
                   P2=0xFF;
          }
}

 

Assembly:

          MOV A,#OFFH
          MOV P2,A
loop: MOV A,#OOH
          MOV P2,A
          MOV A,#0FFH
          MOV P2,A
         JMP loop

 


6) 7 segment display to show 0 to 9

Code in Assembly

             MOV A,#OFFH
             MOV P2,A
             MOV P2,#C0
             ACALL DELAY
             MOV P2,#F9
             ACALL DELAY
             MOV P2,#A4
             ACALL DELAY
             MOV P2,#BD
            ACALL DELAY
             MOV P2,#99
            ACALL DELAY
            MOV P2,#92
            ACALL DELAY
            MOV P2,#82
            ACALL DELAY
            MOV P2,#F8
            ACALL DELAY
             MOV P2,#80
           ACALL DELAY
           MOV P2,#90
           ACALL DELAY

 

Code in C

#include 
void main() {
         P2 = 0x00 ;
         P2 = 0xC0;
         delay(200);
         P2 =0xF9 ;
         delay(200)
         p3=0xA4 ;
         ….
}

 


7) 7 Segment display to show 99 to 00

Code in C

#include 
void main() {
         int i,j ;
         int array[10];
         array[1] = 0xF9;
         array[2] = 0xA4;
         array[3] = 0xB0;
         array[4] = 0x99;
          array[5] = 0x92;
         array[6] = 0x82;
         array[7] = 0xF8;
         array[8] = 0x80;
         array[9] = 0x90;
         array[0] = 0xC0;
         P1 = 0x00 ;
         P2 = 0x00 ;
         for(i=9;i>=0;i--){
                   P1 =array[i];
                   for(j=9;j>=0;j--){
                              P2=array[j] ;
                   }
          }
}

 


8)Sum of two 8bit BCD in RAM at 50H and 51H and store BCD sum at RAM 52H and 53H.

Code in Assembly

         MOV A,50H
         MOV B,51H
          CLR R7
         ADD A,B
         DAA
        JNC next
        INC R7
next: MOV 52H,R7
          MOV 53H,A

 


9) Compute precise 5-ms delay

for 5 ms;
n x 1.085 microsec = 5 ms ;
so n = 4608; 1 + 655535-4608 = 60927+1 = EE00H ;

Code in C

#include 
void delay() ;
void main() {
         while(1){
                     delay
         }
}

 

void delay(void){ TM0D = 0x01 ; TL0=0x00; TH0 =0xEE ; TRD=1; while(TF0==0); TR0=0 ; TF0 = 0 ; }

 

Code in Assembly

 
DELAY: MOV TMOD #01
Here:    MOV TL#0
              MOV TH0,#0EEH
              SETB TR0
again   JNB TF0,again
              CLR TR0
              CLR TF0

Sponsored Ads