1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình hiệu ứng LED chạy hình trái tim sử dụng vi điều khiển

27 426 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 473,73 KB

Nội dung

LỜI NÓI ĐẦU Ngày với phát triển khoa học kỹ thuật, kỷ nguyên công nghệ tiếp tục phát triển không ngừng nhằm thông minh hóa, đại hóa hệ thống Hệ thống nhúng (tiếng Anh: Embedded system) thuật ngữ để mộ t hệ thống có khả tự trị nhúng vào môi trường hay hệ thống mẹ, có vai trò đảm nhận phần công việc cụ thể hệ thống mẹ Hệ thống nhúng hệ thống phần cứng hệ thống phần mềm Phát triển hệ nhúng phần mềm nhúng quốc sách nhiều quốc gia giới, vào giai đoạn hậu PC Thiết kế hệ thống nhúng thiết kế phần cứng phần mềm phối hợp đòi hỏi kiến thức đa ngành điện tử, xử lý tín hiệu, vi xử lý, thuật điều khiển lập trình thời gian thực Qua đề tài tập lớn ” Lập trình hiệu ứng LED chạy hình trái tim sử dụng vi điều khiển ” chúng em hiểu rõ thêm mạch điện bản, ứng dụng đời sống thực tế hết hiểu cấu tạo, chức vi điều khiển 89c52 Trong trình thực chưa có nhiều kinh nghiệm thực tế, lượng tài liệu thu thập hạn hẹp nên chúng em gặp nhiều khó khăn việc thực Dù cố gắng chắn tập nhóm em không tránh khỏi thiếu sót Vậy chúng em mong nhận ý kiến đóng góp thầy bạn Cuối chúng em xin gửi lời cảm ơn tới thầy …………… hướng dẫn tận tình giúp chúng em hoàn thành tập Em xin chân thành cảm ơn! PHẦN 1: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89c52 Tổng quan 89c52 AT89c52 họ IC vi điều khiển hãng Atmel sản xuất Các sản phẩm AT89c52 thích hợp cho ứng dụng điều khiển Việc xử lý byte toán số học cấu trúc liệu nhỏ thực nhiều chế độ truy xuất liệu nhanh RAM nội Tập lệnh cung cấp bảng tiện dụng lệnh số học bit gồm lệnh nhân lệnh chia Nó cung cấp hổ trợ mở rộng chip dùng cho biến bit kiểu liệu riêng biệt cho phép quản lý kiểm tra bit trực tiếp hệ thống điều khiển AT89c52 cung cấp đặc tính chuẩn như: KByte nhớ đọc xóa lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, TIMER/COUNTER 16 Bit, vectơ ngắt có cấu trúc mức ngắt, Port nối tiếp bán song công, mạch dao động tạo xung Clock dao động ON-CHIP Các đặc điểm chip AT89c52 tóm tắt sau: • KByte nhớ lập trình nhanh, có khả tới 1000 chu kỳ ghi/xoá • Tần số hoạt động từ: 0Hz đến 24 MHz • mức khóa nhớ lập trình • Timer/counter 16 Bit • 128 Byte RAM nội • Port xuất /nhập I/O bit • Giao tiếp nối tiếp • 64 KB vùng nhớ mã • 64 KB vùng nhớ liệu ngoại • µs cho hoạt động nhân chia 2- CẤU TRÚC VI ĐIỀU KHIỂN 89c52 – CHỨC NĂNG TỪNG CHÂN * Sơ đồ khối 89c52: • Sơ đồ chân 2.1 Sơ đồ chân 89c52 AT 89 c5 AT8 9c5 Mặc dù thành viên họ 8051 (ví dụ 8751, 89c52, 89C51, DS5000) có kiểu đóng vỏ khác nhau, chẳng hạn hai hàng chân DIP (Dual In-Line Pakage), dạng vỏ dẹt vuông QPF (Quad Flat Pakage) dạng chip chân đỡ LLC (Leadless Chip Carrier) chúng có 40 chân cho chức khác vào I/O, đọc RD , ghi WR , địa chỉ, liệu ngắt Cần phải lưu ý số hãng cung cấp phiên 89c52 có 20 chân với số cổng vào cho ứng dụng yêu cầu thấp Tuy nhiên hầu hết nhà phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta tập trung mô tả phiên 2.2 Chức chân 89c52 Port :từ chân 32 đến chân 39 (P0.0 _P0.7) Port có chức năng: thiết kế cỡ nhỏ không dùng nhớ mở rộng có chức đường IO, thiết kế lớn có nhớ mở rộng kết hợp bus địa bus liệu Port 1: từ chân đến chân (P1.0 _ P1.7) Port port IO dùng cho giao tiếp với thiết bị bên cần Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7) Port port có tác dụng kép dùng đường xuất/nhập byte cao bus địa thiết bị dùng nhớ mở rộng Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7) Port port có tác dụng kép Các chân port có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến đặc tính đặc biệt 89c52 bảng sau: Bit Tên Chức chuyển đổi P3.0 RXD Ngõ vào liệu nối tiếp P3.1 TXD Ngõ xuất liệu nối tiếp P3.2 INT0 Ngõ vào ngắt cứng thứ P3.3 INT1 Ngõ vào ngắt cứng thứ P3.4 T0 Ngõ vào TIMER/ COUNTER thứ P3.5 T1 Ngõ vào TIMER/ COUNTER thứ P3.6 WR Tín hiệu ghi liệu lên nhớ P3.7 RD Tín hiệu đọc nhớ liệu Tổ chức nhớ bên 89c52 Bộ nhớ 89c52 bao gồm ROM RAM RAM 89c52 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữđịa hóa bit, bank ghi ghi chức đặc biệt AT89c52 có nhớ tổ chức theo cấu trúc Harvard: có vùng nhớ riêng biệt cho chương trình liệu Chương trình liệu chứa bên 89c52 89c52 kết nối với 64K byte nhớ chương trình 64K byte liệu bên Bản đồ nhớ Data bên Chip 89c52 tổ chức sau: Địa byte Địa Địa bit Địa bit RAM bên AT89c52 phân chia sau:  Các bank ghi có địa từ 00H đến 1FH  RAM địa hóa bit có địa từ 20H đến 2FH  RAM đa dụng từ 30H đến 7FH  Các ghi chức đặc biệt từ 80H đến FFH 3.1 RAM đa dụng RAM đa dụng có địa từ 30h – 7Fh truy xuất lần bit cách dùng chế độ định địa trực tiếp hay gián tiếp Các vùng địa thấp từ 00h – 2Fh sử dụng cho mục đích trên, chức đặc biệt đề cập phần sau 3.2 RAM định địa bit Vùng địa từ 20h -2Fh gồm 16 byte thực vùng RAM đa dụng (truy xuât lần bit) hay thực truy xuất lần bit lệnh xử lý bit 3.3 Các bank ghi Vùng địa 00h – 1Fh chia thành bank ghi: bank từ 00h – 07h, bank từ 08h – 0Fh, bank từ 10h – 17h bank từ 18h – 1Fh Các bank ghi đại diện ghi từ R0 đến R7 Sau khởi động hệ thống bank chọn sử dụng Do có bank ghi nên thời điểm có bank ghi truy xuất ghi R0 đến R7 Viêc thay đổi bank ghi thực thông qua ghi từ trạng thái chương trình (PSW) 3.4 Các ghi có chức đặc biệt Các ghi 89c52 định dạng phần RAM chip ghi có địa (ngoại trừ ghi đếm chương trình ghi lệnh ghi bị tác động trực tiếp) Cũng R0 đến R7, 89c52 có 21 ghi có chức đặc biệt (SFR: Special Function Register) vùng RAM nội từ địa 80H đến 0FFH Sau vài ghi đặc biệt thường sử dụng: 3.4.1 Thanh ghi trạng thái chương trình (PSW: Program Status Word) BIT SYMBOL ADDRESS DESCRIPTION PSW.7 CY D7H Cary Flag PSW.6 AC D6H Auxiliary Cary Flag PSW.5 F0 D5H Flag PSW4 RS1 D4H Register Bank Select PSW.3 RS0 D3H Register Bank Select 00=Bank 0; address 00H÷07H 01=Bank 1; address 08H÷0FH 10=Bank 2; address 10H÷17H 11=Bank 3; address 18H÷1FH PSW.2 OV D2H Overlow Flag PSW.1 - D1H Reserved PSW.0 P DOH Even Parity Flag Chức bit trạng thái chương trình - Cờ Carry CY (Carry Flag): Cờ nhớ thường dùng cho lệnh toán học: C =1 phép toán cộng có tràn phép trừ có mượn ngược lại C = phép toán cộng không tràn phép trừ mượn - Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC set kết bit thấp nằm phạm vi điều khiển 0AH - 0FH Ngược lại AC = - Cờ (Flag 0): Cờ (F0) bit cờ đa dụng dùng cho ứng dụng người dùng - Những bit chọn bank ghi truy xuất: RS1 RS0 định dãy ghi tích cực Chúng xóa sau reset hệ thống thay đổi phần mềm cần thiết Tùy theo RS1, RS0 = 00, 01, 10, 11 chọn Bank tích cực tương ứng Bank 0, Bank1, Bank2 Bank3 RS1 RS0 BANK 0 0 1 1 - Cờ tràn OV (Over Flag): Cờ tràn set sau hoạt động cộng trừ có tràn toán học - Bit Parity (P): Bit tự động set hay Clear chu kỳ máy để lập Parity chẵn với ghi A Sự đếm bit ghi A cộng với bit Parity luôn chẵn Ví dụ A chứa 10101101B bit P set lên để tổng số bit A P tạo thành số chẵn Bit Parity thường dùng kết hợp với thủ tục Port nối tiếp để tạo bit Parity trước phát kiểm tra bit Parity sau thu  Nếu chương trình ngắt có mức ưu tiên thấp chạy mà có ngắt xảy với mức ưu tiên cao chương trình tạm dừng để chạy chương trình khác có mức ưu tiên cao - Cho phép cấm ngắt: Mỗi nguồn ngắt cho phép cấm ngắt qua ghi chức đặt biệt có định địa bit IE (Interrupt Enable: cho phép ngắt) địa A8H Bit Ký hiệu Địa bit Mô tả IE.7 EA AFH Cho phép / Cấm toàn IE.6 _ AEH Không mô tả IE.5 ET2 ADH Cho phép ngắt từ Timer (8052) IE.4 ES ACH Cho phép ngắt port nối tiếp IE.3 ET1 ABH Cho phép ngắt từ Timer IE.2 EX1 AAH Cho phép ngắt IE.1 ET0 A9H Cho phép ngắt từ Timer IE.0 EX0 A8H Cho phép ngắt - Tóm tắt ghi IE Các cờ ngắt: Khi điều kiện ngắt xảy ứng với loại ngắt mà loại cờ đặt lên mức cao để xác nhận ngắt Ngắt Cờ Thanh ghi SFR vị trí bit Bên IE0 TCON.1 Bên IE1 TCON.3 Timer TF1 TCON.7 Timer TF0 TCON.5 Port nối tiếp TI SCON.1 Port nối tiếp RI SCON.0 Các loại cờ ngắt - Các vectơ ngắt: Khi chấp nhận ngắt, giá trị nạp vào PC gọi vector ngắt Nó địa bắt đầu ISR cho nguồn tạo ngắt, vector ngắt cho bảng sau : Ngắt Cờ Địa vector Reset hệ thống RST 0000H Bên IE0 0003H Timer TF0 000BH Bên IE1 0013H Timer TF1 001BH Port nối tiếp TI RI 0023H Timer 002BH Vector reset hệ thống (RST địa 0000H) để bảng theo nghĩa này, giống ngắt: ngắt chương trình nạp cho PC giá trị PHẦN 2: CODE CỦA ĐỀ TÀI BÀI TẬP LỚN” LẬP TRÌNH HIỆU ỨNG LED CHẠY HÌNH TRÁI TIM” 1-CODE-ASM ORG 0000H MAIN: ACALL XUONG ACALL NHAY_TRAI_TIM ACALL LEN_ ACALL NHAY_XEN_KE ACALL XUONG1LED ACALL NHAY_TRAI_TIM ACALL GIUA ACALL NHAY_XEN_KE ACALL HAI_DAU_VAO ACALL LEN1LED ACALL NHAY_TOAN_BO SJMP MAIN ; -XUONG: MOV P2,#0 MOV P1,#0 SETB P2.0 ACALL DELAY SETB P2.1 ACALL DELAY SETB P2.2 ACALL DELAY SETB P2.3 ACALL DELAY SETB P2.4 ACALL DELAY SETB P2.5 ACALL DELAY SETB P2.6 ACALL DELAY SETB P2.7 ACALL DELAY SETB P1.0 ACALL DELAY SETB P1.1 ACALL DELAY SETB P1.2 ACALL DELAY SETB P1.3 ACALL DELAY SETB P1.4 ACALL DELAY RET ; -LEN_: MOV P1,#0 MOV P2,#0 SETB P1.4 ACALL DELAY SETB P1.3 ACALL DELAY SETB P1.2 ACALL DELAY SETB P1.1 ACALL DELAY SETB P1.0 ACALL DELAY SETB P2.7 ACALL DELAY SETB P2.6 ACALL DELAY SETB P2.5 ACALL DELAY SETB P2.4 ACALL DELAY SETB P2.3 ACALL DELAY SETB P2.2 ACALL DELAY SETB P2.1 ACALL DELAY SETB P2.0 ACALL DELAY RET ; GIUA: MOV P1,#0 MOV P2,#0 SETB P2.6 ACALL DELAY SETB P2.7 SETB P2.5 ACALL DELAY SETB P1.0 SETB P2.4 ACALL DELAY SETB P1.1 SETB P2.3 ACALL DELAY SETB P1.2 SETB P2.2 ACALL DELAY SETB P1.3 SETB P2.1 ACALL DELAY SETB P1.4 SETB P2.0 ACALL DELAY RET ; -HAI_DAU_VAO: MOV P2,#0 MOV P1,#0 SETB P2.0 SETB P1.4 ACALL DELAY SETB P2.1 SETB P1.3 ACALL DELAY SETB P2.2 SETB P1.2 ACALL DELAY SETB P2.3 SETB P1.1 ACALL DELAY SETB P2.4 SETB P1.0 ACALL DELAY SETB P2.5 SETB P2.7 ACALL DELAY SETB P2.6 ACALL DELAY RET ; -LEN1LED: MOV P1,#0 MOV P2,#0 MOV R1,#5 MOV A,#10H DICH1: MOV B,#2 MOV P1,A DIV AB ACALL DELAY DJNZ R1,DICH1 CLR P1.0 MOV R1,#8 MOV A,#80H DICH2: MOV B,#2 MOV P2,A DIV AB ACALL DELAY DJNZ R1,DICH2 RET ; -XUONG1LED: MOV P1,#0 MOV P2,#0 MOV A,#1 MOV R1,#8 DICH3: MOV B,#2 MOV P2,A MUL AB ACALL DELAY DJNZ R1,DICH3 CLR P2.7 MOV A,#1 MOV R1,#5 DICH4: MOV B,#2 MOV P1,A MUL AB ACALL DELAY DJNZ R1,DICH4 RET ; NHAY_TOAN_BO: MOV R5,#3 NHAY1: MOV P1,#0 MOV P2,#0 ACALL DELAY1 MOV P1,#0FFH MOV P2,#0FFH ACALL DELAY1 DJNZ R5,NHAY1 RET ; NHAY_TRAI_TIM: MOV R5,#2 NHAY2: MOV P1,#0 MOV P2,#0 ACALL DELAY1 MOV P1,#0FFH MOV P2,#0FFH CLR P1.5 ACALL DELAY1 DJNZ R5,NHAY2 RET ; NHAY_XEN_KE: MOV R5,#8 NHAY_XEN_KE1: MOV P1,#15H MOV P2,#55H ACALL DELAY1 MOV P2,#0AAH MOV P1,#0AAH ACALL DELAY1 DJNZ R5,NHAY_XEN_KE1 RET ; -DELAY: MOV R2,#255 L1: MOV R3,#255 L2: MOV R4,#1 L3: DJNZ R4,L3 DJNZ R3,L2 DJNZ R2,L1 RET ; DELAY1: MOV R2,#255 L4: MOV R3,#255 L5: DJNZ R3,L5 DJNZ R2,L4 RET ; -END • Hình mô qua Proteus Bản mạch chính: 2- Linh kiện sử dụng cho tập a- Vi điều khiển 89c52 b- Transistor H1061: c- Điện trở d- Thạch anh e- Tụ 33 pF f- Tụ hóa 10pF g- LED đỏ g- Dây nối PHẦN 3: NHẬN XÉT CỦA GIẢNG VIÊN [...]...3.4.2 Thanh ghi TIMER Vi Điều Khiển 89c52 có 3 timer 16 bit, mỗi timer có bốn cách làm vi c Người ta sử dụng các timer để: o Định khoảng thời gian o Đếm sự kiện o Tạo tốc độ baud cho port nối tiếp trong 89c52 Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động... tiếp TI và RI 0023H Timer 2 002BH Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này, nó giống ngắt: nó ngắt chương trình chính và nạp cho PC giá trị mới PHẦN 2: CODE CỦA ĐỀ TÀI BÀI TẬP LỚN” LẬP TRÌNH HIỆU ỨNG LED CHẠY HÌNH TRÁI TIM 1-CODE-ASM ORG 0000H MAIN: ACALL XUONG ACALL NHAY_TRAI _TIM ACALL LEN_ ACALL NHAY_XEN_KE ACALL XUONG 1LED ACALL NHAY_TRAI _TIM ACALL GIUA ACALL... Các ứng dụng khác có thể sử dụng vi c tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung) 3.4.3 Thanh ghi ngắt (INTERRUPT) Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng. .. DELAY1: MOV R2,#255 L4: MOV R3,#255 L5: DJNZ R3,L5 DJNZ R2,L4 RET ; -END • Hình mô phỏng qua Proteus Bản mạch chính: 2- Linh kiện sử dụng cho bài tập a- Vi điều khiển 89c52 b- Transistor H1061: c- Điện trở d- Thạch anh e- Tụ 33 pF f- Tụ hóa 10pF g- LED đỏ g- Dây nối PHẦN 3: NHẬN XÉT CỦA GIẢNG VI N ... chương trình khác Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi - Tổ chức ngắt của 89c52: Có 5 nguồn ngắt ở 89c52: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống... Cấm toàn bộ IE.6 _ AEH Không được mô tả IE.5 ET2 ADH Cho phép ngắt từ Timer 2 (8052) IE.4 ES ACH Cho phép ngắt port nối tiếp IE.3 ET1 ABH Cho phép ngắt từ Timer 1 IE.2 EX1 AAH Cho phép ngắt ngoài 1 IE.1 ET0 A9H Cho phép ngắt từ Timer 0 IE.0 EX0 A8H Cho phép ngắt ngoài 0 - Tóm tắt thanh ghi IE Các cờ ngắt: Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên mức cao để xác nhận... (=0) tại timer 0 IP.0 EX0 B8H Chọn mức ưu tiên cao (=1) hay thấp (=0) tại ngắt ngoài 0 Tóm tắt thanh ghi IP  Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có nào có mức ưu tiên cao hơn sẽ được phục vụ trước  Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự ưu tiên được thực hiện từ cao đến thấp như sau: ngắt ngoài 0 – timer 0 – ngắt ngoài 1 – timer 1 – cổng nối tiếp – timer 2  Nếu chương trình. .. trình của một ngắt có mức ưu tiên thấp đang chạy mà có một ngắt xảy ra với mức ưu tiên cao hơn thì chương trình này tạm dừng để chạy một chương trình khác có mức ưu tiên cao hơn - Cho phép và cấm ngắt: Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địa chỉ A8H Bit Ký hiệu Địa chỉ bit Mô tả IE.7 EA AFH Cho phép... IE1 TCON.3 Timer 1 TF1 TCON.7 Timer 0 TF0 TCON.5 Port nối tiếp TI SCON.1 Port nối tiếp RI SCON.0 Các loại cờ ngắt - Các vectơ ngắt: Khi chấp nhận ngắt, giá trị được nạp vào PC gọi là vector ngắt Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau : Ngắt Cờ Địa chỉ vector Reset hệ thống RST 0000H Bên ngoài 0 IE0 0003H Timer 0 TF0 000BH Bên ngoài 1 IE1 0013H Timer 1 TF1... ưu tiên cho các ngắt (giá trị thanh ghi IP khi reset là 00h) Bit Ký hiệu Địa chỉ bit Mô tả IP.7 _ _ Không được mô tả IP.6 _ _ Không được mô tả IP.5 ET2 BDH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 2 IP.4 ES BCH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại cổng nối tiếp IP.3 ET1 BBH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 1 IP.2 EX1 BAH Chọn mức ưu tiên cao (=1) hay thấp (=0) tại ngắt

Ngày đăng: 20/05/2016, 22:32

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w