Friday, January 23, 2015

Làm quen với vi điều khiển 8051 tiếng việt phần 1

Posted by dientudieukhien at 8:57 AM 0 Comments

I- Kiến trúc vi điều khiển 8051

  1. Tiêu chuẩn của 8051 là gì?
     Các nhà sản xuất vi điều khiển đã cạnh tranh trong một thời gian dài để thu hút khách hàng khó tính và cứ vài ngày một chip mới với một tần số hoạt động cao hơn, bộ nhớ nhiều hơn và nâng cấp bộ chuyển đổi A / D xuất hiện trên thị trường.
    Tuy nhiên hầu hết trong số chúng giống nhau hoặc có một số ít  giống nhau về cấu trúc của 8051. Tất cả việc này như thế nào? 
   Toàn bộ câu chuyện đã được bắt đầu ở những năm 80 khi Intel ra mắt cấu trúc của vi điều khiển đầu tiên được gọi là MCS 051. Mặc dù các vi điều khiển đầu tiên có các tính năng khá khiêm tốn so với những vi điều khiển ngày nay, chúng đã  sớm chinh phục thế giới và đã trở thành một tiêu chuẩn cho những vi điều khiển sau này.
   Lý do chính cho sự thành công lớn  và phổ biến của họ là một cấu hình khéo léo đáp ứng được nhu cầu khác nhau của một số lượng lớn người dùng và đồng thời cho phép mở rộng liên tục (đề cập đến các loại vi điều khiển mới). Bên cạnh đó, các phần mềm đã được phát triển trong thời gian đó, và nó thật đơn giản vì không có sự thay đổi nào trong cốt lõi cơ bản của vi điều khiển. Đây là lý do cho việc có một số lượng lớn các vi điều khiển khác nhau ra đời  trên nền tản  8051. Điều gì làm cho vi điều khiển này trở nên đặc biệt và phổ biến đến như vậy?
Cấu trúc vi điều khiển 8051
Cấu trúc vi điều khiển 8051 - ảnh mikroe.com
  • ROM: 4 Kb
  • RAM: 128b (bao gôm cả SFRs) đáp ứng nhu cầu cơ bản của người dùng
  • Có 4 port với 32 pins IN/OUT  cho phép ta kết nối với nhiều thiết bị ngoại vi
       Các cấu hình rõ ràng giúp các lập trình viên dễ dàng trong việc lập trình các hệ thống tự động.
2.  Mô tả pins output
Pins 1-8: Port 1 Mỗi chân có thể được cấu hình như là input/output.
Pin 9: RS Mức logic 1 trên pin này sẽ vô hiệu hóa vi điều khiển và xóa các nội dung của hầu hết các thanh ghi. Nói cách khác, điện áp tích cực trên pin này sẽ reset vi điều khiển. Bằng cách áp mức logic 0 trên pin này vi điều khiển sẽ hoạt động.
Pins10-17: Port 3 Tương tự như port 1, mỗi chân có thể phục vụ như là input hoặc output chung. Bên cạnh đó, tất cả đều có chức năng thay thế:
Pin 10: RXD Đầu vào truyền thông không đồng bộ nối tiếp hoặc ngõ ra output truyền thông đồng bộ.
Pin 11: TXD Ngõ ra truyền thông không đồng bộ nối tiếp hoặc ngõ ra truyền thông đồng bộ.
Pin 12: INT0 Interrupt 0 input.
Pin 13: INT1 Interrupt 1 input.
Pin 14: T0 Counter 0 clock input.
Pin 15: T1 Counter 1 clock input.
Pin 16: WR  Write to external (additional) RAM..
Pin 17: RD Read from external RAM..
Pin 18, 19: X2,X1  Đầu vào ra của dao động nội, các phiên bản sau của vi điều khiển có thể hoạt động trong dãy tần số từ 0Hz đến 50 Hz.
Pin 20: GND Ground.
Pin 21-28: Port 2 Nếu không có ý định sử dụng bộ nhớ ngoài thì Port này được cấu hình như là input/output. Trong trường hợp bộ nhớ bên ngoài được sử dụng, các byte địa chỉ cao hơn, tức là địa chỉ  từ A8-A15 sẽ xuất hiện trên port này. Mặc dù bộ nhớ với dung lượng 64Kb không được sử dụng, có nghĩa là không phải tất cả 8 bit của port này  được sử dụng và các bits còn lại không được sử dụng như input/output.
Pin 29: PSEN Nếu ROM bên ngoài được sử dụng để lưu trữ các chương trình sau đó một logic 0 sẽ xuất hiện trên nó mỗi lần khi vi điều khiển đọc một byte từ bộ nhớ.
Pin 30: ALE Trước khi đọc từ bộ nhớ ngoài, các vi điều khiển đặt các byte địa chỉ thấp (A0-A7) trên P0 và kích hoạt đầu ra ALE. Sau khi nhận được tín hiệu từ các pin ALE, thanh ghi bên ngoài (thường là 74HCT373 hoặc 74HCT375 add-on chip) ghi nhớ trạng thái của P0 và sử dụng nó như là một địa chỉ chip nhớ. Ngay sau đó, các pin ALU được trả về trạng thái logic của nó trước đó và P0 bây giờ được sử dụng như một Data Bus. Như đã thấy, cổng dữ liệu ghép được thực hiện bằng các phương tiện khác (và rẻ tiền) tích hợp trên một mạch. Nói cách khác, cổng này được sử dụng cho cả truyền dữ liệu và truyền địa chỉ.
Pin 31: EA Việc áp dụng mức logic 0 trên pin này, P2 và P3 được sử dụng cho việc truyền dữ liệu và địa chỉ không có liên quan việc xem có bộ nhớ trong hay không. Nó có nghĩa là thậm chí có một chương trình được viết cho vi điều khiển, chương trình này sẽ không được thực thi. Thay vào đó, các chương trình được viết cho ROM bên ngoài sẽ được thực thi. Bằng cách áp dụng mức logic 0 trên pin EA, vi điều khiển sẽ sử dụng cả hai bộ nhớ, đầu tiên bên trong sau đó thì bên ngoài (nếu có).
Pin 32-39: Port 0 Tương tự P2, nếu bộ nhớ bên ngoài không được sử dụng, các chân có thể được sử dụng như là input/output chung. Nếu không, P0 được cấu hình như là đầu ra địa chỉ (A0-A7) khi pin ALE được điều khiển mức logic 1 hoặc là đầu ra dữ liệu (Data Bus) khi pin ALE ở mức logic 0.
Pin 40: VCC + 5V cung cấp điện.

2. INPUT/OUTPUT Port
   Tất cả vi điều khiển 8051 có 4 port I/O, mỗi port gồm 8 bit và có thể được cấu hình như một input hoặc output. Theo đó trong tổng số 32 pin Input/Output có thể được kết nối với thiết bị ngoại vi có sẵn để sử dụng.
   Cấu hình cho chân (pin) vi điều khiển, các pin của vi điều khiển có thể được cấu hình như một input hay một output, phụ thuộc vào trạng thái logic của nó. Để cấu hình cho một pin của vi điều khiển như một output, cần thiết áp một mức logic 0 lên bit của I/O port. Trong trường hợp này mức điện áp trên pin tương ứng là 0.
   Tương tự như vậy, để cấu hình một chân (pin) của vi điều khiển như một input, cần áp mức logic 1 lên I/O port tương ứng. Trong trường hợp này mức điện áp được áp lên pin vi điều khiển tương ứng là +5v. Bạn có thấy khó hiểu không? tất cả sẽ rõ ràng hơn nếu như bạn nghiên cứu một mạch điện tử đơn giản được kết nối với pin I/O.
Kết nối với pin I/O
Kết nối mạch đơn giản với pin I/O - ảnh: mikroe.com

Input/Output (I/O) pin - ảnh: mikroe.com
Hình trên mô tả một sơ đồ kết nối đơn giản giữa các mạch  điện tử với một trong các pin của vi điều khiển. Nó được áp dụng cho tất cả các pin của vi điều  khiển, ngoại trừ cổng P0 không có điện trở kéo lên được xây dựng bên trong.

Output pin
Output pin - ảnh: mikroe.com
Một mức logic 0 được set cho một bit của thanh ghi P, ngõ ra của transistor FE là on, qua đó pin tương ứng sẽ được kết nối xuống GND.

Input pin
Input pin - ảnh: mikroe.com
Một mức logic 1 được set cho một bit của thanh ghi P, ngõ ra của transistor FE off, pin tương ứng vẫn được kết nối với nguồn vcc qua một điện trở

   Trạng thái logic (điện áp) của bất kì pin nào có thể được thay đổi hoặt được đọc bất cứ lúc nào, mức logic 0 và mức logic 1 là không bằng nhau. Mức logic 0 đại diện cho ngắn mạch xuống mass. Pin đó đóng vai trò là một output.
   Mức logic 1 được kết nối với nguồn cung cấp năng lượng qua một điện trở có điện trở khán cao. Các pin đó như các ngõ vào input.

Port 0:
    P0 được đặc trưng hai chức năng. Nếu bộ nhớ bên ngoài được sử dụng, sau đó các byte địa chỉ thấp hơn (A0-A7) được áp dụng lên nó. Nếu không tất cả các bit của port này được cấu hình như ngõ Input/Output chung.
    Các chức năng khác được thể hiện khi nó được cấu hình như là output. Không giống như các port khác - các pin được nối với một điện trở kéo lên nguồn 5v. Các pin của port này có điện trở rời ra. Sự khác biệt nhỏ này có thể xảy ra các trục trặc như sau:

ảnh: mikroe.com
Nếu bất kỳ pin nào của port này được cấu hình như một input và sau đó nó hoạt động như thể nó "float". Một Input như thế có điện trở đầu vào không giới hạn và tiềm năng rất lớn.








ảnh: mikroe.com
Khi một chân (pin) được set như một output, nó hoạt động như một "cổng mở". Bằng cách set mức logic 0 cho một bit nào đó của port, pin tương ứng sẽ được nối với round. Nếu set một pin của port là mức logic 1, ngõ ra bên ngoài của pin tương ứng được thả nổi, nếu muốn áp dụng mức logic 1 ở pin này thì ta cần nối với nó một điện trở kéo lên nguồn 5v.






NOTE: Chỉ trong trường hợp P0 được sử dụng cho các địa chỉ bộ nhớ ngoài, vi điều khiển sẽ cung ứng nguồn năng lượng bên trong cho việc cung cấp năng lượng cho các pin với mức logic 1.

Port 1:
   P1 thật sự là port I/O, bởi vì nó không có chức năng thay thế nào như ở P0, có thể cấu hình I/O chung. Các pin của port này có các điện trở kéo lên được xây dựng bên trong và hoàn toàn tương thích với các mạch  TTL.

Port 2:
   P2 hoạt động tương tự P0 khi bộ nhớ ngoài được sử dụng. Các pin của port này chiếm địa chỉ dành cho các memory chip bên ngoài. Lần này là byte địa chỉ cao hơn từ A8-A15. Khi không có kết nối với memory chip thì P2 đóng vai trò là I/O port như P1.

Port 3:
   Tất cả các pin của P3 được sử dụng như I/O chung, nhưng nó cũng có một số chức năng thay thế. Để sử dụng các chức năng thay thế này phải cấu hình thích hợp trên thanh ghi P3. trong các hệ phần cứng cổng này tương tự P0, có một sự khác biệt là nó có các điện trở kéo lên được xây dựng bên trong.

Hạn chế về dòng điện ở các pin:
   Khi cấu hình như output (mức logic 0), các pin của một port có thể nhận một dòng 10 mA, nếu tất cả 8 bit của một port hoạt động dòng điện tổng cộng được giới hạn 15mA (26 mA đối với P0). Nếu tất cả 32 bit cùng hoạt động, dòng điện tổng cộng lớn nhất giới hạn là 71 mA. Khi các pin này được cấu hình là Input (logic 1), các điện trở kéo lên xây dựng bên trong cung cấp một dòng khá yếu, nhưng đủ mạnh để kích hoạt lên đến 4 TTL đầu vào và series LS.

* Mời các bạn đón đọc tiếp "Làm quen với vi điều khiển 8051 tiếng việt phần 2"

Nguồn tham khảo mikroe.com.
Vui lòng ghi rõ nguồn http://dientudieukhien.net khi phát hành lại bài viết này.

Click vào link tải ở trên đợi 5 giây, ấn "Bỏ qua quảng cáo". Click the link above, wait for 5s and click button "Skip Ad"

Những bài viết cùng chủ đề:

Chia sẽ bài viết này

Cập nhật tin bài mới

Subscribe địa chỉ mail để nhận tin nhanh chóng. Chúng tôi sẽ giữ bí mật địa chỉ mail của bạn.

0 nhận xét:

back to top