Đề tài Thiết kế hệ vi xử lý 8 bit - Triệu Tuyên Hoàng

MỤC LỤC

 Giới thiệu chung .

 Mục lục

PHẦN 1 : THIẾT KẾ HỆ VI XỬ LÝ 8 BIT

 

CHƯƠNG 1 . Tìm hiểu yêu cầu công nghệ

 

CHƯƠNG 2 . Lựa chon hệ vi xư lý

 

CHƯƠNG 3. Lựa chọn thiết bị

1 - Thiết kế bộ nhớ

2 - Thiết kế cổng vào ra số

3 - Thiét kế vào ra tương tự

 4 - Ngoại vi logic

 

CHƯƠNG 4. Thiết kế sơ đồ chi tiết hệ thống

 

PHẦN 2 : XÂY DỰNG PHẦN MỀM

 

CHƯƠNG 1 : Lưu đồ thuật toán

1 - Tìm hiểu yêu cầu lập trình

2 - Bố trí dữ liệu

3 - Xây dựng lưu đồ thuật toán

 

CHƯƠNG 2 : Viết chương trình

 

 

doc29 trang | Chia sẻ: lynhelie | Lượt xem: 3614 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế hệ vi xử lý 8 bit - Triệu Tuyên Hoàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Phần chính của vi mạch là đơn vị xử lý trung tâm CPU gồm có : Thanh ghi tích luỹ (A) Thanh ghi tích luỹ phụ (B) dùng cho phép nhân và chia Đơn vị lôgic số học ALU Từ trạng thái chương trình PSW 4 bank thanh ghi Con trỏ ngăn xếp SP cũng như con trỏ dữ liệu DTPR định địa chỉ cho bộ nhớ dữ liệu bên ngoài Ngoài ra còn có bộ đếm chương trình PC , bộ giải mã lệnh , bộ điều khiển thời gian và logic Đơn vị xử lý trung tâm nhận trực tiếp xung nhịp từ bộ tạo dao động được lắp thêm vào . Bộ vi xử lý có một bộ chương trình bên trong dung lượng 8Kbyte , 128 byte RAM trong để có thể sắp xếp dữ liệu và thông tin điều khiển . Ngoài ra còn có 2 bộ định thời 16 bit Timer 0, Timer1, chúng cũng có thể được sử dụng như là các bộ đếm sự kiện. Có 4 cổng P0 áP3 8 bit độc lập với nhau được sử dụng cho những mục đích điều khiển rất đa dạng . Khi làm việc với bộ nhớ bên ngoài cổng P0 dùng để truyền nửa dưới của các địa chỉ nhớ được sử dụng giống như dùng cho các dữ liệu 8 bit .Sau đó qua cổng P2 sẽ diễn ra quá trình xuất ra nửa trên của các địa chỉ 8 bit . Cổng P1 và P3 có chứa mỗi cổng một cổng vào/ ra 8 bit có thể sử dụng cho những mục đích điều khiển khác nhau . ở cổng P3 còn có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài , để đấu nối giao diện nối tiếp cũng như các đường dẫn ngắt bên ngoài. Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ làm việc độc lập với nhau.Bằng cách đấu nối với các bộ đệm thích hợp , ta có thể hình thành một cổng nối tiếp RS232 đơn giản . Tốc độ truyền qua cổng nối tiếp có thể đặt được trong một vùng rộng và được ấn định bằng một bộ định thời . Sơ đồ khối của chip 8051 ãTổ chức bộ nhớ trong 8051 8051 có 2 khoảng địa chỉ độc lập cho bộ nhớ chương trình và bộ nhớ dữ liệu . Sự độc lập của bộ nhớ chương trình và bộ nhớ dữ liệu cho phép bộ nhớ dữ liệu được xử lí bởi địa chỉ 8 bit . Nó có thể được lưu trữ và thao tác nhanh hơn bởi CPU 8 bit . Tuy nhiên địa chỉ 16 bit cũng có thể được phát ra thông qua thanh ghi DPTR. Bộ nhớ chương trình (ROM,EPROM) là bộ nhớ chỉ có đọc . Bộ nhớ này có thể lên tới 64Kbyte . Trong 8051 4Kbyte thấp nhất của bộ nhớ chương trình là trên chip. Bộn nhớ ngoài có thể đọc được nhờ tín hiệu chốt của chân PSEN. Bộ nhớ dữ liệu độc lập với bộ nhớ chương trình . 128 byte thấp nhất của bộ nhớ dữ liệu trên chip và nó có thể truy nhập đến 64Kbyte ngoài CPU sẽ phát ra các tín hiệu RD và WR cần thiết trong suốt quá trình xử lí bộ nhớ dữ liệu . a/ Bộ nhớ chương trình : Sau khi reset CPU bắt đầu thực hiện từ địa chỉ 0000H. Bảng vector ngắt bắt đầu từ địa chỉ 0003H đến 002BH. Mỗi một ngắt được xác định tại một vị trí cố định trong bộ nhớ chương trình . Khi một ngắt xảy ra PCU sẽ nhảy tới vị trí nơi mà nó yêu cầu phục vụ . Mỗi một vector ngắt có độ dài 8 Byte .Nếu chương trình này đủ ngắn thì ta chứa trong 8 Byte này , nếu chương trình đủ dài thì nó chứa một lệnh nhảy tới chương trình phục vụ . 4 Kbyte (hoặc 8 Kbyte , 16Kbyte ) phần thấp nhất của bộ nhớ chương trình có thể ở ROM trong hoặc ROM ngoài . Điều này được thực hiện bởi nối chân EA lên mức 1 hoặc mức 0 (nếu bằng 1 thì ROM ngoài , nếu bằng 0 thì ROM trong) . Khi truy nhập bộ nhớ ngoài sử dụng cổng P0 và P2 làm 16 đường vào ra . Trong đó P0 làm chức năng Bus địa chỉ và Bus dữ liệu . Nó sẽ phát ra Byte thấp của bộ nhớ chương trình giồng như địa chỉ phần thấp . P2 sẽ phát ra địa chỉ phần cao. Địa chỉ của bộ nhớ chương trình luôn có độ rộng là 16 bit. b/ Bộ nhớ dữ liệu : Bộ nhớ dữ liệu được chia thành 4 vùng : Vùng 1 :Địa chỉ từ 00H đến 1FH là phần thấp nhất được chia thành 4 khối của 8 thanh ghi . Các lệnh của chương trình sẽ gọi các thanh ghi này từ R0 đến R7 . Hai bit trong thanh ghi trạng thái (RS0,RS1 ) sẽ lựa chọn khối 4 này . Vùng 2: Địa chỉ từ 20H đến 2FH bao gồm 16 byte là vùng ô nhớ địa chỉ theo bit . Vùng 3: Địa chỉ từ 30H đến 7FH làm chức năng thông thường của bộ nhớ RAM Vùng các thanh ghi chức năng đặc biệt (SFR).Có 21 thanh ghi chức năng đặc biệt chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH. c/ Cổng vào ra song song: 8051 có 4 cổng vào ra song song , cả 4 cổng đều có thể định chiềuứng với nó là bộ điều khiển đầu ra và bộ đệm đầu vào . Điều khiển đầu ra của cổng P0 , cổng P2 và bộ đệm đầu vào của cổng P0 được sử dụng cho việc xử lí bộ nhớ ngoài . Trong ứng dụng này đầu ra của cổng P0 là byte thấp của địa chỉ bộ nhớ ngoài . Đầu ra của cổng P2 là địa chỉ của byte cao. Cổng 1,2,3 có các điện trở pull_up bên trong . Cổng 0 có đầu ra cực máng để hở . Mỗi đường I/O có thể sử dụng độc lập giống như đầu vào hoặc đầu ra . Khi sử dụng là đầu vào thì bộ chốt bit của cổng phải được lạp ở mức logic 1 , điều này sẽ đóng FET điều khiển đầu ra . Đối với cổng 1,2,3 thì mức logic 1 ở các chân được kéo lên mức logic cao bởi điện trở pullup trong , nhưng nó cũng có thể được kéo xuống mức logic thấp bởi nguồn ngoài . Cổng 0 không có điện trở pullups ở phía trong . Điện trở FET pullups trong bộ điều khiển đầu ra P0 chỉ được sử dụng khi cổng đang phát ở mức logic cao trong suốt quá trình xử lí bộ nhớ ngoài . Trong các trường hợp khác thì FET pullups sẽ khoá. Tất cả bộ chốt các cổng đều được viết ở mức logic 1 bởi chức năng reset. Khi mức logic 0 được viết vào bộ chốt nếu cổng muốn làm đầu vào thì mức logic 1 phải được viết vào nó. Sơ đồ chân của 8051 ξ2. Bộ nhớ ngoài : Sử dụng bộ vi xử lý 8051 đã có sẵn trong chip 128 byte RAM và 4K ROM, yêu cầu thiết kế hệ thống 8KB ROM (0000h-1FFFh) và 4KB RAM có địa chỉ tuỳ chọn. Ta có thể chọn các vi mạch nhớ như sau: ROM trong 4KB địa chỉ vật lý từ : 0000H – 0FFFH ROM ngoài 4KB 2732 địa chỉ vật lý từ : 1000H – 1FFFH RAM ngoài 4KB 6232 địa chỉ vật lý từ : 3000H – 3FFFH Địa chỉ của 8255:CWR,PA,PC : 5000H – 5003H Địa chỉ của ADC 0809 (8 cửa vào) : 6000H – 6007H . Bộ nhớ ngoài ROM Trong vi điều khiển bộ nhớ chơng trình của nó có 4K byte ROM trong, với yêu cầu sử dụng thêm EPROM2732 có dung lợng lớn hơn. Đây là bộ nhớ lập trình xoá bằng tia cực tím, nó có tốc độ truy nhập rất nhanh. Với dung lợng 4K byte nh vậy nó có 13 đờng chọn địa chỉ và có 8 đờng ra dữ liệu. EPROM chỉ đợc hoạt động khi chân #OE ở mức tích cực thấp, nó đợc vi điêù khiển chọn làm việc khi chân #CE cũng đợc tích cực thấp. EPROM đợc nuôi với mức điện áp 5V, điện áp này đợc đa vào bộ nhớ thông qua chân Vpp . Địa chỉ của EPROM trong hệ thống là 2000 á2FFF Sơ đồ chân của EPROM EPROM 4KB 2732 (AMD) . Bộ nhớ ngoài RAM Bên cạnh bộ nhớ chương trình EPROM ta còn sử dụng bộ nhớ ngoài RAM có dung lượng 4K byte, đồng thời cũng có 12 đường địa chỉ 8 đường dữ liệu. Nó có địa chỉ 3000á3FFF, địa chỉ này được chọn ra trong vùng địa chỉ của vi điều khiển bởi chân #CS1. Ngoài ra còn có đường chọn vỏ khác là CS2 được nối tích cực và có hai đườngtín hiệu yêu cầu đọc viết là #OE, #WE . Sơ đồ chân của EPROM Sơ đồ chân của RAMM EPROM 4KB 2732 (AMD) RAM 2KB 6116 (AMD) ξ3. Thiết bị ngoại vi : a . Thiết bị ngoại vi số (digital) : 1 .Ghép nối với 8255 Tổng quan IC 8255 (Intel) 8255A là một vi mạch ghép nối song song 8 bit, được dùng phổ biến trong các hệ vi xử lý để làm vi mạch ghép nố vào /ra song song. Nó có thể ghép nối trực tiếp với 8085, 8051, Z80 hoặc M6800 và cũng có thể ghép nối với các họ vi xử lý 8 bit. 8255 có 40 chân xếp thành 2 hàng đối xứng, nguồn nuôi 5V.Gồm: Các cổng vào/ra: 3 cổng A, B, C. Trong đó, cổng A(từ PA0 đếnPA7) và cổng B(PB0 đến PB7) là cổng 8 bit, còn cổng Ccó thể chia thành 2 nhóm độc lập bằng chương trình: nửa cao(PC4 áPC7) và nửa thấp(PC0áPC3). Các tín hiệu điều khiển: RD : vi xử lý đọc số liệu từ cổng này. A0, A1: lấy từ 2 bit địa chỉ của vi xử lý và tổ hợp tín hiệu của A0, A1 sẽ xác định cho ta cổng vào thanh ghi điều khiển. CS: (chi select) tín hiệu chon vỏ. WR:viết số liệu vào cổng I/O. RESET:dùng để đặt lại hệ thống. GND:chân nối đất. Vcc: nguồn nuôi +5v. Các chân số liệu :(D0 áD7): 8 bit số liệu. Sơ đồ chân 8255 (Intel interface) : Cổng P3 của 8085 sẽ dùng 2 chân RD và WR để nối trực tiếp với 2 chân RD và WR tương ứng ở 8255A. Các đường A0, A1 được nối trực tiếp từ BUS vào 8255A, và được giải mã bên trong 8255A để chọn ra các cửa vào/ra A,B,C và thanh ghi điều khiển của 8255A. Như vậy ta thấy rằng khi dùng 8255A, thì việc ghép nối giữa vi xử lý với các thiết bị phần cứng khác sẽ đơn giản hơn, ít phải dùng các mạch phụ hơn. Đây là một ưu điểm lớn của 8255A Sơ đồ khối 8255 : Bên trên là sơ đồ cấu trúc của 8255 . Thiết bị ngoại vi này có 3 chế độ hoạt động các chế độ này được lựa chọn bởi các chân chọn A0 , A1 . Ta có bảng chân lý như A0 A1 Chế độ 0 0 CWR 0 1 PORT A 1 0 PORT B 1 1 PORT C Dữ liệu vào ra thiết bị qua data bus D0-D7 quan hệ hai chiều. Các cửa ra của thiết bị có trạng thái tuỳ thuộc vào thanh ghi điều khiển CWR (control word registor) cụ thể như sau : CWR 1 MA1 MA0 A CH MB B CL Các bit MA0 , MA1 đặt chế độ cho cửa ra nhóm A bao gồm A,CH MA0 MA1 Chế độ 0 0 MODE 0 0 1 MODE 1 1 0 MODE 2 1 1 MODE 2 Các bit A,B,CH,CL thiết lập chế độ và ra cho các cổng tương ứng : A,B,CH,CL = 0 : cổng ra A,B,CH,CL =1 : cổng vào Bit MB chế độ cho cưa ra vào nhóm B : MB = 0 : cổng ra MB = 1 : cổng vào Các chế độ vào ra của 8255 được trinh bày cu thể sau đây : 1. Chế độ 0 ( chế độ vào ra cơ sở ) : Các cổng A , B , C được lập trình như các cổng vào ra thông thường qua thanh ghi CWR . Muốn vậy các bit chế độ phải được clr xuống thấp ( 0 ) và chế độ vào ra được đặt bởi trực tiếp bởi các bit điều khieer tương ứng . VD : Mong muốn tất cả các cổng đều là cổng ra . CWR = #10000000 (80H) 1 0 0 0 0 0 0 0 2 . Chế độ 1 ( vào ra có xung cho phép ): Chế độ này sử dung để vào ra bằng ngắt khi giao tiếp với thiết bị ngoại vi.ở chế độ này PORT A ,PORT B được sử dụng vào ra cơ sở với các tín hiệu bắt tay móc nối ( handshaking ) PORT C . Các đặc điểm cơ bản ở chế đọ 1 : Hai nhóm A , B mỗi nhóm 1 cổng 8 bit dữ liệu và 4 bit điều khiển / dữ liệu Mỗi cổng 8 bit vào ra đẹm và chốt dữ liệu với các bit đièu khiển sau : Chế độ vào : STB ( Strobe input ) : tín hiệu vào ( low ) ngoại vi báo cho 8255 biết đệm dữ liệu đã đầy. IBF ( input buffer full ) : tín hiệu ra ( high ) bào hiệu dữ liệu đã được chốt . IBF được đặt khi STB =LOW và xoá khi có sườn lên đầu vao RD (read). INTR ( interupt request ) : Là tín hiệu ra yêu cầu ngắt CPU nó đựơc đặt khi các chân STB,IBF,INTE tích cực và xoá khi có sườn xuống RD. Chế độ ra : ACK (ackowledge input ) : là tín hiệu vào ngoại vi thông báo đã nhận dược dữ liệu . OBF ( output buffer full ) : là tín hiệu ra báo hiệu bộ đệm đã đầy . INTR ( interupt request ) : Là tín hiệu ra yêu cầu ngắt CPU nó đựơc đặt khi các chân STB,IBF,INTE tích cực và xoá khi có sườn xuống RD. 3 . Chế độ 2 ( vào ra BUS hai chiều ): Chế độ này port A hoạt động như một cổng hai chiều về cơ bản giôngs chế độ 1 chỉ khác : port A hoạt đông hai chiều port B hoạt động ở các chế độ 0 , 1 như bình thường .Các tin hiệu bắt tay như sau : Chế độ ra : - ACK (ackowledge input ) : là tín hiệu vào ngoại vi thông báo đã nhận dược dữ liệu . - OBF ( output buffer full ) : là tín hiệu ra báo hiệu bộ đệm đã đầy . - INTE 1 điều kiển đặt hoặc xoá bit PC 6 (ACK) Chế độ vào : - STB ( Strobe input ) : tín hiệu vào ( low ) ngoại vi báo cho 8255 biết đệm dữ liệu đã đầy. - IBF ( input buffer full ) : tín hiệu ra ( high ) bào hiệu dữ liệu đã được chốt . IBF được đặt khi STB =LOW và xoá khi có sườn lên đầu vao RD (read). - INTE 2 điều kiển đặt hoặc xoá bit PC 4 (STB) b. Các thiết bị phụ trợ 1. Mạch chốt 74LS373 Đây là mạch có tác dụng chốt lại số liệu ở đầu vào khi có tín hiệu tích cực, đầu ra sẽ không bị biến đổi khi tín hiệu đầu vào đã mất. Nó chỉ thay đổi khi tín hiệu chốt tích cực trở lại. Bên ngoài vỏ cũng có tín hiệu #OE cho phép hoạt động. Khi có yêu cầu chốt chân LE sẽ được tích cực. Sơ đồ chân của bộ chốt 2.6.2. Bộ giải mã 74LS138 Nó bao gồm 14 chân, trong đó: Y0 á Y7 là các đường ra địa chỉ, tích cực ở mức thấp. A,B,C là 3 đường địa chỉ vào , tích cực cao. E1 ,E2 là các đầu vào cho phép làm viêc , tích cực ở mức thấp. E3 là các đầu vào cho phép làm viêc , tích cực ở mức cao. 6)Ghép nối với LED 7 thanh: LED(Light Emiting Diode-LED) là một phần tử phối ghép với bộ vi xử lý ở đầu ra rất thông dụng. Trong trường hợp đơn giản, đó có thể chỉ là một vài đèn LED đơn lẻ để báo hiệu một vài trạng thái nào đó. Phức tạp hơn, đó là các đèn LED được tổ hợp thành đèn chỉ thị 7 LED hoặc nhiều hơn để hiển thị các thông tin dươí dạng số hoặc chữ. Một trong các phối ghép giữa vi xử lý và đèn LED 7 nét thường thấy là dùng mạch SN7447 để giải mã số BCD ra 7 nét và để điều khiển bộ đèn chỉ thị.Đây là kiểu điều khiển đèn LED ở chế độ hiển thị tĩnh, có đặc điểm là khá đơn giản về kết cấu nhưng rất tốn năng lượng vì để thắp sáng các nét của đèn thì cần có dòng điện liên tục chạy qua. Sơ đồ phối ghép theo kiểu này được biểu diễn ở hình vẽ dưới đây. Thiết kế hiển thị trong đồ án : Trong thực tế nếu thiết kế như trên có các nhược điểm sau : Tốn nhiều tài nguyên của hệ thống Nếu các đèn không hoạt động ở chế độ quét sẽ tiêu thụ rất nhiều điện năng , cụ thể là : Theo tiêu chuẩn 20mA cho mỗi thanh .Một đèn 7đoạn tiêu thụ khoảng 20 x 7 = 140mA . Nếu sử dụng 8 đèn 7 đoạn sẽ tiêu thụ 8 x140 =1120 mA (>1A) Quá lớn đối với hệ vi xử lý. Do vậy để khắc phục các điều kể trên ta đưa ra một phương án sau chỉ sử dụng một cổng PPI 8255 quản lý 8 đèn LED theo chế đọ quét : *Nguyên tắc hoạt động: Giá trị số cần hiển thị của mỗi con số được gửi đến cổng PB của 8255A từ 8085 dưới dạng mã BCD. Từ đây số BCD được mạch SN7447 giải mã và tạo ra các tín hiệu điều khiển thích hợp đưa đến các chân katot a,b,c,d,e,f,g của LED. Mỗi giá trị cần hiển thị được đưa đến cổng PB cứ mỗi 2ms một lần cho một đèn. Giá trị số nói trên được hiện ra trên chữ số thập phân nào lại là do các bit của byte dữ liệu từ 8051 đưa đến cổng PA của 8255A quyết định. Như vậy, cứ mỗi 2ms thì ta phải đưa dữ liệu ra PB, rồi PA và cho hiện ra được một giá trị số trên một đèn. Trong trường hợp cần hiển thị giá trị của nhiệt độ thì ta chỉ cần tới 3 con số,tức là cần 3 đèn LED 7 thanh, do đó ta chỉ phải mất 2.3=6ms để cho hiện số của cả dãy đèn. Sự sáng nhấp nháy của các đèn với chu kỳ 6ms thì mắt người không thể cảm nhận được sự nhấp nháy của nó, và ta sẽ cảm giác là chúng sáng một cách liên tục. ξ2. Ngoai vi tương tự : 1 . Sensơ nhiệt điện trở : Platin có thể chịu được nhiệt độ đến 1200°C không bị oxy hoá hoặc nóng ở nhiệt độ từ 0 đến +660°C Ro - điện trở ở 0°C. A, B, C - hằng số. Đặc tính của nó có dạng phi tuyến,với nhiệt độ ngoài khoảng (-180,+660) quan hệ RT=f(t) được chuẩn hoá và cho dưới dạng bảng. Nhược điểm của nhiệt điện trở Platin là đặc tính phi tuyến, không dùng được trong môi trường oxy hoá khử, nhưng do độ bền hoá học cao, tính dẻo lớn, người ta có thể chế tạo thành sợi dất mỏng(đến 1,25 àm) nên được sử dụng rộng rãi 3. Bộ chuyển đổi tương tự số ADC 0809. Bộ ADC 0809 là một thiết bị CMOS tích hợp với một bộ chuyển đổi tương sang số 8 bit, bộ chọn kênh và mật bộ logic điều khiển tương thích. Bộ chuyển đổi tương tự số này sử dụng phương pháp chuyển đổi xấp xỉ. Bộ chọn kênh có thể chọn ra kênh cần chuyển đổi bằng 3 chân chọn địa chỉ. Thiết bị này loại trừ khả năng cần thiết điều chỉnh điểm zero bên ngoài và khả năng điều chỉnh tỉ số làm cho ADC đễ dàng giao tiếp với các bộ vi xử lý. Hoạt động chung: Khi một kênh được chọn đồng thời yêu cầu START ,ALE được tích cực . Giá trị điện áp cần được chuyển đổi sẽ được chốt lại ở cổng vào tương ứng xung start bắt đầu chuyển đổi . Yêu cầu độ rộng xung START không nhỏ hơn 200ns. Sau xung START khoảng 10μs đầu ra EOC (end of convert) lúc này xuống thấp thực sự bắt đầu quá trình chuyển đổi. Kết thúc quá trình chuyển đổi chân EOC trạng thái tích cực cao báo hiệu kết thúc quá trình chuyển đổi. Sau khi kết thúc quá trình chuyển đổi nếu chân E (enable) ở trạng thái tích cực dữ liệu lúc này mới được chốt và đưa ra data bus ngược laijddaauf ra ở trạng thái cao trở. ý nghĩa các chân: IN0 – IN7: 8 đầu vào tương tự A,B,C : các tín hiệu chọn kênh Các chân 2.1-2.7: là các đầu ra số ALE cho phép chốt số liệu đầu vào Start: xung cho phép bắt đầu chuyển đổi Clk:đầu vào xung clock Ref(+): điện áp vào chuẩn +5v Ref(-): điện áp vào chuẩn 0 Vcc: nguồn cung cấp Độ phân giải 8 bít Tổng sai số chưa chỉnh ±1LSB Thời gian chuyển đổi 100 ms Nguồn cung cấp ± 5 V Điện áp vào 0-5V Tần số xung clock 10kHz – 1028 kHz Nhiệt độ hoạt động –400C – 85OC Dễ dàng giao tiếp với vi xử lý hoặc dùng riêng Không cần điều chỉnh zero hoặc thang đo Bảng chân lý và sơ đồ chân của vi mạch: Cấu trúc ADC 0809 và giản đồ thời gian quá trìng chuyển đổi như sau A B C X 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 Các đặc điểm của ADC 0809 Từ những tìm hiểu trên ta có thể thiết kế vào ra tương tự cho đề tài này . Vi mạch ADC 0809 được kết nối với PPI 8255 quá trình vào ra số liệu đòi hỏi thực hiện ngắt .Gọi ngắt có thể do trực tiếp ADC0809 yêu cầu 8051 hoặc do giao tiếp vi mạch nay với PPI 8255 ( chế độ 1 ) và 8255 yêu cầu ngắt 8051 .Để đơn giản trong quá trình lập trình vẫn thoả mãn yêu cầu dự án chỉ cần PPI 8255 hoạt động ở chế độ và ra cơ sở ADC0809 trực tiếp gọi ngắt 8051 . Để thực hiện ý định trên cấu trúc sau được đề suất : Hoạt động của sơ đồ như sau : Khi 8051 yêu cầu đọc số liệu từ một kênh đo nào đó 8051 gọi lệnh kích hoạt ADC 0809 lệnh đó có thể được mô tả như sau : ORG 0000H . . . ORG 0013H ; Đ/C ngắt ngoài1 LJMP ADC0809 ; Gọi chương trình con phục vụ ngắt ADC0809 ORG 0030H MAIN : . . . CLR A MOVX 5000H,A ; Gọi tới IN0 của ADC0809 . . . ADC0809: . . . MOVX R0,PA ; Khi kết thúc quá trình chuyển đổi ADC sẽ gọi ngắt INTR1 và lệnh này sẽ đọc d/l vào PORT A Kết quả lưu vào thanh ghi R0 RETI Do chân EOC (end of convert ) tích cực cao nên phải qua chân đảo vào INTR1 Phân tích tác động phần cứng vào ADC0809 qua chuỗi lệnh trên như sau : Lệnh MOVX 5000h,A sẽ có một loạt các tác động sau đây - Đưa lên BUS địa chỉ giá trị 5000H do kết nối thích hợp với 74138 nên chân Q3 của ‘138 tích cực đồng nghĩa việc chọn vỏ ADC 0809 Đồng thời bộ control & timer on chip 8051 gửi tín hiệu điều khiển viết WR lên control BUS chân ALE,START của ADC được gọi .Bắt đầu quá trình chuyển đổi bằng một loạt các thao tác sau : Chốt giá trị đo trên của analog tương ứng (IN0) Tín hiệu START duy trì 200ns sau đó trễ 10μs chân EOC xuống thấp bắt đầu quá trình chuyển đổi. Kết thuc quá trình chuyển đổi ACD cho một tín hiệu EOC ở mức tích cực gửu về 8051 yêu cầu một ngắt . Nếu ngắt được chấp nhận sẽ gọi chương trình con phục vụ ngắt ADC0809 thực hiện việc thu thập dữ liệu. Lệnh MOVX R0,PA có các tác động sau đây: Gửi địa chỉ cổng PA 8255 lên address BUS . Chân Q2 của 74138 tích cực sẽ chon vỏ 8255. Tín hiệu đọc ( RD ) được control BUS gửi qua chân RD tới 7402 cho một xung ENABLE lên ADC0809 .Kết quả chuyển đổi được đua ra data BUS và được đọc vào R0 từ cổng PA của 8255. ξ2. Thiết bị ngoại vi logic . 1. Keypad Keypad là một thiết bị ngoại vi để giao diện với người, người sử dụng có thể điều khiển hệ thống thông qua đó bằng việc ấn các phím chức năng. Các phím này được nối qua cổng OR vào INT0 của vi điều khiển, khi người điều khiển ấn các phím thì nó sẽ được gán với các chức năng tương ứng.Vi điều khiển hiểu được các chức năng này thông qua việc đọc giá trị đầu vào.Các phím được nối với các chân từ P1.0 đến P1.3 của vi điều khiển. 2. Thiết bị ghép nối với máy tính RS232. Cổng nối tiếp RS232 là giao diện phổ biển rộng rãi nhất. Việc truyền dữ liệu qua nó được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi đi nối tiếp nhau trên một đường dẫn. Trước hết, loại truyền này có khả năng dùng cho những khoảng cách lớn hơn, bởi vì khả năng gây nhiễu là nhỏ đáng kể hơn khi truyền song song. Việc truyền song song có mọt nhược điểm đáng kể là cap truyền dùng quá nhiều sợi, và vì vậy rất đắt tiền. Cổng RS232 không phải là một hệ thống bus, nó cho phép dễ dàng tạo ra liên kết dưới hình thức điểm giữa hai máy cần trao đổi thông tin với nhau. Một thành viên thứ ba không thể tham gia vào cuộc trao đổi này. Thiết bị báo đông ( còi ) Để báo động khi có sự cố mạch còn kết nối với còi . Một mạch còi đơn giản có thể ghép nối với 1 chân port1 8051 như sau CHƯƠNG 4 : Thiết kế sơ đồ chi tiết hệ thống. Ta đã nghiên cứu tưng phần của thiết kế ở các chương trên . Trong chương này ta nghiên cứu thiết kế sơ đồ tổng quát hệ thống trên. ξ1. Các chú ý khi thiết kế với hệ vi điều khiển 8051 . Mặc dù đã nghiên cứu kĩ lưỡng hệ vi điều khiển MCS 51 nói chung cũng như vi xử lý 8051 nói riêng ta vẫn cần nhắc lại các đặc điểm đáng chú ý khi thết kế hệ thống thực 8051. Tải và các đặc tính một chiều : Khi thiết kế hệ thống thực tế ngoài việc chú ý tới kết nối , phần mềm ta nên chú ý tới tải một chiều các chân linh kiện . Các chú ý sau đây là hết sức cần thiết : Các port0,port1,port2,port3 8 bit xuất nhập hai chiều có các điện trở kéo lên bên trong có khả năng chịu dòng 4 ngõ vào TTL ( 0.4 mA cho mỗi ngõ ) riêng port 0 có khả năng kéo 8 ngõ vào TTL . Khi xuất các ngõ này được kéo lên bởi điện trở treo cao bên trong . Khi nhập các chân đang được kéo xống mức thấp do tác động bên ngoài sẽ cấp dòng . Ta cũng cần có các điện trở keó lên bên ngoài để phục vụ khi kiểm tra chương trình hay tăng tải (fan in – fan out ) cho mạch. Các chân ngắt ngoài và các quy tắc sử dụng ngắt : Ngắt được sử dụng một cách rộng rãi trong các ứng dụng điều khiển . Ngắt giúp giải quyết các sự kiện xuất hiện không đồng bộ với chương trình chính đang được thực thi (hay nói cách khác CPU không biết ngắt xảy ra lúc nào ). Ngắt luôn được quét ở 4 chu kì nhịp cuối cùng trong mọi chu kì máy . Thông thường các ứng dụng điều khiển chương trình thwc hiện ở hai mức ; mức nề và mức ngắt . Mức ngắt gọi các chương trình con phục vụ ngắt . Mức nền có khi chỉ là vong lặp nhảy tại chỗ SJMP $ . Quy trình thực hiện ngắt đã nói ở trên ta chỉ nhắc lại một số điểm sau: Ngắt được thực hiện khi không có ngắt nào khác cao hơn hoặc băng đang thực thi. Chuỗi vòng ngắt như sau INT0 ,TF0,INT1,TF1,SERIAL, TIMER2 - Địa chỉ các vectơ ngắt như sau : Nguồn ngắt Địa chỉ của vector ngắt IE0 0003H TF0 000BH IE1 0013H TF1 001BH RI & TI 0023H TF2 & EXF2 002BH Khi sử dụng ngắt ngoài chú ý ngắt ngoài xảy ra khi có tác động cạnh hoặc tác động mức .Chúng được quy định bởi các bit IT0 , IT1 của thang ghi TCON . Nếu ngắt thuộc loại tác động mức ( ngắt ADC 0809 ) nguyên nhân ngắt phải được duy trì ở mức cao trong 1 chu kì máy sau đó phải đuy trì múc thấp tối thiểu một chu kì máy tiếp theo . Con nếu ngắt tác động mức phải duy trì mức tích cực cho tới khi ngắt được thực thi ξ2 Xây dựng sơ đồ hệ thống : Ta có thể mô tả nguyên lý hoạt động của hệ thống như sau: Ban đầu nhiệt độ được đo thông qua các cảm biến, tín hiệu đo sau bộ cảm biến là các tín hiệu tương tự vì vậy cần phảicho qua bọ chuyển đổi chuẩn hoá. Hệ thống được điều khiển bằng chương trình do người thiết kế lập trình sẵn, được nạp vào trong EEPROM. Từ kênh địa chỉ hệ thống chọn ra kênh cần chuyển đổi nhờ việc viết địa chỉ ra. Sau khi kết thúc quá trình chuyển đổi ADC phát ra tín hiệu EOC được nối trực tiếp với ngắt INT0 của bộ vi xử lý. Khi ngắt INT0 ở mức tích cực sẽ thực hiên một chương trình phục vụ ngắt, có nhiệm vụ thu thập số liệu đã được chuyển đổi ở đầu ra của ADC. Trong quá trình hoạt động của hệ thống ta có thể chọn kênh chuyển đổi tai thời điểm tác động. Khi số liệu đã được nhân vào Vi điều khiển bước đầu phải so sánh với các ngưỡng Hi hoặc Low để báo động,khi đẫ thoả mãn những giới hạn đo thì bước tiếp theo là sử lý số liệu đo để thông báo kêt quả đo của kênh vừa đo. Kết quả sử lý phải được lưu vào EEPROM và gửi lên máy tính để truyền tải đi xa. 3.7. Ghép nối với RS232 Để nhận và gửi số liệu lên máy tính ta sử dụng giao thức truyên theo chuẩn RS232 thông qua chân RXD và TXD của vi điều khiển. Theo một chu kỳ nhất định ta gửi kết quả đo lên máy tính để lưu trữ và truyền đi xa. Đồng thời cũng có thể nhận tín hiệu điều khiển hệ thống từ máy tính. Cơ chế truyền số liệu đi có thể được lập trình bằng phần mềm. Khi sử dụng chuẩn này ta chỉ có thể truyền dữ liệu đi trong khoảng cách ngắn(khoảng cách tối đa là 15m), với tốc độ truyền tối đa 19200baud. 3.8. Bộ nhớ chương trình EPROM và bộ nhớ dữ liệu ngoài RAM Để truy nhập được bộ nhớ chương trình ngoài ta phải nối chân EA của vi điều khiển tích cực thấp. Các dường địa chỉ của hai bộ nhớ này được nối trực tiếp với bus địa chỉ của hệ thống và các đường dữ liệu của chúng cũng đựơc nối với bus dữ liệu của hệ thống . 3.9. Bộ giải mã Để tại mỗi thời điểm chỉ có một thiết bị ngoại vi được làm việc với vi điều khiển, ta sử dụng bộ giải mã địa chỉ 74LS138 để xác định ra vùng địa chỉ làm việc của mỗi thiết bị ngoại vi. Đầu ra của bộ giải mã địa chỉ 74LS138 được nối với các chân chọn vỏ của thiết bị ngoại vi. PHầN 2: Xây dựng phần mềm CHƯƠNG 1 . Lưu đồ thuật toán 1.Lưu đồ của

Các file đính kèm theo tài liệu này:

  • docTHUYOT~1.doc
  • doc8051A3new.doc
  • doc8051A4.DOC
  • docBiaBTLvixuly.doc
  • asmDisplay1.asm
  • asmDoanVXL.asm
  • asmHethucADC0809.asm