(Minh họa và thực hành với 8 led 7 đoạn)
Nếu kết nối mỗi một Port của Vi điều khiển với 1 led 7 đoạn thì tối đa kết nối được 4 led 7 đoạn. Mặt khác nếu kết nối như trên sẽ hạn chế khả năng thực hiện các công việc khác của Vi điều khiển. Cho nên cần phải kết nối, điều khiển nhiều led 7 đoạn với số lượng chân điều khiển từ Vi điều khiển càng ít càng tốt. Có hai giải pháp: một là sử dụng các IC chuyên dụng cho việc hiện thị led 7 đoạn, hai là kết nối nhiều led 7 đoạn vào cùng một đường xuất tín hiệu hiển thị. Nội phần này sẽ đề cập đến cách kết nối nhiều led 7 đoạn theo giải pháp thứ 2.
Mắt người có đặc điểm sinh lí là chỉ thu nhận 24 hình/giây để tổng hợp các hình ảnh về thế giới xung quanh. Nếu một tín hiệu ánh sáng có chu kì sáng tắt hơn 24 lần trong 1 giây, mắt người luôn cảm nhận đó là một nguồn sáng liên tục. Để minh họa cho điều này, bạn hãy lấy các chương trình đã thực hiện với led đơn và làm ngắn thời gian delay lại, đến một giá trị nào đó bạn sẽ thấy các led đều sáng liên tục.
Để kết nối nhiều led 7 đoạn vào vi điều khiển thực hiện như sau: nối tất cả các chân nhận tín hiệu của tất cả các led 7 đoạn (chân abcdefgh) cần sử dụng vào cùng 1 Port, trong ví dụ, 8 led 7 đoạn có các chân nhận tín hiệu cùng được được nối với P0. Dùng các ngõ ra còn lại của Vi điều
khiển điều khiển on/off cho led 7 đoạn, mỗi ngõ ra điều khiển ON/OFF cho 1 led 7 đoạn, (ON: led 7 đoạn được cấp nguồn để hiển thị, OFF: led 7 đoạn bị ngắt nguồn nên không hiển thị được).
Sơ đồ kết nối thực tế như hình dưới:
Trong sơ đồ trên, led 7 đoạn được sử dụng là loại có Anode chung, với tất cả các chân nhận tín hiệu được kết nối với Port 0 đã qua điện trở hạn dòng. Để điều khiển ON/OFF cho các led 7 đoạn, sử dụng transitor loại PNP, transitor này nhận dòng điều khiển từ một ngõ ra của Vi điều khiển, led 7 đoạn sẽ được ON khi tín hiệu từ vi điều khiển đến transitor ở mức 0. Có thể sử transitor loại A564 hoặc 2N3905 hoặc một transitor PNP khác có thông số phù hợp. Các điện trở 4.7K và điện trở treo 4.7K đảm bảo transitor luôn hoạt động ở chế độ ngắt/dẫn (đảm bảo khi led 7 đoạn đang ở trạng thái OFF sẽ bị tắt hoàn toàn, không bị sáng mờ mờ).
Tại mỗi thời điểm, chỉ nên cho Vi điều khiển điều khiển cho 1 led 7 đoạn hoạt động, do đó tại mỗi thời điểm chỉ nên có 1 ngõ ra duy nhất nối với transitor ở mức 0. Tại mỗi thời điểm chỉ có một led 7 đoạn được ON nên sẽ không xảy ra tình trạng quá tải cho tải và quá tải cho vi điều khiển khi điều khiển nhiều led 7 đoạn.
Trong sơ đồ kết nối trên, chẳng hạn cần hiển thị số 451, qui ước thứ tự các led 7 được đếm từ phải sang trái, như vậy cần làm cho led 7 đoạn thứ nhất hiển thị số 1, led 7 đoạn thứ hai hiện thị số 5, led 7 đoạn thứ 3 hiện thị số 4, các led còn lại không hiện thị. Đầu tiên OFF tất cả các led 7 đoạn. Kế tiếp xuất mã hiển thị led 7 đoạn để hiển thị số 1, ON led 7 đoạn thứ nhất, lúc này dòng điện chỉ đi qua led 7 đoạn thứ nhất, làm cho led 7 đoạn thứ nhất hiển thị số 1, thời gian ON trong khoảng vài chục µs(1µs=1/10-6s). Kế tiếp xuất mã hiển thị led 7 đoạn hiển thị số 5, OFF led 7 đoạn thứ nhất và đồng thời ON led 7 đoạn thứ 2, lúc này chỉ có led 7 đoạn thứ hai hiển thị và hiển thị số 5. Tiếp theo xuất mã hiển thị led 7 đoạn hiện thị số 4, OFF led 7 đoạn thứ hai và ON led 7 thứ ba, lúc này chỉ duy nhất led 7 đoạn thứ ba hiển thị số 4. Cứ thế lặp lại quá trình trên liên tục. Thời gian ON/OFF chỉ trong khoảng vài chục µs, và tại mỗi thời điểm chỉ có mỗi một led 7 đoạn hiện thị số của chính nó, vì vậy mắt người thấy 3 led 7 đoạn không sáng đứt quãng, mà sáng liên tục, mỗi led hiển thị 1 số riêng của nó. Thực hiện tương tự để mở rộng số lượng led 7 đoạn cần sử dụng.
MỤC LỤC
BÀI 1: CẤU TRÚC VI ĐIỀU KHIỂN...1
1.1 GIỚI THIỆU ...1
1.1.1. Sơ lược về vi xử lý: ...1
1.1.2. Từ Vi xử lý đến Vi điều khiển ...1
1.1.3. Họ MSC-51 ...2
1.1.4. Các loại vi điều khiển khác ...3
1.2 SƠ LƯỢC PHẦN CỨNG VI ĐIỀU KHIỂN-GIAO TIẾP BÊN NGOÀI ...3
1.2.1. Khảo sát sơ đồ chân...4
1.2.2 Kết nối phần cứng ...6
1.3 CẤU TRÚC BÊN TRONG CỦA VI ĐIỀU KHIỂN ...8
1.3.1 Bộ nhớ chương trình - bộ nhớ ROM...8
1.3.2 Bộ nhớ dữ liệu- bộ nhớ RAM ...9
BÀI 2: LẬP TRÌNH CHO VI ĐIỀU KHIỂN ...14
2.1 GIỚI THIỆU ...14
2.2 TỔNG QUAN VỀ NGÔN NGỮ ASSEMBLY ...14
2.3 MỘT SỐ QUI ƯỚC KHI LẬP TRÌNH VỚI HỢP NGỮ ASSEMBLER...15
2.4 TẬP LỆNH TRONG VI ĐIỀU KHIỂN...16
2.4.1 Nhóm lệnh di chuyển ...16
2.4.2 Nhóm lệnh số học...Error! Bookmark not defined. 2.4.3 Nhóm lệnh Logic...29
2.4.4 Nhóm lệnh rẽ nhánh ...37
2.4.5 Nhóm lệnh xử lý bit ...41
BÀI 3: THIẾT KẾ MẠCH THỬ NGHIỆM VÀ PHẦN MỀM BIÊN DỊCH & MÔ PHỎNG...44
3.1 MẠCH THỰC THI ...44
3.1.1 Khối ổn áp ...44
3.1.2 Vi điều khiển và các mạch I/O ...44
3.1.3 Mạch vi điều khiển...45
3.1.4 Một số linh kiện...46
3.2 MẠCH NẠP...48
3.3 CHƯƠNG TRÌNH NẠP ISP...50
3.3.1 Soạn thảo và biên dịch ...51
3.3.2 Hướng dẫn mô phỏng các trạng thái của vi điều khiển...51
BÀI 4: THỰC HÀNH VỚI LED ĐƠN...53
4.1 MỘT SỐ QUI ĐỊNH...53 4.1.1 Chú thích: ...53 4.1.2 Thụt dòng, Chữ hoa- chữ thường ...53 4.1.3 Kết thúc chương trình...54 4.1.4 Qui định về số...54 4.2 BÀI THỰC HÀNH: ...55
4.3 GIẢI THUẬT VÀ LƯU ĐỒ...56
BÀI 5: GIAO TIẾP VỚI LED 7 ĐOẠN ...73
5.1 TỔNG QUAN ...73
5.2 KẾT NỐI VỚI VI ĐIỀU KHIỂN...74