Professional Documents
Culture Documents
Các Toán T
Các Toán T
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;
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
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:
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:
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 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 }
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
#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
c n i v i chn 0
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 main(void){
//lenh }