nhưng mà em đang hỏi đặt thời gian cố định như thế nào .anh có thể viết giúp em chương trình trên đươc ko.để em tham khảo một bài mẫu.giải thích cẩn thận một chút nhé.
Thông báo
Collapse
No announcement yet.
Dành cho người mới tìm hiểu 8051
Collapse
X
-
nhưng mà em đang hỏi đặt thời gian cố định như thế nào
//Ham tre
void Delay_ms(unsigned int Delay)
{
unsigned int i,j;
for(i=0;i<Delay;i++)
for(j=0;j<120;j++)
;
}
VD: bạn gọi
Delay(1000); //Khi gọi bạn sẽ chờ 1s mới thưc hiện tiếp chương trình----------------------
Bể học là mênh mông!
Comment
-
hao cac bác !
y/c cua GVHD DAMH2 cua minh la : viet 1 phan mem tren PC co 2 ô va nut enter va ô hien thi va chuong trinh nap vao 8951xuat ra port 0 va port 1, nhap du lieu tu dip-sw o port 2
khi ta nhap vao 2 so bat ky (00-->99) roi enter thi truyen qua USB qua COM ao den 8951 roi xuat ra 2 led 7 doan co so tuong ung o port 0 va port 1.
nguoc lai la set dip-sw 8 chan roi truyen nguoc lai tren phan mem cua PC voi so tuong ung khi set dip-sw 8
rat mong duoc ban giup do
cam on ban nhieu truoc nhe !
mail cua e la : duongdienthu@yahoo.com
nick yahoo la : duongdienthu
chuc cac bac luon vui khoe va thanh cong ...............
Comment
-
Nguyên văn bởi wish_blue07 Xem bài viếtchào bạn daominhchien
Mình đang làm mạch đèn trái tim , phần cứng thì mình mô phỏng protues xong oy, cũng chạy chương trinh nhìn cũng đẹp lắm. Mình lấy P1,P2,P3 làm led viền xung quanh , còn port 0 làm chữ hiển thị I Love You . mình cũng đang tập viết chương trinh cho nó , cũng chạy được 3 cách rồi ,nhưng it we', khổ nỗi hỏi ai cũng bảo dùng ngắt mà chưa rành cho lắm. Mình chưa biết cách post tai liệu lên , nếu không mình sẽ đưa lên cho bạn tham khảo. Nếu bạn làm được chương trinh của bạn rồi thì cho mình với nha
mà hinh như mình thấy trong ngắt ko thực hiện đc 1 cụm CT thì fải.. thử cho sử lý 1 bit thì đc. vì thế để thực hiện 1 cụm CT nhỏ chạy liên tục mình dùng nó thay cho delay,dùng for lặp nhiều lần cụm CT nhỏ nếu muốn delay dài...nếu bạn ở Hà Noi gửi add cho mình: email minhchien_tv@yahoo.com.vn
minhchien71@yahoo.comTôi thích cái cầu kỳ của kỹ thuật
Nhưng ghét mọi phức tạp trong tính cách con người
Comment
-
Nguyên văn bởi wish_blue07 Xem bài viếtNói như bác vậy chắc là không cần dùng BJT nữa đúng không vậy, nhưng mình đang dùng theo hướng là dùng BJT dễ dùng hơn , vì nó chỉ phụ thuộc vào dòng của BJT mà thôi , nên dễ thay thế BJT nếu nó không làm led sáng mạnh. Nên bạn thử cho ý kiến về vấn đề sử dụng BJT nha. Dù sao cũng cám ơn bạn nhiềuTôi thích cái cầu kỳ của kỹ thuật
Nhưng ghét mọi phức tạp trong tính cách con người
Comment
-
có bác nào viết được chương trình tạo khoảng thời gian trễ đúng 1ms cho 89s52 không ? và sau muốn thay đổi thời gian trễ chỉ cần đưa vào đối số để được TG trễ như mong muốn.giả thiết thạch anh đang sử dụng là 12MHz ấy
em đã thử nhiều mà vẫn chưa thành công.mong mọi người giúp.
cách em thử là dùng timer định khoảng thời gian 1ms rồi cho lặp n lần để được n(ms) nhưng không ăn thua.
cảm ơn mọi người trước .
Comment
-
bạn cần độ chính xác là bao nhiêu , micro giây à ?
Dùng timer và tính với thời gian của từng câu lệnh của hàm tạo trễ là chính xác lắm rồi !!0945061338(vocam.h@gmail.com,lehanhdtk3@gmail.com)
||
PROGRAMING(C,ASM),HARDWARE,LMD,RTC,GPRS,GPS....ALL OF VDK
Comment
-
để tính thời gian trễ chính xác. Ngoài việc nhân chia cho đúng, bạn còn phải cộng trừ thời gian của các hàm trong vòng lặp nữa.
ví dụ: Nếu 1 vòng lặp for choáng mất 2 chu kỳ máy, thì khi lặp n lần, sẽ tốn thêm 2n chu kỳ máy ...Nên để bù trừ khoảng thời gian này, bạn phải giảm số vòng lặp thích hợp.
Tuy nhiên, dù tính kỹ đến thế nào thì vẫn có sai số, nhưng ko đáng kể.
Chúc thành công
Pavolusa:-)
Comment
-
Hàm này trì hoãn ms khá chính xác (sai số không quá 2%), ta có thể dùng thạch anh từ 1MHz đến 33MHz. Các bạn có thể kiểm tra lại!
#define hFXTAL 12000000
#define hFXTAL_DELAY0 (hFXTAL/12000 - 9)
#define hFXTAL_DELAY2 (unsigned char)((hFXTAL_DELAY0/256) + 1)
#define hFXTAL_DELAY1 (unsigned char)((hFXTAL_DELAY0/(2*hFXTAL_DELAY2+3)) + 1)
void Hdelay_ms(unsigned int ms)
{
unsigned char delay1, delay2;
delay_lap:
delay1=hFXTAL_DELAY1;
delay_lap1:
delay2=hFXTAL_DELAY2;
delay_lap2:
if(--delay2!=0) goto delay_lap2;
if(--delay1!=0) goto delay_lap1;
if(--ms!=0) goto delay_lap;
}
Tan so (gitri nap) 1ms 10ms 100ms 1000ms
-------------------------------------------------------------------
- 1MHz: (1-15): 1,08(8%); 10,15(1,5%); 100,87(0,9%); 1008,12(0,8%)
- 3MHz: (1-49): 1,04(4%); 10,19(1,9%); 101,62(1,6%); 1016,04(1,6%)
- 8MHz: (3-74): 1,02(2%); 10,14(1,4%); 101,26(1,3%); 1012,51(1,3%)
- 11059200: (4-83): 1,00(0%); 10,01(0,1%); 100,05(0,1%); 1000,25(0,0%)
- 12MHz: (4-91): 1,02(2%); 10,11(1,1%); 101,00(1,0%); 1010,00(1,0%)
- 24MHz: (8-105): 1,00(0%); 10,03(0,3%); 100,20(0,2%); 1002,00(0,2%)
- 33MHz: (11-110): 1,01(1%); 10,04(0,4%); 100,33(0,3%); 1003,27(0,3%)!e
Comment
-
Anh oi em copy chuong trinh cua anh vao keil c nhung lam nao de cho no chay ha anh
http://dientuvietnam.net/forums/showthread.php?t=1163----------------------
Bể học là mênh mông!
Comment
-
Nguyên văn bởi hunglinhcauban oi cho minh hoi:minh dang xai con 89v51.khi lap trinh ngan thi khong sao,nhung cu ho lap trinh 1 doan dai thi khi nap vao thi chay dc 1 doan thi tu dong reset ve ban dau,nhung lenh tien theo khong thuc hien dc nua.ai biet vi sao chi giup minh cai
1. Chương trình bạn viết có dung lượng dài quá giới hạn cho phép của VĐK
2. Trình duyệt hoặc phần mềm nạp của bạn là bản có bản quyền nên giới hạn dung lượng.
3. Đường truyền giữa máy tính và VĐK ko tốt. Bạn kiểm tra các khớp kết nối. Ko nên dùng dây kết nối quá dài. Dây kết nối nên là dây có quấn lớp bạc chống nhiễu .
4. Nếu ko rơi vào 1 trong các trường hợp trên, thì có thể chương trình bạn viết có vấn đề. Bạn kiểm tra lại hoặc post lên để mọi người cùng trao đổi.
Chúc thành công!:-)
Comment
Bài viết mới nhất
Collapse
-
bởi Trắng bạchem đang làm cái đồ án sử dụng pid để điều khiển Động Cơ DC Servo Giảm Tốc GA25 12v/280rpm, dùng winform truyền xuống pic16f877a các thông số vận tốc, ki, kd, kp. hiện tại em đã truyền xuống được nhưng truyền xuống vài lần là giao diện...
-
Channel: Hỗ trợ học tập
Hôm qua, 23:46 -
-
Trả lời cho Dùng MC34063 để làm driver lái led 1W, 3Wbởi nhathung1101Dự là bạn này định chế đèn led cho oto.
không hiểu các bạn hiểu về đèn led thế nào? chỉ mong các bạn hiểu cuộc sống chỉ có một lần thôi.-
Channel: Điện tử dành cho người mới bắt đầu
19-05-2024, 22:29 -
-
Trả lời cho Dùng MC34063 để làm driver lái led 1W, 3Wbởi bqvietChỗ đó là chỉ IC này chạy DC (tất nhiên) được mà AC cũng được. Khi chạy điện AC thì cần cầu nắn dòng và tụ lọc 100uF. Nếu chạy DC thì không cần cầu nắn mà tụ đó cũng chỉ cần tầm vài uF thôi. Cái đi-ốt thì càng dễ, luận tí...
-
Channel: Điện tử dành cho người mới bắt đầu
19-05-2024, 21:37 -
Comment