






Preview text:
lOMoAR cPSD| 59455093
Báo cáo Project cuối kì môn Điện tử cho CNTT
Sinh viên: Nguyễn Bình Minh. MSSV : 20235780
1. Demo và cách thức hoạt động của mạch khóa mật khẩu 2-0-2-3
1.1. Cách thức hoạt động
- Nhập mật khẩu bằng các nút nằm trên hàng ngang theo thứ tự 0 9.
- Nhập đúng mật khẩu theo thứ tự 2-0-2-3 thì cửa mở (đèn xanh sáng lên).
- Nhập sai ở đâu thì đèn báo sai màu đỏ sẽ sáng lên, lúc này để nhập lại
mật khẩu thì ấn 1 trong 10 nút từ 0 9 bất kì, đèn cảnh báo tắt thì bắt đầu nhập lại mật khẩu.
- Nhập sai 2 lần thì đèn đỏ biểu thị cho việc phát chuông cảnh báo sáng lên.
1.2. Link video Demo và mạch mô phỏng trên TinkerCAD.
- Link video on YouTube https://youtu.be/9lGExsweP- M?si=dtVYS4IcoTNH3gdA - Link mạch trên TinkerCAD
https://www.tinkercad.com/things/8Qgi87ZPEWWproject/editel?returnTo=https
%3A%2F%2Fwww.tinkercad.com%2Fdash
board&sharecode=N3EnhGUWVL0CDqVbsTF4yTR5uNayuw0CxUhQ 0RP9JL0 2. Ý tưởng ban đầu
Ý tưởng ban đầu của em là rất nhiều các ý tưởng rời rạc rồi trong khi xây
dựng mạch em mày mò, thử nghiệm để tìm cách liên kết chúng lại hoặc cũng
phát sinh thêm vấn đề mà mình phải giải quyết Các ý tưởng ban đầu bao gồm:
- Xây dựng mạch đếm 2-0-2-3
- Dùng các bit mình vừa nhập để so sánh với các bit đầu ra từ mạch đếm từ
đó đưa ra kết luận nhập đúng hay nhập sai. lOMoAR cPSD| 59455093
- Cứ mỗi lần mình bấm một nút nào ấy, thì mạch đếm mới nhẩy sang số mới
- Không thể tạo mạch đếm 2-0-2-3 theo cách thông thường được mà phải
dùng bộ đếm thông thường sau đó đưa vào bộ giải mã do mình từ thiết kế để thu được đầu ra
- Phải tự thiết kế mạch mã hóa cho từng nút bấm một.
- Dùng mạch SIPO để lưu các lần đúng nếu 4 lần liên tiếp đúng thì mở.
- Dùng mạch SIPO để lưu các lần sai nếu 2 lần sai liên tiếp thì chuông báo kêu. 3. Thiết kế
3.1. Thiết kế tổng quát sơ đồ mạch
3.2. Thiết kế khối bộ mã hóa lOMoAR cPSD| 59455093
- Lắp bộ mã hóa trên TinkerCAD.
3.3. Thiết kế bộ kiểm tra
3.3.1. Thiết kế bộ đếm 2-bit
- Dùng mạch đếm không đồng bộ 00 11 thông thường sử dụng D – Flip Flop
3.3.2. Thiết kế bộ giải mã
Ta thiết bộ giải mã như sau: 𝑋 𝑋 𝑌 𝑌 Biểu thị 00 10 2 01 00 0 10 10 2 11 11 3 lOMoAR cPSD| 59455093
3.3.3. Thiết kế bộ so sánh
- Chọn mạch so sánh: Ban đầu có ý tưởng là sử dụng Op-amps với đặc
tính khuếch sự sai khác nên khi đầu vào giống nhau thì sẽ cho ra đầu ra là
0, khác nhau sẽ cho ra đầu ra 1 nhưng Op-amps khi cho 2 đầu vào bằng
nhau thì đầu ra sẽ không xác định vì vậy nên dùng mạch so sánh 2 bit tự thiết kế - Thiết kế: 𝑋 𝑋 𝑌 0 0 1 0 1 0 lOMoAR cPSD| 59455093 1 0 0 1 1 1 𝑌 = 𝑋 𝑋 + 𝑋 𝑋
Đó là mạch so sánh, như vậy ta cần so sánh 4 cặp bit thì ta kết hợp 4
bộ so sánh và tổng hợp tất cả đầu ra của 4 mạch so sánh để cho ra đầu ra của bộ so sánh 4 bit.
3.3.4. Lắp bộ kiểm tra trong TinkerCAD
3.4. Thiết kế bộ quyết định mở cửa hay cảnh báo.
Đơn giản ta lắp mạch SIPO 4-bit và 2-bit thông thường rồi lắp mạch logic
kiểm tra nếu các đầu ra của bộ đầu vào đúng đều có giá trị logic 1 thì mở
cửa, các đầu ra của bộ đầu vào sai đều có giá trị logic 1 thì phát cảnh báo.
3.5. Thiết kế chức năng
Có thể nói, đây là phần khó khăn và thách thức nhất, liên kết các bộ
mạch nói trên, cũng như thêm vào đó một số tính năng để đảm bảo lOMoAR cPSD| 59455093
việc hoạt động trơn tru của cả mạch. Các chức năng cần thiết kế bao gồm:
Khi nhập sai, thì bộ SIPO 4-bit dùng để lưu các dữ liệu đã đúng sẽ được reset.
Khi nhập sai, bộ đếm 2-bit cũng sẽ được reset.
Bộ đếm 2-bit sẽ được reset đến 11 để tiếp theo đó khi bấm nút sẽ nhảy tới 00.
Bộ SIPO 4-bit khi reset, thì sẽ reset tất cả các D- Flip Flop thành phần
Lưu lại thành phần vừa nhập dùng D-Flip Flop, bình thường cứ
ấn nút tín hiệu sẽ gửi đi là một số nhưng khi nhả ra thì nó lại trở
về 0, điều này gây ra sai logic của mạch đúng/sai. Và ta cũng
reset tính hiệu này thành 0011 để ban đầu giống với đầu ra của bộ đếm + giả mã. 3.5.1. Thiết kế
Ta thấy rằng khi sai thì sẽ reset hàng loạt các bộ nói trên. Vậy nên ta sẽ
nối tín hiệu đúng sai tại thời điểm hiện tại là đầu vào của tín hiệu Reset
các mục. Tuy nhiên em nhận thấy rằng, giả sử tín hiệu sai, đưa vào reset
thì ngay sau khi reset, tính hiệu sẽ là đúng, nhưng lại không có đâu thêm
một tín hiệu clock nào để mạch có thể hoạt động bình thường nữa, tức là
theo thiết kế này mạch sẽ bị trong vòng lặp reset. Do vậy em đã dùng
DFlip Flop để làm trễ tín hiệu đi một nhịp đồng nghĩ là nhập sai rồi ấn
thêm một phím clock nữa thì mạch sẽ reset. Điều này hoạt động nhưng
mạch D- Flip Flop đó lại không chuyển từ trạng thái reset trạng thái
bình thường, vì vậy em reset mạch đấy để về trạng thái hoạt động bình
thường bằng cách nối đầu reset của D-Flip Flop vào tín hiệu reset và ta
đang thiết kế. Và mạch đã hoạt động theo ý chúng ta muốn.
4. Các vấn đề phát sinh và giải quyết 4.1. Vấn đề 1
Nếu lắp Clock của mạch SIPO 2-bit lưu trữ các lần sai vào clock của nút
bấm thì sẽ xảy ra chuyện là ta nhập sai lần đầu, lần 2 nhập đúng 1 số, sai số
tiếp theo thì nó cũng lưu lại và xóa lần sai ban đầu. lOMoAR cPSD| 59455093
Cách giải quyết: như vậy thay vì lưu tín hiệu sai phụ thuộc vào clock của
nút bấm, thì ta lưu tín hiệu sai phụ thuộc vào clock theo tín hiệu RESET chung. 4.2. Vấn đề 2
Vì ban đầu mạch chạy là tín hiệu đúng nên sẽ đúng dư một tín hiệu như vậy
chỉ cần nhập 3 chữ số đầu đúng thì chữ số thứ 4 nhập vào đúng hay sai
không quan trọng, cửa vẫn sẽ mở.
Cách giải quyết: Thay vì kiểm tra mở cửa dựa vào 𝑄 𝑄 𝑄 𝑄 của SIPO 4bit
thì ta thiết kế lại là dựa vào 𝐷 𝑄 𝑄 𝑄 của SIPO 4-bit.