![]() |
khong hieu sai o dau
các bác cho em hỏi tý
em muốn tao ra một chương trình trễ dài 2 phút để điều khiển mở cho rơ le, tuy nhiên em viết chương trình của em như sau: processor 16f877a include <p16f877a.INC> TG1 EQU 0X20 TG2 EQU 0X21 TG3 EQU 0X22 org 0x000 bsf STATUS,RP0 bcf STATUS,RP1 MOVLW 0X00 MOVWF TRISB BCF STATUS,RP0 MOVLW 0X01 MOVWF PORTB gửi ra chan rb0 bit 1 CALL DELAY gọi trễ MOVLW 0X00 MOVWF PORTB LOOP GOTO LOOP ;treo chương trình ket thuc chuong trinh tai day DELAY MOVLW x ;x y z la cac gia tri tong quat MOVWF TG1 MOVLW y MOVWF TG2 MOVLW z MOVWF TG3 LABLE1 DECFSZ TG1 GOTO LABLE2 GOTO EXIT LABLE2 DECFSZ TG2 GOTO LABLE3 MOVLW y MOVWF TG2 GOTO LABLE1 LABLE3 DECFSZ TG3 GOTO LABLE3 MOVLW z MOVWF TG3 GOTO LABLE2 EXIT RETURN END theo em tinh toán thi mỗi lệnh goto cho 2 chu kỳ lệnh, như thế khi cho số x y z cho trước em tính được thời gian trễ delay sẽ là {3(x-1){(3y-1)[3(z-1)+4]+4} + 10 }*4/4Mhz (vơi bộ dao động 4 Mhz) vậy khi cho x,y z =255 thì phải được thời gian trễ rất lớn 1 phút tuy nhiên khi em mô phỏng trên protelus chưa đên 1 phút chân RB0 đã chuyển trạng thái từ 0 sang 1 rồi. em thử nghĩ ra 3 vòng lap long nhau nhu thoi hoc pascal ay ma mấy bác kiểm tra thuật toán dùm em được không, vì mới học pic nên em hơi bỡ ngơ,hic |
a quen bit cau hinh trong mlab 7 em da dat roi.
|
Hỏi về C cơ bản trong CCS C
các bác cho em hỏi:em muốn trong ct vdk em muốn dùng c cơ bản để thực hiện(một cái gì đó để ứng dụng cho ct của vdk chăng hạn) thì ccs c có hộ trợ không ạ. nếu có thì như thế nào?
tóm lại là có hỗ trợ không ạ! và như thế nào. |
Múi giờ GMT. Hiện tại là 10:31 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam