PDA

View Full Version : Nói thêm về bài thí nghiệm vi xử lý


hanamichi
10-20-2009, 09:10 PM
Do anh em còn băn khoăn nên tao post thêm hướng dẫn để mai có gì đối phó tránh tình trạng lúc sáng.
Điều cần chú ý là để mở rộng số chân thì người ta dùng thêm 8255, có thể đọc kỹ hơn ở chương 15 quyển Nguyễn Tăng Cường.
Về bài 1, nhiệm vụ là viết code để đóng mở relay theo quy luật, relay mở thì led tắt, đóng thì led sáng (xem hình trang cuối, relay được nt với led qua r=220 ôm về nguồn 5V). Ngoài ra còn có chức năng nếu có tín hiệu vào từ các nút bấm but1 cho đến but4 thì sẽ sáng led tương ứng. chương trình thì tao ko xem kĩ, nhưng mà nói chung là có 2 vòng lặp, 1 vòng để tạo trễ khi led sáng, vòng khác để lặp lại quá trình và dịch bit để led nhấp nháy theo quy luật. Đoạn đầu của code là phần định nghĩa địa chỉ các vùng nhớ tương đương với portA, B, C của 8255.
Về bài 2, nhiệm vụ là đọc bàn phím và hiện thị lên led 7 thanh.
Led 7 thanh xem trang 9, nhiệm vụ của ta là đưa tín hiệu mã BCD ra từ 4 chân 0,1,2,3 của Port C 8255 để 74LS47 giải mã và đưa ra led hiện thị. các chân cho phép nối trực tiếp từ các chân cao của 8255 đến màn hình led. Nói chung là có 4 con led 7 thanh, tín hiệu cho phép đến cái nào cao thì cái đó hoạt động
Bàn phím thì gần giống như trang 215 NTC, đọc để hiểu mai trả lời. Ở đây nhớ là các phím bấm là tích cực thấp, tức là do có điện trở pull up nên nếu nhấn nút tức là đưa mức logic 0 vào.Quét bàn phím, port A là cổng vào, port B là cổng ra tức là mình sẽ cho các hàng nối vào port B của bàn phím xuống 0 liên tục. Đọc kĩ sách, đoạn này tao giải thích thì cũng giống như sách mà thôi. Code tao chưa xem nhưng mà biết thế này có lẽ vào ngồi được rồi, ko bị đuổi rồi.

swinelovely
10-20-2009, 10:37 PM
Bổ sung anh trọc thế này:
Nói chung là chỉ có nhóm 1 và nhóm 6 gặp thầy Trung thì từng người bị hỏi và trả lời, còn các nhóm khác thì thầy hỏi cả nhóm ( kiểu mỗi nhóm chia thành 3 nhóm) thì ai biết thì trả lời cho anh em được nhờ.:D
Code bài 1 thì cũng không phải nói nhiều, vì chắc chỉ có nhóm 1 và nhóm 6 bị hỏi bài cũ thôi. Tuy nhiên vẫn đính chính tí: code bài đó có 2 phần, một phần là cho led sáng chạy và led tối chạy,lấy tín hiệu vào từ porta; một phần là ấn nút but1,2,3,4 rồi gửi tín hiệu điều khiển của porta điều khiển led. Ý chung là thế, các nhóm khác có lẽ không cần để ý cái này.
Còn bài 2, quét bàn phím và hiển thị ra led. Thuật toán ma trận bàn phím thì đọc sách Nguyễn Tăng Cường như trọc nói. Cấu trúc phần cứng thì thế này,8255( đã nối với 8051) thì porta là cổng vào nối với cột bàn phím, portb nối với hàng ma trận bàn phím, portc là cổng ra. Nhấm phím thì tín hiệu ra gửi tới portc.4 bit thấp thì qua 74LS47 hiển thị trên led.Led này có 4 số hiển thị.4 bit cao của portc để điều khiển hiển thị mấy số. Ví dụ nhấn phím 1 có thể hiển thị 1111, 111, 11, 1 tùy lập trình.
Còn về câu hỏi thì không biết các thầy khác như thế nào, nhưng chắc vẫn có các câu hỏi như nhóm 1 và 6 như sau:
-Vẽ ma trận bàn phím
-Vẽ sơ đồ led.
-Trình bày thuật toán ma trận bàn phím ( trong sách).
-Trình bày nguyên tắc hiển thị trên led ( kiểu hỏi là hiển thị số 7 thì đầu vào portc bao nhiêu...).
-Yêu cầu hiển thị 1 hoặc nhiều số.
-Yêu cầu hiển thị 4 số là 1 2 3 4 hoặc 1 chạy từ vị trí này sang vị trí kia.Cái này cứ nói là em không làm được:D(Tùng bu ôi nói thế rồi chuồn luôn:)) ).
-Nếu lằng nhằng hơn nữa có thể bắt giải thích code. Nhưng các thầy chắc cũng không khó đâu:D
Tóm lại quan trọng nhất là phải biết cái thuật toán ma trận bàn phím và vẽ được.Trả lời được cái đó chắc ok thôi.
Chúc anh em thành công

hanamichi
10-20-2009, 10:49 PM
Trả lời câu hỏi ko trả lời được:
- để hiện thị 1,2,3,4 thì cho 4 led 7 thanh chạy với tần số cao, lúc đó sẽ có hiện tượng lưu ành võng mạc làm cho mắt tưởng như 4 số hiện đồng thời nhưng thực ra đang chạy liên tục. Nói thế là thầy hiểu, tao cũng chưa thử viết code nhưng mà không có gì đâu.
- để hiện thị số 1 chạy thì tương tự, hiện số 1 ở led này, delay 1 lúc, chuyển sang hiện ở led kia. thế thôi, cái này lại càng dễ

swinelovely
10-20-2009, 11:10 PM
Trả lời câu hỏi ko trả lời được:
- để hiện thị 1,2,3,4 thì cho 4 led 7 thanh chạy với tần số cao, lúc đó sẽ có hiện tượng lưu ành võng mạc làm cho mắt tưởng như 4 số hiện đồng thời nhưng thực ra đang chạy liên tục. Nói thế là thầy hiểu, tao cũng chưa thử viết code nhưng mà không có gì đâu.
- để hiện thị số 1 chạy thì tương tự, hiện số 1 ở led này, delay 1 lúc, chuyển sang hiện ở led kia. thế thôi, cái này lại càng dễ

Cái đầu là : ví dụ nhấn 1 thì nó hiện 1 2 3 4 hay cái gì đó tùy lập trình. Cái này không phải chạy đâu.
Cả 2 cái này không khó, nhưng code không làm cái này, và tại sao không về sớm mà ngồi nghĩ làm gì:D, thời gian của các thầy cũng có hạn, Tùng bu ôi nhẩy:))

swinelovely
10-20-2009, 11:27 PM
À mà cái nhấn 1 số rồi hiển thị 1 dãy cách đều hình như thầy không yêu cầu thì phải:)).
Cái này thì phức tạp hơn cái chạy số kia rồi:03:
Tóm lại là các thầy cũng không khó đâu, chỉ cần nói được cái ma trận bàn phím kia thôi:D

nguyentruong
10-21-2009, 08:47 AM
ôi diss nguy cơ đuổi cao quá tao đọc mà đâu hiểu j đâu:(