Mục lục:

Xây dựng máy tính W / Hiểu biết cơ bản về điện tử: 9 bước (có hình ảnh)
Xây dựng máy tính W / Hiểu biết cơ bản về điện tử: 9 bước (có hình ảnh)

Video: Xây dựng máy tính W / Hiểu biết cơ bản về điện tử: 9 bước (có hình ảnh)

Video: Xây dựng máy tính W / Hiểu biết cơ bản về điện tử: 9 bước (có hình ảnh)
Video: Các thành phần cơ bản trong một chiếc PC GAMING | GVN BUILD PC #1 2024, Tháng Chín
Anonim
Xây dựng máy tính W / Hiểu biết cơ bản về điện tử
Xây dựng máy tính W / Hiểu biết cơ bản về điện tử

Bạn đã bao giờ muốn giả vờ rằng bạn thực sự thông minh và xây dựng máy tính của riêng bạn từ đầu chưa? Bạn không biết gì về những gì cần thiết để tạo ra một chiếc máy tính tối thiểu? Chà, thật dễ dàng nếu bạn biết đủ về điện tử để ghép một số IC với nhau một cách chính xác. Người hướng dẫn này sẽ cho rằng bạn giỏi phần đó, cộng với một số thứ khác. Và nếu không, vẫn không quá khó để làm theo nếu bạn biết cách thực hiện breadboarding / prototyping. Mục đích của hướng dẫn này là giúp bạn có được một "máy tính" đang hoạt động mà không cần biết nhiều về cách chúng hoạt động. Tôi sẽ trình bày về hệ thống dây và kiến thức cơ bản về lập trình, cũng như cung cấp một chương trình rất ngắn cho bạn. Vậy hãy bắt đầu.

Bước 1: Các bộ phận và nội dung

Bộ phận và Nội dung
Bộ phận và Nội dung
Bộ phận và Nội dung
Bộ phận và Nội dung

Một "máy tính" yêu cầu: nguồn, đầu vào, xử lý, bộ nhớ và đầu ra. Về mặt kỹ thuật, chúng tôi sẽ có tất cả những thứ này. Tôi sẽ trình bày những điều này theo thứ tự đó.

Đối với nguồn điện, bạn sẽ cần nguồn 5 volt (ở đây được dán nhãn là 5V). Nó được khuyến nghị là một nguồn được điều chỉnh để bạn không vô tình làm hỏng các bộ phận trong mạch của bạn. Đầu vào của chúng tôi sẽ là các nút. Quá trình xử lý là tự giải thích; chúng tôi đang sử dụng một bộ xử lý. Bộ nhớ sẽ chỉ bao gồm ROM. Các thanh ghi mục đích chung bên trong của bộ xử lý sẽ đủ để sử dụng làm RAM. Đầu ra sẽ là đèn LED.

1 LM7805C - Bộ điều chỉnh 5V

1 ZYLOG Z80 - Bộ xử lý

1 AT28C64B - EEPROM

1 74LS273 - Nắp lật Octal D

1 74HC374E - Nắp lật Octal D

3 CD4001BE - Cổng Quad NOR

1 NE555 - Máy tạo đồng hồ

2 Điện trở 1K Ohm

1 Điện trở 10K Ohm

1 Mạng điện trở 10K Ohm; 8 Bussed HOẶC 8 Điện trở 10K bổ sung

1 Tụ điện 1uF

1 tụ điện 100uF

1 nút nhấn

1 Ma trận nút 3x4 HOẶC 8 Nút đẩy bổ sung

8 LED - Lựa chọn màu sắc không quan trọng

8 Điện trở 330 Ohm hoặc Mạng điện trở

1 Breadboard thực sự lớn hoặc nhiều bảng nhỏ

Rất nhiều và rất nhiều dây

Trong sơ đồ của tôi, tôi đã cài đặt một thanh SRAM. Bạn thậm chí không cần phải lo lắng về điều đó. Tôi chỉ thêm nó vào sơ đồ để phản ánh chính xác mạch thực tế của tôi và tôi đã thêm nó vào mạch để sử dụng trong tương lai. Cũng được thêm vào giản đồ là một cổng OR tứ (74LS36). Hai đầu vào của cổng không sử dụng được gắn với VCC và đầu ra của chúng được để nổi (không được vẽ). Ngoài ra không được vẽ cũng như liệt kê ở trên là hai tụ điện trên mạch nguồn.

Tôi đang cấp nguồn 12V được điều chỉnh vào bộ điều chỉnh 5V để cấp nguồn cho toàn bộ breadboard. Nó trở nên khá ấm, vì vậy tôi đã gắn một tấm tản nhiệt để làm mát nó. Nếu bạn sử dụng ít hơn 12V để cấp nguồn cho bộ điều chỉnh (sử dụng ít nhất 7V), nó sẽ chạy mát hơn.

Z80 là nơi điều kỳ diệu xảy ra. Nó có các hướng dẫn được lưu trữ trong ROM và thực thi chúng. EEPROM lưu trữ chương trình của chúng tôi để bộ xử lý thực thi.

Flip-flop bát phân là thiết bị đầu ra của chúng tôi để chốt dữ liệu trên bus dữ liệu với đầu ra của chính nó. Điều này cho phép chúng tôi thay đổi những gì trên xe buýt, đây là một bước rất quan trọng được thực hiện nhiều lần cho mỗi hướng dẫn, mà không thay đổi những gì người dùng / người xem thấy. Flip-flop không thể điều khiển dòng điện cần thiết để chiếu sáng các đèn LED đầu ra, vì vậy chúng cấp vào hai trong số các chip cổng NOR tứ hoạt động để đệm 8 dòng dữ liệu để điều khiển các đèn LED. Vì chúng đầu ra của các cổng bị đảo ngược, chúng tôi cũng phải nối dây các đèn LED để được đảo ngược, nhưng chúng tôi sẽ đến điều đó khi chúng tôi đến điều đó. Chip NOR còn lại được sử dụng để giải mã logic nhưng chỉ có ba cổng được sử dụng.

Flip-flop bát phân được sử dụng cho đầu vào về cơ bản là giống nhau. Các flip-flops đầu ra giữ đầu ra của chúng ở mức cao hoặc thấp nên nó không thể được sử dụng để điều khiển xe buýt; nó sẽ giữ dữ liệu trên xe buýt. Flip-flop được sử dụng cho đầu vào sẽ thay thế chân / RESET bằng / EN, ít nhiều ngắt kết nối đầu ra của (và từ) chip, do đó nó sẽ không giữ dữ liệu (đầu ra ba trạng thái).

Bước 2: Đấu dây nguồn, mạch đồng hồ và thiết lập lại

Đấu dây nguồn, mạch đồng hồ và mạch khởi động lại
Đấu dây nguồn, mạch đồng hồ và mạch khởi động lại
Đấu dây nguồn, mạch đồng hồ và mạch khởi động lại
Đấu dây nguồn, mạch đồng hồ và mạch khởi động lại
Đấu dây nguồn, mạch đồng hồ và mạch khởi động lại
Đấu dây nguồn, mạch đồng hồ và mạch khởi động lại

LƯU Ý: Đối với tất cả các bộ phận, trước tiên hãy đấu dây vào ray điện. Trong tất cả những điều cần quên đi dây, các con chip sẽ ít có khả năng tồn tại các kết nối điện bị quên hơn nhiều.

Mạch nguồn là mạch đơn giản nhất để đấu dây, tiếp theo là mạch reset và mạch clock. Trong hình, đầu vào 12V nằm trên dải nguồn ở ngoài cùng bên phải. Dây màu nâu, ẩn một dây màu vàng bên dưới nó, cấp nguồn 12V cho bộ điều chỉnh. Đầu ra của bộ điều chỉnh cấp nguồn cho mọi dải điện khác trên breadboard và mọi dải điện đều có chung một điểm vì đó là cách hoạt động của thiết bị điện tử.

Bộ xử lý yêu cầu một mạch đồng hồ để hoạt động. Nếu không có nó, nó sẽ chỉ ngồi đó ở trạng thái khởi tạo và không làm gì cả. Đồng hồ vận hành các thanh ghi dịch chuyển bên trong bộ xử lý để nó có thể tạo ra các tín hiệu để thực hiện công việc. Bất kỳ đầu vào đồng hồ sẽ làm được, ngay cả một điện trở đơn giản và nút nhấn. Nhưng phải mất nhiều chu kỳ đồng hồ để thực hiện các lệnh. Lệnh để ghi vào đầu ra mất 12 chu kỳ. Bạn có thể không muốn ngồi đó và nhấn nút hơn 100 lần để chỉ có một vòng lặp của mã (số thực tế nằm ở cuối phần hướng dẫn). Đó là những gì NE555 dành cho. Nó thực hiện chuyển đổi cho bạn và nó làm như vậy với tốc độ (tương đối) nhanh.

Trước khi bắt đầu đi dây bất cứ thứ gì, bạn có thể muốn tiếp tục và tìm ra cách bạn muốn các thành phần của mình được bố trí trên bo mạch. Mạch đồng hồ của tôi là loại chỉ được đặt ở dưới cùng của bảng mạch nên nó sẽ nằm ngoài cách của các thành phần khác. Chúng tôi sẽ cho rằng bạn biết cách tạo đồng hồ cơ bản với bộ đếm thời gian. Nếu không, bạn sẽ muốn tra cứu "555 Astable" và làm theo hướng dẫn. Sử dụng điện trở 1K để đi giữa đường ray 5V và chân 7 của bộ định thời (R1) và 10K giữa chân 7 và chân 2 (R2). Đảm bảo buộc chốt đặt lại, chân 4, vào đường ray 5V để bộ hẹn giờ có thể hoạt động. Tôi đặt một đèn LED trên đầu ra của tôi để tôi có thể xác minh rằng đồng hồ trên thực tế đã hoạt động, nhưng nó không cần thiết.

Một tùy chọn khác với NE555 là thiết lập nó làm cổng NOT và sử dụng điện trở 1K để buộc đầu ra trở lại đầu vào. Thông thường nên sử dụng 3 bộ hẹn giờ để thực hiện việc này, nhưng tôi thấy rằng chỉ 1 bộ hẹn giờ sẽ hoạt động tốt. Chỉ cần biết rằng nếu bạn làm điều này, nó sẽ dao động với tốc độ rất cao và sẽ rất khó, thậm chí không thể nhận biết rằng các đèn LED đầu ra đang nhấp nháy. Thiết lập này được gọi là "bộ tạo dao động vòng".

Lưu ý rằng chúng tôi chưa kết nối đồng hồ với bộ xử lý. Chúng tôi chỉ đơn giản là chuẩn bị sẵn sàng. Cũng lưu ý chip logic ngay phía trên đồng hồ trong hình ảnh. Nó đã được thêm vào sau đó và đó là vị trí hợp lý duy nhất còn lại để đặt nó. Nó được sử dụng để lựa chọn RAM / ROM. Lệnh này bỏ qua RAM nên bạn sẽ không có chip này trên bo mạch của mình.

Bây giờ chúng ta đấu dây vào mạch đặt lại. Trước tiên, bạn cần phải tìm một vị trí trên bảng của bạn cho nó. Tôi chọn ngay bên cạnh đồng hồ. Thêm nút của bạn vào bảng. Dùng điện trở 1K buộc một bên nút vào thanh ray 5V. Các chân RESET của chúng tôi đang hoạt động ở mức thấp, có nghĩa là chúng tôi cần giữ chúng ở mức cao. Đó là những gì các điện trở là cho. Đường giao nhau này cũng là nơi kết nối các chân thiết lập lại. Mặt còn lại của nút tiếp đất thẳng. Nếu bạn muốn thiết lập lại khi bật nguồn, hãy thêm tụ điện 10uF vào đường giao nhau này. Nó sẽ giữ cho điện áp trên các chân đặt lại ở mức thấp đủ lâu để kích hoạt mạch đặt lại bên trong bộ xử lý và flip-flop.

Bước 3: Nối dây Z80

Bây giờ chúng ta đi đến vấn đề nitty-gritty. Chúng tôi sẽ kết nối con quái vật đó là Z80. Trên bảng của tôi, tôi đặt Z80 ở trên cùng trên cùng một phần của bảng với mạch đặt lại. Như đã nêu trước đây, hãy đấu dây vào đường ray điện trước. 5V đi đến chân 11 ở bên trái và nối đất là một chân xuống nhưng ở bên phải. Bạn cũng có thể nhận thấy chiều rộng kỳ lạ của con chip. Nó sẽ khiến bạn có 3 đầu nối mở ở một bên trên breadboard và 2 đầu nối ở bên kia. Nó chỉ khiến bạn bớt thuận tiện hơn khi buộc những thứ bổ sung nếu bạn chọn làm như vậy.

Các số chân sau - Tôi giả sử bạn biết cách đếm các chân trên IC - là đầu vào không sử dụng và phải được gắn với đường ray 5V: 16, 17, 24, 25.

Nhớ đồng hồ của chúng tôi? Ouput của nó chuyển đến chân 6 trên z80. Mạch thiết lập lại kết nối với chân 26. Không có các thành phần khác trên bo mạch, điều này theo tôi có thể giúp bạn với dây của chính z80. Việc nối dây khác sẽ được thực hiện trong các bước sau.

Bởi vì tôi đã có mạch được xây dựng trước khi tôi thậm chí xem xét việc viết bài hướng dẫn này, tôi sẽ giữ bức tranh cho đến bước tiếp theo.

Bước 4: Nối dây ROM

Đấu dây ROM
Đấu dây ROM

LƯU Ý: Bạn có thể muốn tạm dừng việc thực sự đặt nó lên bảng nếu nó vẫn cần được lập trình (thêm về điều đó sau).

Đối với ROM, tôi đặt nó bên cạnh Z80 ở bên phải và cũng dời nó xuống một chốt trên breadboard. Điều này cho phép tôi kết nối trực tiếp xe buýt địa chỉ, nhưng nhiều hơn nữa về sau. AT28C64B là một EEPROM, có nghĩa là nó có thể được lập trình nhiều lần bằng cách tắt và bật một số chân. Chúng tôi không muốn EEPROM của chúng tôi vô tình lập trình lại chính nó khi nó nằm trong mạch. Vì vậy, khi bạn đã nối đường ray nguồn, hãy nối chân pin 27 (/ WE) vào đường ray 5V để tắt hoàn toàn tính năng ghi.

Chương trình của tôi quá nhỏ, tôi chỉ cần kết nối 5 dòng địa chỉ thấp hơn (A0-A4), nhưng dù sao thì tôi cũng nối dây A5, A6 và A7 để tôi có thể viết các chương trình lớn hơn mà không cần làm thêm. Các đường địa chỉ bổ sung (A8-A12) được gắn trực tiếp với mặt đất để ngăn truy cập không mong muốn vào các địa chỉ cao hơn từ các đầu vào nổi. Với các đầu vào địa chỉ không sử dụng được gắn với mặt đất và điều khiển ghi được gắn với 5V, việc đấu dây phần còn lại khá đơn giản. Tìm A0 trên bộ xử lý và kết nối nó với A0 trên ROM. Sau đó, tìm A1 trên bộ xử lý và chuyển nó vào A1 trên ROM. Làm điều này cho đến khi bạn kết nối tất cả các địa chỉ với nhau. Trong hình ảnh, bus địa chỉ của tôi đến ROM được thực hiện bằng hệ thống dây màu xanh lam. Bus địa chỉ đi đến RAM được thực hiện bằng hệ thống dây màu đỏ. Tất cả các dây này đều đã được cắt và loại bỏ trước khi chúng đi kèm trong một bộ dây dẫn breadboard và rất phù hợp cho việc đi dây này.

Sau khi bạn nhận được các địa chỉ có dây (đây được gọi là bus địa chỉ), hãy làm điều tương tự đối với các chân có nhãn D0, sau đó là D1, D2, v.v. Làm điều này cho tất cả các chân dữ liệu (D0 - D7) và bạn có bus dữ liệu có dây. Chúng tôi gần như đã hoàn thành việc nối dây ROM. Tìm chân / CE (kích hoạt chip) của ROM và nối nó vào chân 19 của bộ xử lý, / MREQ (yêu cầu bộ nhớ), sau đó tìm / OE của ROM (cho phép đầu ra) và nối nó vào chân 21 của bộ xử lý, / RD (đọc). Bây giờ chúng tôi đã hoàn thành. Tất cả những điều này được thực hiện bằng dây nhảy vì chúng phải đi đến phía bên kia của bộ xử lý và bảng mạch không cung cấp đủ chỗ để sử dụng hệ thống dây gọn gàng như vậy.

Bước 5: Đấu dây đầu ra

Đấu dây đầu ra
Đấu dây đầu ra
Đấu dây đầu ra
Đấu dây đầu ra

Bởi vì nó không được phổ biến, tôi đã chọn phần bảng ở bên trái của Z80 cho đầu ra. Đặt flip-flop lên đó và kết nối chúng với ray điện. Chân 1, / MR (đặt lại) có thể kết nối trực tiếp với chân đặt lại của bộ xử lý, nhưng bạn có thể để nó gắn với đường ray 5V. Làm điều này sẽ chỉ khiến nó hiển thị dữ liệu rác cho đến lần ghi đầu tiên. Chú ý cách con chip có đầu vào xung nhịp trên chân 11. Đầu vào này kỳ lạ ở chỗ nó được kích hoạt khi chân lên mức cao. Cũng lưu ý rằng chân này KHÔNG phải là cùng một đồng hồ điều khiển bộ xử lý. Đồng hồ này chốt dữ liệu được xác nhận trên bus dữ liệu.

Hãy nhớ cách chúng ta đã kết nối D0 - D7 trên ROM với các chân tương tự trên bộ xử lý? Làm tương tự cho chip này. D0 của nó đi đến D0 trên bus dữ liệu và cứ tiếp tục như vậy. Các chân bắt đầu bằng "Q" là đầu ra. Trước khi nối dây, chúng ta cần thêm nhiều chip hơn. Tôi đã sử dụng bốn cổng NOR vì tôi có một ống trong số chúng và tôi đã cần một cái, nhưng về bất kỳ con chip nào sẽ hoạt động nếu bạn đấu dây đúng cách. Tôi có thể đã buộc một đầu vào trên tất cả các cổng với đất và sử dụng các đầu vào khác cũng như các đầu vào, nhưng tôi đã chọn kết nối cả hai đầu vào với nhau để đơn giản.

Tôi đã đặt các con chip bên dưới flip-flop để dễ dàng nối dây trực tiếp mà không cần jumper nhưng tôi đang thiếu dây vào thời điểm này nên cuối cùng nó không thực sự quan trọng. Q0, Q1….. Q7 trên flip-flop đi đến các đầu vào trên các cổng riêng lẻ. Với 4 cổng trong mỗi gói / chip, tôi cần 2 gói và sử dụng tất cả các cổng. Nếu bạn tìm thấy một phiên bản flip-flop có thể điều khiển đèn LED mà không cần bộ đệm như thế này, thì hai chip này không cần thiết. Nếu bạn sử dụng các cổng làm bộ đệm không có đầu ra đảo ngược (VÀ / HOẶC / XOR), thì bạn có thể đấu dây các đèn LED như mong đợi. Nếu bạn đang sử dụng các bộ phận giống như tôi và / hoặc đầu ra bị đảo ngược, các đèn LED sẽ được nối dây như mô tả bên dưới. Hình ảnh đầu tiên cho thấy phần IC của đầu ra.

Sử dụng điện trở 330 Ohm để buộc các đèn LED tích cực (Anode) vào đường ray 5V và kết nối cực âm (cathode) với đầu ra của các cổng. Bạn có thể thấy trong hình ảnh thứ hai rằng tôi đã sử dụng hai bus điện trở, mỗi bus chỉ có năm điện trở bên trong. Việc đấu dây các đèn LED như thế này sẽ làm cho chúng sáng lên khi đầu ra tắt. Chúng tôi làm điều này vì đầu ra tắt khi đầu vào đang bật. Hãy hoàn toàn đảm bảo rằng bạn theo dõi cổng nào đầu ra của bạn từ điều khiển lật. Trừ khi các đèn LED của bạn bị phân tán hoặc thứ tự của chúng là vô nghĩa, việc mất dấu chúng có thể gây ra nhầm lẫn sau này khi bạn tự hỏi mình tại sao đầu ra lại sai.

Bước 6: Đấu dây đầu vào

Đấu dây đầu vào
Đấu dây đầu vào

Lấy chiếc nắp gập 74HC374 đó và đặt nó ở đâu đó. Của tôi ở đâu đó bên dưới Z80 về phía cuối bảng. Hãy nhớ lần trước khi chúng ta kết nối D0 với D0 và D1 với D1, v.v.? Lần này chúng tôi kết nối Q0 với D0 và Q1 với D1, v.v. Rất may lần này chúng tôi không phải thêm bất kỳ chip đệm nào, haha. Thay vào đó, chúng tôi sẽ kết nối một 10K Ohm với mỗi chân "D" (D0-D7) và nối đất và sau đó là một nút với cùng một chân và đường ray 5V. Hoặc bạn có thể sử dụng một bus điện trở và giảm số lượng bộ phận của bạn rất nhiều. Ma trận nút 3x4 (không có đầu ra ma trận !!) cũng sẽ hữu ích. Hình ảnh hiển thị toàn bộ mạch đầu vào cùng với logic keo (phần đó là tiếp theo).

Bước 7: Keo Logic

Chúng tôi có một điều cuối cùng để kết nối. Nó được gọi là "logic keo" vì nó được sử dụng để giải mã các tín hiệu điều khiển để làm cho tất cả hoạt động; nó là thứ giữ mạch lại với nhau. Khi bộ xử lý muốn ghi dữ liệu vào đầu ra, cả / IORQ và / WR (lần lượt là 20 và 22) đều ở mức thấp và dữ liệu đang được gửi được xác nhận trên bus dữ liệu. Chân đồng hồ trên cả hai flip-flops đang hoạt động ở mức cao, có nghĩa là dữ liệu được chốt khi chân nhận được tín hiệu cao. Chúng tôi sử dụng một cổng NOR và dây / IORQ đến một đầu vào của cổng và / WR tới đầu vào kia. Khi một trong hai mức cao, nghĩa là các mạch IO không được chọn hoặc thao tác ghi không được thực hiện, đầu ra cấp cho đồng hồ của flip-flop vẫn ở mức thấp. Khi cả hai đầu vào ở mức thấp và chỉ khi, đầu ra tăng cao và flip-flop chốt dữ liệu.

Bây giờ chúng ta cần nối dây flip-flop đầu vào. Chúng ta có thể lên dây cho chân đồng hồ theo cách giống như cách trước, nhưng sử dụng / IORQ và / RD. Nhưng không giống như các flip-flop khác, chúng tôi cũng có một chân / OE chỉ cần được hạ thấp khi / IORQ và / RD ở mức thấp. Chúng tôi có thể sử dụng một cổng HOẶC. Hoặc chúng ta có thể lấy tín hiệu mà chúng ta đã có cho đồng hồ và đảo ngược nó bằng một trong hai cổng đảo chiều mà chúng ta đã có sẵn. Tại thời điểm nêu rõ hướng dẫn này, tôi không có sẵn cổng HOẶC, vì vậy tôi đã sử dụng một tùy chọn thứ hai. Sử dụng tùy chọn thứ hai có nghĩa là tôi không cần thêm bất kỳ bộ phận bổ sung nào.

Bước 8: Lập trình

Nếu hệ thống dây của bạn đúng và lời giải thích của tôi rõ ràng, tất cả những gì còn lại là để ROM được lập trình. Có một số cách để giải quyết vấn đề này. Bạn có thể thực hiện một cách dễ dàng và đặt mua một con chip mới của Digikey. Khi đặt hàng, bạn sẽ có tùy chọn tải lên tệp HEX và họ sẽ lập trình trước khi giao hàng. Sử dụng các tệp HEX hoặc OBJ được đính kèm với hướng dẫn này và chỉ cần đợi nó đến trong thư. Tùy chọn 2 là xây dựng một lập trình viên với Arduino hoặc thứ gì đó. Tôi đã thử quy trình đó và nó không thể sao chép chính xác một số dữ liệu nhất định và tôi phải mất hàng tuần để tìm ra điều đó. Cuối cùng tôi đã thực hiện tùy chọn 3, đó là lập trình nó bằng tay và lật các công tắc để điều khiển địa chỉ và đường dữ liệu.

Sau khi được chuyển đổi trực tiếp thành Mã OP của bộ xử lý, toàn bộ chương trình này chỉ nằm trong không gian địa chỉ 17 byte, vì vậy lập trình bằng tay không quá tệ. Chương trình tải vào thanh ghi mục đích chung B giá trị 00. Thanh ghi B được sử dụng để lưu trữ kết quả của lần thêm trước đó. Vì thanh ghi A là nơi toán học xảy ra, chúng tôi sẽ không sử dụng nó để lưu trữ dữ liệu.

Nói về thanh ghi A, chúng ta thực hiện một lệnh IN, lệnh này đọc đầu vào và lưu trữ dữ liệu đã đọc trong A. Sau đó, chúng ta thêm nội dung của thanh ghi B và xuất ra kết quả.

Sau đó, thanh ghi A được sao chép vào thanh ghi B. Và sau đó chúng ta thực hiện một loạt các lệnh nhảy. Bởi vì tất cả các bước nhảy đều trỏ đến byte dưới của các dòng địa chỉ và bởi vì byte trên của lệnh nhảy được đưa ra trong đối số thứ hai và là "00", chúng ta có thể buộc mỗi bước nhảy phải được theo sau bởi một NOP. Chúng tôi làm điều này để cung cấp thời gian giữa việc hiển thị đầu ra và đầu vào đọc để ngăn chặn đầu vào ngẫu nhiên. Mỗi bước nhảy sử dụng mười chu kỳ đồng hồ và mỗi NOP sử dụng bốn. Nếu vòng lặp mất quá nhiều thời gian so với ý muốn của bạn, bạn có thể tăng tốc độ đồng hồ hoặc bạn có thể lập trình lại nó để sử dụng ít bước nhảy hơn.

Bước 9: Kiểm tra

Nếu bạn nối dây mọi thứ một cách chính xác và ROM của bạn được lập trình chính xác, thì còn một bước cuối cùng cần thực hiện: cắm nó lên và xem nó có hoạt động hay không. Nhấn một nút và đợi vài giây. Phải mất 81 chu kỳ xung nhịp để chương trình đạt được vòng lặp đầu tiên của nó và mỗi vòng lặp mất 74 chu kỳ xung nhịp.

Nếu nó không hoạt động, hãy kiểm tra quần short và các chân không kết nối (mở) và các vấn đề về hệ thống dây điện khác. Nếu bạn đã chọn không đặt lại khi bật nguồn, bạn sẽ cần phải thiết lập lại thủ công trước khi bộ xử lý thực hiện bất kỳ điều gì. Bạn cũng có thể gắn đèn LED vào bus địa chỉ để xem chúng có đang hoạt động hay không. Bản thân tôi cũng gặp sự cố với điều đó, vì vậy tôi đã gắn chúng trực tiếp vào bus dữ liệu. Điều này cho phép tôi xem những gì đang được giao tiếp giữa bộ xử lý và ROM mà không cần phải lo lắng về việc liệu ROM có được đọc chính xác hay không, điều này sẽ yêu cầu sơ đồ thời gian và tôi chỉ không muốn dính líu đến điều đó. Hóa ra là một lựa chọn tốt vì cuối cùng tôi đã phát hiện ra các Mã OP có vấn đề được lưu trữ không chính xác.

Đề xuất: