You are on page 1of 12

Cc ton t - Ton t gn (=).

V d : b = 5; a = 2 + b; a = b =c = 5; - Cc ton t s h c ( + , - , * , / , % ) - Cc ton t gn ph c h p (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=) value += increase; t a -= 5; t a /= b; t ng ng ng ng v i value = value + increase;

ng v i a = a - 5; ng v i a = a / b; ng ng v i price = price * (units + 1);

price *= units + 1; t T ng v gi m ++ - -

a++; <=> a++=1; <=> a=a+1; tnh ch t ti n t ho c h u t (++a) # (a++) Ex B=3; B=3;A=++B; // A is 4, B is 4

B=3; A=B++; // A is 3, B is 4 - Cc ton t quan h ( ==, !=, >, <, >=, <= ) == B ng != Khc >L nh n < Nh h n > = L n h n ho c b ng < = Nh h n ho c b ng (7 == 5) s tr gi tr false (6 >= 6) s tr gi tr true T t nhin thay v s d ng cc s , ta c th s d ng b t c bi u th c no. Cho a=2, b=3 v c=6 (a*b >= c) s tr gi tr true. (b+4 < a*c) s tr gi tr false Ch r ng = (m t d u b ng) lf hon ton khc v i == (hai d u b ng). (==) nh m so snh cn (=)gn gi tr c a bi u th c bn ph i cho bi n bn tri .

- Cc ton t logic( !, &&, || ). ! NOT && AND || OR EX: !(5 == 5) tr v false v bi u th c bn ph i (5 == 5) c gi tr true. !(6 <= 4) tr v true v (6 <= 4)c gi tr false. !true tr v false. !false tr v true. ( (5 == 5) && (3 > 6) ) tr v false ( true && false ). ( (5 == 5) -> Cc ton t thao tc bit ( &, |, ^, ~, <<, >> ). & AND Logical AND | OR Logical OR ^ XOR Logical exclusive OR ~ NOT o ng c bit

<< SHL D ch bit sang tri >> SHR D ch bit sang ph i

Trong 8051 c 5 nguyn nhn sinh ra ng t: ng t ngoi 0, timer0, ng t ngoi 1, timer1, ng t n i ti p. a ch c a ng t trong b ng vector ng t = 8 * s th t ng t + 3, s th t ng t = 0,1,2,3,4 nh k hi u trong file . Nh v y a ch trong RAM t 0x03 n 0x30 l dnh cho b ng vector ng t. C php c a hm th c hi n ng t nh sau, hm ny khng c tham s , khng c ki u tr v nn l d ng void tenham(void) C php chnh nh sau:

void inter0(void) interrupt 0 using 1{ } // ng t ngoi 0, dng bank 1

T ng t v i cc ng t khc.Ta thay s 0 b ng s th t cc ng t t ng ng cc ng t t ng ng. void inter1(void) interrupt 1 using 1{ } void inter2(void) interrupt 2 using 1{ }

Ti p t c v i 2 ng t cn l i.

Chng ta l u l enable ng t .

vdk nh y

n b ng vector ng t th c n ph i

V d : Mu n ng t n i ti p th ph i cho nh sau: EA = 1;// cho php dng ng t ES = 1;// dng ng t n i ti p Hm ng t l m t hm khng c tham s , khng c ki u tr v . V th c ch t cc bi n m hm ny thao tc chnh l cc bi n ton c c (cc thanh ghi, cc port). C u trc m t hm ng t nh sau:

void tenham(void) interrupt a using b{ // code }

Tn hm: ty ch n. a : l th t c a ng t trong b ng vector ng t a = 0 : ng t ngoi 0

a = 1 : ng t timer0 a = 2 : ng t ngoi 1 a = 3 : ng t timer1 a = 4 : ng t n i ti p

b: l bank c ch n dng th c hi n hm ng t. Do 8051 c 4 bank l bank 0, 1, 2, 3. Do : b c th l m t trong cc gi tr 0,1,2,3. L u : n u khng vi t thm using b th m c ng t th c hi n t i bank0. nh l hm

Do , m t th d v hm ng t n i ti p s c d ng nh sau: void inter4(void) interrupt 4 using 2{ // m th c hi n hm } V sau y l m t o n ch ng trnh t o m t xung chn P1.0 v khi nh n c d li u n i ti p th chuy n sang port P2. T n s th ch anh l 11.0592 MHz. Dng AT89C51

# include "regx51.h"

// ham gay tre

void delay(int time){ while(time--){ unsigned char j = 122; while(j--); }; }

// ham thiet lap ban dau void init(){ EA = 1; // cho phep dung ngat ES = 1; // dung ngat noi tiep // Thiet lap tan so bus TMOD = 0x02; // dung timer1, che do 8 bit tu nap lai TH1 = 253; // chon tan so bus = 9600 TR1 = 1 ; // khoi dong timer1 }

// Ham ngat void inter4(void) interrupt 4 using 2{

if (RI){ // kiem tra co tran nhan RI. P2 = SBUF; // lay du lieu tu SBUF RI = 0; // xoa co ngat }; }

// ham main void main(){ // tao xung tren chan P1.0 init(); while(1){ P1_0 = 1; delay(500); P1_0 = 0; delay(500); } }

C u trc ch a. Ph n kha

ng trnh C cho vi i u khi n

u tin l li t k cc header file m ta dng b ng t

#include"tn header file" ho c #include< tn header file> Khi ta vi t theo cch th nh t th trnh bin d ch s tm ki m file .h ho c .c ny trong th m c hi n t i ch a d n, n u khng c th s tm ki m trong th m c Inc trong th m c ci t KeilC. Vi t theo cch th hai th trnh bin d ch s tm lun trong th m c /INC lun. c th s d ng ng cc file .h cho cc vi i u khi n c a mnh th ta m th m c /inc trong th m c ny c cc th m c con nh tn c a hng s n xu t. V d nh c a Atmel th tm trong th m c /Atmel th s th y c file regx51.h b. nh ngh a cc macro cho ch ng trnh sng s a. Vi c ngh a ny c dng b ng t kha #define nh

V d : nh ngh a led1 l P1_0 t c l led1 c a Port 1.

c n i v i chn 0

#define led1 P1_0

c. Cc hm ng t nh ng t timer0, timer1, ng t n i ti p, ng t ngoi: V d dng ng t n i ti p l ng t 4 trong b ng vector ng t th hm s c d ng nh sau:

void inter_4(void) interrupt 4 using 2 { // lm g th lm } C php cc ng t khc c ng t ng t ch thay s 4 b ng s th t c a ng t trong b ng vector ng t. y

d. Cc hm con nh Delay, kh i t o,.. nh : void delay( unsigned char time) { //code vi t } y

e. Ch

ng trnh chnh:

void main(void) { // vi t m } i t ng c a ch ng trnh l vi i u khi n nn hm main khng c gi tr tr v v khng c tham s a vo. K t lu n, ch // li t k header file #inlucde"tn header file" // cc marco #define led1 P1_0 // cc hm ng t void inter_1 interrupt 1 using 3{ } // cc hm bnh th ng ng trnh c a chng ta s c d ng nh sau: y

void delay( unsigned char time){ } // ch ng trnh chnh

void main(void){

//lenh }

You might also like