Tổng số bài gửi : 397 Điểm : 1334 Danh tiếng : 63 Ngày tham gia : 30/11/2010 Tuổi : 35 Đến từ : Thái Bình
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:14 pm
Mình muốn đếm từ 00-99 bằng mã BCD trên Post 1 bạn nào biết cách làm chỉ mình với Thank ! Code thì tốt quá
huudotb Thành viên đặc biệt
Tổng số bài gửi : 397 Điểm : 1334 Danh tiếng : 63 Ngày tham gia : 30/11/2010 Tuổi : 35 Đến từ : Thái Bình
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:14 pm
mình có code này mọi người xem dùm mình với không biết có hiển thị được ko? ...... while(1) { unsigned int x; for(x=0;x<99;x++) { P1 = hienthi[x%10] ; delay(1); P1 = hienthi[x/10]; delay(1);
Sunset_Pro Thành viên chính thức
Tổng số bài gửi : 55 Điểm : 97 Danh tiếng : 11 Ngày tham gia : 25/12/2010 Đến từ : UNETI
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:23 pm
code bạn viết như vậy thì còn thiếu. - nếu muốn hiển thj thì trước tiên bạn phải khai báo: +/thư viện.ví dụ 89x51.h +/khai báo mã led +/viết hàm quét led +/và mô phỏng. chúc bạn thành công!
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:25 pm
chương trình bạn viết như thế sẽ bị nhảy loại thui! ở đây mình viết luôn chương trình điểu khiển đếm từ 0000 đến 9999 và lặp lại! bạn dùng 4 ic 7447 giả mã nhé!
Được sửa bởi huudotb ngày Sat May 07, 2011 10:27 pm; sửa lần 1.
huudotb Thành viên đặc biệt
Tổng số bài gửi : 397 Điểm : 1334 Danh tiếng : 63 Ngày tham gia : 30/11/2010 Tuổi : 35 Đến từ : Thái Bình
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:27 pm
Phần tạo trễ mình ko viết nhé
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:30 pm
cái chương trình bạn viết quá kỳ cục! chắc chắn là sẽ không thể chạy đuơcj! vì P1 của bạn sẽ chẳng thể hiện cái gì cả!
Sunset_Pro Thành viên chính thức
Tổng số bài gửi : 55 Điểm : 97 Danh tiếng : 11 Ngày tham gia : 25/12/2010 Đến từ : UNETI
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:34 pm
- chương trình của bạn lucky viết thì tôi đọckhông hiểu. -chương trình bạn huwudo viết vẫn còn thiếu phần quét led.(ở đây bạn dùng led 7 thanh tức cực mức thấp) -tôi có một chương trình nho nhỏ thế này,bạn tham khảo:
// khai bao Header #include #include
#define m 2 // dinh nghia m de sau nay tien cho viec chinh sua thoi gian quyet led // Khai bao Bit can dung sbit start = P1^0; // nut nhan bat dau sbit Led1 = P2^0; // Cac dau ra quyet led sbit Led2 = P2^1; sbit Led3 = P2^2; sbit Led4 = P2^3; sbit Led5 = P2^4; sbit Led6 = P2^5; sbit Led7 = P2^6; sbit Led8 = P2^7;
unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; // Ma data cua led 7 thanh unsigned long int result; unsigned char million,hundred thousand,ten thousand,thousand,hundred,tens,unit;
// Ham tao tre de quyet led, ham nay chi mang tinh chat tao tre, chu thoi gian thuc trong ham khong dung voi thoi gian tre thuc su trong VDK void delay_ms(unsigned int time) { unsigned int i; unsigned int j; for(i = time;i>0;i--) for(j=0;j<300;j++); } // Ham xoa Led de giam hieu ung chop cua LED ( Do lech so voi tan so nhin thay cua mat ) void clear_led(void) { P0=0xff; P2=0x00; } // Ham quet LED void Display(void) { clear_led(); million=result/1000000 if (million == 0) // Neu gia tri trong hang nghin = 0 thi led hang nghin khong sang clear_led(); else { Led8 = 1; Led7 = 0; Led6=0; Led5 = 0;Led4 = 0; Led3=0; Led2 = 0;Led1 = 0; P0=M[million]; delay_ms(m); clear_led(); } thousand = result/1000;
if (thousand == 0) // Neu gia tri trong hang nghin = 0 thi led hang nghin khong sang clear_led(); else { Led4 = 1; Led3 = 0; Led2=0; Led1 = 0; P0=M[thousand]; delay_ms(m); clear_led(); }
hundred =(result%1000)/100;
if ((thousand == 0)&&(hundred == 0)) // Neu gia tri trong hang nghin, va hang tram deu = 0 thi led hang nghin, hang tram khong sang clear_led(); else { Led4 = 0; Led3 = 1; Led2=0; Led1 = 0; P0=M[hundred]; delay_ms(m); clear_led(); }
tens = ((result%1000)%100)/10;
if ((thousand == 0)&&(hundred == 0)&&(tens == 0)) // Neu gia tri trong hang nghin, va hang tram, hang chuc deu = 0 thi led hang nghin, hang tram, hang chuc khong sang. clear_led(); else { Led4 = 0; Led3 = 0; Led2=1; Led1 = 0; P0=M[tens]; delay_ms(m); clear_led(); }
Tổng số bài gửi : 55 Điểm : 97 Danh tiếng : 11 Ngày tham gia : 25/12/2010 Đến từ : UNETI
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:39 pm
đoạn chương trình trên chỉ l;à riêng phần heeij thị quét led. ==> công việc hiện thị số nào là việc quá đơn giản.
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sat May 07, 2011 10:42 pm
chương trình của mình là quá đơn giản mà! bạn chỉ nạp số! sau đó chia cho 10 lấy thương nhân với 16 để đẩy nó lên từ bít thứ 4 đến bít thứ 8 của mỗi post! sau đó bạn cộng với số dư! như vậy với 8 bít chúng ta sẽ hiển thị được 00-99 và với 16 bít sẽ có 0000-9999 chương trình quá đơn giản! bạn hãy copy về và chạy thử nhé! và đây là video chương trình của mình!
nguyendien.uneti Thành viên đặc biệt
Tổng số bài gửi : 307 Điểm : 801 Danh tiếng : 68 Ngày tham gia : 06/12/2010 Đến từ : Nam Định
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sun May 08, 2011 3:18 am
Bạn Lucky làm thêm phần quét led , để mọi người tham khảo nhé .
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sun May 08, 2011 10:45 am
Mình nghĩ nếu chúng ta kết hợp giữa VDk và kỹ thuật số thì thật tuyệt vời! Chúng ta sẽ có những dòng lệnh rất ngắn! Sẽ không làm tốn dung lượng cho bố nhớ của VDK! Mặt khác chúng ta sẽ thực hiện được nhiều công việc hơn với cùng 1 dung lượng của bố nhớ! với những bài tập lớn chúng ta phải tính đến điều này!
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sun May 08, 2011 10:45 am
nguyendien.89 đã viết:
Bạn Lucky làm thêm phần quét led , để mọi người tham khảo nhé .
Chắc hẳn có nhiều bạn từng quan tâm đến việc làm led trái tim tặng bạn gái! mình xin demo 1 vi dụ để các bạn tham khảo: chương trình ở đâu mình thiết kế với >80 hiệu ứng trong thời gian <7 phút! các bạn tham khảo nhé! nếu được thì vỗ tay cái nhé!
nguyendien.uneti Thành viên đặc biệt
Tổng số bài gửi : 307 Điểm : 801 Danh tiếng : 68 Ngày tham gia : 06/12/2010 Đến từ : Nam Định
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sun May 08, 2011 10:56 am
Ý bạn là j nhỉ ? Kết hợp Vi điều khiển với Kỹ thuật số . Nói về để làm được một bài vi điều khiển thì kết hợp nhiều môn lắm . Cũng tùy theo ứng dụng mà ta có kết hợp với các vi mạch hỗ trợ hay ko ? Ví dụ như bài hiển thị Led 7 thanh của bạn ở trên , dùng mã BCD chỉ tốn 4 chân của port + IC 74LS47 hiển thị được 1 led7 thanh .Nhưng nhược điểm của mã BCD là số 6 và số 9 bị mất đuôi .hehe .Nên chỉ với những ứng dụng hiển thị nhiều Led 7 thanh mới dùng đến mã BCD .Còn về bộ nhớ chương trình mình nghĩ ko dùng hết thì phí , để thừa làm j . . Và nhiều ứng dụng thì chắc chắn phải có sự tham gia của các vi mạch .
nguyendien.uneti Thành viên đặc biệt
Tổng số bài gửi : 307 Điểm : 801 Danh tiếng : 68 Ngày tham gia : 06/12/2010 Đến từ : Nam Định
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sun May 08, 2011 10:59 am
lucky đã viết:
nguyendien.89 đã viết:
Bạn Lucky làm thêm phần quét led , để mọi người tham khảo nhé .
Chắc hẳn có nhiều bạn từng quan tâm đến việc làm led trái tim tặng bạn gái! mình xin demo 1 vi dụ để các bạn tham khảo: chương trình ở đâu mình thiết kế với >80 hiệu ứng trong thời gian <7 phút! các bạn tham khảo nhé! nếu được thì vỗ tay cái nhé!
Ý mình là quét led 7 thanh cơ mà bạn . Còn về ứng dụng trên của bạn là rất sáng tạo .
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sun May 08, 2011 11:04 am
ý mình là những bài tập lớn thì chúng ta lên tiết kiện bố nhớ! và chắc chắn là chúng ta muốn bộ nhớ k bị thừa rùi! Bạn hãy so sánh là chúng ta sẽ thực hện được nhiều hay ít công việc với cùng một bộ nhớ! Và việc dùng kỹ thuật số để chúng ta có những quy luật chạy cho chương trình của mình! Chứ không riêng một trường hợp nào cả! Thân chào!
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Sun May 08, 2011 11:07 am
với leb 7 đoạn mình khuyên các bạn nên tìm quy luật hoạt động của nó! và chúng ta sẽ viết chương trình rất nhanh! Và đó là 1 câu hỏi mở cho mọi người! ok nhé!
chjpchjp_1991 Thành viên mới
Tổng số bài gửi : 6 Điểm : 9 Danh tiếng : 0 Ngày tham gia : 24/12/2010
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Tue Nov 08, 2011 3:39 am
lucky Thành viên đặc biệt
Tổng số bài gửi : 240 Điểm : 580 Danh tiếng : 17 Ngày tham gia : 06/12/2010 Tuổi : 36 Đến từ : Việt Nam
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051 Mon Nov 14, 2011 12:53 pm
hihi!
Sponsored content
Tiêu đề: Re: Lập trình C cho vi điều khiển cho 8051