1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình vi điều khiển

433 25 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

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: Single­Board   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, KIM­1 của MOS Technology  và SDK­85 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 MCS­48TM. 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ọ MCS­48TM đã 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 MCS­51 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ọ  MCS­51TM 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ọ MCS­51 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 MCS­51TM. 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à “D0­D7/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à “D0­D7/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à “D0­D7/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? ?MCS­51 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? ?MCS­48TM. 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

Ngày đăng: 23/03/2022, 22:13

Xem thêm:

Mục lục

    1.1.1.1. Lệnh ADD A, <src-byte>

    1.1.1.2. Lệnh ADDC A, <src-byte>

    1.1.1.3. Lệnh SUBB A, <src-byte>

    1.1.1.1. Lệnh ANL <dest-byte>, <src-byte>

    1.1.1.2. Lệnh ORL <dest-byte>, <src-byte>

    1.1.1.3. Lệnh XRL <dest-byte>, <src-byte>

    1.1.1.1. Lệnh MOV <dest-byte>, <src-byte>

    1.1.1.2. Lệnh MOVC A, @A+ <base-reg>

    1.1.1.3. Lệnh MOVX <dest-byte>, <src-byte>

    1.1.1.4. Lệnh MOV DPTR, #data16

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

TÀI LIỆU LIÊN QUAN