... trình Vi xử lí trường Đại học công nghiệp Tp HCM D.W Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 20 06 Trương Trác, Chip đơn 16C84 ứng dụng chúng Hồ Trung Mỹ, Vi xử lí,... trường Đại học công nghiệp Tp HCM D.W Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 20 06 Trương Trác, Chip đơn 16C84 ứng dụng chúng Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp HCM, ... trường Đại học công nghiệp Tp HCM D.W Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 20 06 Trương Trác, Chip đơn 16C84 ứng dụng chúng Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp HCM,
100 Bài giảng số 5: Truyền liệu đồng không đồng (USART)( Số tiết: 3) III.1 Mục tiêu: - Truyền nhận liệu đồng bộ, không đồng bộ: Giới thiệu USART, Thanh ghi TXSTA, RCSTA, tạo tốc độ baud USART, chế độ bất đồng bộ, chế độ chủ đồng bộ, chế độ tớ đồng - Bộ thu phát radio -truyền thong nối tiếp PIC tới PIC, mạch giao tiếp RS232C PIC tới PC III.2 Đồ dung phương tiện dạy học: -Phấn trắng, bảng, khăn, bút long, micro có dây(hay khơng dây), máy tính, đèn chiếu (hay máy chiếu) III.3 Giáo trình tài liệu tham khảo: Giáo trình Vi xử lí trường Đại học công nghiệp Tp HCM D.W Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 2006 Trương Trác, Chip đơn 16C84 ứng dụng chúng Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp HCM, 2003 Tài liệu vi điều khiển PIC bọ môn Điện tử công nghiệp Datasheet c PIC 16F84 v 16F877A Website: http://www.microchip.com/ http://www.alldatasheet.com/ Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition, Tab Electronics, McGrawHill, 2008(Ebook) Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd ed., Macmillan/McGraw-Hill, 1992 III.4.Nội dung giảng: Nội dung chi tiết : xem giảng chi tiết Phương pháp giảng dạy: thuyết trình, nêu vấn đề đàm thoại trao đổi với sinh viên Chương 5: Truyền liệu đồng không đồng Giới thiệu USART: USART viết tắt cho Universal Aynchronous Asynchronous Receiver Transmitter (Bộ thu phát bất đồng đồng đa năng) cho phép vi điều khiển PIC giao tiếp với tầm rộng thiết bị khác từ chip nhớ riêng biệt LCD hiển thị tinh thể lỏng, tới máy tính! Điều bao gồm gửi hay nhận gói liệu bit hay bit (nghĩa byte hay byte cộng them bit chẵn lẻ) Bit chẵn lẻ bit phụ gửi kèm với liệu mà giúp kiểm tra lỗi Nếu có số lẻ số byte liệu (thí dụ b’00110100’), bit parity có số chẵn số (thí dụ b’00110011’) bit parity Trong giảng này, có lỗi (ví dụ lật bit) diễn lúc gửi byte nhận bit parity khơng cịn khớp loại liệu Bên nhận biết có sai sót yêu cầu gửi lại byte Nếu có bit lỗi xảy việc truyền, bit parity 101 xuất đúng, nhiên hai lỗi diễn nhỏ hơn, điều thường bị bỏ qua Chế độ USART có chế độ (mode) chính: hoạt động đồng bất đồng Trong hoạt động bất đồng bộ, chân phát (TX-transmitter) từ thiết bị nối với chân thu (RX-Receiver) thiết bị liệu hoán đổi (được gọi song công-full duplex) Trong chế độ đồng bộ, xung clock (CK) đường liệu (DT) chia xẻ số thiết bị (một chủ (master) hay nhiều tớ (Slaves)) Chủ chịu trác nhiệm tạo xung clock Trong hai trường hợp, tốc độ liệu gửi phát (và mong đợi thu) biết đến tốc độ baud Có hai ghi để kiểm sốt việc nhận phát liệu: RCSTA TXSTA Dữ liệu mà đọc thành công lưu vào ghi RCREG, liệu mà gửi nên đặt ghi TXREG Tốc độ baud đặt sử dụng ghi SPBRG (có bảng them vào datasheet minh họa làm chọn tốc độ baud cho trước tần số dao động) Trong chế độ bất đồng bộ, USART lấy kí tự bit hay bit để gửi, them bit bắt đầu (start bit) (1 zero,0) đầu, bit dừng (1 bit) vào cuối để tạo nên chuỗi 10 hay 11 bit Điều chuyển vào ghi dịch mà quay bit vào chân phát (TX) hình 5.1 Mơđun nhận lien tục kiểm tra trạng thái chân thu RX, mà bình thường mức cao Nếu dị thấy chân RX xuống mức thấp (bit start), làm them mẫu bit (cho phép lên xuống chậm lần) lấy giá trị ba Nếu giá trị 0, khẳng định thực bit bắt đầu tiến hành lấy mẫu bit với mẫu bit Thời gian mẫu tốc độ baud Khi đạt đến bit dừng, phải đọc (1), ngược lại khẳng định kí tự thu đóng khung tồi đăng kí lỗi Nhớ với thiết lập phù hợp TXSTA RCSTA, tất điều thực cho bạn môđun USART b’00101101’ Byte để gửi Thanh ghi dịch 1001011010 TX pin Điện áp TX time Start bit 1 0 Stop bit 102 Hình 5.1 Bạn dung chế độ bất đồng để giao tiếp với port nối tiếp RS232 máy tính PC Cách đơn giản để gửi byte thong qua port nối tiếp PC thong qua chương trình kèm Microsoft Windows gọi Hyper Terminal (Start MenProgramsỈAccessoriesỈCommunications) Bạn tạo kết nối với cổng nối tiếp (ví dụ COM 1), chọn tốc độ baud, số bit, thiết lập parity Khi Hyper Terminal kết nối với port nối tiếp, kí tự mà bạn gõ gửi (như mã ASCII) thong qua port nối tiếp Kí tự mà nhận hiển thị lên hình Cả hai chế độ đồng bất đồng hỗ trợ đặc tính biết dị tìm địa mà cho phép số thiết bị kết nối Khi gửi liệu, byte địa phải gửi để nhận diện nơi nhận dự định 2.Thanh ghi TXSTA: ghi điều khiển trạng thái phát, địa 98H R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 CSRC TX9 SYNC TRMT TXEN - BRGH R/W-0 TX9D Bit bit Bit CSRC: bit chọn nguồn xung clock chế độ bất đồng bộ: không quan tâm chế độ đồng bộ: 1= chế độ chủ (xung clock tạo bên từ BRG) 0=chế độ tớ (xung clock từ nguồn bên ngoài) Bit TX9: bit cho phép truyền bit 1=chọn truyền bit 0= chọn truyền bit Bit TXEN: bit cho phép truyền (phát) 1= cho phép truyền (phát) 0= cấm phát Chú ý: SREN/CREN đè lên TXEN chế độ đồng Bit SYNC : bit chọn chế độ USART 1= chế độ đồng 0= chế độ bất đồng Bit : không dung, đọc Bit BRGH: bit chọn tốc độ baud cao chế độ bất đồng bộ: 1=tốc độ cao 0=tốc độ thấp chế độ đồng bộ: không dung chế độ Bit TRMT: bit trạng thái ghi dịch phát 1=TSR (thanh ghi dịch phát) trống 0=TSR đầy Bit TX9D: bit thứ liệu phát, bit chẵn lẻ (parity bit) Chú thích: R=bit đọc W=bit ghi U=bit khơng dung , đọc -n=giá trị POR ‘1’ =bit bật ‘0’=bit bị xóa x= bit chưa biết 103 3.Thanh ghi RCSTA: ghi điều khiển trạng thái nhận , địa 18H R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R-0 R-0 R-x SPEN Bit RX9 SREN CREN ADDEN FERR OERR RX9D bit Bit SPEN: bit cho phép port nối tiếp 1= cho [phép port nối tiếp (cấu hình RC7/RX/DT RC6/TX/CK chân cổng nối tiếp) 0=port nối tiếp bị cấm Bit RX9: bit cho phép nhận bit 1=chọn nhận bit 0= chọn nhận bit Bit SREN: bit cho phép nhận đơn chế độ bất đồng bộ: không quan tâm chế độ đồng bộ-chủ: 1=cho phép nhận đơn lẻ 0= cấm nhận đơn lẻ bit bị xóa sau việc nhận hồn thành chế độ đồng bộ-tớ: không quan tâm Bit CREN: bit cho phép nhận lien tục chế độ bất đồng bộ: 1= cho phép nhận lien tục 0= cấm nhận lien tục chế độ đồng bộ: 1=cho phép nhận lien tục bit CREN bị xóa (CREN đè SREN) 0= cấm nhận liên tục Bit ADDEN: bit cho phép dò địa chế độ bất đồng bit (RX9=1): 1=cho phép dị tìm địa chỉ, cho phép ngắt nạp đệm nhận RSR bật (=1) 0= xóa dị tìm địa chỉ, tất byte nhận bit thứ đượ dung bit parity (chẵn lẻ) Bit FERR: bit lỗi khung 1= lỗi khung (có thể cập nhật cách đọc ghi RCREG nhận byte hợp lệ kế tiếp) 0= khơng có lỗi khung Bit OERR: bit lỗi overrun (chạy quá) 1= lỗi overrun (có thể xóa cách xóa bit CREN) 0=khơng có lỗi overrun Bit RX9D: bit thứ nhận liệu (có thể bit parity phải tính phần dẻo(firmware) người sử dụng) 4.Bộ tạo tốc độ baud USART: Bộ tạo tốc độ baud hỗ trợ chế độ bất đồng đồng USART Nó tạo tốc độ baud bit Thanh ghi SPBRG (địa 99H) điều khiển chu kì định 104 bit chạy tự Trong chế độ bất đồng bit BRGH (TXSTA) kiểm soát tốc độ baud Trong chế độ đồng bộ, bit BRGH bị bỏ qua Công thức tốc độ baud: SYNC BRGH=0 (low speed) BRGH=1(high speed) tốc độ baud (bất đồng Tốc độ bộ)=Fosc/(64(X+1)) baud=Fosc/(16(X+1)) tốc độ baud(đồng N/A bộ)=Fosc/(4(X+1)) X: giá trị SPBRG (0 đến 255) 5.Chế độ bất đồng USART: a.Bộ phát bất đồng USART: Sơ đồ khối phát bất đồng minh họa hình: Hình 5.2: Sơ đồ khối phát bất đồng USART Trong mode này, USART sử dung dạng NRZ (Non-Return –to-Zero)chuẩn (một bit bắt đầu(start), hay bit liệu, bit dừng(stop)) Dạng liệu thong dụng bit Một tạo tốc độ baud bit có sẵn chip dung để tạo tần số tốc độ baud chuẩn từ tần số thạch anh hệ thống USART phát nhận bit LSB trước tiên Bộ phát thu độc lập chức sử dụng chung dạng liệu tốc độ baud Bộ tạo tốc độ baud tạo xung clock , x16 hay x64 tốc độ dịch bit phụ thuộc vào bit BRGH (TXSTA) Chẵn lẻ (parity) không hỗ trợ phần cứng thực phần mềm (và lưu bit liệu thứ 9) Mode bất đồng bị dừng Sleep Mode bất đồng chọn cách xóa bit SYNC (TXSTA) Mơđun bất đồng USART gồm có phần tử quan trọng sau đây: Bộ tạo tốc độ baud .Mạch lấy mẫu .Bộ phát bất đồng Bộ thu bất đồng Khi thiết lập phát bất đồng bộ, bạn theo bước sau: Khởi động ghi SPBRG cho tốc độ baud phù hợp Nếu tốc độ baud tốc độ cao mong muốn ta bật (lên 1) bit BRGH Cho phép port nối tiếp bất đồng cách xóa bit SYNC bật bit SPEN Nếu ngắt mong muốn, ta bật bit cho phép TXIE Nếu truyền bit mong muốn , ta bật bit truyền TX9 Cho phép truyền cách bật bit TXEN mà bật bit TXIF Nếu truyền bit chọn, bit thứ nạp bào bit TX9D Nạp liệu vào ghi TXREG (bắt đầu truyền) 105 Nếu dùng ngắt, đảm bảo GIE PEIE (bit 6) ghi INTCON bật Các ghi dung phát bất đồng USART: Hình: Thanh ghi 16F87x dung phát bất đồng b Bộ thu bất đồng USART: Sơ đồ khối thu minh họa hình: Hình 5.3: Sơ đồ khối thu USART Dữ liệu nhận chân RC7/RX/DT lái khối phục hồi liệu Khối khôi phục liệu thực chất dịch tốc độ cao, hoạt động 16x tốc độ baud, dịch nối tiếp thu hoạt động tốc độ bit hay Fosc Khi thiết lập thu bất đồng , bạn theo bước sau: Khởi động ghi SPBRG cho tốc độ baud phù hợp Nếu tốc độ baud tốc độ cao chọn, ta bật bit BRGH Cho phép port nối tiếp bất đồng cách xóa bit SYNC bật bit SPEN .Nếu ngắt mong muốn, ta bật bit cho phép RCIE Nếu nhận bit mong muốn, ta bật bit RX9 106 Cho phép nhận cách bật bit CREN .Bit cờ RCIF bật (=1) nhận hoàn thành ngắt tạo bit cho phép RCIE bật Đọc ghi RCSTA để nhận bit thứ (nếu cho phép) xác định xem có lỗi xảy q trình nhận (thu) Đọc liệu nhận bit cách đọc ghi CRREG .Nếu có lỗi xảy ra, xố lỗi cách xóa bit cho phép CREN Nếu dung ngắt, đảm bảo GIE PEIE (bit 6) ghi INTCON bật c Thiết lập mode bit với dị tìm địa Khi thiết lập thu bất đồng với dị tìm địa cho phép: Khởi động ghi SPBRG cho tốc độ baud phù hợp Nếu tốc độ baud tốc độ cao chọn, ta bật bit BRGH Cho phép port nối tiếp bất đồng cách xóa bit SYNC bật bit SPEN .Nếu ngắt mong muốn, ta bật bit cho phép RCIE Bật bit RX9 phép nhận bit Bật ADDEN phép dị tìm địa Cho phép nhận cách bật bit CREN .Bit cờ RCIF bật (=1) nhận hoàn thành ngắt tạo bit cho phép RCIE bật Đọc ghi RCSTA để nhận bit thứ (nếu cho phép) xác định xem có lỗi xảy q trình nhận (thu) Đọc liệu nhận bit cách đọc ghi CRREG để xác định xem thiết bị định địa .Nếu có lỗi xảy ra, xố lỗi cách xóa bit cho phép CREN Nếu thiết bị định địa chì, xóa bit ADDEN phép byte liệu byte địa đọcvào đệm thu ngắt CPU Các ghi dung thu bất đồng USART: Hình: Thanh ghi dung thu bất đồng Chế độ chủ đồng Trong mode chủ đồng bộ, liệu truyền theo cách bán song công (halfduplex)(nghĩa phát thu không diễn thời điểm).Khi phát liệu, nhận (thu) bị cấm ngược lại Mode đồng đưa vào cách bật bit, SYNC(TXSTA) Hơn nữa, bit cho phép SPEN (RCSTA) bật (=1) để cấu 107 hình chân RC6/TX/CK RC7/RX/DT tới đường CK (clock) DT (dữ liệu-data) tương ứng Mode chủ xử lí phát clock chủ đường CK Mode chủ đưa vào cách bật bit CSRC (TXSTA) a.Phát chủ đồng USART Sơ đồ khối phát USART minh họa hình: Hình 5.4: Sơ đồ khối thu USART b.Thu chủ đồng USART Chế độ tớ đồng USART a.Phát tớ đồng USART b.Thu tớ đồng USART Bộ thu phát radio: Hệ thống truyền liệu radio: +5V B0 10K A0 B0 16F877A TX RX 470 A0 16F877A 108 Hình 5.4: Hệ thống truyền liệu radio Phần mô tả chi tiết việ sử dụng mođun thu phát radio 418 Mhz (RT1-418 RR3-418) Chúng không cần quyền để hoạt động có nhiều thay đổi cho phép Bộ phát có kết nối, nguồn cung cấp ngõ vào liệu, anten phát tích hợp vào đơn vị Bộ thu có kết nối, nguồn cung cấp, anten vào ngõ Anten thu cần mẫu dây dài 25 cm Sơ đồ mạch hệ thống radio minh họa hình 5.4 Vi điều khiển tạo liệu sau chuyển xung liệu tới phát Bộ thu nhận xung liệu vi điều khiển giải mã thong tin xử lí Hệ thống radio-vi điều khiển đo nhiệt độ bên ngồi gửi nhiệt độ để hiển thị đơn vị bên Phần sau trích dẫn từ sách Microcontroller programming the microchip PIC tác giả Julio Sanchez, Maria P Canton Mạch truyền thong nối tiếp PIC tới PIC: Thực tế, hệ thống yêu cầu cho PIC đọc liệu gửi nối tiếp kết tới PIC khác mà xuất liệu xem hai mạch độc lập Một mạch dung để đọc trạng thái công tắc DIP gửi liệu nối tiếp tới mạch PIC khác mà hiển thị kết Hình sau minh họa mạch dựa PIC 109 Hình 5.5: Mạch truyền thong nối tiếp PIC tới PIC Thanh ghi dịch : 74HC165 ghi dịch song song nối tiếp 74HC164 ghi dịch nối tiếp song song IC thu phát RS-232C: dung IC Max 232 phiên nâng cấp Max202 IC Max 233 Max 203 khơng u cầu tụ ngồi Mạch giao tiếp RS-232C PIC tới PC: Để minh họa truyền nối tiếp với giao thức RS232C, phát triển mạch gồm bàn phím 4x4 LCD hiển thị 20 ký tự dịng Ký tự ấn bàn phím chuyển thành mã ASCII cho tập hợp số hexa, nghĩa số 0-9 chữ A đến F Khi phím nhấn, mã ASCII tương ứng hiển thị LCD truyền thong qua port nối tiếp tới ứng dụng PC Ký tự nhận thong qua đường truyền nối tiếp hiển thị LCD Hình 5.6: Mạch truyền thong USART với PIC 16F877 Chương trình khởi tạo PIC 16F877: 184 Bít RS R/W D7 D6 D5 D4 D3 D2 D2 D0 0 0 0 0 0 0 0 0 1 I/O S 0 0 0 D C B 0 0 S/C R/L 0 0 0 DL N F 0 0 Địa kí tự 0 1 Loại ký tự 1 Loại ký tự Hiển thị địa liệu Mạch kết nối: RB1 nối với RS RB2 nối với R/W RB3 nối với EN RB4—RB7 nối với D4—D7 Chức Xoá LCD bộnhớ, trỏ Chỉ xóa trỏ Tác động hiển thị ký tự viết I/O=1/0: trỏ R/L, hình L/R S=1/0: dịch hình/con trỏ D=1/0: hình on/off C=1/0: trỏ on/off B=1/0: trỏ nhấp nháy/không nhấp nháy S/C=1/0: hình/con trỏ R/L: dịch khoảng trống R/L DL=1/0: 8/4 bit kí tự N=1/0:2/1 dòng kí tự F=1/0: 5x10/5x7 chấm(dot)/ký tự Ghi tới địa chỉa Ram kí tự sau điều Ghi tới địa chỉa Ram hiển thị ï sau Ghi byte với RAM cuối chọn Đọc byte với RAM cuối chọn 185 Hình : Kết nối LCD với vi điều khiển: Vi ết ch ơng tr ình hi ển th ị ch ữ HANOI tr ên LCD d ùng PIC 16F84 Vi ết ch ơng tr ình hi ển th ị ch ữ HANOI tr ên LCD d ùng PIC 16F877A 9.5.3 Điều khiển led đoạn: *Trường hợp led đoạn loại catốt chung: Thiết kế mạch mà đếm hiển thị led đoạn (loại catốt chung), số lần nút nhấn ấn tới 10 Mã nhị phân để lái led đoạn sau: Số PORTB B7 B6 B5 B4 B3 B2 B1 B0 0 1 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 Xét mạch điện sau: Hình: Sơ đồ mạch điều khiển led đoạn Dp g f e d c b a B7 B3 B2 B4 B5 B6 B0 B1 0 1 1 1 số ( mã 77h) Mở rộng chương trình cho PIC 16F877A Xét mạch sau: 186 Hình: Kết nối vi điều khiển với led đoạn chế độ multiplex Viết chương trình hiển thị số 30 hai led Mở rộng cho PIC 16F877A *Tr ờng h ợp led đo ạn lo ại anod chung: D ùng port B k ết n ối thanh, c òn port A ều ển ch ọn led (c ấp ện) N ếu RA0=0 th ì transistor d ẫn l àm Vc=VE=+5V v anod c led đ ợc c ấp ện, portB n ối v ới c ác a,b, ,g,dp RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 1 1 1 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Dp g f e d c b a 1 0 0 0 +5V RA0 Led b0 B1 B7 FEh (ch ọn led 0) C0H (s ố 0) 187 Vi ết ch ơng tr ình hi ển th ị s ố tr ên led Vi ết ch ơng tr ình hi ển th ị ch ữ HUI tr ên led ( led 0, led 1, led 2) 9.5.4 Điều khiển led ma trận: Sơ đồ nguyên lí: Phân tích sơ đồ điều khiển ma trận led Hình : Sơ đồ nguyên lý led ma trận (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ĐHCN Tp HCM) Ma trận gồm hàng cột(red-col green col.) Dùng port C –hàng, port B/Port D-column red (cột đỏ) -Nguyên lý led sáng :PortB quét coat, PortC quét hàng; thí dụ led(1,1) sáng Va>Vk , nghóa PortC,0=’0’ PortB,0=’0’ Khi Vk=0,8v; TST PNP Q1 dẫn làm Va≈VE=5V Nếu muốn PortC,0=’0’ PortB,0=’1’ (cột tích cực mức logic ‘1’) led sáng ta dùng đệm đảo cột , hàng không đệm đảo -Nguyên lý dãy led sáng : Thí dụ chữ L Phương pháp quét cột (không có đệm đảo) (ACT=’0’) hiển thị hàng (ACT=’0’): cho cột tích cực mức xuất liệu hàng Thí dụ: chữ T, PortB quét cột, PortC quét hàng Quét cột 0: PortB,0=’0’ ;PortC,0ỈPortC,7=’0’ : mã hàng, cột (00h, Feh) Quét cột 1: PortB,1=’0’ ;PortC,0ỈPortC,7=’0’ : mã hàng, cột (00h, FDh) Quét cột 2: PortB,2=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, FBh) Quét cột 3: PortB,3=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột ( E7h, F7h) Quét cột 4: PortB,4=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, EFh) Quét cột 5: PortB,5=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, DFh) Quét cột 6: PortB,6=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, BFh) Quét cột 7: PortB,7=’0’ ;PortC,3=’0’ PortC,4=’0’ : mã hàng, cột (E7h, 7Fh) Phương pháp quét cột (có đệm đảo) (ACT=’1’) hiển thị hàng (ACT=’0’): cho cột tích cực mức xuất liệu hàng THí dụ : Hiện chữ T, dùng PortB qt cột, portC qt hàng 188 Chương trình led matrix: dùng để tạo chữ, số ký hiệu 9.5.5 Điều khiển nút nhấn, b àn ph ím: Điều khiển nút nhấn: Sơ đồ mạch nút nhấn vi điều khiển Viết chương trình điều khiển nút nhấn (dùng PIC 16F84) -Đợi cho nút nhấn SW1 đóng -Bật led -Đợi cho SW1 nhả -Tắt led -Lặp lại Bài tập: làm lại thí dụ sử dụng vi điều khiển PIC 16F877A -Qu ét b àn ph ím: 189 K ết n ối b àn ph ím v ới vi ều ển Port B: RB0, RB1, RB2 n ối v ới c ột C1,C2,C3 v RB3, RB4, Rb5, RB6 n ối v ới h àng R1,R2,R3,R4 B àn ph ím g ồm h àng v c ột C ột 1, C1 C ột 2, C2 C ột 3, C3 H àng 1, R1 H àng 2, R2 H àng 3, R3 H àng 4, R4 * # Vi ết ch ơng tr ình (d ùng PIC 16F84) hi ển th ị ph ím nh ấn: ph ím đ ợc nh ấn hi ển th ị s ố nh ị ph ân tr ên port A., ph ím đ ợc nh ấn hi ển th ị s ố nh ị ph ân tr ên port A B ài t ập: l àm l ại th í d ụ tr ên d ùng PIC 16F877A Khối bàn phím, nut nhấn công tắc: Phân tích sơ đồ điều khiển : -Nút nhấn: 190 Hình : Sơ đồ nguyên lý nut nhấn (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ÑHCN Tp HCM) Gi ả s portB ều ển n út nh ấn SW0-SW7 Khi nh ấn n út SW0, bit nh ận đ ợc l logic : RB0=’0’ Khi nh ả nh út nh ấn SW0, bit nh ận đ ợc l logic 1, RB0=’1’ -Công tắc: Hình : Sơ đồ nguyên lý công tắc (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ĐHCN Tp HCM) -Bàn phím: 191 Hình : Sơ đồ nguyên lý bàn phím (Hình vẽ trích dẫn từ sách “Thí nghiệm vi xử lí” tác giả Phạm Quang Trí, ĐHCN Tp HCM) Bài tập : Chương trình điều khiển bàn phím hiển thị mã phím nhấn led đơn dạng số nhị phân dùng port B (RB0Ỉ RB3 : hàng, RB4Ỉ RB7: cột) xuất cho cột Sau kiểm tra mức logic ngõ nhập để xem có phím nhấn: có phím nhấn hàng cột chập nhau, ngõ nhập mức logic 0, từ ta tính mã quét phím Giải thuật điều khiển bàn phím: Quét phím i=0 Cột i=’0’ Đ Có phím nhấn? S Mã phím I=i+1 I=4 Đ Cờ C=’0’ Thoát S 192 Mã phím Hàng Đ Mp+0 Đ Mp+4 S Hàng S Hàng Đ Mp+8 S Hàng Đ Mp+12 S Cờ C=’0’ Cờ C=’1’ End Chương trình: Dự án Dự án 1: điều khiển tốc độ motor DC loại nhỏ Viết chương trình điều khiển motor DC loại nhỏ: Sơ đồ khối cho điều khiển tốc độ động chiều loại nhỏ sử dụng vi điều khiển PIC 16F877A: (hình 1) Yêu cầu sử dụng vi điều khiển để điều khiển tốc độ động DC theo chiều thuận ngược thực hai tốc độ (nhanh chậm) Công tắc (nút nhấn) dung tạo hai tốc độ tác động quay ngược Sơ đồ khối minh họa hình 1, sử dụng vi điều khiển PIC 16F877A Phương pháp điều khiển tốc độ điều rộng xung (PWM) dung PIC 16F877A Đặt chân RC1=’0’ (logic 0) áp dụng PWM vào chân RC2 làm cho động quay thuận Việc điều khiển quay thuận hay nghịch đạt thiết kế cầu mạch điều khiển động Nếu nút nhấn khơng 193 nhấn động ổn định Giả sử nút nhấn thiết lập PWM tỉ số 6:4 nút thiết lập PWm với tỉ số 9:1 PWM = Ton Ton = T Ton + Toff PIC 16F877A Động chạy Mạch lái động Động Ngược chiều Tốc độ Tốc độ Ngược chiều Nút nhấn Nút nhấn Nút nhấn Hình Nút nhấn dùng RA0, RA1, RA2 Tỉ số 6:4 có chu kì tổng T=6+4=10 chu kì mức cao (1), mức thấp (0) Tỉ số 9:1 có T=10, mức 1, mức 194 Hình 2: Mạch điều khiển cầu sử dụng ngõ vào từ chân RC2 RC1 để điều khiển tốc độ động chiều thứ hướng quay Động ngừng (off) RC2 RC1 logic 0, cực C T1 T6 mức cao Vì T2 T4 dẫn (on) T3 T5 tắt (off)(khơng dẫn) khơng có dịng dẫn qua động 5V đất (GND, mass) Động quay(on): RC1=’0’, cực C T6 cao, T4 dẫn T5 tắt Nếu tín hiệu PWM áp dụng vào RC2 PWM logic 1, T1 dẫn, cực C T1 mức thấp; T2 tắt T3 dẫn Do dịng điện dẫn qua đất thong qua transistor T3, động Dc qua transistor T4 lên nguồn +5V Động quay ngược(reverse): Nếu RC2=’0’ (logic 0) T2 dẫn T3 tắt Nếu tín hiệu PWM áp dụng vào RC1 PWM logic cao (1), transistor T4 tắt T5 dẫn, tạo dòng điện dẫn ngược thong qua T5, động T2 2/Viết chương trình Điều khiển động bước Dự án 2: Điều khiển tốc độ động bước Yêu cầu dung vi điều khiển để lái động bước hai chiều quay thuận ngược để thực xếp hai tốc độ (nhanh chậm) Nút nhấn dùng tạo hai tốc độ đảo chiều quay Hình vẽ minh họa hình 3, sử dụng vi điều khiển PIC 16F877A PIC 16F877A Động chạy RB7 RB6 RB5 RB4 Tốc độ Mạch lái động Động Nút nhấn Tốc độ Nút nhấn Ngược chiều Nút nhấn Hình 3: Sơ đồ khối điều khiển động bước sử dụng vi điều khiển PIC 16F877A 195 Mạch điều khiển cho động bước Hình 4: Sắp xếp mạch phù hợp để cung cấp mạch lái cho động bước Trình tự xung điều khiển: RB7 RB6 RB5 RB4 0 0 0 0 0 0 Nếu đầu A có RB7=logic transistor Q1 dẫn, có dịng điện Ic qua cuộn dây cuộn dây thành nam châm điện, tương tác với nam châm vĩnh cửu rotor làm động quay góc Tương tự cho đầu B, C, D (bit RB6, RB5, RB4 tương ứng) 3/Mạch báo trộm 4/ Hột súc sắc điện tử 5/Bộ timer mạch phản ứng IV.Tổng kết bài: -Tóm tắt ý -Chuẩn bị V Câu hỏi tập nhà: Chương 9: Thiết kế hệ vi xử lí hệ phát triển vi điều khiển Giải mã địa : 1.Thiết kế mạch giải mã địa cho nhớ 196 12 KB = ROM 2KB + SRAM 4KB + 3x SRAM 2KB Địa : 0000h –2FFFh Thiết kế mạch giải mã địa cho hệ vi xử lý gồm : EPROM 2764, RAM 6264, PPI 8255 Vùng địa sau : EPROM : 0000h-1FFFh, RAM : 2000h-3FFFh 8255(1) : A000h-BFFFh (chỉ dùng A000h-A003h) 8255(2) : E000h-FFFFh (chỉ dùng E000h-E003h) 3.Thiết kế mạch giải mã địa : 8x KB (8 IC EPROM 1KB) Thiết kế mạch giải mã địa KB 2x ROM KB 4xSRAM 1KB Thiết kế mạch giải mã địa KB 1Rom 2Kb + 2xSRAM 1Kb + 1xSRAM 4KB Hãy giải mã địa sau cho EPROM 2764 có địa A000h-BFFFh dùng cổng logic hay IC 74LS138 Thiết kế mạch giải mã địa cho để sử dụng với thiết bị : 8000H9FFFH thiết bị : 0000H-1FFFH Giao tiếp với nhớ RAM HM6264 ROM 27C256, hai số đầu thiết bị RAM(62) ROM(27) Các số để dung lượng theo K bits, có nhớ 4, 8, 16, 32 64KB ( nghóa số theo sau 62/27 32, 64, 128, 256 512) 10 Thiết kế mạch giao tiếp nhớ 64KB (từ chip EPROM chip 8KB) với 8031/8051 11 Thiết kế mạch giải mã địa cho bảng nhớ sau : 0000H-BFFFH tầm địa 48 KB RAM (mỗi chip RAM 8KB) C000H-DFFFH tầm địa cổng xuất bit E000H-FFFFH tầm địa cổng nhập bit Thiết kế kit vi xử lý : 1.Thiết kế kit xử lý gồm CPU PIC 16F877A, RAM 8KB, EPROM 8KB, 2xIC8255 2.Thiết kế kit vi xử lý CPU PIC 16F877A, RAM 16KB, EPROM 16KB, 2xIC8255 3.Thiết kế kit vi xử lý CPU PIC 16F877A, RAM 64KB, EPROM 64KB, 2xIC8255 Kit vi điều khiển tối thiểu kit mở rộng gì? Thiết kế ngoại vi: Trình bày cấu trúc sơ đồ khối vi mạch giao tiếp song song 8255 Lập trình 8255 cho port A, port B, port C xuất, mode So sánh giao tiếp ngoại vi song song giao tiếp ngoại vi nối tiếp Truyền liệu nối tiếp gì? Đồng bất đồng bộ? Song công đơn công? Chuẩn RS232 gì? Kết nối máy tính modem Kết nối PIC 16F877A RS232 Vẽ mạch truyền liệu máy tính vi điều khiển PIC 16F877A sử dụng MAX232/MAX233 197 Thiết kế mạch giao tiếp PIC 16F877A với led đoạn 10 Thiết kế bàn phím 16 key giao tiếp với PIC 16F877A sử dụng a)port B 16F877A b) port A 8255 Lập trình điều khiển : Điều khiển led đơn chạy đuổi, sáng dần, tắt dần hai bìa vào Điều khiển đóng nhả rờle Điều khiển hiển thị led đoạn Điều khiển ma trận led hiển thị chữ HANOI, DHCN Điều khiển bàn phím Dự án 1/Dự án 1: điều khiển tốc độ motor DC loại nhỏ Viết chương trình điều khiển motor DC loại nhỏ: 2/Dự án 2: Điều khiển tốc độ động bước Viết chương trình Điều khiển động bước 3/Mạch báo trộm 4/ Hột súc sắc điện tử 5/Bộ timer mạch phản ứng 198 Tài liệu tham khảo: D.W Smith, PIC in Practice: A project-based approach, 2nd ed., Elsevier, 2006 Tài liệu PIC môn Điện tử Công nghiệp, trường ĐHCN Tp HCM Datasheet PIC 16F84A, 16F877A Website: http://www.alldatasheet.com/ Website : http://www.microchip.com/ Phần mềm MPLAB IDE v6.60 (lập trình hợp ngữ), Phần mềm CCS : PCW C Compiler IDE v3.227 (gồm PCB, PCM, PCH) (lập trình C) Phần mềm nạp WinPic800 Phần mềm PICC Lite, Hi-Tech C for PIC 10/12/16 MCUs: user’s guide MPLAB C18 C Compiler for PIC 18 MCUs Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp HCM, 2003 Trương Trác, Chip đơn PIC16C84 ứng dụng chúng, Tạp chí Điện tử (Electronic Fan) từ số 117 (tháng 7/2003) đến số 122 (tháng 12/2003) Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition, Tab Electronics, McGrawHill, 2008(Ebook) Nebojsa, Dragan Andric, PIC microcontrollers Văn Thế Minh, Kỹ thuật vi xử lý, NXB GD, 1997 10 Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd ed., Macmillan/McGraw-Hill, 1992 11 John Morton, The PIC microcontroller: your personal introductory course, 3rd ed., Newnes, 2005 12 Nigel Gardner, PICmicro MCU C: An introduction to programming the microchip PIC in CCS C, Copyright Bluebird Electronics 2002