ví dụ về giao tiếp DS1307
Thông báo
Collapse
No announcement yet.
các ứng dụng của 8051 vào thực tế
Collapse
This topic is closed.
X
X
-
ví dụ về ngắt ngoàiAttached Filesn
ĐT: 0986 492 489
Tham khảo:
Comment
-
bạn muốn làm cái đồng hồ với những yêu cầu như thế nào?
1. phần hiển thị: ngày, tháng, năm, giờ, phút, giây
2. có cần chạy đúng thời gian không?
3. cac phím bấm adjust không?
4. yêu cầu khác như hẹn giờ, báo giờ tròn (12h, 1h ...)
bạn cứ post lên nhé? các cao thủ nhiều lắm/
okie
Comment
-
Nguyên văn bởi thanhbinh_09 Xem bài viếtmình muốn đưa một file.pdf lên đây thì phải làm thế nào nhỉ ?
mình mới vào chưa biết !
Comment
-
Em đang rất cần làm mạch đếm sản phẩm dùng 8051 hiển thị ra 2 con led 7s, có thể đặt trc số đếm tối đa, em chỉ cần dạng đơn giản thôi ko cần wa chính xác, như dùng led thu phát cứ đá 1 xung đầu này thì đếm lên, rồi kéo wa đầu kia đá 1 xung thì đếm xuống. Mấy anh có tài liệu hay hướng dẫn ji giúp em với. mail của em là: yuunin@gmail.com
Mấy anh giúp dùm em, em mới học nên còn ngu lắm vậy mà thầy giao thế này nên em chóng mặt quá.
Comment
-
Nguyên văn bởi Nin Xem bài viếtEm đang rất cần làm mạch đếm sản phẩm dùng 8051 hiển thị ra 2 con led 7s, có thể đặt trc số đếm tối đa, em chỉ cần dạng đơn giản thôi ko cần wa chính xác, như dùng led thu phát cứ đá 1 xung đầu này thì đếm lên, rồi kéo wa đầu kia đá 1 xung thì đếm xuống. Mấy anh có tài liệu hay hướng dẫn ji giúp em với. mail của em là: yuunin@gmail.com
Mấy anh giúp dùm em, em mới học nên còn ngu lắm vậy mà thầy giao thế này nên em chóng mặt quá.
Sử dụng timer để đếm với tín hiệu đầu vào là lấy từ chân T0 (dùng timer0 - 16bit để đếm cho được nhiều - max 65535). Giá trị đếm sẽ được lưu trong thanh ghi TL0, TH0. Ta chỉ việc đọc giá trị này ra và giải mã hiển thị lên led 7 thanh.
Mạch điện không quá phức tạp. Mua một cặp led thu phát hồng ngoại, 1IC74hc14, led 7 thanh, At89xxx (Hình vẽ bên dưới). Nhớ thêm trở kéo 10K cho tất cả các chân của PORT0
Các bước Lập trình.
main:
Khởi tạo chương trình:
- Cấu hình cho timer 0 chạy chế độ free run 16bit (là mode mấy thì không nhớ, xem lại datasheet để set cho thanh ghi TMOD là OK), nhận xung từ chân T0 (P3.4)
- Khởi tạo giá trị cho TL0, TH0. (gọi X là giá trị giới hạn đếm. Ví dụ X = 500 Giá trị cần nạp cho TL0 và TH0 là: Gia_tri_nap = 65535 - X = 65535-500=65035=0xFE0B. Chuyển đổi giá trị này sang số HEX, tách 8bit cao nạp cho TH0 = 0xFE, 8bit thấp nạp cho TL0=0x0B). Nếu số đếm không lớn hơn 255 (8bit) thì có thể lập trình cho Timer chạy ở chế độ tự 8 bit tự nạp lại.
- Cho phép ngắt Timer0
- Cho Timer0 chạy.
Vòng lặp chính
- Đọc giá trị từ hai thanh ghi TH0 và TL0
- Chuyển đổi để tính số sản phẩm đếm được
San_pham = 65535 - (Th0*255+TL0)
- Tách số hàng trăn-chục-đơn vị từ giá trị San_pham có được ở trên
- Đưa ra hiển thị trên led 7 thanh (Gọi chương trình hiển thị - Trong code đi kèm có chương trình cho led 7)
Chương trình ngắt Timer0
- Thực hiện xóa cờ ngắt
- Nạp lại giá trị khởi tạo ban đầu cho TH0 và TL0
//// THE END ///////////////////////
Code:#include <at89x52.h> #define data_led7 P0 #define Aled1 P2_0 #define Aled2 P2_1 #define Aled3 P2_2 #define Aled4 P2_3 #define key P3_7 unsigned char led1,led2,led3,led4; void timer_isr (void) interrupt 1 using 1 { TH0 = 0xFE; // reload timer 0 with 0FE0BH TL0 = 0x0B; } void delay_us(int x) { int i; for (i=0;i<x;i++) {} } void convert_bcd( int temp2) { led4 = temp2 % 10; temp2 = temp2 / 10; led3 = temp2 % 10; temp2 = temp2 / 10; led2 = temp2 % 10; led1 = temp2 / 10; } //-----------HIEN THI LED-------------- void display() { unsigned char code maled7[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x0C,0x47, 0x88,0xC6,0x86,0x8E,0x82,0x89,0x7F,0xFF}; data_led7 = maled7[led4]; Aled1 = 0; delay_us(50); Aled1 = 1; data_led7 = maled7[led3]; Aled2 = 0; delay_us(50); Aled2 = 1; data_led7 = maled7[led2]; Aled3 = 0; delay_us(50); Aled3 = 1; data_led7 = maled7[led1]; Aled4 = 0; delay_us(50); Aled4 = 1; } void main() { int San_pham; // Chèn ?oa.n kho+?i ta.o cho cho Timer vào ?ây EA = 1; ET0 = 1; // or IE |= 0x82; /* set bit EA and Timer0 enable */ TMOD |= 0x01; /* timer 0 run 16 bit counter */ TH0 = 0xFE;TL0 = 0x0B; TR0 = 1; //or TCON |= 0x10; /* run timer 0 */ //////////////////////////////// P1 = 0xff; P3 = 0xff; San_pham= 0; convert_bcd(San_pham); display(); while(1) { San_pham = 65535 - (TH0*255+TL0); convert_bcd(San_pham); display(); } } }
Last edited by linhnc308; 26-10-2007, 12:12.Ethernet-RS232, PIC Webserver, RFID Reader
CallerID, Cảnh báo BTS, ...
0988006696
linhnc308@gmail.com
http://linhnc308.blogspot.com
Comment
-
n
ĐT: 0986 492 489
Tham khảo:
- 1 like
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Xin hỏi về quạt điệnbởi vi van phamNhà sản xuất quat đã tính đường kính dây đồng quạt senko 102 của bạn cho công suất tối đa là 24w,áp 220voltAC. Bây giờ tăng áp, dòng tăng, quạt nóng. Lấy gì chứng minh quạt không cháy.
Lên diễn đàn nhờ giúp đỡ cần có sự thông minh để tránh là chuột bạch.-
Channel: Điện tử gia dụng
hôm nay, 07:13 -
-
Trả lời cho Xin hỏi về quạt điệnbởi trthnguyenTốc độ theo tính toán là tốc độ không tải (không cánh quạt và bỏ qua ma sát), khi có cánh quạt thì lực cản của không khi làm quạt quay chậm lại. Tăng điện áp k làm tăng tốc độ k tải nhưng tăng dòng điện trong cuộn dây, tăng lực để...
-
Channel: Điện tử gia dụng
Hôm qua, 11:17 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11Hic bó tay. Thôi kệ nó vậy. thanks bác nhé....
-
Channel: Điện tử gia dụng
Hôm qua, 08:05 -
-
Trả lời cho Xin hỏi về quạt điệnbởi vi van phamCũng không được.
Số vòng dây quạt được tính từ điện thế 220VAc và tần số 50h. Bây giờ dùng tần số 70h thì điện thế quạt >220 Volt làm quạt quay chậm .
Nếu muốn học hỏi, thí nghiệm thì cắt bò bớt 1 cặp cực, giãm điện thế xuống 110Volt, thì quạt sẽ...-
Channel: Điện tử gia dụng
03-10-2024, 15:54 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11vậy thì phải tăng Hz rồi, bác có cách nào tăng từ 220ac/50hz lên 220ac/70hz ko ạ ?...
-
Channel: Điện tử gia dụng
03-10-2024, 09:00 -
-
Trả lời cho Xin hỏi về quạt điệnbởi vi van phamTốc độ quạt tính bằng công thức N = 60 x F /P
F= tần số lưới điện.
P = số cặp cực, quạt có số cặp cực là 2
N = số vòng quay
N= 60 X50 / 2 = 1500 vòng /phút.
Thay đổi điện thế là thay đổi công suất . Nếu...-
Channel: Điện tử gia dụng
02-10-2024, 14:44 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11Làm như thế nào hả bác ?...
-
Channel: Điện tử gia dụng
02-10-2024, 07:57 -
-
Trả lời cho Xin hỏi về quạt điệnbởi trthnguyenTăng điện áp......................
-
Channel: Điện tử gia dụng
01-10-2024, 09:22 -
-
Trả lời cho Xin hỏi về quạt điệnbởi yname11Có cách nào để quạt này quay nhanh hơn ko bác ?...
-
Channel: Điện tử gia dụng
30-09-2024, 21:42 -
-
Trả lời cho Xin hỏi về quạt điệnbởi vi van phamQuạt mà không có tụ là quạt dùng vòng ngắn mạch. Gắn thêm tụ vào không tạo thành từ trường quay mà tạo mùi khét lẹt ...
-
Channel: Điện tử gia dụng
30-09-2024, 19:24 -
Comment