Thanh ghi register là gì

Bạn đã bao giờ muốn điều khiển nhiều LED chưa? Hay bạn có khi nào bạn cần thêm chân I / O không? Bài viết này này Điện Tử Tương Lai sẽ nói về những điều cơ bản bạn cần biết về một công nghệ cho phép bạn thực hiện điều đó. Nó được gọi là thanh ghi dịch hay shift register. Vậy nó chính xác là gì? Tại sao nó hữu ích? Làm thế nào để sử dụng nó? Đây là tất cả các câu hỏi mà Điện Tử Tương Lai sẽ cố gắng trả lời trong bài viết này.

Thanh ghi dịch là gì

Thanh ghi dịch hay shift register là một thiết bị cho phép thêm các đầu vào hoặc đầu ra bổ sung vào vi điều khiển.

Điều này được thực hiện bằng cách chuyển đổi dữ liệu giữa các định dạng song song và nối tiếp. Bộ vi xử lý giao tiếp với thanh ghi dịch bằng cách sử dụng thông tin nối tiếp và thanh ghi dịch thu thập hoặc xuất thông tin ở định dạng song song (nhiều chân).

>>> Tìm ngay thanh ghi dịch bạn cần tại Điện Tử Tương Lai

https://dientutuonglai.com/ic-chuc-nang-2/

Các loại thanh ghi dịch

Thanh ghi dịch có hai loại cơ bản. Một loại là SIPO là viết tắt của Serial-In-Parallel-Out. Loại còn lại là PISO viết tắt là Parallel-In-Serial-Out. Loại đầu tiên SIPO rất hữu ích để kiểm soát một số lượng lớn đầu ra, ví dụ như LED. Trong khi loại thứ hai, PISO sử dụng để thu thập một số lượng lớn đầu vào, ví dụ như nút nhấn.

Nếu bạn cần nhiều hơn 8 đường I / O bổ sung, bạn có thể dễ dàng liên kết nhiều thanh ghi dịch với nhau bằng cách kết nối phía đầu ra của bo breakout với phía bên phải của bo khác.

Tại sao phải dịch bit

Shift register thường được sử dụng với mục đích tiết kiệm các chân trên vi điều khiển. Mọi bộ vi điều khiển đều có một số chân giới hạn cho các đầu vào và đầu ra chung (GPIO).

Nếu một dự án cần điều khiển 16 LED, thông thường sẽ yêu cầu 16 chân của vi điều khiển. Trong trường hợp bạn không có 16 chân I / O khả dụng, thì bạn sẽ cần đến thanh ghi dịch. Với hai thanh ghi dịch được mắc nối tiếp, chúng ta có thể điều khiển 16 LED chỉ với 4 chân I / O. Đó là một sự khác biệt, và bạn có thể tiết kiệm được nhiều chân hơn khi có nhiều thanh ghi dịch liên kết với nhau.

Một ví dụ thực tế về việc sử dụng thanh ghi dịch để thu thập đầu vào là bộ điều khiển Nintendo ban đầu. Bộ vi điều khiển chính của NES cần nhận các lần nhấn nút từ bộ điều khiển và nó đã sử dụng shift register để thực hiện nhiệm vụ đó.

Ví dụ

Kết nối phần cứng

Chúng ta sẽ sử dụng breakout board 74HC165 và Arduino Uno để cho thấy cách thực hiện vào song song (Parallel-In) đến ra nối tiếp (Serial-Out) cho ví dụ này.

Thanh ghi register là gì

Một thanh ghi dịch 8 bit cần 4 line của vi điều khiển. Một để đồng hồ định thời gian truyền dữ liệu, một để bật đồng hồ, một để tải / chốt / dịch chuyển các bit và một để truyền dữ liệu nối tiếp.

 

Thanh ghi register là gì

Kết nối đồng hồ (CLK) với chân 12 và bật đồng hồ (CE) với chân 9. CLK đặt tần số mà các bit được dịch chuyển còn đường CE cho phép tín hiệu đồng hồ truyền qua mạch dịch.

Kết nối shift / load (SH / LD) với chân 8. Quá trình chuyển đổi xuống mức thấp trên chân load cho thanh ghi dịch biết trạng thái hiện tại của 8 chân đầu vào (A-H). Các chân A-H có thể được kết nối với một số loại đầu vào như nút, công tắc hoặc mạch transistor kỹ thuật số. Nếu bạn đang kiểm tra chúng, thì nối trực tiếp chúng vào nguồn điện hoặc đất để đảm bảo mọi thứ hoạt động chính xác. Trong ví dụ này sẽ kết nối một cái với một nút có điện trở kéo lên và những cái còn lại với nguồn hoặc nối đất.

Kết nối nối tiếp ra (SER_OUT) với chân 11. Chân này là nơi nhận thông tin nối tiếp từ thanh ghi dịch. Ngoài ra, kết nối nối tiếp trong (SER_IN) với đất. Nếu bạn xâu chuỗi nhiều shift register với nhau, nối tiếp vào sẽ được gắn với nối tiếp ra khỏi thanh ghi dịch cuối cùng. Thanh ghi đầu tiên trong line sẽ vẫn có chân nối tiếp của nó được nối đất còn thanh ghi cuối cùng trong chuỗi sẽ có đầu ra nối tiếp của nó kết nối trở lại bộ vi xử lý thay vì một thanh ghi dịch khác.

Đừng quên kết nối nguồn (2V-6V) và nối đất. Khi mọi thứ đã kết nối xong, chúng ta hãy xem xét firmware.

Firmware

Chúng ta sẽ tóm tắt ngắn gọn những gì code làm được. Đầu tiên, nó khởi tạo tất cả các chân mà chúng ta đã kết nối với đầu ra, ngoại trừ chân mà chúng ta nhận được thông tin nối tiếp. Chúng ta đặt chân đồng hồ và dịch về trạng thái ban đầu (CAO) như mô tả trong datasheet. Để đọc trạng thái của các chân A-H, chúng ta cần báo cho thanh ghi dịch để nắm bắt trạng thái của các chân. Chúng ta thực hiện việc này bằng cách kéo chân load THẤP một thời gian ngắn (5 micro giây). Khi các chân được tải, chúng ta đảm bảo phần còn lại của các chân ở trạng thái bắt đầu như trong mô tả datasheet và sử dụng chức năng Arduino shiftIn để kéo tất cả 8 giá trị chân A-H vào một byte. Các giá trị được xuất ra trên chân nối tiếp. Sau đó nó sẽ đợi và lặp lại. Nếu bạn đang kết nối các chân như chúng ta đã làm ở trên, sẽ dễ dàng kiểm tra xem phần cứng của bạn có hoạt động chính xác hay không.

Đây là CODE

Đây là ví dụ đầu ra

Bây giờ, hãy thử kết nối từng đầu vào với các nút hoặc thêm một thanh ghi dịch khác vào hỗn hợp. Nếu bạn nối nhiều hơn, bạn sẽ phải sửa đổi mã một chút bằng cách tải một lần, sau đó thực hiện shiftIn cho mỗi shift register bạn có trước khi tải lại.

>>> Tìm ngay thanh ghi dịch bạn cần tại Điện Tử Tương Lai

https://dientutuonglai.com/ic-chuc-nang-2/

Bộ nhớ ROM dùng để lưu chương trình do người viết chương trình viết ra. Chương trình là tập hợp các câu lệnh thể hiện các thuật toán để giải quyết các công việc cụ thể, chương trình do người thiết kế viết trên máy vi tính, sau đó được đưa vào lưu trong ROM của vi điều khiển, khi hoạt động, vi điều khiển truy xuất từng câu lệnh trong ROM để thực hiện chương trình. ROM còn dùng để chứa số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống. Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình (do các mạch điện riêng biệt thực hiện).

Bạn đang xem : Thanh ghi nằm ở đâu

 

Bộ nhớ ROM được tích hợp trong chip Vi điều khiển với dung lượng tùy vào chủng loại cần dùng, chẳng hạn đối với 89S52 là 8KByte, với 89S53 là 12KByte.

Bạn đang đọc: Các Thanh Ghi Nằm Ở Đâu – Thanh Ghi (Register) Là Gì

Bộ nhớ bên trong Vi tinh chỉnh và điều khiển 89S xx là bộ nhớ Flash ROM được cho phép xóa bộ nhớ ROM bằng điện và nạp vào chương trình mới cũng bằng điện và hoàn toàn có thể nạp xóa nhiều lầnBộ nhớ ROM được định địa chỉ theo từng Byte, những byte được đánh địa chỉ theo số hex-số thập lục phân, khởi đầu từ địa chỉ 0000H, khi viết chương trình cần chú ý quan tâm đến địa chỉ lớn nhất trên ROM, chương trình được lưu sẽ bị mất khi địa chỉ lưu vượt qua vùng này. Ví dụ : AT89S52 có 8KB yte bộ nhớ ROM nội, địa chỉ lớn nhất là 1FFFH, nếu chương trình viết ra có dung tích lớn hơn 8KB yte những byte trong những địa chỉ lớn hơn 1FFFH sẽ bị mất .Ngoài ra Vi điều khiển và tinh chỉnh còn có năng lực lan rộng ra bộ nhớ ROM với việc tiếp xúc với bộ nhớ ROM bên ngoài lên đến 64KB yte ( địa chỉ từ 0000H đến FFFFH ) .

1.5.BỘ NHỚ DỮ LIỆU- BỘ NHỚ RAM

Bộ nhớ RAM dùng làm thiên nhiên và môi trường giải quyết và xử lý thông tin, tàng trữ những hiệu quả trung gian và hiệu quả sau cuối của những phép toán, xử lí thông tin. Nó cũng dùng để tổ chức triển khai những vùng đệm tài liệu, trong những thao tác thu phát, quy đổi tài liệu. RAM nội trong Vi điều khiển và tinh chỉnh được tổ chức triển khai như sau :Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lục phân (số Hex) Các bank thanh ghi có địa chỉ 00H đến 1FH 210 vị trí được định địa chỉ bit các vị trí RAM bình thường Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH.Các vị trí trên RAM được định địa chỉ theo từng Byte bằng những số thập lục phân ( số Hex ) Các ngân hàng thanh ghi có địa chỉ 00H đến 1FH 210 vị trí được định địa chỉ bit những vị trí RAM thông thường Các thanh ghi có công dụng đặc biệt quan trọng có địa chỉ từ 80H đến FFH .Các byte RAM 8 bit của vi tinh chỉnh và điều khiển được gọi là ” ô nhớ “, nếu những ô nhớ có tính năng đặc biệt quan trọng thường được gọi là ” thanh ghi “, nếu là bit thì được gọi là ” bit nhớ ” .

Thanh ghi register là gì

 1.5.1. Các bank thanh ghi

Các ngân hàng thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trong mỗi ngân hàng, những thanh ghi được đặt tên từ R0-R7, những thanh ghi này được đặt mặc định trong ngân hàng 1. Có 4 ngân hàng thanh ghi và tại mỗi thời gian chỉ có một ngân hàng thanh ghi được truy xuất với những thanh ghi từ R0 đến R7, để biến hóa việc truy xuất những thanh ghi trên những ngân hàng thanh ghi, người dùng phải biến hóa giá trị những bit chọn ngân hàng trong thanh ghi trạng thái PSW bằng những câu lệnh trong chương trình. Các lệnh dùng những thanh ghi từ R0 đến R7 mất khoảng chừng khoảng trống tàng trữ ít hơn và thời hạn triển khai nhanh hơn so với những lệnh dùng những ô nhớ RAM khác, ngoài những những thanh ghi này còn có thêm một số ít tính năng đặc biệt quan trọng khác, vì lí do này những tài liệu sử dụng thường thường được người viết chương trình đưa vào lưu trong những thanh ghi này. Ngoài ra, hoàn toàn có thể truy xuất thanh ghi trên những ngân hàng thanh ghi như với những ô nhớ thông thường khác. Ví dụ : nguời dùng hoàn toàn có thể truy xuất đến thanh ghi R7 bằng ô nhớ 07H .

 1.5.2. Vùng RAM truy xuất từng bit

 1.5.3. Vùng RAM bình thường

Vùng RAM này có địa chỉ byte từ 30H đến 7FH, dùng để tàng trữ tài liệu, được truy xuất theo từng byte .

 1.5.4. Các thanh ghi có chức năng đặc biệt

Các thanh ghi này được định địa chỉ byte, một số ít được định thêm địa chỉ bit, có địa chỉ của những thanh ghi này nằm trong khoảng chừng 80H đến FFH. Các thanh ghi đặc biệt quan trọng này này được dùng để xác lập trạng thái hoạt động giải trí thiết yếu cho Vi điều khiển và tinh chỉnh .Xem thêm : Khẩu Độ Cống Là Gì – Các Khái Niệm Khác Về Khẩu Độ

Xem thêm: Phân cực – Là gì Wiki

TÌM HIỂU MỘT SỐ Ô NHỚ CÓ CHỨC NĂNG ĐẶC BIỆT

 1.5.6.Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H:

Đây là những thanh ghi kiểm tra và tinh chỉnh và điều khiển mức logic của những Port, hoàn toàn có thể truy xuất và xác lập những thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt là P0, P1, P2, P3 tương ứng với những Port xuất. Chẳng hạn để toàn bộ những chân của Port 0 lên mức logic 1, cần làm cho những bit của thanh ghi có địa chỉ 80H lên mức 1 .

1.5.7.thanh ghi A

Thanh ghi A là thanh ghi quan trọng, dùng để tàng trữ những toán hạng và hiệu quả của phép tính. Thanh ghi A có độ dài 8 bits, có địa chỉ là E0H .

1.5.8. thanh ghi B

Thanh ghi B ở địa chỉ F0H, được dùng với thanh ghi A để triển khai những phép toán số học. Khi triển khai lệnh chia với thanh ghi A, số dư được tàng trữ ở thanh ghi B. Ngoài ra thanh ghi B còn được dùng như một thanh ghi đệm có nhiều công dụng .

1.5.9.Con trỏ ngăn xếp SP: địa chỉ 81H

Con trỏ ngăn xếp SP là một thanh ghi có địa chỉ 81H, giá trị của nó được tăng, giảm tự động hóa khi triển khai những lệnh PUSH, CALL, POP con trỏ SP dùng quản lí và xử lí những nhóm tài liệu liên tục. Giá trị mặc định của SP là 07H .

1.5.10. Con trỏ dữ liệu DPTR.

Con trỏ tài liệu DPTR là thanh ghi 16 bit duy nhất của Vi điều khiển và tinh chỉnh 8051 được tạo thành từ hai thanh ghi DPL ( byte thấp-địa chỉ byte 82H ) và DPH ( byte cao-địa chỉ byte 83H ). Hai thanh ghi DPL và DPT hoàn toàn có thể truy xuất độc lập bởi người sử dụng. Con trỏ tài liệu DPTR thường được sử dụng khi truy xuất tài liệu từ bộ nhớ ROM hoặc bộ nhớ từ bên ngoài .

1.5.11.Thanh ghi trạng thái chương trình PSW (địa chỉ byte D0H)

BIT ĐỊA CHỈ BIT KÍ HIỆU CHỨC NĂNG
PSW.7 D7H C hoặc Cy  Cờ nhớ
PSW.6 D6H AC  Cờ nhớ phụ
PSW.5 D5H F0  Cờ 0 hay cờ Zero
PSW.4 D4H RS1  Bit lựa chọn dãy thanh ghi
PSW.3 D3H RS0  Bit lựa chọn dãy thanh ghi
PSW.2 D2H 0V  Cờ tràn với phép tính liên quan đến số nhị phân có dấu
PSW.1 D1H  Chưa được thiết kế để sử dụng
PSW.0 D0H P  Cờ chẵn lẻ

Chức năng từng bit trong thanh trạng thái PSW

Cờ nhớ C : Cờ được sử dụng trong những lệnh toán học : C = 1 nếu phép toán cộng xảy ra tràn hoặc phép trừ có mượn C = 0 nếu phép toán cộng không tràn hoặc phép trừ không có mượn .Cờ nhớ phụ AC : Cờ AC được dùng trong những phép toán cộng hai số BCD. Khi cộng số BCD : Nếu tác dụng 4 bit lớn hơn 09H thì AC = 1 Nếu hiệu quả 4 bit dưới 09H thì AC = 0 .Cờ 0 hay cờ nhớ Z : Cờ Z = 0 khi thanh ghi A có giá trị khác 0 Cờ Z = 1 khi A thanh ghi A có giá trị là 0

Các bit chọn bank thanh ghi:  Hai bit RS1 và RS2 dùng để xác lập bank thanh ghi được sử dụng, mặc định RS1=0 và RS2=0

Xem thêm: Canvas là gì và chất liệu nào XỊN XÒ đến đâu mà túi vải CỰC HOT

RS1 RS2 Bank thank ghi được sử dụng
0 0 Bank 0
0 1 Bank 1
1 0 Bank 2
1 1 Bank 3

Cờ tràn OV Được sử dụng trong những phép toán cộng có dấu, với những phép toán cộng không dấu cờ tràn OV được bỏ lỡ, không cần chăm sóc đến OV. Nếu : Phép cộng hai số có dấu lớn hơn + 127 thì OV = 1 Hoặc phép trừ hai số có dấu nhỏ hơn – 127 thì OV = 1 Các trường hợp còn lại OV = 0Cờ chẵn lẻ Cờ chẵn lẻ P. tự động hóa được đặt bằng 1 hoặc 0 sao cho tổng số bit mang giá trị 1 trên thanh ghi A với cờ P. luôn là một số chẵn. Cờ chẵn lẻ được dùng để xử lí tài liệu trước khi truyền đi theo kiểu tiếp nối đuôi nhau hoặc xử lí tài liệu trước khi nhận vào theo kiểu tiếp nối đuôi nhau ( hạn chế lỗi phát sinh trong quy trình truyền ) .