XÂY DỰNG HỆ PHÁT TRIỂN CHO CÁC HỆ MICROCONTROLLER

20 132 0
XÂY DỰNG HỆ PHÁT TRIỂN CHO CÁC HỆ MICROCONTROLLER

Đ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

Trong giai đoạn hiện nay việc phát triển ứng dụng các hệ vi điều khiển rất đa dạng, chính vì vậy mà các hệ vi điều khiển được sử dụng để giải quyết các bài toán rất khác nhau. Tính đa dạng của các ứng dụng phụ thuộc vào việc lựa chọn các hệ vi điều khiển cụ thể cũng như vào kỹ thuật lập trình. Ngày nay các bộ vi điều khiển có mặt trong rất nhiều thiết bị điện tử hiện đại: từ trong gia đình, trong văn phòng, trong các nhà máy công nghiệp

Lời nói đầu Trong giai đoạn hiện nay việc phát triển ứng dụng các hệ vi điều khiển rất đa dạng, chính vì vậy mà các hệ vi điều khiển đợc sử dụng để giải quyết các bài toán rất khác nhau. Tính đa dạng của các ứng dụng phụ thuộc vào việc lựa chọn các hệ vi điều khiển cụ thể cũng nh vào kỹ thuật lập trình. Ngày nay các bộ vi điều khiển có mặt trong rất nhiều thiết bị điện tử hiện đại: từ trong gia đình, trong văn phòng, trong các nhà máy công nghiệp. Lĩnh vực ứng dụng của vi điều khiển cũng rất rộng lớn từ nghiên cứu khoa học, truyền dữ liệu, năng lợng, giao thông vận tải, công nghiệp, y tế và quân sự Trong lĩnh vực quân sự các hệ vi điều khiển đã rất đợc quan tâm bởi vì không những nó gọn nhẹ hơn các phơng thức điều khiển cũ nhiều lần mà cái quan trọng hơn cả đó là tính chính xác, độ tin cậy và hiệu quả của chúng. Đối với Hải quân chúng ta là một quân chủng kỹ thuật, tuy vậy lực lợng tàu thuyền và trang thiết bị vũ khí nhìn chung đợc trang bị từ khá lâu và nhiều thiết bị đã lạc hậu hiệu suất sử dụng không cao. Chính vì vậy việc nghiên cứu ứng dụng các hệ vi điều khiển để thay thế, cải tiến các hệ điều khiển cũ là một vấn đề rất thiết thực cấp bách, nhằm nâng cao hiệu quả và kéo dài thời hạn phục vụ của trang bị - vũ khí. Từ nhận thức đó tôi đã nhận đề tài "Xây dựng hệ phát triển cho các hệ Microcontroller". Để thống nhất và tiện trong khi đọc, thì cụm từ Microcontroller (vi điều khiển) ta đọc là vi điều khiển. Đề tài có thể nghiên cứu trên rất nhiều hệ vi điều khiển để xây dựng hệ phát triển. Tuy vậy do tính phổ dụng của họ vi điều khiển MCS-51 (Microcontroller System), nên tôi đã đi sâu vào tìm hiểu và nghiên cứu về họ này, mà cụ thể đi sâu vào bộ vi điều khiển 89C51, đây là chíp điều khiển hiện nay đang đợc ứng dụng rất rộng rãi vì sự tiện lợi của nó. Đề tài đợc cấu trúc gồm 3 chơng. Chơng 1: Họ vi điều khiển MCS-51 và bộ vi điều khiển 89C51 Chơng 2: Xây dựng hệ phát triển cho họ vi điều khiển MCS-51 Chơng 3: ứng dụng hệ phát triển để tự động hoá quá trình điều khiển độ sâu camera của khí tài dò tìm thuỷ lôi IT-3 Để hoàn thành đề tài này tôi đã nhận đợc sự gúp đỡ tận tình của các thầy hớng dẫn, của các thầy trong khoa kỹ thuật điều khiển và đồng nghiệp. Tôi xin chân thành cảm ơn. Trong quá trình thực hiện đề tài do năng lực còn hạn chế, mặt khác đây là một lĩnh vực khá mới đối với tôi cho nên không tránh khỏi sai sót, tôi rất mong đợc sự gúp đỡ của các thầy giáo và đồng nghiệp để tôi tiếp tục nghiên cứu tốt hơn. Chơng 1 họ vi điều khiển MCS-51 và bộ vi điều khiển 89C51 1.1. họ vi điều khiển MCS-51 1.1.1. Khái quát chung về họ vi điều khiển MCS-51 Những đặc điểm chính và nguyên tắc hoạt động của các bộ vi điều khiển khác nhau không nhiều. Khi đã sử dụng thành thạo một loại vi điều khiển thì ta có thể nhanh chóng vận dụng kinh nghiệm để làm quen và làm 1 chủ các ứng dụng của một vi điều khiển khác. Bộ vi điều khiển thông dụng nhất, đó là họ MCS-51, họ có số lợng đợc sản xuất ra nhiều nhất hiện nay. Nếu nh họ MCS-51 là họ vi điều khiển điển hình thì 8051 chính là đại diện tiêu biểu. Bên cạnh những thông số chung bộ vi điều khiển 8051 (chip 8051) có bộ nhớ chơng trình ROM tơng đối lớn, đến 4 kbyte, đợc tích hợp ngay trong chíp và nh vậy có thể hình thành trọn vẹn một máy tính. Bộ nhớ ROM bên trong của 8051/52 và 8751/52 khi chế tạo cũng nh lập trình đều cho phép bảo vệ chống đọc ra. Bởi vì nội dung của ROM này phải đợc lập trình ngay từ khi chế tạo, nên mã chơng trình của nhà sản xuất cũng phải đợc chuyển giao khi bán hàng. Thành thử phơng pháp này chỉ mang tính kinh tế khi chuyển giao những loạt hàng lớn và vì lý do này mà chip 8051 không đợc chào bán lẻ. Tuy vậy chip 8051 cũng có thể làm việc với một chơng trình khác bằng cách đấu thên một bộ nhớ ROM ở bên ngoài. Để thông báo cho bộ vi điều khiển biết là phải tiếp nhận chơng trình điều hành từ bộ nhớ ROM ở bên ngoài và sử dụng chân /EA dể trao đổi với bộ nhớ ROM bên ngoài. Với chip 8051 ta không thể viết thêm một chơng trình nào khác, thành ra để dễ ràng đáp ứng yêu cầu mở rộng, các nhà thiết kế đã thiết kế ra các chíp có tính chất gần gống 8051 chỉ có một điểm khác là bộ nhớ ROM đợc thay thế bằng bộ nhớ EPROM hoặc bộ nhớ EEPROM có cùng dung lợng nhớ, nhng ta có thể xoá đi đợc các chơng trình cũ bằng tia tử ngoại hoặc băng điện. Sau đó nạp chơng trình mới vào bằng thiết bị chuyên dụng. Sau khi đã nạp chơng trình mới bộ vi điều khiển hoạt động giống nh bộ 8051 thông thờng, tất nhiên là giá thành cao hơn. Đại diện cho các chíp trên đó là chip 89C51 đây là chíp có bộ nhớ EEPROM (FLASH ROM) có thể nạp và xoá chơng trình nhiều lần bằng điện. Tuy có cấu tạo khác nhau về bộ nhớ chơng trình nhng về cơ bản, nhất là tập lênh thì bộ vi điều khiển 8051 và 8951 đều có thể dùng lẫn cho nhau đợc. Vì vậy mà chíp này hiện đang đợc ứng dụng rất nhiều trong các lĩnh vực khác nhau, cho nên trong đồ án tôi đi sâu vào nghiên cứu và trình bày về chip vi điều khiển này. 1.1.2. Những tính chất đặc trng cho họ vi điều khiển MCS-51 - Đơn vị xử lý trung tâm 8 bit đã đợc tối u hoá để đáp ứng chức năng điều khiển. - Khối lôgic xử lý theo bit thuận tiện cho các phép toán Bool. - Bộ tạo dao động giữ nhịp bên trong đến 12MHz - Tập lệnh rất phong phú. - Giao diện nối tiếp có khả năng hoạt động song công, đồng bộ (UA RT). - Có 16 (32) đờng dẫn vào/ra hai hớng và từng đờng dẫn có thể đợc định địa chỉ một cách tách biệt. - Năm nguồn ngắt với hai mức u tiên. - Dung lợng của bộ nhớ ROM bên ngoài có thể đến 64 kbyte - Dung lợng của bộ nhớ dữ liệu RAM bên ngoài có thể đến 64 kbyte. - Dung lợng của bộ nhớ RAM bên trong, nhiều nhất có thể đến 128 kbyte. - Hai bộ đếm định thời 16 bit. - Bus và khối định thời tơng thích với các khối ngoại vi của bộ vi điều khiển 8085/88. Bảng 1.1 trình bày tổng quát về họ vi điều khiển MCS-51. 2 Bảng 1.1 Một số chíp vi điều khiển trong họ MCS-51 và những thông số cơ bản của chúng Tên Công nghệ ROM trong RAM trong Timer 16 bit Nguồn ngắt 8031 8051 8751 NMOS NMOS NMOS - 4 kbyte 4k EEPROM 128 byte 128 byte 128 byte 2 2 2 5 5 5 8032 8052 8052 NMOS NMOS NMOS - 4 kbyte 4k EEPROM 256 byte 256 byte 256 byte 2 2 2 6 6 6 80C31 80C51 87C51 CMOS CMOS CMOS - 4 kbyte 4k EEPROM 128 byte 128 byte 128 byte 2 2 2 5 5 5 80C32 80C52 87C52 CMOS CMOS CMOS - 4 kbyte 4k EEPROM 256 byte 256 byte 256 byte 3 3 3 6 6 6 1.1.3. Những ứng dụng cơ bản của họ vi điều khiển 8051 Sau khi ra đời họ vi điều khiển 8051 đã đợc ứng dụng rộng rãi trong các lĩnh vực khác nhau: - Trong gia đình sử dụng để điều khiển thiết bị điện, điện thoại, máy tính, truyền hình cáp, máy quay cammera, các nhạc cụ, các bộ mở cửa - Trong văn phòng sử dụng cho máy tính, điện thoại, hệ thống an toàn, máy sao chụp , máy in lazer, máy Fax - Trong công nghiệp sử dụng để điều khiển các lò nung, các dây chuyền sản xuất, các máy cái, máy công cụ, trong ô tô - Trong quân sự đã đợc sử dụng để điều khiển các phơng tiện, vũ khí phục vụ chiến tranh Trong thực tế hiện nay họ vi điều khiển MCS-51 còn đợc ứng dụng vào nhiều lĩnh vực khác nữa và nó đã và đang mang lại sự thay đổi rất lớn trong lĩnh vực tự động điều khiển. 1.2. bộ vi điều khiển 89C51 2.2.1. Cấu trúc phần cứng 1. Sơ đồ chân tín hiệu của chip 89C51 Chip 89C51, có đầy đủ chức năng của một hệ vi điều khiển 8 bit, đợc tích hợp trong một chip IC 40 chân. Các đặc tính cơ bản: tần số xung đồng hồ 12 MHz; bộ nhớ EEPROM 4KB và bộ nhớ RAM 128B c trú bên trong, nhng có thể mở rộng thêm bằng các bộ nhớ ngoài tới 64KB; có 4 cổng 8 bit, vào/ra hai chiều để giao tiếp với các thiết bị ngoại vi. Sơ đồ chân kí hiệu của chip 89C51đợc trình bày trên hình 1.1. 3 VssVcc XTAL1 XTAL2 P0.ì P3.ì chip 89C51 RxD TxD INT0 INT1 T0 T1 WR RD P1.ì P2.ì PSEN RST ALE-(PRO) EA-Vpp ADDRESS AD.ì P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RxD-P3.0 TxD-P3.1 INT0-P3.2 INT1-P3.3 T0-P3.4 T1-P3.5 WR-P3.6 RD-P3.7 XTAL2 XTAL1 Vss 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 chip 89C51 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 Vcc P0.0-AD0 P0.1-AD1 P0.2-AD2 P0.3-AD3 P0.4-AD4 P0.5-AD5 P0.6-AD6 P0.7-AD7 EA-Vpp ALE-(PRO) PSEN P2.7-A15 P2.6-A14 P2.5-A13 P2.4-A12 P2.3-A11 P2.2-A10 P2.1-A9 P2.0-A8 Hình 1.1. Sơ đồ chân ký hiệu của chip 89C51 Chức năng các chân của chip 89C51 đợc trình bày trên bảng 1.2. Bảng 1.2. Chức năng các chân của chip 89C51 Chân Ký hiệu Chức năng 1-8 P1.0-P1.7 Chỉ có một chức năng là xuất/nhập nghĩa là để giao tiếp với các thiết bị bên ngoài khi có yêu cầu 9 RES ET Là ngõ vào xoá chính dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống 10-17 P3.0-P3.7 Có hai chức năng xuất/nhập và khi không xuất/nhập thì mỗi chân có chức năng riêng liên quan đến đặc tr- ng cụ thể của chip. 18 19 XTAL1 XTAL2 Để ghép mạch dao động bên trong chíp 89C51 với mạch dao động thạch anh bên ngoài 20 Vss Nối mass 21-28 P2.0-P2.7 Xuất/nhập hoặc byte địa chỉ cao của bus địa chỉ 16 bit cho các thiết kế có bộ nhớ chơng trình ngoài hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài 29 /PSEN Xuất ra các xung đọc dùng cho bộ nhớ chơng trình ngoài 30 ALE Xuất ra các xung điều khiển để lu trữ trung gian các địa chỉ. 31 /EA Có thể đợc nối với 5V(lôgic 1) ở 8051/8052 thực hiện chơng trình ROM trong hoặc với GND (lôgic 0) ch- ơng trình cần thực hiện chứa ở ROM ngoài, khi này chân /EA phải dợc đặt lên điện áp mass. 32-39 P0.7-P0.1 Trong các thiết kế có tối thiểu thành phần làm nhiệm vụ xuất nhập. trong thiết kế lớn hơn có bộ nhớ ngoài trở thành bus địa chỉ và bus dự liệu đa hợp. 40 V cc Nguồn nuôi dơng (+5V) 2. Sơ đồ chức năng của chip 89C51(hình 1.2) Cấu trúc phần cứng của chip chip 89C51 nh là một hệ vi điều khiển 8 bít tối thiểu, bao gồm các thành phần cơ bản: Các thanh ghi chức năng đặc biệt (SFR); bộ tính toán logic và số học (ALU); các cổng vào/ra (I/O); bộ nhớ chơng trình EEPROM và bộ nhớ dữ liệu RAM. a. Các thanh ghi chức năng đặc biệt 4 Các thanh ghi chức năng đặc biệt SFR đảm nhiệm các chức năng khác nhau trong chip 89C51. Chúng nằm ở RAM trong của chip 89C51 và chiếm vùng không gian nhớ 128 B đợc định địa chỉ từ 80H đến FFH. Tổ chức của SFR trên bảng 1.2. P0.0-P0.7 P2.0-P2.7 PSEN ALE EA RST P0.1-P1.7 P3.0-P3.7 Hình 1.2. Sơ đồ chức năng của chip 89C51 - Thanh ghi tích luỹ Acc: Dài 8 bit, có địa chỉ E0H trong SFR, dùng để lu trữ các toán hạng và kết quả phép tính. - Thanh ghi B: Dài 8 bit, địa chỉ F0H, thờng đợc sử dụng khi thực hiện các phép toán nhân, chia. Đối với các lệnh khác, nó nh là một thanh ghi đệm. 5 Vss Vcc XTAL2 XTAL1 Điều khiển cổng 0 Điều khiển cổng 2 Chốt cổng 0 Chốt cổng 2 EEPROM RAM T.Ghi Đ/c RAM T.Ghi Đ/c Ch.trình T.Ghi đệm T.Ghi Tăng PC PC DPTR T.Ghi B Acc TMP2 TMP1 SP ALU T.Ghi lệnh T.Ghi trạng thái đ/k PSW PCONSCONTMODTCONTH0TL0 TH1TL1SBUFIEIPKhối ngắt cổng nối tiếp và định thời Chốt cổng 1 Đ.khiển cổng 1 Chốt cổng 1 Đ.khiển cổng 1 OSC - Con trỏ ngăn xếp SP: Dài 8 bit, địa chỉ 81H. Giá trị của nó tự động tăng trớc khi thực hiện các lệnh PUSH, CALL. - Con trỏ dữ liệu DPTR: Dài 16 bit, gồm hai thanh ghi dài 8 bit hợp lại: thanh ghi byte cao DPH và thanh ghi byte thấp DPL. Bảng 1.3. Tổ chức của SFR trong RAM F8 F0 E8 E0 D8 D0 C8 C0 B8 B0 A8 A0 98 90 88 80 FF F7 EF E7 DF D7 CF C7 BF B7 AF A7 9F 97 8F 87 B AC PSW IP P3 IE P2 SCON SBUF P1 TCON TMOD TL0 TL1 TH0 Th1 P0 SP DPL DPH PCON - Từ trạng thái chơng trình PSW: Dài 8 bit, địa chỉ D0H, dùng để chứa thông tin về trạng thái chơng trình, mỗi bit của PSW đảm nhiệm một chức năng cụ thể. Thanh ghi này cho phép truy cập ở mức bit. - Đệm dữ liệu truyền nối tiếp SBUF: Địa chỉ 99H, gồm hai thanh ghi đệm phát và đệm thu. - Thanh gi thời gian cơ sở: Chip chip 89C51 có hai đôi thanh ghi là TH0, TL0 và Th1, TL1. Mỗi đôi dài 16 bit, dùng làm bộ đếm trong khối định thời/bộ đếm tơng ứng. Địa chỉ các thanh ghi này từ 8AH đến 8DH. - Thanh ghi điều khiển mode định thời/bộ đếm TMOD: Dài 8 bit, có địa chỉ 89H, dùng để điều khiển kiểu chức năng định thời gian hay chức năng bộ đếm. - Thanh ghi điều khiển khối định thời/bộ đếm TCON: Địa chỉ là 88H. Khối định thời/bộ đếm trong mỗi mode định thời hoặc bộ đếm lại có 4 chế độ hoạt động và thanh ghi TCON sẽ điều khiển việc lựa chọn này. - Thanh ghi điều khiển cổng nối tiếp SCON: Địa chỉ là 98H. Nó giúp chip 89C51 thiết lập trạng thái và điều khiển cổng thực hiện chức năng truyền dữ liệu nối tiếp. - Thanh ghi cho phép ngắt IE: Dài 8 bit, có địa chỉ là A8H. Nó cho phép truy cập tới mức bit. b. Các cổng của chip 89C51 Chip 89C51 có 4 cổng P0, P1, P2, P3 gồm 4 thanh ghi đệm cổng tơng ứng P0, P1, P2, P3. Cả 4 cổng của chip 89C51 đều là các cổng vào/ra hai 6 chiều 8 bit. Riêng cổng P3 còn có thể đợc sử dụng để làm các chức năng điều khiển đặc biệt khác (các đầu vào ngắt ngoài, các đầu vào đếm ngoài cho Timer 0,Timer 1) và truyền thông nối tiếp. c. Bộ tạo dao động của chip chip 89C51 Chip 89C51 có 2 chân XTAL1 và XTAL2 đợc dùng nối với bộ tạo dao động để tạo xung đồng hồ cho chip. Có hai phơng pháp tạo xung đồng hồ cho chip 89C51. Đó là dùng bộ dao động bên trong và dùng tín hiệu bên ngoài. d. Chu kỳ máy của chip chip 89C51 Một chu kỳ máy của chip 89C51 bao gồm 6 trạng thái từ S1 đến S6, mỗi trạng thái gồm 2 nhịp và đợc gọi là hai pha P1, P2. Nh vậy mỗi chu kỳ máy có 12 nhịp (pha). Nếu bộ dao động làm việc với tần số 12MHz thì một pha kéo dài 1às. Chu kỳ máy đợc minh họa trên hình 1.3. Chu kỳ máy S6 S1 S2 S3 S4 S5 S6 S1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 Hình 1.3. Minh hoạ chu kỳ máy e. Các ngắt của chip chip 89C51 Chip 89C51 có sáu ngắt, bao gồm hai ngắt ngoài /INT0, /INT1 và bốn ngắt trong (hai ngắt của khối định thời/bộ đếm và hai ngắt phục vụ cổng nối tiếp). Các ngắt ngoài có thể đợc kích hoạt theo mức hoặc theo sờn xung, tuỳ thuộc vào giá trị các bit IT0, IT1 trong thanh ghi TCON. Ngắt ngoài có hai cờ ngắt tơng ứng là IE0, IE1 cũng nằm trong thanh ghi TCON. Các ngắt trong của hai khối định thời/bộ đếm đợc phát sinh bởi cờ ngắt TF0, TF1. Hai cờ ngắt này đợc thiết lập khi thanh ghi định thời/bộ đếm thực hiện quay vòng. g. Nguyên lý khởi động lại chip chip 89C51 Tín hiệu khởi động lại chip 89C51 đợc đa qua chân RST bằng cách giữ chân RST ở mức cao trong khoảng thời gian lớn hơn hai chu kỳ máy (24 chu kỳ dao động). Tín hiệu khởi động lại bên ngoài đa vào chân RST không đồng bộ với thời gian RESET bên trong. Chân RST sẽ đợc lấy mẫu S5-P2 của mỗi chu kỳ máy, các chân của cổng sẽ giữ hoạt động hiện hành của chúng cho 19 chu kỳ dao động sau giá trị logic 1 đã đợc lấy mẫu ở chân RST. Sau khi khởi động lại, giá trị các thanh ghi chức năng đặc biệt (SFR) đợc gán giá trị nh bảng 1.3. Bảng 1.4. Giá trị RESETcủa các thanh ghi Thanh ghi của SFR Giá trị RESET PC 0000H Acc 00H 7 B 00H PSW 00H SP 07H DPTR 0000H P0 ữ P3 FFH IP ììì00000B IE 0ìì00000B TMOD 00H TCON 00H TH0 00H TL0 00H TH1 00H TL1 00H SCON 00H SBUF PCON (NMOS) 0ìììììììB PCON (CMOS) 0ììì0000B h. Khối định thời/bộ đếm Thanh ghi định thời/bộ đếm Trong chip chip 89C51 có hai thanh ghi dài 16 bit có thể hoạt động nh kiểu bộ định thời hay hoạt động nh kiểu bộ đếm. Thanh ghi TMOD trong SFR sẽ điều khiển kiểu hoạt động này. Nguyên lý hoạt động của khối định thời/bộ đếm Thanh ghi định thời/bộ đếm làm việc ở kiểu bộ đếm thì tại thời điểm P2-S5 của mỗi chu kỳ máy, xung nhịp bên ngoài đợc đa vào để đếm theo chân T0 hoặc T1 khi chuyển từ mức logic 1 xuống mức logic 0 sẽ làm cho thanh ghi tăng thêm một đơn vị phải mất hai chu kỳ máy, cho nên tốc độ đếm của thanh ghi là 1/24 tần số dao động. Do xung nhịp bên ngoài có tần số bất kỳ, cho nên khối định thời/bộ đếm của chip chip 89C51 có bốn chế độ hoạt động để lựa chọn. Chức năng định thời hoặc bộ đếm đợc lựa chọn bởi các bit điều khiển C/ T trong thanh ghi TMOD. Mỗi chức năng có bốn chế độ hoạt động, lại đợc lựa chọn bởi cặp bit M1 M0. Các chế độ hoạt động 0, 1 và 3 giống nhau cho cả chức năng định thời và bộ đếm, riêng chế độ 3 thì khác. Khối định thời/bộ đếm đợc điều khiển bằng các bit trong thanh ghi TCON của SFR. 1.2.2. Tổ chức các cổng vào/ra (I/O) 1. Cấu trúc cổng vào/ra (I/O) Mỗi cổng của chip 89C51 chứa một chốt SFR, một bộ điều khiển ra và một bộ đệm vào. Bộ điều khiển ra của cổng P0, cổng P2 và bộ đệm vào của cổng P0 đợc dùng để truy cập bộ nhớ ngoài. Cổng P0 xuất ra byte thấp của địa chỉ, cổng P2 xuất ra byte cao của địa chỉ, khi cần địa chỉ hoá cho bộ nhớ ngoài. Ngoài chức năng truy cập địa chỉ, cổng P0 còn truyền dữ liệu vào/ra. Cổng P3 là cổng đa chức năng, các chân của cổng không những dùng để xuất/nhập dữ liệu mà còn làm chức năng điều khiển đặc biệt khác. 8 Hình 1.4 biểu diễn sơ đồ chức năng của một bộ đệm vào ra một chốt bit tiêu biểu cho các cổng của chip chip 89C51. 2. Thao tác ghi vào cổng Khi thực hiện một lệnh mà làm thay đổi giá trị của chốt cổng, thì giá trị mới này đến chốt cổng tại thời gian P2-S6 trong chu kỳ cuối của chu kỳ lệnh. Tuy nhiên, giá trị chuẩn mẫu ở các chốt cổng là giá trị của các bộ đệm ra, xuất hiện duy nhất trong các pha 1 (P1) của chu kỳ máy. Sau đó nó chuyển đến chốt cổng vào pha thứ 2 của trạng thái thứ 6 (P2-S6), bởi vậy giá trị mới không xuất hiện ở chân ra ngay trong và sau pha 1. Nếu sự thay đổi yêu cầu chuyển tiếp từ 0 sang 1 ở cổng P1, P2 và P3, thì sẽ có một bộ kéo lên tăng cờng xuất hiện trọng thời gian P1-S1 và P2-S1 của chu kỳ máy, ở cổng có sự chuyển tiếp. Bộ kéo lên tăng cờng là các transistor trờng, do đó nó có thể tạo ra dòng gấp 100 lần bộ kéo lên thông thờng. Kênh Điều khiển Vcc Địa chỉ/Dữ liệu Tín hiệu đọc chốt Kênh nội bộ Chốt Tín hiệu đọc chân Hình 1.4. Cấu trúc chốt (Latch) từng bit cho các cổng vào/ra 1.2.3. Tổ chức không gian bộ nhớ Chip chip 89C51 có vùng nhớ không gian nhớ đợc định địa chỉ riêng biệt cho bộ nhớ chơng trình EEPROM và bộ nhỡ dữ liệu RAM. 1. Bộ nhớ chơng trình EEPROM Bộ nhớ chơng trình EEPROM có vùng không gian nhớ nh biểu diễn trên hình 1.5. Không gian cực đại của bộ nhớ này chiếm tới 64 KB, đợc định địa chỉ từ 0000H đến FFFFH. Trong đó 4 KB EEPROM nội trú bên trong chip 89C51, đợc định địa chỉ từ 0000H đến 0FFFH và có thể mở rộng thêm 60 KB bộ nhớ chơng trình bên ngoài, đợc định địa chỉ từ 1000H đến FFFFH. Chip 89C51 cũng có thể sử dụng toàn bộ bộ nhớ chơng trình ngoài gồm 64 KB đợc định địa chỉ từ 0000H đến FFFFH. 9 Điềukhiển Chuyển mạch MUX D Q Chốt 1 bit Clk Q Bit P0.x FFFFH FFFFH Hoặc 1000H 0FFFH 0000H 0000H Hình 1.5. Tổ chức không gian của bộ nhớ chơng trình EEPROM Mỗi RESET, chip 89C51 sẽ truy cập bộ nhớ chơng trình từ địa chỉ khởi đầu là 0000H, sau đó nếu cơ chế ngắt đợc sử dụng thì chip truy cập tới địa chỉ quy định trong bảng véc tơ ngắt. Các địa chỉ cố định do ngắt định vị nh hình 1.6. FFFFH Hình 1.6. Bảng véc tơ ngắt của chip 89C51 Khi truy cập bộ nhớ chơng trình, chip 89C51 sử dụng xung chọn ______ PSEN để điều khiển. Nếu chip 89C51 làm việc với bộ nhớ chơng trình nội trú thi chân phát ra xung chọn ______ PSEN không sử dụng, còn nếu chip 89C51 làm việc với bộ nhớ chơng trình ngoại trú thì chân phát xung nhọn ______ PSEN đợc sử dụng. Khi đó, nếu ______ PSEN = 0 thì cho phép chip đọc bộ nhớ chơng trình, còn khi ______ PSEN = 1 thì không cho phép chip chọn bộ nhớ chơng trình. Khi chip 89C51 truy cập bộ nhớ chơng trình ngoại trú, nó luôn sử dụng địa chỉ 16 bit thông qua cổng P0 và cổng P2, bất kể bộ nhớ chơng trình ngoài có dung lợng là 60 KB hay là 64 KB. Sơ đồ mạch của chip 89C51 truy cập bộ nhớ chơng trình ngoài đợc thể hiện trên hình 1.7. 10 EA=1 (Trong) EA=0 (Ngoài) EA=1 (Ngoài) 0023H 001BH 0013H 000BH 0003H 0000H RI hoặc TI TF1 IE1 TF0 IE0 RESET 89C51 P1 P0 EA ALE P3 P2 PSEN EEPROM AD0 ữ AD7 A0 ữ A7 A8 ữ A15 OE LATCH OE [...]... kỳ máy - Thực hiện với lệnh dài hai byte hoặc ba byte, hai chu kỳ máy: Lệnh này th ờng là các lệnh chuyển dữ liệu giữa các ô nhớ của bộ nhớ nội trú với nhau hoặc chuyển dữ liệu là hằng số có trong câu lệnh vào các ô nhớ của bộ nhớ nội trú hay các lệnh nhảy Các lệnh này có byte thứ 2 hoặc byte thứ 2 và thứ 3 là các byte toán hạng sẽ đợc thực hiện ở cuối chu kỳ máy thứ nhất và cả chu kỳ máy thứ 2 ... khiển và đồng bộ sẽ phát ra tín hiệu chốt địa chỉ ALE trong khoảng thời gian _ _ từ P2-S4 đến P2-S5 của chu kỳ máy, phát tín hiệu RD hoặc WR trong khoảng thời gian từ P1-S1 đến P2-S3 của chu kỳ máy thứ 2 hay các chu kỳ máy tiếp theo trong chu kỳ lệnh, để điều khiển đọc bộ nhớ hoặc ghi vào bộ dữ liệu - Thực hiện với lệnh dài hai byte, một chu kỳ máy: Chip 89C51 có các lệnh trong các nhóm lệnh chuyển... nối tiếp Thanh ghi trạng thái và điều khiển cổng nối tiếp là một thanh ghi chức năng đặc biệt SCON Thanh ghi này không những chứa các bit chọn chế độ mà còn chứa bit dữ liệu thứ chín dành cho việc truyền và nhận (TB8 và RB8) và chứa các bit ngắt cổng nối tiếp (TI và RI) * Các tốc độ baud Tốc độ baud ở chế độ 0 đợc cố định Tốc baud chế độ 0 = Tần số bộ dao động / 12 Tốc độ buad ở chế độ 2 phụ thuộc vào... đi đến đầu thu Bằng cách đó, mỗi bit đợc chia thành 16 phần thời gian bằng nhau Tại các phần thời gian thứ 7, 8 và 9 của mỗi bit, bộ phát hiện sẽ trích mẫu của RxD Giá trị đợc chấp nhận là giá trị đã có ít nhất là 2 trong 3 mẫu Phơng pháp này đợc thực hiện nhằm để chống nhiễu đờng truyền Nếu giá trị đợc chấp nhận đối với bit đầu tiên không phải là 0 (không phải bit START), thì các mạch thu đợc tái... khác Khi các bit dữ liệu đi vào từ phái bên phải của thanh ghi dịch, thì các giá trị từ 1 đợc dịch sang trái nó Khi bit khởi đầu đến vị trí trái cuối cùng của thanh ghi dịch (ở chế độ 1 nó là thanh ghi 9 bit), thì nó chỉ thị cho khối điều khiển RX thực hiện phép dịch chuyển cuối cùng rồi nạp SBUF và RB8 và xác lập RI Tín hiệu để nạp SBUF và RB8, và để xác lập RI sẽ đợc tạo ra khi và chỉ khi các điều... Mã lệnh là phần đầu tiên của lệnh, nó cho biết ý nghĩa của lệnh và độ dài của câu lệnh Toán hạng là phần thứ hai của lệnh Độ dài của câu lệnh tuỳ thuộc vào từng lệnh Trong tập lệnh của chip 89C51 có các lệnh dài một byte, hai byte hoặc ba byte Những lệnh có độ dài hai hoặc ba byte thì byte đầu tiên luôn luôn là byte mã lệnh, các byte tiếp theo là byte toán hạng Các lệnh dài một byte thì cả mã lệnh và... lệnh vừa xử lý dài một byte; hoặc xác định địa chỉ của các toán hạng, nếu lệnh đang xử lý dài hai hoặc ba byte và quá trình gọi các byte tiếp theo của lệnh cũng giống nh quá trình gọi byte mã lệnh b Giai đoạn thực hiện lệnh 20 Giai đoạn thứ hai của quá trình xử lý một lệnh là giai đoạn thực hiện lệnh Các lệnh khác nhau sẽ có nguyên lý thực hiện các lệnh khác nhau Phơng thức thực hiện lệnh, thời điểm... nhớ ngoài Quá trình đọc dữ liệu từ bộ nhớ ngoài chip 89C51 phát phát xung chốt địa chỉ ALE có bộ chốt bên ngoài Mỗi chu kỳ máy có một xung chốt tồn tại trong hai chu kỳ dao động từ P2-S4 đến P1-S5 Để địa chỉ hoá bộ dữ liệu ngoài, byte thấp của địa chỉ từ bộ đếm dữ liệu DPL của chip 89C51 đợc xuất qua cổng P0 vào khoảng các trạng thái S5 của các chu kỳ máy trong chu kỳ lệnh Tiếp theo, cũng ở cổng P0... khiển nào khác đợc ngắt bởi một byte dữ liệu Tuy nhiên một byte địa chỉ sẽ ngắt tất cả các bộ vi điều khiển khác, để cho mỗi bộ vi điều khiển khác có thể kiểm tra byte nhận đợc và để xem có phải nó đang đợc trỏ tới không Bộ vi điều khiển nào trỏ tới sẽ xoá bít SM2 của nó và chuẩn bị nhận các byte dữ liệu khác sẽ đa đến Các bộ vi điều khiển khác mà không đợc trỏ sẽ tiếp tục hoạt động của mình mà không cần... 1 Chế Giá trị độ tái nạp ì ì ì 2 2 2 2 2 2 2 2 1 ì FFH FDH FDH FAH F4H E8H 1DH 72H FEEBH *Hoạt động của cổng nối tiếp ở chế độ 1 Thờng sẽ đặt chế độ truyền dữ liệu cổng nối tiếp chip 89C51 trong hệ phát +2 triển vi điều khiển ở chế độ S vì vậy ta chỉ khảo sát cổng nối tiếp làm việc ở chế 1, SBUF D truyền (qua TxD) hoặc đợc nhận (qua RxD) Khung tin Q độ này Dữ liệu 10 bit đợc CL bao gồm: 1 bit khởi

Ngày đăng: 26/06/2014, 02:19

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan