Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 433 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
433
Dung lượng
12,1 MB
Nội dung
TRƯỜNG CAO ĐẲNG NGHỀ CƠNG NGHIỆP HÀ NỘI KHOA ĐIỆN – ĐIỆN TỬ Chủ biên: Phan Văn Vượng *** GIÁO TRÌNH VI ĐIỀU KHIỂN ( Lưu hành nội bộ) HÀ NỘI 2012 LỜI NĨI ĐẦU Trong chương trình đào tạo của các trường trung cấp nghề, cao đẳng nghề Điện tử dân dụng thực hành nghề nghề giữ một vị trí rất quan trọng: rèn luyện tay nghề cho học sinh. Việc dạy thực hành địi hỏi nhiều yếu tố: vật tư thiết bị đầy đủ đồng thời cần một giáo trình nội bộ, mang tính khoa học và đáp ứng với u cầu thực tế Nội dung của giáo trình “VI ĐIỀU KHIỂN” đã được xây dựng trên cơ sở kế thừa những nội dung giảng dạy của các trường, kết hợp với những nội dung mới nhằm đáp ứng u cầu nâng cao chất lượng đào tạo phục vụ sự nghiệp cơng nghiệp hóa, hiện đại hóa đất nước,. Giáo trình được biên soạn ngắn gọn, dễ hiểu, bổ sung nhiều kiến thức mới và biên soạn theo quan điểm mở, nghĩa là, đề cập những nội dung cơ bản, cốt yếu để tùy theo tính chất của các ngành nghề đào tạo mà nhà trường tự điều chỉnh cho thích hợp và khơng trái với quy định của chương trình khung đào tạo cao đẳng nghề Tuy các tác giả đã có nhiều cố gắng khi biên soạn, nhưng giáo trình chắc chắn khơng tránh khỏi những thiếu sót, rất mong nhận được sự tham gia đóng góp ý kiến của các bạn đồng nghiệp và các chun gia kỹ thuật đầu ngành Xin trân trọng cảm ơn! Tun bố bản quyền Tài liệu này là loại giáo trình nội bộ dùng trong nhà trường với mục đích làm tài liệu giảng dạy cho giáo viên và học sinh, sinh viên nên các nguồn thơng tin có thể được tham khảo Tài liệu phải do trường Cao đẳng nghề Cơng nghiệp Hà Nội in ấn và phát hành. Việc sử dụng tài liệu này với mục đích thương mại hoặc khác với mục đích trên đều bị nghiêm cấm và bị coi là vi phạm bản quyền Trường Cao đẳng nghề Cơng nghiệp Hà Nội xin chân thành cảm ơn các thơng tin giúp cho nhà trường bảo vệ bản quyền của mình MỤC LỤC BÀI 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CẤU TRÚC CỦA VI ĐIỀU KHIỂN CÂU HỎI ÔN TẬP 24 BÀI 2: CẤU TRÚC PHẦN CỨNG CỦA VI ĐIỀU KHIỂN 8051 .34 CÂU HỎI ÔN TẬP 76 BÀI 3: GIỚI THIỆU TẬP LỆNH CỦA VI ĐIỀU KHIỂN 8051 78 CÁC VÍ DỤ ỨNG DỤNG VỀ TẬP LỆNH 157 CÂU HỎI ÔN TẬP 171 Bài 4: GIỚI THIỆU HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI TRONG VI ĐIỀU KHIỂN 8051 287 Bài 5: GIỚI THIỆU HOẠT ĐỘNG CỦA PORT NỐI TIẾP TRONG VI ĐIỀU KHIỂN 8051 332 Bài 6: GIỚI THIỆU HOẠT ĐỘNG CỦA NGẮT TRONG VI ĐIỀU KHIỂN 8051 384 BÀI 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CẤU TRÚC CỦA VI ĐIỀU KHIỂN Mục tiêu Kiến thức: xử lý Nắm bắt được cấu trúc khối và chức năng các khối của một hệ vi Nắm bắt được cấu trúc khối và chức năng các khối của một hệ vi điều khiển Nắm bắt được các thuật ngữ dùng trong hệ vi xử lý, vi điều khiển ngoại vi Nắm bắt được nguyên lý làm việc của CPU, bộ nhớ và các thiết bị Nắm bắt được các tiêu chuẩn cơ bản khi chọn lựa loại vi điều khiển trong một thiết kế thực tế Kỹ năng: Xác định được CPU, bộ nhớ và các thiết bị ngoại vi trong một hệ thống vi xử lý, vi điều khiển Xác định được cách tính tốn bộ nhớ bán dẫn dùng cho vi xử lý, vi điều khiển Xác định được các loại bus: địa chỉ, dữ liệu và điều khiển Thái độ: Có ý thức tự giác Tn thủ nội quy và trình tự thực hiện Có tinh thần hợp tác giúp đỡ lẫn nhau Cẩn thận, đảm bảo an tồn vật liệu, linh kiện Bảo quản thiết bị đo, mơ hình học cụ Vệ sinh mơ hình, thiết bị học tập và phịng thực hành Nội dung chính 1.1.Giới thiệu chung Mặc dù các máy tính (Computers) chỉ mới xuất hiện trong một vài thập kỷ gần đây nhưng chúng đã có những ảnh hưởng rất lớn đến cuộc sống của chúng ta hiện nay, cạnh tranh mạnh mẽ với các hệ thống truyền thanh, truyền hình hoặc thơng tin di động hiện tại. Quan niệm đơn giản của chúng ta về các máy tính thường xem chúng như là các “bộ xử lý dữ liệu (data processor)” thực hiện các phép tốn số học với một khả năng khơng biết mệt mỏi Máy tính giờ đây đã trở thành phần tử trung tâm trong rất nhiều thiết bị dùng trong cơng nghiệp và gia dụng, chúng ta có thể tìm thấy các máy tính tại các siêu thị như trong các máy tính tiền, cân điện tử,…; tại nhà như trong các lị vi sóng, máy giặt, đồng hồ báo thức, máy điều hịa nhiệt độ,…; tại văn phịng làm việc như trong các máy in, máy photocopy,…; ở các thiết bị giải trí trong đồ chơi điện tử, hệ thống xem phim và nghe nhạc: VCR, VCD, DVD,…; các thiết bị cơng nghiệp như trong các máy khoan, máy in cơng nghiệp, dây chuyền sản xuất,… Trong các thiết bị này, máy tính thực hiện các chức năng “điều khiển” bằng cách giao tiếp với “thế giới thực” để bật và tắt các thiết bị và giám sát trạng thái làm việc của các thiết bị. Các vi điều khiển (Microcontroller), mơ hình có khác biệt với máy vi tính (Microcomputer) và vi xử lý (Microprocessor), thơng thường được sử dụng trong các ứng dụng điều khiển này Thật là khó tưởng tượng thế giới ngày nay sẽ như thế nào nếu các thiết bị điện tử khơng có sử dụng các vi xử lý để điều khiển hoạt động. Vào năm 1971 Intel Corporation đã giới thiệu 8080, đây là vi xử lý (microprocessor) thành cơng đầu tiên. Khơng lâu ngay sau đó thì các hãng khác như Motorola, RCA, sau đó là MOS Technology và Zilog cũng lần lượt đã giới thiệu các vi xử lý tương tự như: 6800 (Motorola), 1801 (RCA), 6502 (MOS Technology) và Z80 (Zilog). Xét riêng một mình thì các vi mạch tích hợp (ICs: Integrated Circuits) này tuy khơng có nhiều hiệu quả sử dụng nhưng khi các vi mạch tích hợp này trở thành một phần của một máy tính đơn board (SBC: SingleBoard Computer) thì chúng trở thành phần tử trung tâm trong các sản phẩm hữu ích dùng để học tập, nghiên cứu và thiết kế có sử dụng vi xử lý. Các máy tính đơn board này, mà trong đó có D2 của Motorola, KIM1 của MOS Technology và SDK85 của Intel là đáng ghi nhớ nhất, đã nhanh chóng được sử dụng trong các phịng nghiên cứu thiết kế của các trường dạy nghề, các trường cao đẳng, đại học và các cơng ty điện tử Một vi mạch tương tự như vi xử lý là vi điều khiển được phát triển cho các ứng dụng mang tính điều khiển, sự khác biệt cơ bản giữa vi xử lý và vi điều khiển sẽ được trình bày trong phần sau của giáo trình. Vào năm 1976 Intel đã giới thiệu vi điều khiển 8748, đây là vi điều khiển đầu tiên trong họ vi điều khiển MCS48TM. Mạch điện tích hợp bên trong vi điều khiển này chứa trên 17,000 transistor, vi điều khiển 8747 được cung cấp 1 CPU, 1 KB EPROM, 64 byte RAM, 27 chân xuất/nhập và một bộ định thời 8 bit. IC này và các IC được sản xuất tiếp theo của họ MCS48TM đã nhanh chóng trở thành tiêu chuẩn cơng nghiệp trong các ứng dụng hướng điều khiển. Việc thay thế các thành phần cơ điện trong các sản phẩm như các máy giặt và các bộ điều khiển đèn giao thơng là một ứng dụng phổ biến đầu tiên. Các sản phẩm khác mà trong đó vi điều khiển cũng có thể được tìm thấy bao gồm xe ơ tơ, thiết bị cơng nghiệp, các sản phẩm giải trí trong gia đình và các ngoại vi của máy tính, Khả năng, kích thước và độ phức tạp của các vi điều khiển được nâng cao thêm một bậc quan trọng vào năm 1980 khi Intel cơng bố vi điều khiển 8051, đây là vi điều khiển đầu tiên của họ vi điều khiển MCS51 TM. So sánh với vi điều khiển 8048, vi điều khiển 8051 có chứa trên 60,000 transistor, 4 KB ROM, 128 byte RAM, 32 chân xuất/nhập, 1 port nối tiếp và 2 bộ định thời 16 bit – một số lượng mạch điện đáng kể trong một IC đơn (xem Hình 1.1.1) Các thành viên mới được thêm vào trong họ MCS51TM và các phiên bản tồn ngày gần có gấp đôi đặc điểm kỹ thuật Tập đoàn Siemens, nhà sản xuất thứ hai các vi điều khiển thuộc họ MCS51 TM cung cấp vi điều khiển SAB80515, một phiên bản cải tiến của 8051 chứa trong một vỏ 68 chân, có 6 port xuất/nhập 8 bit, 13 nguồn ngắt và một bộ biến đổi A/D 8 bit với 8 kênh ngõ vào. Họ vi điều khiển 8051 được đáng giá là một trong những vi điều khiển 8 bit linh hoạt và mạnh mẽ nhất, chiếm giữ vị trí là vi điều khiển hàng khơng gì thay thế được trong những năm tiếp theo Hình 1.1.1: Bên trong vi điều khiển MC9S12X (bên trái) và 8051 (bên phải) Nội dung cuốn giáo trình này trình bày về họ vi điều khiển MCS51TM. Các bài tiếp theo sẽ giới thiệu cấu trúc phần cứng và phần mềm của họ MCS 51TM, đồng thời thơng qua nhiều ví dụ thiết kế để giải thích cách mà họ vi điều khiển này có thể tham gia vào các thiết kế điện tử với một số lượng thành phần tối thiểu được thêm vào 1.2.Thuật ngữ Đầu tiên, một máy tính (Computer) được định nghĩa bởi hai đặc điểm: Có khả năng được lập trình để thao tác trên dữ liệu mà khơng cần đến sự can thiệp vào của con người Có khả năng lưu trữ và khơi phục dữ liệu Tổng qt hơn, một hệ thống máy tính (Computer System) cũng bao gồm các thiết bị ngoại vi (Peripheral Devices) để giao tiếp với con người cũng như các chương trình (Programs) để xử lý các dữ liệu. Thiết bị là phần cứng (Hardware) và các chương trình là phần mềm (Software). Chúng ta hãy bắt đầu với phần cứng của máy tính bằng cách xem xét chi tiết Hình 1.2.1 Hình 1.2.2:Sơ đồ khối của một hệ thống máy tính CPU: Đơn vị xử lý trung tâm ROM: Bộ nhớ chỉ đọc RAM: Bộ nhớ truy xuất ngẫu nhiên Interface Circuitry: Mạch điện giao tiếp Address bus: Bus địa chỉ Data bus: Bus dữ liệu Control bus: Bus điều khiển Peripheral Devices (Input): Các thiết bị ngoại vi nhập Peripheral Devices (Output): Các thiết bị ngoại vi xuất Việc thiếu sót một cách có chủ ý một vài chi tiết trong sơ đồ khối ở Hình 1.2.1 này là nhằm mục đích làm cho sơ đồ khối này có thể đại diện cho tất cả các loại máy tính. Như đã trình bày, một hệ thống máy tính bao gồm một đơn vị xử lý trung tâm (CPU: Central Processing Unit) được kết nối với bộ nhớ truy xuất ngẫu nhiên (RAM: Random Access Memory) và bộ nhớ chỉ đọc (ROM: Read Only Memory) thông qua các bus địa chỉ (Address bus), bus dữ liệu (Data bus) và bus điều khiển (Control bus). Các mạch điện giao tiếp (Interface Circuits) kết nối các bus hệ thống với các thiết bị ngoại vi. Ta sẽ đề cập đến các chi tiết này trong các phần sau của bài học 1.3.Đơn vị xử lý trung tâm (CPU: Central Processing Unit) CPU, được xem như là “bộ não” của hệ thống máy tính, nó quản lý tất cả các hoạt động trong hệ thống và thực hiện tất cả các thao tác trên dữ liệu Các CPU trên thực tế chỉ là một tập hợp của các mạch điện logic mà nó có thể thực hiện liên tục hai thao tác: tìm nạp lệnh (fetching instruction) và thực thi lệnh (executing instruction). CPU có khả năng hiểu và thực thi các lệnh dựa trên một tập các mã nhị phân, mỗi mã nhị phân này (cịn gọi là mã lệnh – opcode) đại diện cho một thao tác đơn giản. Các lệnh này thường là các lệnh số học (cộng, trừ, nhân, chia), các lệnh logic (AND, OR, NOT,…), các lệnh di chuyển hoặc các lệnh rẽ nhánh, và được đại diện bởi một tập các mã nhị phân được gọi là tập lệnh (Instruction Set) Hình 1.3.1 cho ta một cái nhìn vơ cùng đơn giản bên trong của một CPU Hình này trình bày một tập các thanh ghi (Register) có nhiệm vụ lưu trữ tạm thời các thơng tin; một đơn vị số học và logic (ALU: Arithmetic and Logic Unit) dùng để thực hiện các thao tác trên các thơng tin này; một đơn vị giải mã và điều khiển (Instruction Decode and Control Unit) dùng để xác định thao tác cần thực hiện và thiết lập các hoạt động cần thiết để thực hiện thao tác đó; và có thêm hai thanh ghi IR và PC. Thanh ghi lệnh (IR: Instruction Register) dùng để lưu trữ mã nhị phân của lệnh đang được thực thi và thanh ghi bộ đếm chương trình (PC: Program Counter) dùng để lưu địa chỉ bộ nhớ của lệnh kế tiếp sẽ được thực thi Hình 1.3.3:Đơn vị xử lý trung tâm (CPU) CPU: Đơn vị xử lý trung tâm Instruction Register (IR): Thanh ghi lệnh Program Counter (PC): Bộ đếm chương trình Instruction Decode and Control Unit: Đơn vị giải mã và điều khiển Arithmetic and Logic Unit: Đơn vị số học và logic Registers: Các thanh ghi Chu kỳ tìm nạp một lệnh từ ROM hệ thống là một trong những thao tác cơ bản nhất được thực hiện bởi CPU. Hình 1.3.2 minh họa luồng thơng tin cho một chu kỳ tìm nạp lệnh. Chu kỳ tìm nạp lệnh bao gồm các bước sau: (1) Nội dung của thanh ghi bộ đếm chương trình (PC) được đưa lên bus địa chỉ (2) Tín hiệu điều khiển đọc thơng tin (READ) được kích hoạt và tác động đến ROM liệu (3) Dữ liệu (mã lệnh) được đọc từ ROM và được đưa lên bus dữ (4) Dữ liệu (mã lệnh) trên bus dữ liệu được chốt vào thanh ghi lệnh (IR) bên trong CPU Thanh ghi bộ đếm chương trình (PC) được tăng để chuẩn bị cho q trình tìm nạp lệnh kế tiếp từ bộ nhớ 10 Hình 6.5.107: Khối LED 7 đoạn (7 Segment LED) Hình 6.5.108: Khối giải mã 7 đoạn (7 Segment Decoder) BÀI THỰC HÀNH Viết chương trình, mơ phỏng và lắp ráp mạch điều khiển truyền dữ liệu thơng qua port nối tiếp. Thay đổi trạng thái của các LED đơn tại vi điều khiển 2 (Slave) theo trạng thái của các nút nhấn tại vi điều khiển 1 (Master) và ngược lại. Sử dụng phương pháp ngắt port nối tiếp cho việc truyền dữ liệu 1.38.10 Lưu đồ giải thuật Bước 1: Vẽ lưu đồ giải thuật của chương trình điều khiển 428 SP1 BEGIN THIẾT LẬP VECTƠ Vectơ RESET: 0000 H Vectơ ngắt port nối tiếp: 0023 H Vectơ chương trình: 0030 H MAIN: ĐIỀU KHIỂN TẮT LED (P1) = 00 H CẤU HÌNH PORT NỐI TIẾP T1 AUTO RELOAD BAUD RATE = 9600 BPS DATA = BIT STOP = BIT PARITY = NONE BEGIN SP _ISR: Đ KIỂM TRA NGẮT PHÁT (TI) = TRANS_DATA: RECEI_DATA: S XÓA CỜ BÁO THU RI = CẤT DỮ LIỆU NHẬN ĐƯỢC TỪ PORT NỐI TIẾP (A) = (SBUF) XUẤT GIÁ TRỊ RA LED (P1) = (A) KÍCH HOẠT TIMER TẠO BAUD RATE (TR1 ) = CHO PHÉP NGẮT PORT NỐI TIẾP (IE) = 90H XÓA CỜ BÁO PHÁT TI = ĐỌC TRẠNG THÁI CÁC SW (A) = (P0) ĐẢO TRẠNG THÁI LOGIC CỦA CÁC SW TẢI DỮ LIỆU CẦN PHÁT VÀO PORT NỐI TIẾP (SBUF) = (A) EXIT_SP _ISR: END MASTER & SLAVE Hình 6.5.109: Lưu đồ giải thuật của chương trình 1.38.11 Chương trình điều khiển Sử dụng phần mềm Topview Simulation để thực hiện việc viết chương trình và biên dịch, kiểm tra lỗi cú pháp của chương trình Bước 2: Khởi động phần mềm Topview Simulation Bước 3: Mở chức năng soạn thảo một chương trình mới và đặt tên tập tin chương trình là: SP_1_M.ASM và SP_1_S.ASM Bước 4: Viết chương trình điều khiển dưới đây vào máy tính Chương trình cho vi điều khiển Master: ;*************************************************** ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN ;CHUONG TRINH CHO VI DIEU KHIEN MASTER ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG ;MO PHONG PROTUES: SERIALPORT_1 ;*************************************************** ;*************************************************** ;KET NOI: 8 SWITCH > PORT 0 (ACT = 0) ; 8 LED > PORT 1 (CO SU DUNG DEM DAO ACT = 1) ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET SJMP MAIN 429 ORG 23H AJMPSP_ISR ;DIEM NHAP NGAT PORT NOI TIEP ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV P1,#00H ;LED TAT ;**************************************************** ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1 MOV TMOD,#20H ;TIMER 1: MODE 2 TAO TOC DO BAUD CHO SERIAL PORT MOV TH1,#(3) ;BAUD RATE = 9600 SETB TR1 ;TIMER HOAT DONG PORT NOI TIEP HOAT DONG ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT SJMP MP1 ;QUAY LAI ;**************************************************** SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP ;P0 = DU LIEU PHAT ;P1 = DU LIEU THU PUSHACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP MOV A,SBUF ;THU DU LIEU MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED SJMP EXIT_SP_ISR ;THOAT KHOI ISR TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP MOV A,P0 ;DOC DU LIEU LAY TU PORT SW CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1) MOV SBUF,A ;PHAT DU LIEU EXIT_SP_ISR: 430 POP ACC RETI END Chương trình cho vi điều khiển Slave: ;*************************************************** ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN ;CHUONG TRINH CHO VI DIEU KHIEN SLAVER ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG ;MO PHONG PROTUES: SERIALPORT_1 ;*************************************************** ;KET NOI: 8 SWITCH > PORT 0 (ACT = 0) ; 8 LED > PORT 1 (CO SU DUNG DEM DAO ACT = 1) ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP AJMPSP_ISR ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV P1,#00H ;LED TAT ;**************************************************** ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1 MOV TMOD,#20H ;TIMER 1: MODE 2 TAO TOC DO BAUD CHO SERIAL PORT MOV TH1,#(3) ;BAUD RATE = 9600 SETB TR1 ;TIMER HOAT DONG PORT NOI TIEP HOAT DONG ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT SJMP MP1 ;QUAY LAI ;**************************************************** 431 SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP ;P0 = DU LIEU PHAT ;P1 = DU LIEU THU PUSHACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP MOV A,SBUF ;THU DU LIEU MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED SJMP EXIT_SP_ISR ;THOAT KHOI ISR TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP MOV A,P0 ;DOC DU LIEU LAY TU PORT SW CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1) MOV SBUF,A ;PHAT DU LIEU EXIT_SP_ISR: POP ACC RETI END Bước 5: Lưu chương trình trên vào máy tính Bước 6: Thực hiện biên dịch và kiểm tra lỗi chương trình Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Ngun nhân phát sinh lỗi thơng thường do cú pháp của các lệnh khơng chính xác, cần phải được kiểm tra lại. Sau khi hồn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5 Nếu khơng có lỗi xuất hiện thì phần mềm sẽ tự động tạo tập tin mã máy với tên là: SP_1_M.HEX và SP_1_S.HEX và thực hiện tiếp theo các phần nội dung dưới đây 1.38.12 Mơ phỏng hoạt động Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mơ phỏng q trình hoạt động của hệ thống vi điều khiển Bước 7: Khởi động phần mềm ISIS 7 Professional (Protues 7.10) 432 Bước 8: Vẽ sơ đồ thiết kế mạch mơ phỏng điều khiển truyền dữ liệu nối tiếp như Hình 6.5.15 dưới đây MA ÏC H Đ IỀ U K HIỂ N GIA O T IẾ P CỔ N G N Ố I T IEÁ P 33p X1 11.0592MHz C1 33p P0.0M P0.1M P0.2M P0.3M P0.4M P0.5M P0.6M P0.7M +5V RP2 +5V RP1 C2 P0.0S P0.1S P0.2S P0.3S P0.4S P0.5S P0.6S P0.7S C5 33p X2 11.0592MHz C4 33p 10K P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 R1 10k 29 30 31 +5V +5V RP3 U2 PSEN ALE EA D0M D1M D2M D3M D4M D5M D6M D7M 10 18 17 16 15 14 13 12 11 D0M D1M D2M D3M D4M D5M D6M D7M 10K COM 1C 2C 3C 4C 5C 6C 7C 8C 1B 2B 3B 4B 5B 6B 7B 8B 8 ULN2803 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 21 22 23 24 25 26 27 28 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 10 11 12 13 14 15 16 17 AT89C51 +5V P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 +5V +5V +5V +5V C6 10uF RST R18 PSEN ALE EA 10k 29 30 31 +5V +5V P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8 COM 1C 2C 3C 4C 5C 6C 7C 8C 1B 2B 3B 4B 5B 6B 7B 8B 10 18 17 16 15 14 13 12 11 D0S D1S D2S D3S D4S D5S D6S D7S D0S D1S D2S D3S D4S D5S D6S D7S ULN2803 P0.7S KEY7 +5V KEY6 P0.6S KEY8 +5V RP4 U3 10K S LA V E P0.0M KEY9 +5V 18 AT89C51 P0.1M KEY10 P0.2M KEY11 P0.3M P0.4M KEY12 19 +5V KEY5 +5V KEY4 +5V KEY3 +5V KEY2 +5V KEY1 +5V KEY0 +5V +5V R3 R2 330 330 330 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 D0S R4 330 D1S R5 330 D2S R6 330 D3S R7 330 D4S R8 330 D5S R9 330 D6S R10 330 D7S R11 330 D0M R12 330 D1M R13 330 D2M R14 330 D3M R15 330 D4M R16 330 D5M R17 D6M D7M +5V KEY13 P0.5M P0.6M P0.7M KEY14 XTAL2 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 MA S T ER KEY15 XTAL1 P0.0S RST P0.0S 39 P0.1S 38 P0.2S 37 P0.3S 36 P0.4S 35 P0.5S 34 P0.6S 33 P0.7S 32 P0.1S XTAL2 10uF U1 39 P0.0M 38 P0.1M 37 P0.2M 36 P0.3M 35 P0.4M 34 P0.5M 33 P0.6M 32 P0.7M P0.4S 18 C3 10K P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P0.2S XTAL1 P0.5S 19 P0.3S U9 +5V Hình 6.5.110: Sơ đồ ngun lý mơ phỏng hệ thống điều khiển Mạch mơ phỏng này đã được thiết kế sẵn và lưu trong máy tính với tên tập tin là: SerialPort_1.DSN. Vì thế người học có thể tự vẽ thiết kế mạch mơ phỏng hoặc lấy mạch mơ phỏng có sẵn trong cơ sở dữ liệu của mơn học Bước 9: Chọn tập tin chương trình cần mơ phỏng (tập tin mã máy đã được tạo ra từ Bước 6) cho hệ thống vi điều khiển: SP_1_M.HEX và SP_1_S.HEX Bước 10: Thực hiện chạy mơ phỏng và quan sát trực tiếp kết quả trên màn hình máy tính Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Ngun nhân phát sinh lỗi thơng thường do giải thuật chương trình khơng chính xác hoặc do mạch mơ phỏng vẽ khơng chính xác, cần phải được kiểm tra lại. Sau khi hồn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5 (do giải thuật chương trình khơng chính xác) hoặc Bước 8 (do mạch mơ phỏng vẽ khơng chính xác) Nếu khơng có lỗi xuất hiện thì thực hiện tiếp theo các phần nội dung dưới đây 1.38.13 433 Lắp mạch và nạp chương trình điều khiển Sử dụng các khối "Microcontroller Unit Slot", "Point LED", "Inverter" và "Power Supply" có sẵn trên mơ hình thực hành vi điều khiển để lắp ráp mạch theo thiết kế bên trên Bước 11: Kết nối các khối trên mơ hình như Hình 6.5.16 để tạo thành hệ thống mạch điều khiển như bên trên Tắt nguồn AC cấp cho mơ hình thực hành Hình 6.5.111: Sơ đồ kết nối mạch trên mơ hình Sử dụng phần mềm Flash Magic để thực hiện việc nạp chương trình cho vi điều khiển P89V51RB2 trên mơ hình thực hành Bước 12: Bật nguồn AC cấp cho mơ hình thực hành Bước 13: Khởi động phần mềm Flash Magic Bước 14: Kiểm tra cấu hình phần mềm (loại vi điều khiển, cổng COM, tốc độ truyền, chuẩn giao tiếp, Bước 15: Chọn tập tin chương trình điều khiển (tập tin mã máy đã được tạo ra từ Bước 6): SP_1_M.HEX và SP_1_S.HEX Bước 16: Nạp chương trình vào vi điều khiển Bước 17: Nhấn nút "Master Reset" khối "Microcontroller Unit Slot" để chạy chương trình và quan sát trực tiếp kết quả trên mơ hình thực hành Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Ngun nhân phát sinh lỗi thường do việc lắp ráp phần cứng khơng chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại. Sau khi hồn tất việc kiểm tra và hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 15 434 Nếu khơng có lỗi xuất hiện thì hồn tất bài thực hành 1.38.14 Bài tập thực hành 1.1.1.1 Bài tập mẫu Bài tập số 1: Nội dung: "Viết chương trình, mơ phỏng và lắp ráp mạch điều khiển truyền liệu thông qua port nối tiếp. Thay đổi trạng thái của các LED đơn tại vi điều khiển 2 (Slave) theo trạng thái của các nút nhấn tại vi điều khiển 1 (Master) và ngược lại, trong khi các LED 7 đoạn vẫn hiển thị số đếm liên tục từ 00 đến 99. Sử dụng phương pháp ngắt port nối tiếp cho việc truyền dữ liệu." Lưu đồ giải thuật: Sơ đồ nguyên lý mô phỏng: 435 MA ÏC H Đ IỀ U K HIỂ N GIA O TIẾ P CỔ N G N Ố I T IẾ P 33p X1 11.0592MHz C1 33p P0.0M P0.1M P0.2M P0.3M P0.4M P0.5M P0.6M P0.7M +5V RP2 +5V RP1 C2 P0.0S P0.1S P0.2S P0.3S P0.4S P0.5S P0.6S P0.7S C5 33p X2 11.0592MHz C4 33p 10K P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 R1 10k 29 30 31 +5V +5V RP3 U2 PSEN ALE EA D0M D1M D2M D3M D4M D5M D6M D7M 10 18 17 16 15 14 13 12 11 D0M D1M D2M D3M D4M D5M D6M D7M 10K COM 1C 2C 3C 4C 5C 6C 7C 8C 1B 2B 3B 4B 5B 6B 7B 8B 8 ULN2803 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 21 P2.0M 22 P2.1M 23 P2.2M 24 P2.3M 25 P2.4M 26 P2.5M 27 P2.6M 28 P2.7M P2.0S21 P2.1S22 P2.2S23 P2.3S24 P2.4S25 P2.5S26 P2.6S27 P2.7S28 10 11 12 13 14 15 16 17 10 11 12 13 14 15 16 17 AT89C51 +5V P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 +5V +5V +5V +5V +5V 10uF R18 10k 29 30 31 PSEN ALE EA +5V +5V P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 COM 1C 2C 3C 4C 5C 6C 7C 8C 1B 2B 3B 4B 5B 6B 7B 8B 10 18 17 16 15 14 13 12 11 D0S D1S D2S D3S D4S D5S D6S D7S D0S D1S D2S D3S D4S D5S D6S D7S ULN2803 P0.7S KEY7 +5V KEY6 P0.6S KEY8 +5V RP4 U3 10K S LA V E P0.0M KEY9 +5V C6 RST AT89C51 P0.1M KEY10 P0.2M KEY11 P0.3M KEY12 P0.4M KEY13 P0.5M P0.6M P0.7M KEY14 18 XTAL2 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 MA S TER KEY15 19 XTAL1 +5V KEY5 KEY4 +5V +5V KEY3 KEY2 KEY1 +5V KEY0 +5V +5V P0.0S RST P0.0S 39 P0.1S 38 P0.2S 37 P0.3S 36 P0.4S 35 P0.5S 34 P0.6S 33 P0.7S 32 P0.1S XTAL2 10uF U1 39 P0.0M 38 P0.1M 37 P0.2M 36 P0.3M 35 P0.4M 34 P0.5M 33 P0.6M 32 P0.7M P0.4S 18 C3 10K P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P0.2S XTAL1 P0.5S 19 P0.3S U9 +5V +5V +5V 330 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 R19 R20 R21 R22 R23 R24 R25 U4 P2.4M P2.5M P2.6M P2.7M A B C D BI/RBO RBI LT U5 P2.0M P2.1M P2.2M P2.3M A B C D BI/RBO RBI LT QA QB QC QD QE QF QG 13 12 11 10 15 14 56 56 56 56 56 56 56 13 12 11 10 15 14 56 56 56 56 56 56 56 +5V A1 B1 C1 D1 E1 F1 G1 A1 B1 C1 D1 E1 F1 G1 A2 B2 C2 D2 E2 F2 G2 U6 P2.4S P2.5S P2.6S P2.7S P2.0S P2.1S P2.2S P2.3S 74LS47 QA QB QC QD QE QF QG A B C D BI/RBO RBI LT U7 A2 B2 C2 D2 E2 F2 G2 74LS47 R26 R27 R28 R29 R30 R31 R32 R33 R34 R35 R36 R37 R38 R39 +5V A B C D BI/RBO RBI LT QA QB QC QD QE QF QG 13 12 11 10 15 14 56 56 56 56 56 56 56 13 12 11 10 15 14 56 56 56 56 56 56 56 +5V A3 B3 C3 D3 E3 F3 G3 A3 B3 C3 D3 E3 F3 G3 74LS47 QA QB QC QD QE QF QG A4 B4 C4 D4 E4 F4 G4 R40 R41 R42 R43 R44 R45 R46 74LS47 Sơ đồ lắp ráp: Chương trình điều khiển cho vi điều khiển Master: ;*************************************************** 436 D0S R2 330 D1S R3 330 D2S R4 330 D3S R5 330 D4S R6 330 D5S R7 330 D6S R8 330 D7S R9 330 D0M R10 330 D1M R11 330 D2M R12 330 D3M R13 330 D4M R14 330 D5M R15 330 D6M R16 330 D7M R17 +5V A4 B4 C4 D4 E4 F4 G4 ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN ;CHUONG TRINH CHO VI DIEU KHIEN MASTER ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG ;TRONG KHI SO DEM TANG DAN TU 00 DEN 99 ;MO PHONG PROTUES: SERIALPORT_1 ;*************************************************** ;*************************************************** ;KET NOI: 8 SWITCH > PORT 0 (ACT = 0) ; 8 LED > PORT 1 (CO SU DUNG DEM DAO ACT = 1) ; 2 LED 7 > PORT 2 (BCD) ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP AJMPSP_ISR ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV P1,#00H ;LED TAT ;**************************************************** ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1 MOV TMOD,#20H ;TIMER 1: MODE 2 TAO TOC DO BAUD CHO SERIAL PORT MOV TH1,#(3) ;BAUD RATE = 9600 SETB TR1 ;TIMER HOAT DONG PORT NOI TIEP HOAT DONG ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT MOV A,#00H ;GIA TRI BAT DAU LOOP: MOV P2,A ;XUAT HIEN THI LCALLDELAY500MS ADD A,#1 ;TANG GIA TRI (+1) 437 DA A CJNE A,#00,LOOP SJMP MP1 ;QUAY LAI ;**************************************************** SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP ;P0 = DU LIEU PHAT ;P1 = DU LIEU THU PUSHACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP MOV A,SBUF ;THU DU LIEU MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED SJMP EXIT_SP_ISR ;THOAT KHOI ISR TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP MOV A,P0 ;DOC DU LIEU LAY TU PORT SW CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1) MOV SBUF,A ;PHAT DU LIEU EXIT_SP_ISR: POP ACC RETI ;*************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH00H PUSH01H PUSH02H MOV R0,#250 DEL2: MOV R1,#100 DEL1: MOV R2,#10 DJNZ R2,$ DJNZ R1,DEL1 DJNZ R0,DEL2 POP 02H POP 01H POP 00H RET 438 END Chương trình điều khiển cho vi điều khiển Slave: ;*************************************************** ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN ;CHUONG TRINH CHO VI DIEU KHIEN SLAVER ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG ;TRONG KHI SO DEM GIAM DAN TU 99 DEN 00 ;MO PHONG PROTUES: SERIALPORT_1 ;*************************************************** ;KET NOI: 8 SWITCH > PORT 0 (ACT = 0) ; 8 LED > PORT 1 (CO SU DUNG DEM DAO ACT = 1) ; 2 LED 7 > PORT 2 (BCD) ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP AJMPSP_ISR ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV P1,#00H ;LED TAT ;**************************************************** ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1 MOV TMOD,#20H ;TIMER 1: MODE 2 TAO TOC DO BAUD CHO SERIAL PORT MOV TH1,#(3) ;BAUD RATE = 9600 SETB TR1 ;TIMER HOAT DONG PORT NOI TIEP HOAT DONG ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT MOV A,#99H ;GIA TRI BAT DAU LOOP: MOV P2,A ;XUAT HIEN THI 439 LCALLDELAY500MS ADD A,#99H ;GIAM GIA TRI (1) CJNE A,#0FFH,PROCESS_ERROR ;KIEM TRA LOI KHI GIAM QUA GIA TRI 66 65 SETB C ;XU LY LOI (CHO CO C = 1) PROCESS_ERROR: DA A CJNE A,#0F9H,LOOP SJMP MP1 ;QUAY LAI ;**************************************************** SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP ;P0 = DU LIEU PHAT ;P1 = DU LIEU THU PUSHACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP MOV A,SBUF ;THU DU LIEU MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED SJMP EXIT_SP_ISR ;THOAT KHOI ISR TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP MOV A,P0 ;DOC DU LIEU LAY TU PORT SW CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1) MOV SBUF,A ;PHAT DU LIEU EXIT_SP_ISR: POP ACC RETI ;*************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH00H PUSH01H PUSH02H MOV R0,#250 DEL2: MOV R1,#100 DEL1: MOV R2,#10 DJNZ R2,$ 440 DJNZ R1,DEL1 DJNZ R0,DEL2 POP 02H POP 01H POP 00H RET END 1.38.15 Bài tập ứng dụng Bài 1: Cho hệ thống truyền dữ liệu giữa hai vi điều khiển (Master và Slave) thơng qua port nối tiếp (UART) được thiết kế như hình vẽ bên dưới. Viết chương trình điều khiển hệ thống để thực hiện các hoạt động sau: Ban đầu khi chưa nhấn nút thì tất cả các LED đơn đều tắt và các LED 7 đoạn đều hiển thị số 0 Truyền dữ liệu từ MASTER sang SLAVE: Nhấn nút “KEY8/MASTER”: LED đơn “D0 D7/SLAVE” sáng tắt liên tục Nhấn nút “KEY9/MASTER”: LED đơn “D0 D7/SLAVE” sáng đuổi từ trái sang phải liên tục Nhấn nút “KEY10/MASTER”: LED đơn “D0 D7/SLAVE” sáng dần từ trái sang phải liên tục Nhấn nút “KEY11/MASTER”: LED đơn “D0 D7/SLAVE” sáng dần từ hai bên vào giữa liên tục Nhấn nút “KEY12/MASTER”: LED đơn “D0 D7/SLAVE” tắt hết Nhấn nút “KEY13/MASTER”: LED đơn “D0 D7/SLAVE” sáng hết Truyền dữ liệu từ SLAVE sang MASTER: Nhấn nút “KEY0/SLAVE”: LED đoạn “7seg/MASTER” đếm lên liên tục (giá trị đếm nằm trong khoảng 00…99) Nhấn nút “KEY0/SLAVE”: LED đoạn “7seg/MASTER” đếm xuống liên tục (giá trị đếm nằm trong khoảng 00…99) Nhấn nút “KEY1/SLAVE”: LED đoạn “7seg/MASTER” đang đếm (lên hoặc xuống) sẽ bị dừng lại và hiển thị liên tục giá trị tại thời điểm bị dừng Nhấn nút “KEY2/SLAVE”: LED đoạn “7seg/MASTER” đang dừng sẽ tiếp tục đếm (lên hoặc xuống) từ giá trị bị dừng 441 Nhấn nút “KEY4/SLAVE”: LED đoạn “7seg/MASTER” hiển thị liên tục giá trị 00 Bài 2: Cho hệ thống truyền dữ liệu giữa hai vi điều khiển (Master và Slave) thơng qua port nối tiếp (UART) như hình vẽ ở Bài 1 bên trên. Viết chương trình điều khiển hệ thống để thực hiện các hoạt động sau: Ban đầu khi chưa nhấn nút thì tất cả các LED đơn đều tắt và các LED 7 đoạn đều hiển thị số 0 Nhấn nút “KEY8/MASTER”: 16 LED đơn “D8 D15/MASTER” và “D0D7/SLAVE” sáng đuổi từ trái sang phải liên tục Nhấn nút “KEY9/MASTER”: 16 LED đơn “D8 D15/MASTER” và “D0D7/SLAVE” sáng đuổi từ phải sang trái liên tục Nhấn nút “KEY10/MASTER”: 16 LED đơn “D8 D15/MASTER” và “D0D7/SLAVE” tắt hết Nhấn nút “KEY0/SLAVE”: 4 LED 7 đoạn “7seg/MASTER” và “7seg/SLAVE” đếm lên liên tục từ 0000 đến 9999 Nhấn nút “KEY1/SLAVE”: 4 LED 7 đoạn “7seg/MASTER” và “7seg/SLAVE” đếm xuống liên tục từ 9999 đến 0000 Nhấn nút “KEY2/SLAVE”: 4 LED 7 đoạn “7seg/MASTER” và “7seg/SLAVE” hiển thị giá trị 0000 442 ... Khả năng, kích thước và độ phức tạp của các? ?vi? ?điều? ?khiển? ?được nâng cao thêm một bậc quan trọng vào năm 1980 khi Intel cơng bố? ?vi? ?điều? ?khiển? ?8051, đây là? ?vi? ?điều? ?khiển? ?đầu tiên của họ? ?vi? ?điều? ?khiển? ?MCS51 TM. So sánh với? ?vi? ? điều? ?khiển? ?8048,? ?vi? ?... được? ?trình? ?bày trong phần sau của? ?giáo? ?trình. Vào năm 1976 Intel đã giới thiệu? ?vi? ?điều? ?khiển? ?8748, đây là? ?vi? ?điều? ?khiển? ?đầu tiên trong họ vi? ?điều? ?khiển? ?MCS48TM. Mạch điện tích hợp bên trong? ?vi? ?điều? ?khiển? ?này chứa trên 17,000 transistor,? ?vi? ?điều? ?khiển? ?8747 được cung cấp 1 CPU, 1 KB ... Số bit dữ liệu của? ?vi? ?điều? ?khiển: 8 bit, 16 bit, 32 bit,… Tốc độ xử lý lớn nhất mà? ?vi? ?điều? ?khiển? ?được hỗ trợ Kiểu chân đóng gói? ?vi? ?điều? ?khiển: DIP, QFP,… Cơng suất tiêu thụ điện năng của? ?vi? ?điều? ?khiển điều? ?khiển